Поиск по моему блогу

Курс IP PBX Elastix

Курс IP PBX Elastix

IP PBX Elastix http://www.elastix.org , пожалуй, один из самых удобных дистрибутивов для первоначального знакомства с системами , построеных на базе Asterisk, так как :
1) Установка и настройка не требует специальных знаний в области *nix систем.
2) Дистрибутив содержит все , что только можно себе представить , начиная от собственно Астериска и заканчивая факс- сервером ,  XMPP сервером , CRM системой и многое другое.
3) 99 процентов функционала можно сконфигурировать из WEфB интерфейса, их там аж 2 штуки, собственно сам Elastix и FreePBX.Они похожи , правда, как близнецы братья, но тем неменее.

4)Время на установку и конфигурирование стандартных конфигураций, при наличии минимального  опыта и знаний - 2-3 часа.
Итак , часть №1 - базовая  установка.
1. Идем по ссылке http://www.elastix.org/index.php/en/downloads/main-distro.html, скачиваем образ диска  , на момент написания статьи предлагалась версия Elastix 2.3.0.Не забывайте, что для 32-х и 64-х битных систем идут разные дистрибутивы,выбираем нужный, жмем "Download":




2. После того , как образ скачался нарезаем CD-R с дистрибутивом, например при помощи программы "Nero".

3. Устанавливаем диск в привод, не забывая включить в BIOS загрузку с CDROM.

4. После появления экрана с приглашением начать установку  нажимаем "ENTER":



5. Установка началась:





7.Выбираем английский язык.Перемешение по меню осуществляется клавишами - "вверх" , "вниз","ТАВ".Нажимаем "OK" :



8.Выбираем раскладку клавиатуры "US", нажимаем "ОК":



9. Удаляем все разделы и создаем файловую систему по умолчанию:



10 .Подтверждаем удаление данных с жестого диска.Нажимаем "YES":



11. Нажимаем "YES":



12. Нажимаем "ОК":



13.Выбираем Ethernet интерфейс для конфигурирования.У меня их 2 - eth0 и eth1, я буду настраивать только eth0.
Нажимаем "Edit":



14.Выбираем "Активировать при загрузке" и "Включить поддержку  протокола IPV4".Выбор осуществляется клавишей "Пробел":



15. Включаем "Получить адрес от DHCP сервера ", либо прописываем IP адрес и маску сети вручную, как в моем случае:



16.Итерфейс сконфигурирован, нажимаем "ОК":

14

17.Прописываем IP адрес шлюза по умолчанию , а также DNS сервера:



18. Если вы получаете сетевые реквизиты по DHCP(см п 15), то нужно выбрать "Получить имя по DHCP" или , как в моем случае, прописать имя хоста вручную:



19. Выбираем часовой пояс:



20.Прописываем пароль пользователя root и подтверждаем его:



21.Далее начинается собственно установка системы:











22.После установки система автоматически перезагрузится.Не забудте достать диск с дистрибутивом из привода.
Если все прошло правильно система должна загрузится без ошибок, исключение составляет модуль Winpipe(пугаться не надо , это нормально).Также система может сругаться на настройки сетевого интерфейса, если машина не подключена к сети:



 23. Прописываем пароль пользователя root для БД MySql:



...и поддтверждаем его:



24. Прописаваем пароль пользователя admin для WEB интерфейса:



..и подтверждаем его:




25. Система установлена:



Прежде чем настраивать телефонию на  Elastix, необходимо озаботиться его безопасностью на сетевом уровне.

Для этого надо настроить межсетевой экран, разрешив доступ только из доверенных сетей и закрыв доступ из "внешнего мира". 
В данной версии Elastix  имеется встроенный фаервол, я его использовать не буду, буду использовать провереный механизм - настройка Iptables, через WEB оболочку Webmin.
Если необходимомости в локальном фаерволе у вас нет, все равно советую поставить Webmin, так как с его помощью можно конфигурировать систему через GUI на уровне Linux.

1)Скачиваем и устанавливаем на рабочую станцию, с которой осуществляется доступ к Elastix - консольный SSH клиент , например "Putty ".
Скачиваем по ссылке файл putty.exe :
 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Запускаем , ввводим IP адрес Elastix, выбираем кодирову UTF-8, нажимаем "Open"



Вводим логин, пароль, попадаем в консоль Elastix



2)Скачиваем Webmin, для этого в коммандной строке пишем 
 wget http://prdownloads.sourceforge.net/webadmin/webmin-1.590-1.noarch.rpm






После окончания скачивания , удостоверимся с помощью команды ls,
 что файл webmin-1.590-1.noarch.rpm скачался 
Устанавливаем Webmin , для этого в командной строке пишем
rpm - ivh webmin-1.590-1.noarch.rpm




4)ЗАХОДИМ через браузер в оболочку Webmin
https://ip_address:10000
Вводим логин, пароль (пользователь root,логин, тот , который указали при установке Elastix)
Заходим в меню 
Networking --> Linux Firewall
По умолчанию созданы 3 цепочки фильтрации пакетов - INPUT, FORWARD и OUTPUT
Нажимаем "Apply Configuration"



Добавим в каждую из 3-х цепочек фильтрации 4 правила.
2 правила для адреса 127.0.0.1(это адрес Elastix) , таким образом , чтобы этот адрес выступал в первом правиле , как источник, во втором , как назначение.
Прописав эти правила, мы разрешаем все адресу 127.0.0.1

putty19
putty20

И 2 правила в каждую цепочку для доверенного хоста или сети.
При добавлении сети , она прописывается с маской, например: 192.168.1.0/24

putty17





Устанавливаем действие по умолчанию для каждой их трех цепочек "DROP".
В результате должно получится следующее:
putty21
Нажимаем "Apply Configuration".
Межсетевой экран настроен.

Настройка внутренних абонентов.Настройка софтфона.

1)Заходим через WEB браузер в интерфейс Elastix
https://ip_address/
Вводим логин, пароль:
1

2)Попадаем в раздел "Dashboard" , переходим в меню "PBX":

2


3)Добавляем внутренний SIP номер:

3



4)Добавляем User Extension 8000 (это номер телефона), Outbound CID 8000 (это caller ID , АОН, который будет отдаваться в сеть)  , Display Name Vasya Pupkin (это имя будет отображатся у абонента на дисплее телефона) и  пароль.
Нажимаем "Submit".:

4

5) Применяем сохраненную конфигурацию:
5

6) Заходим на Elstix с помощью Putty, подключаемся к консоли Asterisk командой :
asterisk -vvvvvvvvvr 

7

7) Смотрим , как выглядит добавленый телефон в CLI при помощи команды :
SIP SHOW PEER 8000


 * Name       : 8000
  Secret       :
  MD5Secret    :
  Remote Secret:
  Context      : from-internal
  Subscr.Cont. :
  Language     :
  AMA flags    : Unknown
  Transfer mode: open
  CallingPres  : Presentation Allowed, Not Screened
  Callgroup    :
  Pickupgroup  :
  MOH Suggest  :
  Mailbox      : 8000@device
  VM Extension : *97
  LastMsgsSent : 32767/65535
  Call limit   : 2147483647
  Max forwards : 0
  Dynamic      : Yes
  Callerid     : "device" <8000>
  MaxCallBR    : 384 kbps
  Expire       : -1
  Insecure     : no
  Force rport  : Yes
  ACL          : Yes
  DirectMedACL : No
  T.38 support : No
  T.38 EC mode : Unknown
  T.38 MaxDtgrm: -1
  DirectMedia  : No
  PromiscRedir : No
  User=Phone   : No
  Video Support: No
  Text Support : No
  Ign SDP ver  : No
  Trust RPID   : No
  Send RPID    : No
  Subscriptions: Yes
  Overlap dial : Yes
  DTMFmode     : rfc2833
  Timer T1     : 500
  Timer B      : 32000
  ToHost       :
  Addr->IP     : (null)
  Defaddr->IP  : (null)
  Prim.Transp. : UDP
  Allowed.Trsp : UDP
  Def. Username:
  SIP Options  : (none)
  Codecs       : 0xe (gsm|ulaw|alaw)
  Codec Order  : (ulaw:20,alaw:20,gsm:20)
  Auto-Framing :  No
  Status       : UNKNOWN
  Useragent    :
  Reg. Contact :
  Qualify Freq : 60000 ms
  Sess-Timers  : Accept
  Sess-Refresh : uas
  Sess-Expires : 1800 secs
  Min-Sess     : 90 secs
  RTP Engine   : asterisk
  Parkinglot   :
  Use Reason   : No
  Encryption   : No

8) Настраиваем софтфон
Расмотрим настроики на примере бесплатного телефона 3CX Phone, скачать его можно по ссылке
http://www.3cx.ru/voip-phone/index.html

После установки и запуска телефона необходимо добавть новый аккаунт .
Заполняем поля:
Account Name любое знаечение
Caller ID 8000
Внутренний номер 8000
ID 8000
Пароль ******
IP Сервера IP_Elastix
Используем исходящий прокси сервер IP_Elastix
8

Телефон готов к работе:

 9

В CLI должно появится сообщение:
 Registered SIP '8000' at 212.ХХХ.ХХХ.ХХХ:1975
> Saved useragent "3CXPhone 6.0.20943.0" for peer 8000

Сделаем тестовый звонок на номер 1234, вы должны услышать демонстрационную запись, вот так эта сессия выглядит в CLI :
10

Подобным образом настраиваются и другие внутренние абоненты, очевидно, что номера и пароли должны отличаться.
Для поключения Elastix к ТФОП  существует множество методов : аналоговые карты с FXO и FSX портами , цифровые карты потока E1/T1  которые устанавливаются непосредственно в сервер, GSM шлюзы, подключение по SIP и H323  протоколам непосредственно к провайдеру и подключение через аналоговый шлюз.
Последний метод и рассмотрим на примере шлюза Addpac VoiceFinder AP 200.



ap1
Данный девайс содержит на борту:
-разьем питания 
-порт LAN0 
-порт LAN1
-консольный порт (для подключения через COM порт)
-2 порта FXO (для подключения телефонных линий)

ap2

Предположим, что у вас имется 1 городская телефонные линия , которую надо завести в Elastix для совершения исходящих и входящих звонков с помощью программного SIP телефона(телефонов).





1) Подключаемся к консоли через COM порт.
 Подключаем шнур, который идет в комплекте со шлюзом в COM  порт компьютера и в порт "console" Аддпака.

Запускаем putty , выбрав метод подключения "Serial". Нажимаем "Open"

putty

 После загрузки шлюза должно появится приглашение ввести логин и пароль

putty2

Если при подключении шлюза ничего не происходит, включите и выключите  его питание.

Пароль и логин по умолчанию для всех VOIP шлюзов Addpac : root router

2)Прописываем IP адрес , маску, шлюз по умолчанию

config 


conf1

int eth 0.0


conf2

ip address ХХХ.ХХХ.ХХХ.ХХХ YYY.YYY.YYY.YYY

где ХХХ.ХХХ.ХХХ.ХХХ - ip адрес аддпака, YYY.YYY.YYY.YYY-маска


conf3

exit


conf4

route 0.0.0.0 .0.0.0.0  ZZZ.ZZZ.ZZZ.ZZZ

где ZZZ.ZZZ.ZZZ.ZZZ - ip адрес шлюза по умолчанию

conf5


exit

wr

y



conf6

Конфигурация схранена в памяти, смотрим , что получилось командой sh run

conf7

3) Подключаем шлюз к сети (порт LAN0), заходим на дивайс через WEB браузер , меняем пароль по умолчанию.
CONFIGURE -> USERS
Прописываем пользователя root старый пароль , новый пароль , нажимаем "SET"
Шлюз выдаст приглашение для ввода логина , пароля, заходим под новым паролем.

conf8

4) Добавляем 2 dial-peer-a
CONFIGURE -> DIAL-PEER -> VOICE
Добавляем 2 пира   VOIP и POTS

conf9

conf10

Dial peer c тэгом 1 типа VOIP, то есть он отвечает за маршрутизацию звонков между шлюзом и sip сервером.
Destination pattern 8000 указывает на то , что все звонки на номер 8000 уйдут на sip-server , то есть на Эластикс, а точнее
на программный телефон с номером 8000 , который мы настроили ранее.


conf11

Dial peer с тэгом 2 типа Pots, он отвечает за маршрутизацию звонков между шлюзом и внешними линиями.
Destination pattern T означает, что все вызовы инициируемые на шлюзе, кроме прописанного ранее в Dial peer VOIP 8000 номера, пойдут через аналоговый порт 0/0

conf12

5)Настраиваем аналоговый порт 0/0
CONFIGURE -> VOICE-PORT -> PORT 0/0

conf13

 При настройке порта необходимо прописать Connection Plar ,это такой тип  сессии , когда все входящие вызовы из внешних линий автоматически инициируют вызов на номер 8000 , который уйдет на VOIP Dial peer, затем на сип сервер, затем на программный телефон.
conf14

После внесения изменений через WEB интерфейс не забываете сохранять конфигурацию нажав WRITE 

6) Для дальнейшего конфигурирования нужно подключится с помощью Putty к шлюзу по Telnet


AP200# config
  Enter configuration commands, one per line. End with CNTL/Z
AP200(config)#
AP200(config)# sip-ua
AP200(config-sip-ua)#
AP200(config-sip-ua)# sip-server 212.xxx.xxx.xxx //это ip адрес Elastix
AP200(config-sip-ua)# remote-party-id
AP200(config-sip-ua)# register e164
AP200(config-sip-ua)# user-register
AP200(config-sip-ua)# exit
AP200(config)# dial-peer voice 2 pots
AP200(config-dialpeer-pots-2)# user-name 9000
AP200(config-dialpeer-pots-2)# user-password a187rte
AP200(config-dialpeer-pots-2)# exit
AP200(config)# dial-peer voice 1 voip
AP200(config-dialpeer-voip-1)# session protocol sip
AP200(config-dialpeer-voip-1)# ex
AP200(config)# ex
AP200# wr
Do you want to WRITE configuration ? [y|n]

В результате должна получится следующаяя конфигурация(ее можно посмотреть командой sh run):
version 8.30W 
! 
hostname AP200 
! 
! 
no bridge spanning-tree 
! 
dhcp-list 0 type server  
dhcp-list 0 address server interface ether0.0 
dhcp-list 0 option dhcp-lease-time 600 
! 
! 
ip-share enable 
ip-share interface net-side ether0.0 
ip-share interface local-side ether1.0 
! 
interface ether0.0 
 ip address 212.xxx.xxx.xxx 255.255.255.128 
! 
interface ether1.0 
 no ip address 
 ip dhcp-group 0 
! 
snmp name AP200D  
! 
no arp reset 
! 
route 0.0.0.0 0.0.0.0 212.xxx.xxx.xx 
! 
!  
!  
!  
!  
! VoIP configuration.  
!  
!  
! Voice service voip configuration.  
!  
voice service voip  
 fax protocol t38 redundancy 0  
 fax rate 9600  
 h323 call start fast  
 h323 call tunnel enable  
 no local-ringback-tone  
!  
!  
! Voice port configuration.  
!  
! FXO  
voice-port 0/0  
 connection plar 8000  
 no caller-id enable  
!  
!  
! FXO  
voice-port 0/1  
 no caller-id enable  
!  
!  
!  
!  
! Pots peer configuration.  
!  
dial-peer voice 2 pots 
 destination-pattern T  
 port 0/0  
 user-name 9000  
 user-password a187rte  
!  
!  
!  
! Voip peer configuration.  
!  
dial-peer voice 1 voip  
 destination-pattern 8000  
 session target sip-server   
 session protocol sip  
 codec g711alaw  
 vad 
 no dtmf-relay  
!  
!  
!  
!  
!  
!  
! Gateway configuration.  
!  
gateway  
 h323-id voip.212.xxx.xxx.xxx  
 no ignore-msg-from-other-gk  
!  
!  
! SIP UA configuration.  
!  
sip-ua  
 user-register  
 sip-server 212.xxx.xxx.xxx  
 remote-party-id  
 register e164  
!  
!  
! MGCP configuration.  
!  
mgcp  
 no codec  
 vad  
!  
7) Добавляем транк в Elastix

PBX->TRUNKS->ADD SIP TRUNK

conf15


conf16

Содержимое PEER Details
host=dynamic
type=friend
username=9000
secret=a187rte
qualify=yes


8)  Добавляем правила для исходящей связи
OUTBOUND ROUTES -> ADD ROUTE

conf17

У меня выход на городские , мобильные и межгород осуществляется через ноль , поэтому маршрут для городских тефонов выглядит , как 0ХХХХХХХ, а дя мобильной и междугородней связи , как 08ХХХХХХХХХХ
   
Настройка завершена.Можно звонить в город, на сотовые, межгород, а так же принимать входящие вызовы
Основным достоинством систем построеных на базе Asterisk , является  практически ничем не ограниченая свобода по маршрутизации звонков.
Рассмотрим это на примере системы для небольшой компании, состоящей из 3-х отделов,пускай это будут :
- отдел продаж (внутренние SIP номера: 8001,8002,8003)
- технический отдел (внутренние SIP номера: 8004,8005,8006)
- бухгалтерия (внутренние SIP номера: 8007,8008,8009)
- секретарь (внутренний SIP номер 8010)

Есть одна городская телефонная линия,которая подключена к Elastix через шлюз Addpac.

При входящем звонке абонент должен услышать приветствие и получить возможность  по нажатию клавиши
-"1" соединиться с отделом продаж
-"2" соединиться с техотделом
-"3" соединиться с бухгалтерией
-"0" соединиться с секретарем
-XXXX вызвать нужного абонента, если знает его номер

Если вызываемый абонент(ы) занят(ы) или не отвечают в теч 20 секунд- вызов должен смаршрутизироваться  на секретаря,время дозвона до секретаря 1 мин,если вызов не отвечен -  абонент должен прослушать сообщение о том , что сейчас никто не может  ответить, с предложением позвонить позже.

Вышееописаный сценарий должен отрабатываться в рабочее время (с 9 до 18 часов, каждый день кроме субботы и воскресенья).

Все остальное время должен проигрываться файл с графиком работы компании.







1)Создаем голосовые файлы примерно такого содержания:

Файл номер 1:
"Здравствуйте, вы позвонили в компанию "Мир валенок на Вайнера".Нажмите "1" для соединения с отделом продаж."2" для соединения с техническим отделом."3" для соединения с бухгалтерией."0" для соединения с секретарем, или дождитесь ответа секретаря."

Файл номер 2:
"В настоящее время все сотрудники заняты, пожалуйста позвоните позже"

Файл номер 3:
"Наша компания работает с 9 до 18 часов, выходной суббота, воскресенье.Звоните, пожалуйста, в рабочее время."

Файлы можно записать в любом звуковом редакторе, например "Sound Forge".
Wav файлы должны быть монофонические , 16 bit, 8000 Hz

Назовем файлы Privetstvie1.wav , Privetstvie2.wav и Privetstvie3.wav соответственно.

Зарузим их в Elastix.

PBX-> System Recording

1

Выбрать файл-> upload-> save

2

И так 3 раза для каждой записи.В результате должно получиться следующее:

3

2)Добавляем Extension(внутренние номера )

PBX->Extensions

4

Прописываем User Extension, Display Name, secret:

5

Нажимаем Submit.

Нам нужно 10 номеров, поэтому повторяем эту манипуляцию 9 раз, естественно, номера, имена  и пароли должны отличаться.

В результате получаем 10 SIP телефонов в диапазоне 8001-8010.

6

3) Для разделения абонентов на отделы, создадим, так называеме очереди (Queues).Для каждого отдела свою.
Очередь- это своего рода механизм позволяющий производить дозвон до группы абонентов по определенным правилам.

PBX -> Queues

Создаем очередь для одела продаж.
Прописываем Номер очереди(300), Имя очереди(Prodagi), а так же внутренние номера , на которые пойдет вызов.Отделу продаж соответствуют номера 8001,8002,8003. Их и прописываем:

7


Так для  очереди указываем:
-Максимальное Время Дозвона (Max Wait Time) в секундах, это время в течении которого будет осуществлятся вызов абонентов, по истечении этого времени вызов уйдет из очереди, установим 20 секунд
-Стратегию Дозвона (Ring Strategy), в нашем случае будут звонить одновременно все телефоны (ringall)
-Таймаут оператора(Agent timeout)-это время в течении которого будет идти дозвон до внутреннего номера, прежде чем поступить уведомление о неответе, установим 20 секунд.
-Повтор вызова (retry)-установим не повторять
-Передышка между дозвонами(Wrap-up-Time) - установим 0.



8

Все другие свойства очереди оставим пока без изменений.

Подобным же образом добавляем очередь для техотдела(номер 301) и бухгалтерии (номер 302)


9

10


Создадим очередь для секретаря(номер 303), она отличается от предыдущих тем, что в ней всего один внутр номер (8010) и максимальное время ожидания 1 минута

11


12

4)Создадим IVR .
IVR (англ. Interactive Voice Response) — система предварительно записанных голосовых сообщений, выполняющая функцию маршрутизации звонков внутри call-центра, пользуясь информацией, вводимой клиентом на клавиатуре телефона с помощью тонального набора.(WiKI)

PBX->IVR->Add IVR
В этом разделе нужно прописать :
-имя IVR (IVR1)
-анонс(announcement) - это голосовое сообщение, которое предлагает абоненту различные действия.
-таймаут(timeout) в секундах , в течении которого система будет ожидать действий (нажатий клавиш на телефоне)
 со стороны абонента, если никаких действий не последует IVR будет действовать по заданному сценарию "t".
-сценарии , которые необходимо выполнить , исходя из дейсвий абонента:
 "0" - вызов на очередь секретаря
"1"- вызов на чередь отдела продаж
"2"-вызов на очередь техотдела
"3"-вызов на очередь бухгалтерии
"t"(таймаут)-вызов уйдет на очередь секретаря, если в теч 5 сек абонент ничего не выберет.
"i"(ошибка)-вызов уйдет на очередь  секретаря, если абонент выберет цифру, которая не представлена в сценарии


13


4)Пропишем входящую маршрутизацию с Voip шлюза. Он настроен(http://icluzo.livejournal.com/1624.html
) таким образом, что при входящем  вызове из города он  автоматически набирает номер 8000 и маршрутизирует его на Elastix.
Первым делом удалим из Extensions номер 8000.
Затем PBX->Indound Routes ->Add Incoming Route
Отправляем все вызовы с DID 8000 на IVR-1:

14

Пробуем позвонить, на городской номер, мы должны услышать анонс,по очереди нажимаем кнопки 0,1,2,3 наблюдаем в консоли что происходит. Вот так выглядит входящий звонок и выбор пункта IVR "1"(отдел продаж)
15
Если все так и есть - продолжаем.

5) Терменируем очереди 300,301,302 на очередь 303(секретарь).То есть если операторы этох очередей не ответили на звонок в течении 20 секунд - вызов автоматически перейдет на секретаря.
Для этого заходим в данные  очереди  и правим параметр Fail Over Destination.

16

5) Терминируем очередь 303(секретарь) на голосовое сообщение Privetstvie2. То есть если секретарь не отвечает на звонок в течении минуты- абоненту проигрывается данное сообщение.
Сначала создадим анонс.
PBX-> Announcement

17

затем заходим в очередь 303 и прписываем Fail Over Destination:

18

6) Создадим правило для рабочего/нерабочего времени.
Создадим анонс, в которм будет проговариваться время работы компании.
PBX->announcement->add
20

PBX-> Time Groups -> Add
Назначим интервал для нерабочего времени(с понедельника по пятницу , с 9-00 до  18-00 )

19

Пропишем само правило
PBX-> Time Conditions
Если время рабочее - вызов уйдет на IVR-1, если нет , то на анонс


21

Отредактируем входящий маршрут, направим вызов с DID 8000 на временное правило
PBX->Incoming Routes

22

UPD

Попросили описать, как сделать дозвон до внутренних телефонов, если внешний абонент знает номер сотрудника.

1) Нужно выяснить какой номер IVR был присвоен Эластиксом (это не название IVR1 , а именно порядковый номер, он присваевается автоматически).
Для этого нужно открыть в MC файл extension_additional.conf и найти нужную IVR , идентифицировать ее можно по названию проигрываемого файла(Privetstvie1).
Номер IVR -3:

23


2)Добавляем в файл extension_custom.conf правило разрешающее набирать 4-х значные номера, которые начинаются с 8, то есть внутренние номера сотрудников

24


IpPBX*CLI> reload
Иногда возникает  необходимость принять факсимильное сообщение без участия человека в автоматическом режиме, причем, принять в электронном виде на электронную почту.Что и попытаемся сделать с помощью Elastix.





1) Добавим IAX2 экстеншен с номером  8888.

PBX->Extension->Add Extension->Generic iax2 Device-> Submit

1

2

Нажимаем Submit и заходим в настройки вновь созданного экстеншена 8888.
Запрещаем все кодеки(disallow all) , кроме g711 с a-законом (allow alaw)


4

Нажимаем Submit. Экстеншен готов.

2)Добавляем виртуальный факс и подключаем его к номеру 8888.

Fax->New Virtual Fax

Прописываем
-имя факса(произвольное значение)
-почтовый адрес на который отправлять факсы
-IAX экстешен (8888)
-пароль от IAX экстеншена
-country code и area code (произвольные цифровые значения)

5

Нажимаем Save.Вот что должно получиться

6

 3) Настраиваем IVR , таким образом , что бы при нажатии абонентом клавиши "4" вызов автоматически переходил на виртуальный факс.
    Естественно в голосовом сообщении надо добавить фразу"если хотите отправить факс - нажмите 4"

PBX ->IVR-IVR1

Для добавления нового пункта в IVR нужно нажать Increase Options
Создаем действие для цифры 4

7

Нажимаем Save

Сохраняем созданную конфигурацию
8

Набираем городской номер, нажимаем 4, слушаем характерный ответ факса.

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

3)Настройка шлюза.
Configure-> dial-peer-Voice-> modify dial-peer 1
Отключаем VAD ( Voice Activity Detection) -это пороговый шумоподавитель для экономии трафика.
Fax Protocol -установим значение bypass

9

  Configure> voice port-> modify port 0/0
   Отключаем Comfort noise generation(генератор комфортного шума - выдает, при включенном VAD некий шум, а не тишину в линию ) и
   Echo canceller (эхоподавление)

10

Сохраняем конфигурацию

11

  Звоним на городской номер , нажимаем 4 , отправляем факс.Получаем его на почту в формате PDF.

12
Для защиты телефонных переговоров от прослушивания  в  системах построенных на базе Asterisk , используется 2 протокола.
1)TLS (Transport Layer Security)  — криптографический протокол, обеспечивающий защищенную передачу данных между узлами в сети Интернет. Этот протокол используется для шифрования SIP сессий.
2) Secure Real-time Transport Protocol — Безопасный Протокол Передачи Данных реального времени (SRTP) определяет профиль RTP  и предназначен для шифрования ,установления подлинности сообщения,целостности,защиты от замены данных в  медиа-потоках.
Другими словами он необходим для шифрования непосредственно голоса.
Настроим шифрование на elastix.


1)Создаем сертификаты.
Заходим на Elastix по SSH.Создаем директорию для сертификатов и ключей при помощи команды
mkdir /etc/asterisk/keys
В Elastix сертификаты можно создавать при помощи скрипта  "ast_tls_cert"
Перейдем в директорию, где находится этот скрипт при помощи команды
cd /usr/share/doc/asterisk-1.8.11.0/contrib/scripts/
Запустим скрипт для формирования само-подписанного сертификата:
 ./ast_tls_cert -C ххх.ххх.ххх.ххх  -O "Company" -d /etc/asterisk/keys
-С - ip адрес сервера 
-О - название компании
-d - директория для файлов

В процессе формирования сертификата необходимо установить пароль для ca.key ,а затем подтвердить его:

1

Сформируем клиентский сертификат 
./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k  /etc/asterisk/keys/ca.key -C yyy.yyy.yyy.yyy -O "Company" -d /etc/asterisk/keys -o client
-C -ip адрес машины на которой установлен телефон

В процессе формирования сертификата будет запрошен пароль для ca.key:

2
В результате в директории keys появятся следующие файлы:
asterisk.crt
asterisk.csr
asterisk.key
asterisk.pem
ca.cfg
ca.crt
ca.key
client.crt
client.csr
client.key
client.pem


7

 2)Настраиваем Elastix для работы с TLS и SRTP.

Отредактируем файл sip_general_custom.conf, для этого запустим файловый менеджер Midnight Commander с помощью команды mc , перейдем в директорию /etc/asterisk , выберем нужный файл и нажмем "F4"(редактировать):


8

Добавим несколько строк в этот файл

tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1

9

Сохраним изменения, нажав "F2"

Внесем изменения в файл sip_custom_post.conf , прописав для номера 8010 :

[8010](+)
transport = tls
encryption=yes

10

Сохраним изменения, нажав "F2"

Переходим в директорию keys
 cd /etc/asterisk/keys
выполняем команду
chmod  777 *

3)Установим на клиентскую машину сертификаты.Для этого заходим через WEBMIN на Elastix https://ip_adress:10000
и скачиваем 2 файла ca.crt и client.crt

Others->Upload and Download->download from server
11

 Устанавливаем оба сертификата на клиентскую машину с помощью стандартного  менеджера сертификатов.Для этого достаточно кликнуть по сертификату и на все вопросы ответить "да"

4

3


4)Подключаемся к Elastix по SSH.Подключаемся к Asterisk:
asterisk -vvvvvvvvvvvvvvvvvvr
В консоли Asterisk выполняем команду
IpPBX*CLI> reload
а затем
SIP SHOW PEER 8010

12
5)Настраиваем программный телефон

Настраивать будем программный телефон eyeBeam 1.5

13


Во вкладке "Account" пропишем имя , логин , пароль , ip адрес сервера

14

Во вкладке "Security" прописываем транспорт TLS + только шифрованный медиа-поток.

15

SIP SHOW PEER 8010

16

Наберем на телефоне тестовый номер 1234.Вызов зашифрован:

17
Настроим отправку  уведомлений о  пропущеных вызовах, которые поступили в нерабочее время,на электронную почту.






1) Создадим пользовательский экстеншен,

Extension->add extension->Other(custom)Device

1

номер которого будет 999, при входящем вызове на который будет набираться номер 9999 в контехте from-internal

2

2) Отредактируем временное правило, затерминировав входящие вызовы в нерабочее время на экстеншен 999

Time Conditions->pravilo


3


3)Редактируем  файл extensions_custom.conf .
Добавляем в контекст from-internal-custom следующие строки:

exten => 9999,1,System(/bin/date | mail -s PROPUSHEN-VIZOV-${CALLERID(num)} xxxxxx@mycompany.ru )
exten => 9999,2,Answer
exten => 9999,3,Wait(1)
exten => 9999,4,Playback(custom/Privetstvie3)
exten => 9999,5,Hangup

где  xxxxxx@mycompany.ru -адрес на который необходимо отправить уведомление


4

 Пробуем позвонить и получить уведомление

5
Источник тут http://suli-company.org.ua/it/seti/ip-telefoniya-voip-telefoniya/833-kurs-ip-pbx-elastix.html

1 комментарий:

Анонимный комментирует...

супер спасибо!!

Реклама от BigBN