@elya_binary

Почему перестают поступать события AriClient-у?

Добрый день!

Для работы с Asterisk используется библиотека AsterNET.ARI
Создаётся endpoint:
endpoint = new StasisEndpoint(host, port, username, password);

и клиент, который подписывается на все события
client = new AriClient(endpoint, app, subscribeAllEvents: true);

Спустя какое-то время (от 15 минут до 1,5 суток), события (ChannelCreated, BridgeCreated, Dial и т.д), перестают поступать, до тех пор пока не пересоздашь клиента. Период, в течение которого события поступают, каждый раз различный.
Что может быть причиной этому? Может существует ли какое-то терминальное событие для внешнего приложения в ARI или таймаут, после которого события перестают поступать?
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
@5465
Возможно, причиной проблемы является таймаут в ARI. ARI имеет встроенный таймаут для событий, который по умолчанию составляет 60 секунд. Это означает, что если в течение 60 секунд не происходит никаких событий, ARI отключает соединение. Если это происходит, вы можете попытаться увеличить значение таймаута, чтобы события продолжали поступать.

Для установки таймаута можно использовать метод SetTimeout() класса StasisEndpoint. Например, чтобы установить таймаут в 5 минут, можно использовать следующий код:

endpoint.SetTimeout(TimeSpan.FromMinutes(5));

Также возможно, что проблема связана с каким-то сбоем в Asterisk или сетевой проблемой. В этом случае может помочь логирование событий и анализ логов для выявления причин проблемы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы