Подробная инструкция по настройке АТС 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.
Исходные данные:
Установлен 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
Видим список существующих телефонов и зарегистрированных пиров (у нас 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
Создаем новый аккаунт в 3CXPhone:
Если Вы используете не стандартный порт, например 5171, указываем IP сервера с портом: 10.100.10.10:5171
Подключаем Софтфон MikroSIP , параметры подключения:
Номер: 102
Пароль: cbTwpasswd
IP сервера: 10.100.10.10
Добавляем аккаунт при первом включении:
Если уже у вас есть аккаунт, то изменяем существующий или добавляем новый:
Вводим параметры подключения MikroSIP к Asterisk телефонии, если Вы используете не стандартный порт, например 5171, указываем IP сервера с портом 10.100.10.10:5171
Подключили софтфон MikroSIP к нашей АТС:
Подключили оба софтфона и провайдера к нашей телефонной АТС:
Теперь можно сделать звонки с 101 на 102 и наоборот. Сделать звонок со смартфона с подключенным Задарма номером на внутренний сип Задарма провайдера, в моем случае это с номера 08360 на 08364 и наоборот, сделаем тестовый звонок на 4444 и для проверки баланса на 1111.
Базовая настройка Asterisk телефонии проведена, можете пользоваться.
С Вами был Сергей Лазаренко.
Эта же инструкция записанная на видео, если у Вас не получается, можете посмотреть настройку Asterisk на видео:
Добавить комментарий