如何从SIP网关外部呼叫Freeswitch时传递/处理分机号码?

假设我有Freeswitch,它configuration了SIP网关。 所以,这个Freeswitch的本地用户可以通过外部呼叫

<extension name="russia"> <condition field="destination_number" expression="^(7\d{10})$"> <action application="bridge" data="sofia/gateway/sipnet.ru/$1"/> <action application="hangup"/> </condition> </extension> 

其中sipnet.ru是SIP提供商网关名称。

现在我希望外面的用户能够打电话给当地的客户。

这可以如何实现? 如何远程SIP电话用户可以input附加号码到SIP提供商的主号码? Freeswitch如何提取这些附加数字?

例如,我拨打的号码是55512345,所以给我打电话的人应该input这个号码。 但是现在我把Freeswitch连接到这个号码,而Freeswitch用户的本地号码是1000.他怎么叫呢? 可以用555123451000给他打电话吗?

是否可以通过另外不是数字,而是字母?

是否可以通过陆地或移动电话传递更多的号码?

(我实际上是在我的FreeSWITCH服务器上使用Sipnet和Zadarma)

Sipnet.ru允许您将所有传入呼叫转发到SIP URI。 它也允许创build子账户。 因此,您可以根据需要创build任意多个子帐户,并将所有呼叫转发给某个唯一的URI,如[email protected]

然后在FreeSWITCHconfiguration中,创build一个新的公共扩展:

 File: conf/dialplan/public/50_users.xml <include> <extension name="pub_vasya-pupkin"> <condition field="destination_number" expression="^vasya-pupkin$"> <action application="transfer" data="1007 XML default"/> </condition> </extension> 

所以所有对[email protected]的电话将被转移到1007内部分机。

另外一个不支持转发的SIP提供商(例如zadarma.com),您可以创build一个SIPconfiguration文件,并使用“extension”参数来指定应该使用公共configuration文件中的哪个扩展名:

 File: conf/sip_profiles/external/zadarma.xml <gateway name="zadarma_59555"> <param name="username" value="59555"/> <param name="password" value="*******"/> <param name="extension" value="vasya-pupkin"/> <param name="expire-seconds" value="125"/> <param name="register" value="true"/> <param name="register-transport" value="udp"/> <param name="proxy" value="sip.zadarma.com"/> <param name="retry-seconds" value="30"/> <param name="caller-id-in-from" value="false"/> <param name="ping" value="27"/> </gateway> 

为了以防万一,我的博客中还有一些更实用的例子。