【问题标题】:Using WebSockets to monitor calls on Asterisk 13使用 WebSockets 监控 Asterisk 13 上的调用
【发布时间】:2016-06-29 20:50:20
【问题描述】:

我最近将我们的 PBX 升级到了 Asterisk 13,希望新的 REST API 和 WebSockets 支持能够解决我们在通过 AMI 跟踪呼叫时遇到的一些问题。

我们正在构建一个 C# 应用程序,该应用程序将位于 Windows 工具托盘中,并在用户拨打或接听电话时通过查询我们的 CRM 来根据呼叫者 ID 显示信息。

有人可以澄清是否可以通过 WS 订阅一个 WS 频道,该频道报告 PBX 上发生的所有(甚至只是扩展特定的)事件?

就目前取得的进展而言,我使用 Swagger 探索 ARI,通过通道端点(例如 http://10.0.0.1:8088/ari/channels?api_key=admin:secret)返回的通道信息看起来很完美:

[
  {
    "id": "1466860766.240522",
    "name": "PJSIP/905-00000c74",
    "state": "Ring",
    "caller": {
      "name": "",
      "number": "020xxx"
    },
    "connected": {
      "name": "CID:020xxx",
      "number": "07xxx"
    },
    "accountcode": "",
    "dialplan": {
      "context": "macro-dialout-trunk",
      "exten": "s",
      "priority": 22
    },
    "creationtime": "2016-06-25T14:19:26.040+0100",
    "language": "en"
  },
  {
    "id": "1466860766.240524",
    "name": "SIP/siptrunk-000003fc",
    "state": "Down",
    "caller": {
      "name": "CID:02033554047",
      "number": "07xxx"
    },
    "connected": {
      "name": "",
      "number": "020xxx"
    },
    "accountcode": "",
    "dialplan": {
      "context": "ext-did",
      "exten": "07xxx",
      "priority": 1
    },
    "creationtime": "2016-06-25T14:19:26.264+0100",
    "language": "en"
  }
]

该频道信息以简洁、易于理解的格式为我们提供了我们所需的一切 - PJSIP 频道(即分机)、状态、传出中继 CID 和正在拨打的传出号码。

然而,据我所知,/events 端点取决于您在 Asterisk 中创建一个“应用程序”(从我可以收集到的会议之类的东西?) - 尽管使用 wscat 尝试了两天的各种事情并阅读文档,我看不到任何方式可以订阅 WS 频道,该频道将为您提供类似于上述 JSON 的所有事件。

我是否误解了 Asterisk 13 支持 WS 背后的意图?不是为了这个目的吗?有没有更好的方法来实现我的目标而无需投票/channels?任何帮助/指针表示赞赏。

【问题讨论】:

    标签: asterisk asteriskami asterisk-ari


    【解决方案1】:

    我认为 Asterisk WebSockets 支持旨在用于 WebRTC 浏览器和 Asterisk 之间的互操作。通常使用 WebSockets 从 Web 浏览器传输 SIP 消息(查看 SIPmlJSSip)。所以,这不是 ami 替代品。

    更新:现在 Asterisk 似乎也将 websockets 用于 ARI,所以我最初的建议是错误的,抱歉。因此,根据another stack overflow question,您应该使用“应用程序”。

    【讨论】:

    • 感谢您的回复 - 我已经看到了那个链接,但据我所知,它并没有真正的帮助 - 它依赖于您实际配置拨号方案应用程序?查看给出的示例: POST localhost:8080/ari/applications/my_app/… 这表明我需要在拨号方案中有一个应用程序(my_app),例如会议?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多