Asterisk инициирует звонок через sip-уведомление

1256
Tono Nam

У меня на столе ip-телефон Yealink, и я хочу удаленно управлять им, чтобы вместо этого можно было звонить со своего компьютера, а не набирать номера прямо на телефоне. Эта ссылка объясняет, как это сделать:

Как набрать или сделать звонок с помощью пульта дистанционного управления | Yealink Поддержка

Есть 2 способа сделать это. Один отправляет запрос http на телефон. И другой вариант, отправив сообщение уведомления SIP.

А) Отправка HTTP-запроса (Работает!)

  1. Сначала убедитесь, что телефон настроен на удаленные подключения.

Asterisk инициирует звонок через sip-уведомление

  1. Тогда просто сделайте этот wgetзапрос

    wget --user admin --password PASSWORD_PHONE http://IP_OF_PHONE/servlet?key=SPEAKER 

После этого запроса на клавиатуре телефона нажата!


B) Отправка SIP-уведомления (НЕ работает)

Это опция, которую я хочу использовать, потому что я не хочу хранить имена пользователей и пароли. Также может измениться IP-адрес телефона. В любом случае, вот что я пробовал, и по какой-то причине я не могу заставить эту опцию работать:

  1. Я выполняю первый шаг, который я сделал для части (A), позволяя телефону управлять удаленно.

  2. Я подключаю телефон к серверу Asterisk и проверяю, подключен ли он. Asterisk инициирует звонок через sip-уведомление

  3. Теперь, когда подключен SIP-партнер Eduardo, мне нужно отправить ему сообщение SIP Notify с телом, содержащим ключ = SPEAKER.

  4. Я открываю /etc/asterisk/sip_notify.confи добавляю следующий контекст:

    [test] Событие => Содержимое ACTION-URI => Ключ = SPEAKER

  5. Я перезагружаю звездочку, потому что я не знаю, как перезагрузить sip_notify.conf

    asterisk -rx "core restart gracefully" 
  6. Затем на CLI звездочки я набираю следующую команду, чтобы отправить sip-уведомление:

    sip notify test Eduardo 
  7. когда я запускаю эту команду, звездочка говорит: Sending NOTIFY of type 'test' to 'Eduardo'но телефон никогда не нажимает клавишу SPEAKER! Что я могу делать не так?

  8. Вот глоток, захваченный Wireshark!

Asterisk инициирует звонок через sip-уведомление

  1. Даже если я следую указаниям, клавиша SPEAKER не нажимается! Что я могу делать не так?

Полезная информация:

Asterisk инициирует звонок через sip-уведомление

1

1 ответ на вопрос

1
Tono Nam

Попробовав весь день я смог разобраться! Мне не хватало заголовка типа контента!

В любом случае вот решение:

  1. Файл sip_notify.conf должен содержать:

    [test] Content-Type=>message/sipfrag Event=>ACTION-URI Content=>key=SPEAKER 

    Линия Content-Type=>message/sipfragочень важна!

  2. Перезапустите звездочку, чтобы sip_notify.conf перезагрузился

    звездочка -rx "перезагрузка ядра изящно"

  3. Теперь введите эту звездочку:

    sip notify test Eduardo 

    где Eduardo - это SIP-партнер, которому вы хотите отправить ключ

  4. Список всех доступных ключей можно найти здесь:

    http://support.yealink.com/faq/faqInfo?id=173

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