要求: 从拨号方案发送SIP Qualify到分机。
为什么呢? 如果扩展名为NOT_IN_USE,则会调用另一组函数&如果扩展名是不可访问的,则不同。
但是如果我的设备突然断开连接,星号需要时间来改变状态,时间取决于qualifyfreq值,&在这段时间之间,如果其他设备进行调用则会转到错误的功能集。因此,我想在拨号方案的所有内容之上调用Peer_poke,以便更新扩展名的正确状态。然后转到右边的函数调用。
请记住,我无法将qualifyfreq值降低到60secs以下。
尝试尽可能多地读取拨号方案中的所有可用功能,没有达到我的目的,我可以检查扩展的状态,但状态不是当前的,它取决于Asterisk服务器发送的最后一次ping&我需要Asterisk来ping设备并给我当前的状态。
答案 0 :(得分:2)
是的,您可以使用sip message命令执行此操作(但是其他方应忽略消息或不支持消息)。
在检查SIPPEER功能之后,您还可以在sip.conf中设置qualify,qualifyfreq。
当然你也可以编写将执行ping的特殊功能,但是使用该功能你会遇到同样的问题(即如果没有连接,不可预测的响应等待时间),你已经为此重写了大量的源代码。
目前没有办法在没有太多编码的情况下在chan_sip中这样做,所以这个功能没有实现。
作为其他选项,您可以使用外部应用ping设备,使用libpcap进行捕获响应并在udp数据包中发送星号端口(udp不检查源端口)。无论如何,这需要特殊的编码和一些技能。