1

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

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

这很好用;但是,timeout从创建通道时开始,实际上我想超时以仅在通道开始响铃时强制执行。

创建通道后,是否有任何方法(通过 ARI)来操作timeout设置 - 例如,我可以创建具有任意超时的通道,然后在通道状态更改为时(重新)设置超时RINGING

4

2 回答 2

1

没有办法根据星号响铃来超时。

不在拨号方案中,不在 ARI 或 AMI 或 AGI 中。一点也不。

只有复杂的事情,比如监听事件和手动挂断通道。

于 2019-05-30T15:42:51.580 回答
0

而不是使用起源:

POST /channels

你可以使用:

POST /channels/create

无需立即拨号即可创建频道。这允许您的 Stasis 应用程序在通道被应答之前获得对通道的控制。

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

这不会是频道开始响铃的确切时间(因为无法设置),但它将是频道被拨打的确切时间,希望与您正在寻找的内容非常接近。

注意:使用此方法时,您可能还希望在StasisStart事件处理程序中设置呼叫者 ID,因为它不能在/channels/create请求中设置。

于 2019-05-30T20:18:00.180 回答