使用ARI(C#,AsterNET),我通过Originate
命令创建一个频道:
var channel = client.Channels.Originate($"SIP/{number}@{destination}", app: appName, callerId: CLI, timeout: timeout);
这很好用;但是,timeout
从创建频道时开始,实际上,我希望仅在频道开始响铃后才强制超时。
一旦创建频道,是否有任何方法(通过ARI)来操纵timeout
设置-因此,我可以例如创建一个具有任意超时的频道,然后(重新)设置一次超时通道状态已更改为RINGING
?
答案 0 :(得分:0)
无法基于星号上的响铃来进行超时。
不在Dialplan中,不在ARI,AMI或AGI中。完全没有。
仅侦听事件和手动挂断通道等复杂的事情。
答案 1 :(得分:0)
代替使用origin:
POST /channels
您可以使用:
POST /channels/create
创建频道而无需立即拨号。这样,您的Stasis Application就可以在被应答之前获得对通道的控制。
在/channels/create
之前,您现在应该设置一个StasisStart
事件处理程序,该事件处理程序执行/channels/dial
并在此请求中设置超时。
当频道开始振铃时(由于无法设置),这不是准确,但是拨打频道时,准确希望它与您要查找的内容非常接近。
注意:使用此方法时,您可能还希望在StasisStart
事件处理程序中设置呼叫者ID,因为无法在{{1}中设置}。