Asterisk 通过 SIP 通知消息发起呼叫

Asterisk 通过 SIP 通知消息发起呼叫

我的办公桌上有一部 Yealink IP 电话,我想远程控制它,这样我就可以从我的电脑拨打电话,而不是直接在电话上输入号码。此链接解释了如何操作:

如何使用遥控器拨号或拨打电话 | Yealink 支持

2有两种方法。一种是向手机发送 http 请求。另一种方法是发送 SIP 通知消息。

A)发送 HTTP 请求(有效!)

  1. 首先确保手机配置为允许远程连接

在此处输入图片描述

  1. 然后只需发出此wget请求

    wget --user admin --password PASSWORD_PHONE  http://IP_OF_PHONE/servlet?key=SPEAKER
    

提出该请求后,电话扬声器键被按下!


B) 发送 SIP 通知消息(不起作用)

这是我想要使用的选项,因为我不想存储用户名和密码。此外,手机的 IP 地址可能会改变。无论如何,这是我已经尝试过的,但由于某种原因,我无法使此选项起作用:

  1. 我通过允许手机进行远程控制来执行在部分 (A) 中执行的第一步。

  2. 我将手机连接到我的星号服务器并确保它已连接。 在此处输入图片描述

  3. 现在 SIP 对等体 Eduardo 已连接,我需要向其发送一个 SIP 通知消息,其正文包含 key=SPEAKER。

  4. 我打开 /etc/asterisk/sip_notify.conf并添加以下上下文:

    [测试] 事件=>ACTION-URI 内容=>key=SPEAKER

  5. 我重新启动了 asterisk,因为我不知道如何重新加载 sip_notify.conf

    asterisk -rx "core restart gracefully"
    
  6. 然后在 asterisk CLI 上输入以下命令以发送 sip 通知消息:

    sip notify test Eduardo
    
  7. 当我运行该命令时,星号显示:Sending NOTIFY of type 'test' to 'Eduardo'但手机从未按下 SPEAKER 键!我可能做错了什么?

  8. 这是Wireshark捕获的SIP消息!

在此处输入图片描述

  1. 尽管我按照说明操作,但扬声器键却没有被按下!我可能做错了什么?

有用信息:

在此处输入图片描述

答案1

经过一整天的尝试,我终于搞清楚了!我缺少内容类型标头!

无论如何,这里是解决方案:

  1. sip_notify.conf 文件应该包含:

    [test]
    Content-Type=>message/sipfrag
    Event=>ACTION-URI
    Content=>key=SPEAKER
    

    这条线Content-Type=>message/sipfrag很重要!

  2. 重新启动 asterisk,以便 sip_notify.conf 重新加载

    asterisk -rx“核心正常重启”

  3. 现在输入这个星号命令:

    sip notify test Eduardo
    

    其中 Eduardo 是您要向其发送密钥的 SIP 对等体

  4. 所有可用密钥的列表可在此处找到:

    http://support.yealink.com/faq/faqInfo?id=173

相关内容