Блог bitmanager

Asterisk. Длинные гудки при разговоре

Помогал тут недавно другу-админу. У него телефонная связь сделана на связке Asterisk + Aastra(Mitel). И вот иногда при разговоре по DECT вылезает занятный глюк: во время разговора один из абонентов слышит на заднем плане длинные гудки. Они продолжаются примерно 30 секунд и потом абонента, который их слышит, перестает слышать другая сторона. Занятно, не правда ли?

Я сначала грешил на проблемы диалплана, а также на то, что для DECT трубок выставлен call-limit в 3 линии, хотя сами трубки поддерживают всего одну. Но, в итоге, проблема оказалась в другом. Опытные уже догадались наверное. DTMF. Это способ передачи команд трубке с помощью тоновых сигналов. Может идти в общем голосовом потоке (in-band) или отдельными SIP командами (RFC 2833). Так вот, на Mitel был выставлен как раз последний, а на Asterisk - первый. В итоге, Asterisk отправлял события дозвона прямо in-band, Mitel их успешно передавал трубке, которая звонила. Потом ты снимаешь трубку, начинаешь разговор, но до Asterisk не доходит уведомление о том, что трубку сняли. И он продолжает звонить в канал. Затем, поняв, что телефон не отвечает, Asterisk закрывает соединение, и тут другая сторона перестает тебя слышать. Что меня удивляет, так это то, что такое происходило непостоянно. Думаю, что какая-то из сторон, Mitel или Asterisk, иногда передавала DTMF корректно и сторонам удавалось договориться.
Записки сисадмина ip-телефония