要求:将SIP认证发送到拨号计划的扩展。
为什么?如果扩展是NOT_IN_USE,那么将调用一组不同的函数&如果扩展不可访问,则调用不同的函数集。
但是,如果我的设备突然中断连接,星号需要时间来更改状态,时间取决于qualifyfreq值&在这段时间内,如果其他设备调用,则会转到错误的函数集。因此,我想在拨号计划中的所有内容之上调用Peer_poke,以便更新扩展的正确状态&然后转到正确的函数调用集。
请记住,我不能将qualifyfreq值降到60秒以下。
试着尽可能多地阅读拨号计划中所有可用的功能,没有什么能达到我的目的,我可以检查扩展的状态,但是状态不是当前的,它依赖于星号服务器发送的最后一个ping &我需要星号来平设备并给我当前的状态。
发布于 2017-05-30 13:05:34
是的,您可以使用sip消息命令(但其他方面应该忽略消息或不支持消息)。
您还可以在检查SIPPEER函数之后,在sip.conf中设置qualifyfreq。
当然,您也可以编写执行ping的特殊函数,但使用该函数时,您将遇到相同的问题(即,如果没有连接,等待响应的不可预测的等待时间),并为此重写了大量源代码。
目前,在chan_sip中,没有大量的编码就无法实现这一功能,因此这一功能无法实现。
作为其他选项,您可以使用外部应用程序来平设备,使用libpcap捕获响应,并在udp数据包中发送星号端口(udp不检查源端口)。无论如何,这将需要特殊的编码和一些技能。
https://stackoverflow.com/questions/44261954
复制相似问题