Asterisk — проблемы и решения


Asterisk - проблемы и решенияАТС на базе Астериск — очень популярное решение телефонии для офиса или call центра — причин тому несколько, основная — бесплатность и богатый функционал. По приблизительным подсчетам экономия на телефонии может сократить расходы на телефонные разговоры в 10-15 раз! Не слабо?

Но, как любое бесплатное решение астериск требует соответствующей подготовки и опыта, даже с установленным GUI (графическим интерфейсом) иногда приходится сталкиваться с неожиданными проблемами. Данная статья написана скорее для себя, как напоминалка и впоследствии будет дополняться новыми ошибками и решениями проблем.

Что нужно сделать после установки asterisk для нормальной работы:

Проблема с отжиранием памяти:

В разных релизах астера, начиная с древних периодически появлялся баг с памятью, неприятно когда телефония начинает лагать и заикаться. Причин может быть несколько, кодеки, перекодировка, падающие транки и др. Для себя эту ошибку решил периодической перезагрузкой ядра астериска в ночное время.
Для чего добавил пару заданий в кронтаб:

 
 
  1. 03 5 * * 1-6 /usr/sbin/asterisk -rx 'restart when convenient' > /dev/null - каждый день в 5:30 мягкий рестарт, если нет активных звонков
  2. 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 ) и пароль (получить или восстановить пароль мультифона можно по ссылке )

Компьютер и интернет на Город мастеров 59

ЗначениеОписаниеПример
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 . неправильно настроенными кодеками Казалось бы проблема незначительная, но перекодировка происходит одновременно в двух направлениях. Излишние телодвижения без всякого выигрыша в качестве звука. Как рекомендация, ориентируйтесь на наиболее качественный кодек оператора, лишние кодеки включайте по необходимости, например если этого требуют СИП-телефоны.  С неправильно настроенными кодеками могут быть связаны проблемы односторонней слышимости.


Нет входящих звонков

Если не приходят звонки, а исходящая связь есть, первое что нужно проверить проходит ли соединение, для чего зайти в консоль астера

 
 
  1. asterisk -vvvr
  2. local_aster*CLI> sip set debug peer multifon
  3. SIP Debugging Enabled for IP: xx.xx.xx.xx:5060
  4. <--- SIP read from UDP:xx.xx.xx.xx:5060 --->
  5. INVITE sip:510@yy.yy.yy.yy:5060;user=phone SIP/2.0
  6. Via: SIP/2.0/UDP xx.xx.xx.xx:5060;branch=z654646v520doi1kf4kt400
  7. Max-Forwards: 68
  8. Call-ID: 564654adds@85432131
  9. From: 3951 <sip:510@yy.yy.yy.yy:5060;user=phone>;tag=A-1-8b320006-ead54c5966
  10. To: <sip:3951@MM.MM.MM.MMM>
  11. CSeq: 7745748 INVITE
  12. Expires: 130000
  13. Supported: replaces,100rel
  14. Contact: <sip:ASS@510@xx.xx.xx.xx:5060;transport=udp>
  15. Allow: INVITE,ACK,CANCEL,BYE,INFO,OPTIONS,PRACK,NOTIFY,MESSAGE,REFER,REGISTER,UPDATE
  16. Content-Length: 166
  17. Content-Type: application/sdp

Если Вы не видите чего то подобного при поступлении звонка, значит дело в сетевых настройках или настройках фаервола. Посмотрите в той же cli консоли на каком порту астериск ждет входящий:

 
 
  1. kvm*CLI> sip show settings

у вас должно быть что то вроде:

настройка астериска

что значит, астериск слушает на портах TCP и UDP 5060.

Нет исходящих звонков

продолжение следует…

Материалы по теме:

Установочный образ USB Windows 7,8,10
USB флешка с образами для установки Windows - спутник сисадмина Системный администратор просто вынужден иметь под рукой флешку с образами Windows для установки. У каждого ITшника есть заветная флешка ...
Сравнение человека и компьютера — кто умнее и быстрее считает?
Есть вещи которые не сопоставимы, их нельзя измерить числами. Например если к двум ноздрям прибавить три яблока - будет пять, вот только чего пять? Ха-ха. С каждым годом компьютеры ...
Установка ubuntu с usb mac-OS
С помощью загрузочной USB флешки Ubuntu вы cможете: Установите или обновите Ubuntu даже на Mac OS Проверьте работу рабочего стола Ubuntu, не меняя конфигурации вашего ПК Загрузите Ubuntu ...
mozilla Firefox — Как запретить сохранять картинки в формате Webp
mozilla Firefox после очередного обновления сохраняет картинки в формате webp Что не есть хорошо, во первых на декодирование откусываются ресурсы, во вторых далеко не везде можно использовать картинки с ...