Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

24
Nov 2017
sergldom
автор
0
комментариев
Рейтинг статьи:
5
Average: 5 (2 votes)

Настройка АТС Asterisk

Подробная инструкция по настройке АТС Asterisk сервера для офиса. После настройки Вы получите базовую функциональность телефонной АТС.
1. Создадим 5 номеров к которым можно будет подключить как softphone например 3CXPhone и MicroSIP так и железный радио sip телефон например GIGASET C610A IP, телефон Cisco 7492.
2. Подключим прямой московский номер у провайдера IP телефонии Zadarma, настроим прием звонков с прямого номера на наши внутренние номера телефонов.
3. Настроим звонки с/на внутренние номера Zadarma провайдера телефонии которые не тарифицируются.
4. Настроим звонки на внешние номера через Zadarma провайдера телефонии.
 

Регистрируемся на сайте zadarma.com, регистрируем прямой номер в нужной стране (обязательно потребуется прикрепить скан паспотра), в настройках sip выписываем логин пароль и сервер:

login: 08364
pass: sBfdf8Hja46dov
server: sip.zadarma.com

Если Вам нужно потренироватся, то можно не подключать прямой номер, а обойтись внутренним провайдера, чтобы проверить текущую конфигурацию телефонии в работе. Для имитации звонка на прямой номер, подключаетесь со смартфона к задарма по одному из сипов, стандартно дается 3 sip номера на аккаунт и позвонить на внутренний sip номер подключенный на Asterisk.

Настройки SIP номера на сайте Zadarma.com

Исходные данные:

Установлен Asterisk 13 по инструкции  Установка Asterisk PBX 13 в Debian и Ubuntu server  либо по другой из множества инструкций по установке Asterisk на данном сайте.

После установки сервера  мы имеем стандартные конфигурационные файлы Asterisk сервера которые находятся по пути /etc/asterisk/

Переходим в эту папку выполнив команду:

cd /etc/asterisk/

Создаем нужные конфигурационные файлы выполнив команды:
 

echo '
[general]
context=default
alwaysauthreject=yes
allowguest=no
match_auth_username=yes
allowoverlap=no
allowtransfer=yes

bindport=5060       ; управляющий SIP порт 5060 по умолчанию
bindaddr=0.0.0.0
tcpenable=yes
udpbindaddr=0.0.0.0
tcpbindaddr=0.0.0.0

;bindport=5171                ; управляющий SIP порт 5171 не стандартный, ставим при работе через интернет, чтобы отсечь основную массу ботов
;bindaddr=0.0.0.0:5171        ; расскоментировать этот блок и закоментировать блок выше со стандартным портом 5060
;tcpenable=yes
;udpbindaddr=0.0.0.0:5171
;tcpbindaddr=0.0.0.0:5171

videosupport=yes
useragent=csipsimple
pedantic=no
limitonpeers = yes

callcounter=yes

; раскоментировать и изменить на свои айпи сервера при подключении через NAT роутера, 
; и обязательно пробросить на этот сервер rtp и sip порты на файрволе роутера(сервера):
;localnet=192.168.1.0/255.255.255.0
;externip=36.49.23.69

disallow=all
allow=alaw
allow=ulaw

language=ru
relaxdtmf=yes
dtmfmode=rfc2833
force_rport=yes

#include peers_registered.conf
#include peers_templates.conf
#include peers_userall.conf
#include peers_trunks.conf
' > sip.conf

Создаем файл с шаблонами пользователя:

echo '
[standard-user](!)
type=friend
qualify=600
force_rport=yes
host=dynamic
context=standard-user
callcounter=yes
canreinvite=no
call-limit=2
busylevel=2
Deny=0.0.0.0/0.0.0.0
Permit=192.168.1.0/255.255.255.0  ; Доступ только из локальной сети
Permit=10.100.10.0/255.255.255.0  ; Доступ только из VPN сети при наличии VPN

[softphone-user](!)
type=friend
qualify=yes
force_rport=yes
host=dynamic
context=standard-user
canreinvite=no
call-limit=1
busylevel=2
Deny=0.0.0.0/0.0.0.0
Permit=192.168.1.0/255.255.255.0   ; Доступ только из локальной сети
Permit=10.100.10.0/255.255.255.0  ; Доступ только из VPN сети при наличии VPN

[cisco-phone](!)
type=friend
qualify=600
transport=tcp
host=dynamic
context=standard-user
canreinvite=no
force_rport=yes
call-limit=1
busylevel=2
Deny=0.0.0.0/0.0.0.0
Permit=192.168.1.0/255.255.255.0   ; Доступ только из локальной сети
Permit=10.100.10.0/255.255.255.0  ; Доступ только из VPN сети при наличии VPN

[inet-user](!)
type=friend
qualify=yes
force_rport=yes
host=dynamic
context=standard-user
canreinvite=no
call-limit=2
busylevel=2
nat=yes
transport=tcp
; Доступ из любой сети, включая интернет
' > peers_templates.conf

Создаем номера внутренних телефонов:

echo '
[101](standard-user)
secret=ch72passwd
callerid="Секретарь" <101>

[102](standard-user)
secret=cbTwpasswd
callerid="Менеджер продаж 1" <102>

[103](standard-user)
secret=dhBspasswd
callerid="Менеджер продаж 2" <103>

[104](cisco-phone)
secret=Bg3Bpasswd
callerid="Директор" <104>

[105](inet-user)
secret=Bg3Bpasswd
callerid="Директор IOS" <105>
' > peers_userall.conf

 

Создаем файл peers_registered.conf в котором настраиваем регистрацию sip у провайдера:

echo '
; Zadarma
register => 08364:[email protected]/08364
' > peers_registered.conf

Создаем конфигурационный файл peers_trunks.conf, в котором будут настройки подключения внешнего провайдера телефонии:

echo '
[Zadarma-08364]
type=friend
username=08364
secret=sBfdf8Hja46dov
fromuser=08364
fromdomain=sip.zadarma.com
host=sip.zadarma.com
force_rport=yes
insecure=invite
context=incoming
canreinvite=no
qualify=600
allow=alaw
call-limit=3
' > peers_trunks.conf

Создаем файл extensions.conf в котором подключаем диалплан:

echo '
[general]
static=yes
writeprotect=no

[globals]
TRANSFER_CONTEXT=office-network
FORWARD_CONTEXT=office-network

[default]
exten => _X.,1,Hangup(21)
exten => i,1,Hangup(18)
exten => t,1,Hangup(19)

#include dialplan.conf
' > extensions.conf

 

echo '
[standard-user]
include => office-network
include => pstn-out

[office-network]
exten => _1XX,1,Dial(SIP/${EXTEN},120,KTt)
  same => n,Hangup()

[incoming]
;;; Provider
exten => 08364,1,Dial(SIP/101&SIP/102&SIP/103&SIP/104&SIP/105,120,KTt)
  same => n,Hangup(${HANGUPCAUSE})



[pstn-out]
; Звонки через провайдера

exten => _XXXX,1,Dial(SIP/Zadarma-08364/${EXTEN},120,KT)
   same => n,Hangup(${HANGUPCAUSE})
exten => _XXXXX,1,Dial(SIP/Zadarma-08364/${EXTEN},120,KT)
   same => n,Hangup(${HANGUPCAUSE})


;;; 9X  через 9 звоним на любые номера которые начинаются на 0, что актуально для Украины при звонках внутри страны
exten => _90X.,1,Dial(SIP/Zadarma-08364/${EXTEN:1},120,KT)
   same => n,Hangup(${HANGUPCAUSE})

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Скорая, Милиция и служба спасения
exten => _XXX,1,Dial(SIP/Zadarma-08364/${EXTEN},120,KT)
         same => n,Hangup(${HANGUPCAUSE})


[service-ivr]
exten => _1XX,1,ExecIf($[${DIALSTATUS} = CHANUNAVAIL]?Playback(ss-noservice,noanswer):Goto(11))
  same => n,Hangup(19)
  same => n,ExecIf($[${DIALSTATUS} = BUSY]?Hangup(18):Goto(21))
  same => n,ExecIf($[${DIALSTATUS} = NOANSWER]?Playback(ne-otvechaet,noanswer))
  same => n,Hangup(19)

[filter-invalid-numbers]
exten => _X,1,NoCDR
  same => n,Playback(incorect-number,noanswer)
  same => n,Hangup(28)
exten => _XX,1,NoCDR
  same => n,Playback(incorect-number,noanswer)
  same => n,Hangup(28)
' > dialplan.conf

 

Настраиваем перевод звонков:

vi features.conf

было:

[featuremap]
;blindxfer => #1  
...             
;atxfer => *2

стало:

[featuremap]
blindxfer => **  
...             
atxfer => #

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

 

Так как у меня нет оборудования Dahdi, потому Asterisk ругается на ошибку:

[Nov 23 10:44:35] ERROR[1266]: codec_dahdi.c:820 find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory

Выполняем команду для отключения Dahdi:

echo 'noload => codec_dahdi.so' >> /etc/asterisk/modules.conf

 

Включаем verbose при входе в консоль через команду rasterisk(чтоб в консоли было видно звонки, изменять детальность можно изменяя параметр с 3 на выше ):

sed -i 's/;verbose = 3/verbose = 3/g' /etc/asterisk/asterisk.conf

 

Если выскакивает ошибка:

[Nov 23 11:10:14] ERROR[1680]: ari/config.c:312 process_config: No configured users for ARI

Отключить поддержку ARI в файле ari.conf выполнить команду:

sed -i 's/enabled = yes/enabled = no/g' /etc/asterisk/ari.conf

было:

enabled = yes

стало:

enabled = no

 

Перезагружаем Asterisk сервер:

/etc/init.d/asterisk restart
[ ok ] Restarting asterisk (via systemctl): asterisk.service.

 

Зайдя в консоль Asterisk выполнив rasterisk или asterisk -vvv выполняем команду:

sip show peers

Настроили номера и подключили Настройки SIP номер с Zadarma.com

Видим список существующих телефонов и зарегистрированных пиров (у нас Zadarma провайдер):

Name/username             Host                                    Dyn Forcerport Comedia    ACL Port     Status      Description
101                       (Unspecified)                            D  Auto (No)  No          A  0        UNKNOWN
102                       (Unspecified)                            D  Auto (No)  No          A  0        UNKNOWN
103                       (Unspecified)                            D  Auto (No)  No          A  0        UNKNOWN
104                       (Unspecified)                            D  Auto (No)  No          A  0        UNKNOWN
105                       (Unspecified)                            D  Yes        Yes            0        UNKNOWN
Zadarma-08364/08364       185.45.152.161                              Auto (No)  No             5060     OK (8 ms)

Выполнив команду:

sip show registry

Выводит список и статус зарегистрированных пиров у провайдера, в нашем случае только один Zadarma:

Host                                    dnsmgr Username       Refresh State                Reg.Time
sip.zadarma.com:5060                    N      08364              105 Registered           Thu, 23 Nov 2017 10:59:24
1 SIP registrations.

В нашем случае видим статус OK и Registered

[Nov 23 10:44:35] ERROR[1266]: codec_dahdi.c:820 find_transcoders: Failed to open /dev/dahdi/transcode: No such file or directory

 

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

Для примера подключим один софтфон к 101 номеру и второй софтфон к 102 номеру, на смартфоне я подключу дополнительный sip аккаунт для проверки звонка снаружи на телефонию и с телефонии на смартфон по внутренней нумерации провайдера, также позвоним на тестовый номер дозвона провайдера и номер проверки баланса у провайдера.

Подключаем Софтфон 3CXPhone к 101 номеру который мы сделали выше, параметры:

Номер: 101
Пароль:  ch72passwd
IP сервера: 10.100.10.10

Подключаем Софтфон к Asterisk телефонии - 1

Создаем новый аккаунт в 3CXPhone:

Подключаем Софтфон к Asterisk телефонии - 2

Если Вы используете не стандартный порт, например 5171, указываем IP сервера с портом: 10.100.10.10:5171

Подключаем Софтфон к Asterisk телефонии - 3

Подключаем Софтфон к Asterisk телефонии - 4

 

Подключаем Софтфон <![CDATA[]]>MikroSIP<![CDATA[]]>, параметры подключения:

Номер: 102
Пароль:  cbTwpasswd
IP сервера: 10.100.10.10

Добавляем аккаунт при первом включении:

Подключаем Софтфон MikroSIP к Asterisk телефонии - 1.1

Если уже у вас есть аккаунт, то изменяем существующий или добавляем новый:

Подключаем Софтфон MikroSIP к Asterisk телефонии - 1

Вводим параметры подключения MikroSIP к Asterisk телефонии, если Вы используете не стандартный порт, например 5171, указываем IP сервера с портом 10.100.10.10:5171

Подключаем Софтфон MikroSIP к Asterisk телефонии - 2

Подключили софтфон MikroSIP к нашей АТС:

Подключаем Софтфон MikroSIP к Asterisk телефонии - 3

Подключили оба софтфона и провайдера к нашей телефонной АТС:

Подключили телефоны и провайдера к нашей АТС

Теперь можно сделать звонки с 101 на 102 и наоборот. Сделать звонок со смартфона с подключенным Задарма номером на внутренний сип Задарма провайдера, в моем случае это с номера 08360 на 08364 и наоборот, сделаем тестовый звонок на 4444 и для проверки баланса на 1111.

Базовая настройка Asterisk телефонии проведена, можете пользоваться.

С Вами был Сергей Лазаренко.

Эта же инструкция записанная на видео, если у Вас не получается, можете посмотреть настройку Asterisk на видео:

Рейтинг статьи: 

5
Average: 5 (2 votes)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

Add new comment

Filtered HTML

  • Search Engines will index and follow ONLY links to allowed domains.

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Search Engines will index and follow ONLY links to allowed domains.

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.