如何通过星号干线从外部应用通过预言拨打电话号码?

时间:2011-09-15 16:34:06

标签: voip asterisk voicexml ccxml

哇,那个头衔很满意......

我确信乍一看听起来很混乱。这是我发生的事情的基础:

我有:
  - 在其上运行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

任何人都可以了解这里发生的事情吗?提前谢谢!

1 个答案:

答案 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中),事实上你可能需要/必须先做这将有效。