Инструкции по настройке VoIP оборудования Asterisk (для Linux)

Пример настройки подключения Asterisk к Zadarma.

Данные указанные в примере:

  • 111111 - Ваш sip-номер из личного кабинета.
  • Password - Ваш пароль от sip-номера, из раздела "Настройки-Подключение по SIP" личного кабинета.
  • 1234-100 - Ваш внутренний номер АТС из личного кабинета
  • Password - Ваш пароль внутреннего номера АТС личного кабинета
  • 101 - Внутренний номер Asterisk к которому подключается софтфон/ip-телефон для приема входящих и совершения исходящих звонков.

Стандартный пример настройки

Исходящие звонки с внутреннего номера 101 направляются в транк 111111 Входящие звонки принимаются по регистрации и направляются на внутренний номер 101

Редактируем sip.conf



[general]
srvlookup=yes

[111111]
host=sip.zadarma.com
insecure=invite,port
type=peer
fromdomain=sip.zadarma.com
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=password
defaultuser=111111
trunkname=111111
fromuser=111111
callbackextension=111111
context=zadarma-in
qualify=400
directmedia=no
nat=force_rport,comedia

[101]                                                  ;внутренний номер Вашего астериска
secret=password
host=dynamic
type=friend
context=zadarma-out





[general]
srvlookup=yes

[1234-100]
host=pbx.zadarma.com
insecure=invite,port
type=peer
fromdomain=pbx.zadarma.com
disallow=all
allow=alaw
allow=ulaw
dtmfmode=auto
secret=password
defaultuser=1234-100
trunkname=1234-100
fromuser=1234-100
callbackextension=1234-100
context=zadarma-in
qualify=400
directmedia=no
nat=force_rport,comedia

[101]                                                  ;внутренний номер Вашего астериска
secret=password
host=dynamic
type=friend
context=zadarma-out



Входящая и исходящая маршрутизация настраивается в файле extensions.conf



[zadarma-in]
exten => 111111,1, Dial(SIP/101)                       ; все входящие звонки с транка 111111 направлены на внутренний номер 101

[zadarma-out]
exten => _XXX,1,Dial(SIP/${EXTEN})                     ; звонки на трехзначные внутренние номера aстериска
exten => _XXX.,1,Dial(SIP/${EXTEN}@111111)             ; звонки на номера в которых четрые и более цифр через транк 111111





[zadarma-in]
exten => 1234-100,1, Dial(SIP/101)                      ; все входящие звонки с транка 1234-100 направлены на внутренний номер 101

[zadarma-out]
exten => _XXX,1,Dial(SIP/${EXTEN})                      ; звонки на трехзначные внутренние номера aстериска
exten => _XXX.,1,Dial(SIP/${EXTEN}@1234-100)            ; звонки на номера в которых четрые и более цифр через транк 1234-100

Стандартная настройка завершена.

P-Asserted-Identity (для опытных пользователей).

При исходящих звонках вы можете использовать SIP заголовок P-Asserted-Identity для выбора Callerid из списка подключенных в сервисе номеров.

Номер из заголовка P-Asserted-Identity будет использоваться в приоритете. Если заголовок не передан или установлен неправильный/неподключенный номер, будет использован заданный по умолчанию номер.



[zadarma-out]
exten => _XXX.,1,SIPAddHeader(P-Asserted-Identity: )
exten => _XXX.,n,Dial(SIP/${EXTEN}@111111)


Если у Вас подключено несколько прямых номеров, для удобства каждому номеру можно назначить "имя" например manchester и london и настроить входящую маршрутизацию основанную на этом параметре. "Имя" виртуального номера передается в параметре CALLERID(name).

В следующем примере, звонки с номера manchester направлены на внутренний номер 101, звонки с номера london направлены на внутренний номер 102, а все другие звонки asterisk будет отклонять сигналом "Занято"



[zadarma-in]

exten => _X.,1,GotoIf($["${CALLERID(name)}" = "manchester"]?2:3)
exten => _X.,2,Dial(SIP/101)
exten => _X.,3,GotoIf($["${CALLERID(name)}" = "london"]?4:5)
exten => _X.,4,Dial(SIP/102)
exten => _X.,5,Busy


Ваш виртуальный номер, на который поступил звонок, передаётся в хедере CALLED_DID Вы можете настроить входящую маршрутизацию основанную на этом параметре.

В следующем примере, звонки с номера 442045770077 направлены на внутренний номер 101, звонки с номера 442037691880 направлены на внутренний номер 102, а все другие звонки asterisk будет отклонять сигналом "Занято"



[zadarma-in]

exten => _X.,1,GotoIf($["${SIP_HEADER(CALLED_DID)}" = "442045770077 "]?2:3)
exten => _X.,2,Dial(SIP/101)
exten => _X.,3,GotoIf($["${SIP_HEADER(CALLED_DID)}" = "442037691880"]?4:5)
exten => _X.,4,Dial(SIP/102)
exten => _X.,5,Busy



Настройка завершена.

Пример настройки №2 (SIP URI)

Если сервер с Asterisk находится на "белом" IP адресе (Не за роутером, а например в дата-центре) входящие звонки можно принимать без регистрации по схеме SIP URI. Данные указанные в примере:

  • 15555555555 - Ваш виртуальный номер подключенный в Zadarma.
  • 2.20.190.41 - IP адрес Вашего сервера с Asterisk.

В личном кабинете, в разделе "Настройки - виртуальный номер" направьте звонки с виртуального номера на внешний сервер (SIP URI) в формате 15555555555@2.20.190.41

Редактируем sip.conf


[zadarma]
host=sipurifr.zadarma.com
type=peer
insecure=port,invite
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
dtmfmode = auto
directmedia=no
nat=force_rport,comedia

[zadarma2]
host=sipde.zadarma.com
type=peer
insecure=port,invite
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
dtmfmode = auto
directmedia=no
nat=force_rport,comedia

[zadarma3]
host=sipuriny.zadarma.com
type=peer
insecure=port,invite
context=zadarma-in
disallow=all
allow=alaw
allow=ulaw
dtmfmode = auto
directmedia=no
nat=force_rport,comedia

Входящий маршрут в файле extensions.conf


[zadarma-in]
exten => 15555555555,1, Dial(SIP/101)


Настройка завершена.

Пример настройки при использовании авторизации по IP адресу.