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

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

假设我有 Freeswitch,它配置了 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 电话用户如何向 SIP 提供商的主号码输入附加号码?如何使用 Freeswitch 提取这些附加号码?

例如,我的 SIP 呼入号码是 55512345。因此,要呼叫我,呼叫者应输入此号码。但现在我将 Freeswitch 连接到此号码,而 Freeswitch 用户的本地号码为 1000。如何呼叫他?是否可以使用 555123451000 呼叫他?

是否可以另外传递字母而不是数字?

是否可以通过座机或手机传递附加号码?

答案1

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

Sipnet.ru 允许您将所有来电转接到 SIP URI。它还允许创建子帐户。因此,您可以根据需要创建任意数量的子帐户,并将所有呼叫的转接到某个唯一的 URI,例如[电子邮件保护]

然后在您的 FreeSWITCH 配置中,创建一个新的公共扩展:

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>

因此所有调用[电子邮件保护]将被转接至1007内部分机。

对于不支持转发的其他 SIP 提供商(例如 zadarma.com),您可以创建一个 SIP 配置文件并使用“扩展”参数来指定应使用公共配置文件中的哪个扩展:

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>

我的博客中有一些更实际的例子,以防万一。

相关内容