Определить статус подключения к Asterisk через Asterisk Java

Есть ли в Asterisk способ определить правильный статус подключения менеджера к Asterisk? (Моя точка зрения - уведомление о неудачном подключении к звездочке) Я реализую визуальную индикацию для нашего java-приложения (с использованием библиотеки Java Asterisk), однако, с моей точки зрения, это не работает так, как можно было бы ожидать.

Есть метод getStatus() на ManagerConnection, но даже если я отсоединяю сетевой кабель, результат всегда ПОДКЛЮЧЕН. И я не наблюдал ничего подобного, что можно было бы использовать.


person gurbi    schedule 02.03.2014    source источник


Ответы (1)


Простой способ:

  • установите глобальную переменную PING в extension.conf равной 1
  • через менеджера получить значение глобальной переменной. Если не 1, заново подключите.
person arheops    schedule 02.03.2014
comment
Признаюсь, это простое решение, и оно работает. Однако он также и самый уродливый. Если соединения нет, я получаю ManagerCommunicationException - это означает, что я использую обработку исключений для обработки своего обычного рабочего процесса. Есть ли еще какое-нибудь не такое простое, но более подходящее решение? - person gurbi; 03.03.2014
comment
Я не понимаю, в чем проблема с вашим исключением. Извините, я не знаком ни с Java, ни с вашей библиотекой Java. Вы также можете прочитать код библиотеки (он с открытым исходным кодом) и добавить процедуру проверки соединения. - person arheops; 03.03.2014
comment
Или наймите эксперта, который научит вас работать с исключениями Java / расширить класс Java. - person arheops; 03.03.2014
comment
:) Дело не в том, что я не знаю, как обрабатывать исключения в java - я их слишком хорошо знаю. Вот почему я хочу их избегать - использование исключений для обычного рабочего процесса (например, отключение) - это не то, чем я хотел бы заниматься. См. здесь и здесь. Я просто надеялся, что у кого-то будет идея, почему вызов ManagerConnection.getStatus () через некоторое время не вернет DISCONNECTED или не выдаст что-то подобное. - person gurbi; 04.03.2014
comment
Я не понимаю твоей проблемы. Спросите библиотеку dev lib, почему они так делают или переписывают исходный код, это ОТКРЫТЫЙ ИСТОЧНИК. - person arheops; 04.03.2014