Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. + 7 499 704 2566 Skype Me™!

Соединение двух серверов Asterisk по протоколу SIP

Оцените материал
(5 голосов)

Может настать очередное время кризиса, когда междугородние(международные) переговоры оказывают существенное влияние на бюджет фирмы(если Вы не начальник "бензоколонки").Самое время установить сервера Asterisk в филиалах, у партнеров... и организовать передачу вызова между ними. К счастью, здесь нет особых сложностей, хотя имеются некоторые странности, с которыми придется справляться, но с точки зрения конфигурации на самом деле это совсем не так уж трудно.

И так в офисах установлена IP АТС Asterisk. Новая схема выглядит следующим образом:

 

 

Это типовой сценарий, когда имеется два, или более, физических местоположения, например компания с несколькими офисами, и требуется обеспечить единую логическую топологию расширения. Предположим один офис находится в Москве, второй в Орле.Вот конфигурация (файл sip.conf) сервера в Москве:

  • [general]
  • register => moscow:passwd@IP_OREL/orel
  • [orel]
  • type=friend
  • secret=passwd
  • context=orel_incoming
  • host=dynamic
  • disallow=all
  • allow=ulaw

И конфигурация сервера в Орле:

  • [general]
  • register => orel:welcome@IP_MOSCOW/moscow
  • [moscow]
  • type=friend
  • secret=welcome
  • context=moscow_incoming
  • host=dynamic
  • disallow=all
  • allow=ulaw

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

  • register => [peer?][transport://]user[@domain][:secret[:authuser]]@host[:port][/extension][~expiry]

Опцией "/orel" - мы сообщаем противоположному концу, что должно быть указано в качестве краткого имени пользователя в поле Proxy Authorization (Авторизация прокси) SIP-сообщения INVITE(номер который он вызывает).

Весь остальной файл занимает блок авторизации, используемый для управления входящими и исходящими вызовами другого сервера Asterisk. Сервер moscow использует блок авторизации [orel], и сервер orel использует блок [moscow]. Определен тип friend, что позволяет принимать и направлять вызовы к другому серверу Asterisk. Параметр secret – это пароль, который должна использовать другая система при аутентификации. Параметр context (контекст) указывает,в какой части диалплана (extensions.conf) обрабатываются входящие вызовы. Для параметра host задано значение dynamic (динамический),это указывает серверу Asterisk на то, что противоположный конец сообщит свой IP-адрес, на который следует направлять адресованные ему звонки, при регистрации. Наконец, с помощью параметров disallow (запретить) и allow (разрешить) можно определять, какие кодеки будут использоваться при общении с противоположным концом.

Проверим успешность собственной регистрации, выполнив команду sip show registry из консоли Asterisk:

 

Диалпланы обоих серверов будут очень похожи, но для ясности здесь приведены оба. Новые строки для совершения исходящего вызова, добавленные в существовавший до этого файл - extensions.conf, для moscow:

  • exten => _1XXX,1,NoOp()
  • exten => _1XXX,n,Dial(SIP/orel/${EXTEN})
  • exten => _1XXX,n,Hangup()
и соответственно для orel:
  • exten => _1XXX,1,NoOp()
  • exten => _1XXX,n,Dial(SIP/moscow/${EXTEN})
  • exten => _1XXX,n,Hangup()

Конечно же надо не забыть обработать входящие вызовы, включив их в соответствующий контекст:

  • [orel_incoming]
  • include => office
и
  • [moscow_incoming]
  • include => office

Вот и все! Теперь можно звонить с одного офиса в другой совершенно бесплатно (если не считать трафик internet) .