我确信乍一看听起来很混乱。这是我发生的事情的基础:
我有:
- 在其上运行Asterisk和Voxeo Prophecy的服务器
-Prophecy设置为Asterisk的扩展
- 运行外部应用程序的另一台服务器。
外部应用程序生成两个XML:一个ccxml和一个vxml文件,供Voxeo读取和执行,然后启动对(直到今天)星号扩展的调用。
然而,该项目正在进行中,昨天我得到了一个SIP干线和一个DID号码,希望将这个应用程序变成可以称呼真人的东西。后备箱正在使用Asterisk,我已经能够通过软电话(X-lite)拨打我的手机号码。这很好用。
但是,当我尝试从外部应用程序启动调用时,它不会通过。我已经尝试了很多东西试图解决它,但它只是没有用。
在中继/ DID业务之前,调用星号扩展名的工作代码如下:
<createcall>dest="'sip:*Extension here*@*IP Address here*'"
connectionid="myOutBoundConnectionID" timeout="'45s'" callerid="'*Extension here*
@*IP Address here*'"</createcall>
我的第一个想法是,我可能需要为预言以及Asterisk指定一个行李箱,但我可能不在基地。
我认为可以使用的重新格式化的代码如下:
<createcall>dest="'tel:*Phone Number here*'" connectionid=
"myOutBoundConnectionID" timeout="'45s'" callerid="'*Phone Number here*
'"</createcall>
......但这根本不起作用。
当我从我的软电话打电话时,日志文件会说出这样的话:
-- Executing [*My phone number*@from-internal:1] Macro("SIP/1001-0000007d", "user-
callerid,LIMIT,") in new stack
但是当我从外部应用程序调用时,事情会有所不同:
-- Executing [*My phone number*@from-sip-external:1] NoOp("SIP/*IP Address:5080-0000007c",
"Received incoming SIP connection from unknown peer to *phone number*") in new stack
任何人都可以了解这里发生的事情吗?提前谢谢!
答案 0 :(得分:1)
您应该重新格式化创建调用,如下所示:
<createcall>dest="'tel:*Phone Number here*@*IP Address of Asterisk*'" connectionid= "myOutBoundConnectionID" timeout="'45s'" callerid= "'*Prophecy's Asterisk Extension'"</createcall>
确保您的Asterisk服务器有一个出站规则,通过您的SIP中继点击10位数的电话号码(假设您的软电话呼叫正常工作,我认为这样做。
根据您的SIP提供商,这可能会导致您的出站呼叫看起来来自分机号码,而不是您要提供的外部号码。如果你想提出另一个号码,你可能需要预言才能注册它所使用的SIP电台,如果你还没有(在预言config.xml
中),事实上你可能需要/必须先做这将有效。