使用ARI (C#,AsterNET),我通过Originate命令创建一个通道:
var channel = client.Channels.Originate($"SIP/{number}@{destination}", app: appName, callerId: CLI, timeout: timeout);这很好;但是,timeout是从创建通道时开始的,实际上,我只想在通道开始响亮时才执行超时。
有任何方法(通过ARI)在创建通道后操作timeout设置吗?例如,我可以使用任意超时创建通道,然后(重新)在通道状态更改为RINGING后设置超时。
发布于 2019-05-30 15:42:51
不可能根据星号中的振铃进行超时。
不是在拨号计划,也不是在ARI,AMI或AGI。一点也不。
只有复杂的事情,如倾听事件和手动挂断渠道。
发布于 2019-05-30 20:18:00
而不是使用原语:
POST /channels你可以用:
POST /channels/create若要创建不立即拨号的频道,请执行以下操作。这允许您的静止应用程序获得通道的控制权,然后才能回答。
在/channels/create之前,您现在应该设置一个StasisStart事件处理程序,该处理程序执行/channels/dial并在此请求中设置超时。
这将不是确切的时候,频道开始响亮(因为这是不可能的设置),但它将是准确的时候,频道是拨号,这是希望非常接近您正在寻找的。
注意:当使用此方法时,您可能也希望在StasisStart事件处理程序中设置Caller,因为它不能在/channels/create请求中设置。
https://stackoverflow.com/questions/56376759
复制相似问题