VoIP. Настройка Asterisk для работы с Megafon
VoIP

Подключаем сотового оператора через SIP.

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

Мегафон и астериск через SIP

Оказывается такая возможность довольно давно имеется. Ее предоставляет оператор Мегафон в рамках услуги Мультифон. Суть простая, подключаем бесплатную услугу, ставим специальный софтофон на компьютер, настраиваем схему входящих звонков. Кстати, стратегия выбирается прямо с трубки, через специальную команду USSD *137#. Варианты такие:

  • На телефон
  • На телефон + мультифон
  • Мультифон

То есть видим возможность принимать звонки и на трубку и на софтофон. Кто первый «подойдет» на того звонок и замкнется.

Но нам ведь мало подключить просто софтофон. Давайте грамотно настроим IP-PBX Asterisk и будем рулить входящими вызовами на полную катушку.

Кому нужны такие широкие возможности?

Во-первых офисам. Получить многоканальный телефон, да еще и от крупнейшего оператора само по себе уже дорогого стоит. Тем более многоканальность бесплатно. Хоть официально не говорится о такой возможности, тем не менее она есть. Читал на каком-то форуме, мол, офис однажды принял около 40 одновременных звонков. Еще есть всякие плюшки от собственной АТС в виде очереди звонков, голосового меню и регистрации входящих вызовов. Различные диал-планы, музыка во время ожидания.

Во-вторых, фрилансерам и людям, кому нужно постоянно быть на связи хотя бы формально. Чтобы номер не молчал, ни при каких обстоятельствах. Согласитесь, вы звоните по номеру, а в ответ «абонент недоступен». Будете перезванивать? А если там голосовое меню предлагает нажать кнопку и оставить сообщение, чтобы вам перезвонили? Да еще и говорит куда вы дозвонились и когда лучше перезвонить? То-то же!

Как настраивать Asterisk для работы с SIP транком я рассказывать не буду, потому что на официальном сайте итак есть вполне годная документация. Правда там базовая настройка. Но упомянутая PBX поддерживает такое количество возможностей, что рассказать о них, тем более с примерами, попросту невозможно. Поэтому я опишу лишь выявленные проблемы, которые возникли у меня в ходе настройки и как я их решал.

Проблема №1. Если АТС находится за роутером с NAT (нет прямого IP адреса)
Постоянная потеря регистрации. Пропущенные вызовы в момент перерегистрации астериска на сервере мегафона. Решается переключением на протокол TCP. В конфиге это выглядит так (sip.conf):

tcpenable=yes ; активируем возможность использования TCP. По умолчанию выключено.
tcpbindaddr=0.0.0.0 ; слушать все интерфейсы.
; Потом пишем саму строку регистрации вот так
register => tcp://7926*******3@multifon.ru:Password:7926******3@sbc.megafon.ru:5060/7926******3

Проблема №2. Отсутствуют гудки у звонящего. Так называемый ringback.
Открываем соответствующий диалплан в файле extensions.conf и первой строкой пишем

exten => 7926******3,1,Ringing()

И никак иначе! Есть еще один способ смоделировать сигнал ringback, но он работает только после поднятия трубки. То есть ситуация как на старых АОНах, астериск снимает трубку и сам модулирует гудки. В этот самый момент линия считается активной и у абонента списываются деньги за связь. Даже если вы по факту не подошли к телефону. Нам это не нужно. Поэтому отправляем на сервер с помощью служебного заголовка уведомление, что «телефончик» наш звонит и нужно вызывающему абоненту включить длинные гудки.

Была еще проблема, когда в режиме мультифон+телефон трубка не начинала звонить, хотя вызов не был обработан. Явная ошибка маршрутизации сети Мегафон. Надо отдать должное, после обращения в службу поддержки исправили.

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

Можно зарегистрировать на один Asterisk несколько телефонов. Появляется проблема определения транка на входящие вызовы. Тут глюк непосредственно астериска. Увы, но транки различаются по доменным именам. А имечко у нас одно: multifon.ru. Поэтому АТС выбирает первый попавшийся из конфига. Поэтому если вы хотите разнести по разным контекстам номера, тут вас ждет фиаско. Есть один довольно костыльный способ борьбы, но проще и лучше смириться. Обрабатывать в одном контексте всё что идет от оператора Мегафон.

Добавить комментарий