Увеличение тайм-аута на начало канала - PullRequest
1 голос
/ 30 мая 2019

Используя ARI (C #, AsterNET), я создаю канал с помощью команды Originate:

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

Это отлично работает; однако timeout начинается с момента создания канала, и в действительности я бы хотел, чтобы тайм-аут применялся только после того, как канал начнет звонить.

Есть ли способ (через ARI) манипулировать настройкой timeout после создания канала - так что я могу, например, создать канал с произвольным тайм-аутом, а затем (пере) установить тайм-аут после того, как канал состояние изменилось на RINGING?

Ответы [ 2 ]

1 голос
/ 30 мая 2019

Нет способа сделать тайм-аут на основе звонка в звездочке.

Не в диалплане, не в ARI или AMI или AGI.Нет вообще.

Только сложные вещи, такие как прослушивание событий и каналы ручного зависания.

0 голосов
/ 30 мая 2019

Вместо использования originate:

POST /channels

вы можете использовать:

POST /channels/create

для создания канала без немедленного набора . Это позволяет вашему приложению Stasis получить контроль над каналом до того, как получит ответ.

До /channels/create теперь вы должны установить обработчик события StasisStart, который выполняет /channels/dial и устанавливает время ожидания в этом запросе.

Это не будет для точно , когда канал начнет звонить (поскольку это невозможно установить), но это будет точно , когда канал набран, что надеюсь, довольно близко к тому, что вы ищете.

Примечание : при использовании этого метода вы, вероятно, захотите установить идентификатор вызывающего абонента также в обработчике событий StasisStart, поскольку его нельзя установить в запросе /channels/create.

...