Asterisk. Подключение к ТфОП

Posted: 2013-12-11 in Asterisk
Tags: , , , , , , , , , , , ,

Типовой задачей при настройке любой АТС, в том числе и Asterisk PBX, является подключение к городской телефонной сети. Одним из самых популярных, дешевых и простых способов подключения на данный момент является регистрация с помощью SIP протокола. Ниже привожу пример настройки подключения и звонков в городскую телефонную сеть общего пользования (ТфОП) для АТС Asterisk.

В качестве данных, предоставляемых оператором для подключения к ТфОП по SIP протоколу могут быть предоставлены:

  • Купленный номер
  • Логин
  • Пароль
  • Транспорт
  • Порт (не безопасный, безопасный транспорт)
  • Поддерживаемые кодеки
  • Количество одновременных звонков

Данные полученные от оператора

номер 3742220
transport protocol: UDP
port: 5060 / 5072
sip.server/proxy/domain: sip.domain.net
auth name/login  |  password
———————————————–
3742220              |   iiKaux9Goo1hoh
————————————————–
codecs: 711a/u, 729a, 722/
fax: 711a/u

Регистрация у оператора

Шаг 1          Конфигурация регистрации Asterisk у оператора

В файле sip.conf для регистрации необходимо указать логин:пароль@адрес оператора/купленный номер

[general]

register => 3742220:iiKaux9Goo1hoh@call.untc.net/3742220

Шаг 2          После ввода параметров регистрации и применения изменений необходимо проверить статус регистрации с помощью команды sip show registry в консоли Asterisk. В случае успешной регистрации

astr11*CLI> sip show registry

Host                                    dnsmgr Username       Refresh State                Reg.Time

call.untc.net:5060                      N      3740120            105 Registered           Wed, 11 Dec 2013 15:47:08

1 SIP registrations.

Шаг 3          Создать peer указывающий на оператора и указать параметры для отправки вызова:

  • адрес оператора
  • транспорт
  • контекст для входящих вызовов
  • режим донабора в тоне
  • кодеки
  • мониторинг доступности
  • пароль и логин при посылке вызова
  • не требовать аутентификацию входящих INVITE сообщений
  • (canreinvite=no) пересылать RTP через Asterisk
  • (fromdomain) в поле «From» указать домен вместо IP адреса
sip.conf 
[cme]

 

host=sip.domain.net

transport=udp

type=friend

context=incoming

dtmfmode=rfc2833

disallow=all

allow=alaw

qualify=no

secret=iiKaux9Goo1hoh

fromuser=3742220

username=3742220

insecure=invite

canreinvite=no

fromdomain=sip.domain.net

Шаг 4          Примененить конфигурацию

Настройка исходящих звонков в городскую телефонную сеть общего пользования

Шаг 5          Создать контексты, маршруты. Контексты необходимы для разграничения доступа по звонкам на местную, междугородную и международную связь. Маршруты на номера экстренных служб находятся в контексте default, который является минимальным уровнем привилегий. Для того что разрешить звонки на:

  • местную связь – контекст local
  • междугородную – ld (который включает в себя local)
  • международную – intl (который включает в себя ld)

Шаг 6          Перед посылкой вызова необходимо подставить купленный номер, иначе оператор может блокировать звонки с некорректных номеров

extensions.conf 
[default]

 

exten => _10X,1,Set(CALLERID(num)=3742220)

same => Dial(SIP/cme/${EXTEN})

exten => _010X,1,Set(CALLERID(num)=3742220)

same => Dial(SIP/cme/${EXTEN:1})

[local]

include => default

exten => _0[2-9]XXXXXX,1,Set(CALLERID(num)=3742220)

same => Dial(SIP/cme/${EXTEN:1})

[ld]

include => local

exten => _00[2-9]XX[1-9]XXXXXX,1,Set(CALLERID(num)=3742220)

same => Dial(SIP/cme/${EXTEN:1})

[intl]

include => ld

exten => _000.,1,Set(CALLERID(num)=3742220)

same => Dial(SIP/cme/${EXTEN:1})

Шаг 7          С помощью контекстов указать различные уровни доступа абонентов при звонках на различные номера. В конфигурации ниже:

  • телефону xlite разрешены местные звонки
  • jitsi –  звонки на междугородные номера
  • 3cx – звонки на международные и любые другие номера
sip.conf 
[std](!)

 

host=dynamic

type=friend

disallow=all

allow=alaw

[xlite](std)

context=local

secret=pass1

[jitsi](std)

context=ld

secret=pass1

[3cx](std)

context=intl

secret=pass1

Настройка входящих звонков из ТфОП

Шаг 8          В плане набора номеров создать контекст для входящих звонков от оператора (который был указан в шаге №3) и посылать входящие звонки на операторский телефон (xlite).

extensions.conf 
[incoming]

exten => 3742220,1,Dial(SIP/xlite)

Преодоление проблем связанных с односторонней слышимостью (NAT)

Шаг 9          Если IP адрес АТС является приватным (RFC 1918), то при входящих и исходящих звонках от ITSP оператора будут возникать проблемы с односторонней слышимостью. Для их решения необходимо указать публичный купленный IP адрес и диапазон «натируемых» внутренних адресов. В примере куплен адрес 193.17.1.1. Для Asterisk версии 1.8 необходимо указать команду nat=yes, для версии 11.2 и выше nat=forceport,comedia

sip.conf 
[general]

 

localnet=192.168.0.0/16

localnet=172.16.0.0/12

localnet=10.0.0.0/8

externip=193.17.1.1

;nat=yes

nat=forceport,comedia

Рекомендации

Подключение к оператору рекомендуется делать с администратором оператора «с другой стороны». Это позволит значительно ускорить процесс. В случае возникновения проблем при подключении к оператору (возможен бан за несколько неуспешных подключений или других проблем) воспользуйтесь командой отладки

sip set debug on

Зачастую операторы также используют realm – его тоже нужно указать в секции general файла sip.conf

realm=somerealm.org

Полезные команды ниже:

sip show settings

sip show peers

sip show users

sip show peer cme

 

 

Успешной конфигурации!

Advertisements
Comments
  1. Евгений Тевелевич says:

    nat=forceport,comedia
    для этой конфигурации, указывать не нужно!
    Эта опция решает пореблемы нат на противоположной стороне. Провайдер в решении такой проблемы не должен нуждаться!
    Например, если у провайдера установлен asterisk, а наш * находится за натом и мы оставили закоментированными опции externip= и localnet=, то провайдер на своей стороне, для решения проблеы, может использовать nat=forceport,comedia. Причем рекомендуется использовать одновременно только один способ преодоления нат.

    • Евгений, здравствуйте! Текущая конфигурация нацелена на универсальность (возможно оператор использует не Asterisk или не позаботился о решения проблемы NAT). Но замечание дельное, спасибо!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s