АТС на базе Астериск – очень популярное решение телефонии для офиса или call центра – причин тому несколько, основная – бесплатность и богатый функционал. По приблизительным подсчетам экономия на телефонии может сократить расходы на телефонные разговоры в 10-15 раз! Не слабо?
Но, как любое бесплатное решение астериск требует соответствующей подготовки и опыта, даже с установленным GUI (графическим интерфейсом) иногда приходится сталкиваться с неожиданными проблемами. Данная статья написана скорее для себя, как напоминалка и впоследствии будет дополняться новыми ошибками и решениями проблем.
Что нужно сделать после установки asterisk для нормальной работы:
Проблема с отжиранием памяти:
В разных релизах астера, начиная с древних периодически появлялся баг с памятью, неприятно когда телефония начинает лагать и заикаться. Причин может быть несколько, кодеки, перекодировка, падающие транки и др. Для себя эту ошибку решил периодической перезагрузкой ядра астериска в ночное время.
Для чего добавил пару заданий в кронтаб:
03 5 * * 1-6 /usr/sbin/asterisk -rx 'restart when convenient' > /dev/null - каждый день в 5:30 мягкий рестарт, если нет активных звонков 50 6 * * sun /usr/sbin/asterisk -rx 'restart now' > /dev/null - в воскресенье asterisk перегружаем жестко.
Проблема с недоступностью DNS
Неприятная проблема с внешними dns. Суть ошибки в том, что при пропадании интернета отваливаются внутренние пиры и долго обрабатываются соединения с GSM шлюзов и SIP транков, валятся ошибки chan_sip, даже если они находятся в локальной сети.
Часто астериск настраивается для работы только с локальными адресами, например с gsm шлюзом или оператор предоставляет транк с фиксированным ip адресом и переменная srvlookup не нужна. В таком случае, правильно будет запретить обращение к внешнему DNS серверу, которое может подвешать астериск, для этого в файле sip.conf в секции general прописать:
srvlookup=no
в FreePBX это счастье отключается по разному, но искать нужно в меню “настройках астериск для сип” примерно следущую строку:
Если же Ваш сип провайдер (например задарма или мультифон от мегафона) требует указать в файле sip.conf srvlookup=yes, Вы можете указать в настройках для конкретного транка эту переменную.
Настройки Астериск для “Мультифона”
Включение и отключение транка multifon
Включить SIP транк мультифона можно с мобильного телефона командой *137#
После чего активируем услугу Emotion (мультифон). Кроме этого можно переключить режим использования услуги с помощью http запроса, указав номер телефона (в формате 79xxxxxxxxx ) и пароль (получить или восстановить пароль мультифона можно по ссылке )
Значение | Описание | Пример |
---|---|---|
0 |
Звонки приходят на мобильный |
https://sm.megafon.ru/sm/client/routing/set?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ&routing=0 |
1 |
Звонки приходят только на SIP |
https://sm.megafon.ru/sm/client/routing/set?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ&routing=1 |
2 |
Звонки приходят на SIP и мобильный |
https://sm.megafon.ru/sm/client/routing/set?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ&routing=2 |
Проверка текущего статуса |
https://sm.megafon.ru/sm/client/routing/?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ |
-
при параллельном вызове, если в астериске настроено приветствие, он будет первым перехватывать вызов.
Пара слов о кодеках и совместимости
Исторически сложилось так, что используются для связи в основном три-четыре кодека, даже если вы поставите качественный кодек, оператор предоставит Вам стандартные A-Law, U-Law ну еще может быть G722, GSM. Посмотрите строку регистрации, что предлагает оператор и отключите неиспользуемые кодеки. Даже не очень нагруженный астериск начинает лагать и терять голос, если ему приходится перекодировать в одном транке 2-3 кодека, а при значительной нагрузке проблемы гарантированы. Как пример, телефон Грандстрим настроен на G722, который астериск понимает, но отдает сип-оператору ULAW . Казалось бы проблема незначительная, но перекодировка происходит одновременно в двух направлениях. Излишние телодвижения без всякого выигрыша в качестве звука. Как рекомендация, ориентируйтесь на наиболее качественный кодек оператора, лишние кодеки включайте по необходимости, например если этого требуют СИП-телефоны. С неправильно настроенными кодеками могут быть связаны проблемы односторонней слышимости.
Нет входящих звонков
Если не приходят звонки, а исходящая связь есть, первое что нужно проверить проходит ли соединение, для чего зайти в консоль астера
asterisk -vvvr local_aster*CLI> sip set debug peer multifon SIP Debugging Enabled for IP: xx.xx.xx.xx:5060 <--- SIP read from UDP:xx.xx.xx.xx:5060 ---> INVITE sip:510@yy.yy.yy.yy:5060;user=phone SIP/2.0 Via: SIP/2.0/UDP xx.xx.xx.xx:5060;branch=z654646v520doi1kf4kt400 Max-Forwards: 68 Call-ID: 564654adds@85432131 From: 3951 <sip:510@yy.yy.yy.yy:5060;user=phone>;tag=A-1-8b320006-ead54c5966 To: <sip:3951@MM.MM.MM.MMM> CSeq: 7745748 INVITE Expires: 130000 Supported: replaces,100rel Contact: <sip:ASS@510@xx.xx.xx.xx:5060;transport=udp> Allow: INVITE,ACK,CANCEL,BYE,INFO,OPTIONS,PRACK,NOTIFY,MESSAGE,REFER,REGISTER,UPDATE Content-Length: 166 Content-Type: application/sdp
Если Вы не видите чего то подобного при поступлении звонка, значит дело в сетевых настройках или настройках фаервола. Посмотрите в той же cli консоли на каком порту астериск ждет входящий:
kvm*CLI> sip show settings
у вас должно быть что то вроде:
что значит, астериск слушает на портах TCP и UDP 5060.
Нет исходящих звонков
продолжение следует…
Когда ждать продолжения?
Или как с вами связаться для консультации?
Какая нужна консультация?
Можете на форуме спросить