Решение проблемы с Hold в IP-телефонах Foxgate

Проблема

Сегодня обратились клиенты с жалобой на то, что аппаратный IP-телефон Foxgate при входящем звонке может поставить вызов на удержание (Hold), а снять не может. При снятии с Hold оператор слышит вызывающего абонента, а на стороне абонента продолжает играть музыка.

Решение

После небольшого расследования стало понятно, что данная проблема связана исключительно с аппаратными телефонами. При дальнейшем разбирательстве я обнаружил «известную ошибку» Asterisk 1.6, которая описана на баг-трекере со статусом suspended. Это означает, что разработчики знают об этой ошибке, но пока нет решения.

Причем, все остальные функции IP-ATC (условный/безусловный трансфер, парковка вызова и т.д) работают штатно. Обратившись к тематическим форумам, я нашел множество подобных веток. Все жалуются на проблему с SDP пакетами. Непосредственно ошибка заключается в том, что в Asterisk 1.6 для корректной работы функции удержания разработчики придумали, что для постановки требуется сессия пакета SDP, а для снятия, новая сессия пакета SDP. Это, как оказалось было сделано для совместимости с Microsoft OCS.

Проблема решается простым переопределением опции Asterisk. Если у вас просто Asterisk 1.6 то вам необходимо править файл sip.conf, а если у вас еще есть и FreePBX то — sip_general_custom.conf. В указанный файл необходимо добавить строку:

после этого перезапустить Asterisk и все должно начать работать.

Удачи.