通道上的超时增加

时间:2019-05-30 10:47:52

标签: asterisk asterisk-ari

使用ARI(C#,AsterNET),我通过Originate命令创建一个频道:

   var channel = client.Channels.Originate($"SIP/{number}@{destination}", app: appName, callerId: CLI, timeout: timeout);

这很好用;但是,timeout从创建频道时开始,实际上,我希望仅在频道开始响铃后才强制超时。

一旦创建频道,是否有任何方法(通过ARI)来操纵timeout设置-因此,我可以例如创建一个具有任意超时的频道,然后(重新)设置一次超时通道状态已更改为RINGING

2 个答案:

答案 0 :(得分:0)

无法基于星号上的响铃来进行超时。

不在Dialplan中,不在ARI,AMI或A​​GI中。完全没有。

仅侦听事件和手动挂断通道等复杂的事情。

答案 1 :(得分:0)

代替使用origin:

POST /channels

您可以使用:

POST /channels/create

创建频道而无需立即拨号。这样,您的Stasis Application就可以在应答之前获得对通道的控制。

/channels/create之前,您现在应该设置一个StasisStart事件处理程序,该事件处理程序执行/channels/dial并在此请求中设置超时。

当频道开始振铃时(由于无法设置),这不是准确,但是拨打频道时,准确希望它与您要查找的内容非常接近。

注意:使用此方法时,您可能还希望在StasisStart事件处理程序中设置呼叫者ID,因为无法在{{1}中设置}。