2

哇,这个标题真是一言难尽……

我敢肯定,乍一看这听起来很令人困惑。这是我正在做的事情的基础:

我有:
- 一个安装了 Asterisk 和 Voxeo Prophecy 的服务器。
-Prophecy 设置为 Asterisk 的扩展。
- 另一台运行外部应用程序的服务器。

外部应用程序生成一些两个 XML:一个 ccxml 和一个 vxml 文件,供 Voxeo 读取和执行,然后启动对星号扩展的调用(直到今天)。

不过,该项目正在进行中,昨天我得到了一个 SIP 中继和一个 DID 号码,希望将这个应用程序变成可以呼叫真人的东西。

中继正在使用 Asterisk,我已经能够通过软件电话 (X-lite) 向我的手机号码发起呼叫。这工作得很好。

但是,当我尝试从外部应用程序发起调用时,它没有通过。我已经尝试了很多方法来尝试修复它,但它只是不起作用。

在trunk/DID业务之前,调用星号分机的工作代码如下:

 <createcall>dest="'sip:*Extension here*@*IP Address here*'" 
 connectionid="myOutBoundConnectionID" timeout="'45s'" callerid="'*Extension here*
 @*IP Address here*'"</createcall>

我的第一个想法是我可能需要为 Prophecy 和 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

任何人都可以阐明这里发生的事情吗?提前致谢!

4

1 回答 1

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 站,如果您还没有(在 Prophecy 中config.xml),实际上您可能需要/无论如何都必须这样做,然后才能起作用。

于 2011-09-19T19:28:32.307 回答