星号websocket来电

星号websocket来电,websocket,asterisk,incoming-call,Websocket,Asterisk,Incoming Call,我想使用websocket在网页中显示所有来电 我遵循星号官方文档已经有三年了 提供的示例使用以下连接可以正常工作: $ wscat -c "ws://localhost:8088/ari/events?api_key=asterisk:asterisk&app=hello-world" 但当我尝试连接到频道时,我收到了一个错误: $ wscat -c "ws://localhost:8088/ari/channels?api_key=asterisk:asterisk" error:

我想使用websocket在网页中显示所有来电

我遵循星号官方文档已经有三年了 提供的示例使用以下连接可以正常工作:

$ wscat -c "ws://localhost:8088/ari/events?api_key=asterisk:asterisk&app=hello-world"
但当我尝试连接到频道时,我收到了一个错误:

$ wscat -c "ws://localhost:8088/ari/channels?api_key=asterisk:asterisk"
error: Error: unexpected server response (200)
我也尝试过使用,效果很好。
我做错了什么?

您只将WebSocket连接到资源。这将创建从Asterisk到远程ARI应用程序的事件管道。您不会对Asterisk中的任何其他资源使用WebSocket协议(ws)

其他资源是标准REST(ful)HTTP资源。您可以使用它们来控制应用程序中的星号资源,例如,等等


您可能想查看星号wiki上的文档,以获取使用WebSocket for events/HTTP进行控制的示例。

编程问题在哪里?启用星号调试模式,并查看错误或检查星号的源代码(它是开放和免费的)我感到困惑。不存在用于接收传入呼叫的websocket吗?我不想使用长轮询来检查它,请阅读指南。你应该表现出你的努力去做一些事情,在这里我看不到任何编程问题。“请帮我查找手册”不是编程问题。我将尝试搜索更多。顺便说一句,你的行为没有建设性。我正在搜索,没有找到,所以我请求一些帮助。谢谢,非常详尽。这意味着我必须使用轮询来捕捉来电?不。使用ARI,您可以将呼叫发送到dialplan应用程序中。将控制权传递给远程应用程序。您将通过websocket异步收到一个通知,通知您控制着一个频道。谢谢!我现在的处境很好。但有一种方法可以将所有传入呼叫的发送扩展添加到我的dialplan应用程序中?您不会通过API来实现这一点。这是一个仍在extensions.conf中配置的部分。Hello World文档在这里显示-。如果您想在那里发送所有呼叫,您可以使用模式匹配,如ext=>\u X.,1,NoOp…这是可行的,谢谢,但我有问题。我的配置是:extn=>X.,1,NoOp()same=>n,Stasis(test)。当我试着打另一个号码时,什么也没发生。。没有来自WS的事件。当我停止呼叫时,StasisEnd事件将被释放。。