我已成立了FreePBX的,它是工作,我可以拨打电话到PBX和从PBX的。我已经启用了REST API,并增加了用户名和密码。我克隆Asternet.Ari https://github.com/skrusty/AsterNET.ARI。
该程序运行时,我得到了连接的事件:
// Create a new Ari Connection
ActionClient = new AriClient(
new StasisEndpoint("192.168.1.14", 8088, "userId", "password"),
"HelloWorld");
// Hook into required events
ActionClient.OnStasisStartEvent += c_OnStasisStartEvent;
ActionClient.OnChannelDtmfReceivedEvent += ActionClientOnChannelDtmfReceivedEvent;
ActionClient.OnConnectionStateChanged += ActionClientOnConnectionStateChanged;
ActionClient.OnChannelCallerIdEvent += ActionClient_OnChannelCallerIdEvent;
ActionClient.Connect();
........
private static void ActionClientOnConnectionStateChanged(object sender)
{
Console.WriteLine("Connection state is now {0}", ActionClient.Connected);
}
该ActionClient连接。然后,我打电话到一个延伸,但没有任何反应。我没有得到任何其他事件。要等到任何分机被称为事件火?不知道我是否已正确设置PBX了。我不明白,当我从软电话或局域网之外,在手机上拨打任何通话活动。
那么你的Asterisk阿里的连接,但它得到任何东西,你必须创建扩展,使您的来电去瘀应用。
请以下信息编辑您的extensions.conf文件
exten => _1XX,1,NoOp()
same => n,Stasis(HelloWorld,PJSIP/${EXTEN}, 45)
same => n,Hangup()
该脚本首先检查任意来电号码与1将forawarded您ARI脚本启动。的HelloWorld应用程序是的名称,以便您alread有它在你的脚本。现在,任何调用来它会显示你的插座全部信息。现在,你必须处理这个信息透露给任何特定的任务。 \