Что нужно сделать после установки 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 это счастье отключается по разному, но искать нужно в меню «настройках астериск для сип» примерно следущую строку:
srvlookup=yes,
Настройки Астериск для «Мультифона»
Включение и отключение транка multifon
Включить SIP транк мультифона можно с мобильного телефона командой *137#
Значение | Описание | Пример |
---|---|---|
Звонки приходят на мобильный |
https://sm.megafon.ru/sm/client/routing/set?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ&routing=0 |
|
Звонки приходят только на SIP |
https://sm.megafon.ru/sm/client/routing/set?login=ТЕЛЕФОН@multifon.ru&password=ПАРОЛЬ&routing=1 |
|
Звонки приходят на 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:[email protected]: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:[email protected]:5060;user=phone>;tag=A-1-8b320006-ead54c5966 To: <sip:[email protected]> CSeq: 7745748 INVITE Expires: 130000 Supported: replaces,100rel Contact: <sip:ASS@[email protected]: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.
Очереди вызовов в сервере Asterisk
- Поступающие вызовы помещаются в очередь.
- Участники, обрабатывающие очередь, отвечают на вызовы поступающие в очередь (в их качестве могут быть либо екстеншены либо пользователи, зарегистрировавшиеся в системе в качестве агентов).
- Порядок распределения поступающих вызовов между участниками, обрабатывающими очередь, зависит от определенной для нее стратегии распределения вызовов.
- Пока вызывающий абонент ожидает ответа в очереди, ему может проигрываться музыка.
- Есть возможность включения периодических анонсов, для ожидающих в очереди абонентов, и для участников, обрабатывающих очередь.
queues.confRealTime
- Агенты (Agents) — это люди (персоны), которые отвечают на входящие вызовы, которые помещаются в определенную очередь вызовов. Агенты должны зарегистрироваться (войти) в систему, для индикации того, что они готовы обрабатывать вызовы. Сервер Asterisk перенаправляет входящий вызов в очередь, откуда он уже перенаправляется доступным для данной очереди агентам по заданной стратегии распределения вызовов между агентами.
- Участники обработки очереди (Members) — это каналы связи, через которые происходит работа с вызовами, помещенными в очередь (через которые отвечают на эти вызовы). В этом качестве могут выступать агенты или обычные каналы связи, например: «sip/snom23».
Стратегии обработки вызовов.
- ringall: вызываются все доступные участники до тех пор, пока кто-то из них не ответит на вызов (по умолчанию).
- roundrobin: циклически вызывается каждый из доступных участников. (Устарело в версии 1.4, используйте: rrmemory)
- leastrecent: Вызывается первый свободный участник, который меньше всего вызывался из этой очереди.
- fewestcalls: Вызывается первый свободный участник, который обработал наименьшее количество вызовов из данной очереди.
- random: случайным образом вызывается не занятый участник, обрабатывающий очередь.
- rrmemory: циклическое распределение с памятью, запоминается последний участник, ответивший на вызов.
Функции
- Queue: Помещение вызова в очередь, используется в плане набора: extensions.conf
- AddQueueMember: Динамическое добавление агента для обработки очереди.
- RemoveQueueMember: Динамическое удаление агента из участников обработки очереди.
- AgentLogin: Авторизация агента.
- AgentCallbackLogin: Авторизация агента с обратным вызовом.
- AGENT: Получить информацию об агенте.
- QUEUEAGENTCOUNT: Получить число агентов обрабатывающих очередь вызовов в данный момент.
- QUEUE_MEMBER_COUNT: Возвращает число участников, которые заняты обработкой вызова из очереди.
- QUEUE_MEMBER_LIST: Возвращает список интерфейсов, принимающих вызовы из очереди.
Команды CLI консоли
- show agents: Показывает агентов.
- show queues: Выводит список очередей вызовов.
- show queue : Показывает данные указанной очереди вызовов.
Конфигурация
- файл agents.conf: Конфигурация агентов для обработки очередей вызовов.
- файл queues.conf: Конфигурация очередей вызовов.
Ссылки по теме:
- Asterisk call parking
- Asterisk Realtime Queue
- Asterisk agents: Дополнительная информация об агентах, обрабатывающих очередь.
- Asterisk Queue Callback — Let your callers hangup while waiting for an agent without losing their place in line
- OrderlyQ — Extension to Asterisk Queues that lets callers hang up, then call back without losing their place.
- Statistics that would be useful to add to this application: http://lists.digium.com/pipermail/asterisk-users/2003-July/014965.html
- Список команд плана набора
- Asterisk