使用 ARI(C#,AsterNET(,我通过 Originate
命令创建一个通道:
var channel = client.Channels.Originate($"SIP/{number}@{destination}", app: appName, callerId: CLI, timeout: timeout);
这工作正常;但是,timeout
从创建频道时开始,实际上我想超时,仅在频道开始振铃时才强制执行。
通道后,是否有任何方法(通过 ARI(操作timeout
设置 - 因此,例如,我可以创建具有任意超时的通道,然后在通道状态更改为 RINGING
后(重新(设置超时?
根据星号振铃进行超时。
不在拨号计划中,不在 ARI 或 AMI 或 AGI 中。完全没有。
只有复杂的事情,如侦听事件和手动挂断频道。
而不是使用 originate:
POST /channels
您可以使用:
POST /channels/create
以创建频道而不立即拨号。这允许您的 Stasis 应用程序在应答之前获得对通道的控制。
在/channels/create
之前,您现在应该设置一个StasisStart
事件处理程序,该处理程序执行/channels/dial
并设置此请求中的超时。
这不会确切地用于频道开始响铃的时间(因为无法设置(,但它将确切地用于拨打频道的时间,希望这与您要查找的内容非常接近。
注意:使用此方法时,您可能还需要在StasisStart
事件处理程序中设置调用方 ID,因为它无法在/channels/create
请求中设置。