Курс 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.Итерфейс сконфигурирован, нажимаем "ОК":
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
И 2 правила в каждую цепочку для доверенного хоста или сети.
При добавлении сети , она прописывается с маской, например: 192.168.1.0/24
Устанавливаем действие по умолчанию для каждой их трех цепочек "DROP".
В результате должно получится следующее:
Нажимаем "Apply Configuration".
Межсетевой экран настроен.
Настройка внутренних абонентов.Настройка софтфона.
1)Заходим через WEB браузер в интерфейс Elastix
https://ip_address/
Вводим логин, пароль:
2)Попадаем в раздел "Dashboard" , переходим в меню "PBX":
3)Добавляем внутренний SIP номер:
4)Добавляем User Extension 8000 (это номер телефона), Outbound CID 8000 (это caller ID , АОН, который будет отдаваться в сеть) , Display Name Vasya Pupkin (это имя будет отображатся у абонента на дисплее телефона) и пароль.
Нажимаем "Submit".:
5) Применяем сохраненную конфигурацию:
6) Заходим на Elstix с помощью Putty, подключаемся к консоли Asterisk командой :
asterisk -vvvvvvvvvr
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>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
Телефон готов к работе:
В CLI должно появится сообщение:
Registered SIP '8000' at 212.ХХХ.ХХХ.ХХХ:1975
> Saved useragent "3CXPhone 6.0.20943.0" for peer 8000
Сделаем тестовый звонок на номер 1234, вы должны услышать демонстрационную запись, вот так эта сессия выглядит в CLI :
Сделаем тестовый звонок на номер 1234, вы должны услышать демонстрационную запись, вот так эта сессия выглядит в CLI :
Подобным образом настраиваются и другие внутренние абоненты, очевидно, что номера и пароли должны отличаться.
Для поключения Elastix к ТФОП существует множество методов : аналоговые карты с FXO и FSX портами , цифровые карты потока E1/T1 которые устанавливаются непосредственно в сервер, GSM шлюзы, подключение по SIP и H323 протоколам непосредственно к провайдеру и подключение через аналоговый шлюз.
Последний метод и рассмотрим на примере шлюза Addpac VoiceFinder AP 200.
Данный девайс содержит на борту:
-разьем питания
-порт LAN0
-порт LAN1
-консольный порт (для подключения через COM порт)
-2 порта FXO (для подключения телефонных линий)
Предположим, что у вас имется 1 городская телефонные линия , которую надо завести в Elastix для совершения исходящих и входящих звонков с помощью программного SIP телефона(телефонов).
1) Подключаемся к консоли через COM порт.
Подключаем шнур, который идет в комплекте со шлюзом в COM порт компьютера и в порт "console" Аддпака.
Запускаем putty , выбрав метод подключения "Serial". Нажимаем "Open"
После загрузки шлюза должно появится приглашение ввести логин и пароль
Если при подключении шлюза ничего не происходит, включите и выключите его питание.
Пароль и логин по умолчанию для всех VOIP шлюзов Addpac : root router
2)Прописываем IP адрес , маску, шлюз по умолчанию
config
int eth 0.0
ip address ХХХ.ХХХ.ХХХ.ХХХ YYY.YYY.YYY.YYY
где ХХХ.ХХХ.ХХХ.ХХХ - ip адрес аддпака, YYY.YYY.YYY.YYY-маска
exit
route 0.0.0.0 .0.0.0.0 ZZZ.ZZZ.ZZZ.ZZZ
где ZZZ.ZZZ.ZZZ.ZZZ - ip адрес шлюза по умолчанию
exit
wr
y
Конфигурация схранена в памяти, смотрим , что получилось командой sh run
3) Подключаем шлюз к сети (порт LAN0), заходим на дивайс через WEB браузер , меняем пароль по умолчанию.
CONFIGURE -> USERS
Прописываем пользователя root старый пароль , новый пароль , нажимаем "SET"
Шлюз выдаст приглашение для ввода логина , пароля, заходим под новым паролем.
4) Добавляем 2 dial-peer-a
CONFIGURE -> DIAL-PEER -> VOICE
Добавляем 2 пира VOIP и POTS
Dial peer c тэгом 1 типа VOIP, то есть он отвечает за маршрутизацию звонков между шлюзом и sip сервером.
Destination pattern 8000 указывает на то , что все звонки на номер 8000 уйдут на sip-server , то есть на Эластикс, а точнее
на программный телефон с номером 8000 , который мы настроили ранее.
Dial peer с тэгом 2 типа Pots, он отвечает за маршрутизацию звонков между шлюзом и внешними линиями.
Destination pattern T означает, что все вызовы инициируемые на шлюзе, кроме прописанного ранее в Dial peer VOIP 8000 номера, пойдут через аналоговый порт 0/0
5)Настраиваем аналоговый порт 0/0
CONFIGURE -> VOICE-PORT -> PORT 0/0
При настройке порта необходимо прописать Connection Plar ,это такой тип сессии , когда все входящие вызовы из внешних линий автоматически инициируют вызов на номер 8000 , который уйдет на VOIP Dial peer, затем на сип сервер, затем на программный телефон.
После внесения изменений через 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)# 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)# 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 !
PBX->TRUNKS->ADD SIP TRUNK
Содержимое PEER Details
host=dynamic
type=friend
username=9000
secret=a187rte
qualify=yes
8) Добавляем правила для исходящей связи
OUTBOUND ROUTES -> ADD ROUTE
8) Добавляем правила для исходящей связи
OUTBOUND ROUTES -> ADD ROUTE
У меня выход на городские , мобильные и межгород осуществляется через ноль , поэтому маршрут для городских тефонов выглядит , как 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
Выбрать файл-> upload-> save
И так 3 раза для каждой записи.В результате должно получиться следующее:
2)Добавляем Extension(внутренние номера )
PBX->Extensions
Прописываем User Extension, Display Name, secret:
Нажимаем Submit.
Нам нужно 10 номеров, поэтому повторяем эту манипуляцию 9 раз, естественно, номера, имена и пароли должны отличаться.
В результате получаем 10 SIP телефонов в диапазоне 8001-8010.
3) Для разделения абонентов на отделы, создадим, так называеме очереди (Queues).Для каждого отдела свою.
Очередь- это своего рода механизм позволяющий производить дозвон до группы абонентов по определенным правилам.
PBX -> Queues
Создаем очередь для одела продаж.
Прописываем Номер очереди(300), Имя очереди(Prodagi), а так же внутренние номера , на которые пойдет вызов.Отделу продаж соответствуют номера 8001,8002,8003. Их и прописываем:
Так для очереди указываем:
-Максимальное Время Дозвона (Max Wait Time) в секундах, это время в течении которого будет осуществлятся вызов абонентов, по истечении этого времени вызов уйдет из очереди, установим 20 секунд
-Стратегию Дозвона (Ring Strategy), в нашем случае будут звонить одновременно все телефоны (ringall)
-Таймаут оператора(Agent timeout)-это время в течении которого будет идти дозвон до внутреннего номера, прежде чем поступить уведомление о неответе, установим 20 секунд.
-Повтор вызова (retry)-установим не повторять
-Передышка между дозвонами(Wrap-up-Time) - установим 0.
Все другие свойства очереди оставим пока без изменений.
Подобным же образом добавляем очередь для техотдела(номер 301) и бухгалтерии (номер 302)
Создадим очередь для секретаря(номер 303), она отличается от предыдущих тем, что в ней всего один внутр номер (8010) и максимальное время ожидания 1 минута
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"(ошибка)-вызов уйдет на очередь секретаря, если абонент выберет цифру, которая не представлена в сценарии
4)Пропишем входящую маршрутизацию с Voip шлюза. Он настроен(http://icluzo.livejournal.com/1624.html
) таким образом, что при входящем вызове из города он автоматически набирает номер 8000 и маршрутизирует его на Elastix.
Первым делом удалим из Extensions номер 8000.
Затем PBX->Indound Routes ->Add Incoming Route
Отправляем все вызовы с DID 8000 на IVR-1:
Пробуем позвонить, на городской номер, мы должны услышать анонс,по очереди нажимаем кнопки 0,1,2,3 наблюдаем в консоли что происходит. Вот так выглядит входящий звонок и выбор пункта IVR "1"(отдел продаж)
Если все так и есть - продолжаем.
5) Терменируем очереди 300,301,302 на очередь 303(секретарь).То есть если операторы этох очередей не ответили на звонок в течении 20 секунд - вызов автоматически перейдет на секретаря.
Для этого заходим в данные очереди и правим параметр Fail Over Destination.
5) Терминируем очередь 303(секретарь) на голосовое сообщение Privetstvie2. То есть если секретарь не отвечает на звонок в течении минуты- абоненту проигрывается данное сообщение.
Сначала создадим анонс.
PBX-> Announcement
затем заходим в очередь 303 и прписываем Fail Over Destination:
6) Создадим правило для рабочего/нерабочего времени.
Создадим анонс, в которм будет проговариваться время работы компании.
PBX->announcement->add
PBX-> Time Groups -> Add
Назначим интервал для нерабочего времени(с понедельника по пятницу , с 9-00 до 18-00 )
Пропишем само правило
PBX-> Time Conditions
Если время рабочее - вызов уйдет на IVR-1, если нет , то на анонс
Отредактируем входящий маршрут, направим вызов с DID 8000 на временное правило
PBX->Incoming Routes
UPD
Попросили описать, как сделать дозвон до внутренних телефонов, если внешний абонент знает номер сотрудника.
1) Нужно выяснить какой номер IVR был присвоен Эластиксом (это не название IVR1 , а именно порядковый номер, он присваевается автоматически).
Для этого нужно открыть в MC файл extension_additional.conf и найти нужную IVR , идентифицировать ее можно по названию проигрываемого файла(Privetstvie1).
Номер IVR -3:
2)Добавляем в файл extension_custom.conf правило разрешающее набирать 4-х значные номера, которые начинаются с 8, то есть внутренние номера сотрудников
IpPBX*CLI> reload
Иногда
возникает необходимость принять факсимильное сообщение без участия
человека в автоматическом режиме, причем, принять в электронном виде на
электронную почту.Что и попытаемся сделать с помощью Elastix.
1) Добавим IAX2 экстеншен с номером 8888.
PBX->Extension->Add Extension->Generic iax2 Device-> Submit
Нажимаем Submit и заходим в настройки вновь созданного экстеншена 8888.
Запрещаем все кодеки(disallow all) , кроме g711 с a-законом (allow alaw)
Нажимаем Submit. Экстеншен готов.
2)Добавляем виртуальный факс и подключаем его к номеру 8888.
Fax->New Virtual Fax
Прописываем
-имя факса(произвольное значение)
-почтовый адрес на который отправлять факсы
-IAX экстешен (8888)
-пароль от IAX экстеншена
-country code и area code (произвольные цифровые значения)
Нажимаем Save.Вот что должно получиться
3) Настраиваем IVR , таким образом , что бы при нажатии абонентом клавиши "4" вызов автоматически переходил на виртуальный факс.
Естественно в голосовом сообщении надо добавить фразу"если хотите отправить факс - нажмите 4"
PBX ->IVR-IVR1
Для добавления нового пункта в IVR нужно нажать Increase Options
Создаем действие для цифры 4
Нажимаем Save
Сохраняем созданную конфигурацию
Набираем городской номер, нажимаем 4, слушаем характерный ответ факса.
Настройки Elastix завершены.
3)Настройка шлюза.
Configure-> dial-peer-Voice-> modify dial-peer 1
Отключаем VAD ( Voice Activity Detection) -это пороговый шумоподавитель для экономии трафика.
Fax Protocol -установим значение bypass
Configure> voice port-> modify port 0/0
Отключаем Comfort noise generation(генератор комфортного шума - выдает, при включенном VAD некий шум, а не тишину в линию ) и
Echo canceller (эхоподавление)
Сохраняем конфигурацию
Звоним на городской номер , нажимаем 4 , отправляем факс.Получаем его на почту в формате PDF.
1) Добавим IAX2 экстеншен с номером 8888.
PBX->Extension->Add Extension->Generic iax2 Device-> Submit
Нажимаем Submit и заходим в настройки вновь созданного экстеншена 8888.
Запрещаем все кодеки(disallow all) , кроме g711 с a-законом (allow alaw)
Нажимаем Submit. Экстеншен готов.
2)Добавляем виртуальный факс и подключаем его к номеру 8888.
Fax->New Virtual Fax
Прописываем
-имя факса(произвольное значение)
-почтовый адрес на который отправлять факсы
-IAX экстешен (8888)
-пароль от IAX экстеншена
-country code и area code (произвольные цифровые значения)
Нажимаем Save.Вот что должно получиться
3) Настраиваем IVR , таким образом , что бы при нажатии абонентом клавиши "4" вызов автоматически переходил на виртуальный факс.
Естественно в голосовом сообщении надо добавить фразу"если хотите отправить факс - нажмите 4"
PBX ->IVR-IVR1
Для добавления нового пункта в IVR нужно нажать Increase Options
Создаем действие для цифры 4
Нажимаем Save
Сохраняем созданную конфигурацию
Набираем городской номер, нажимаем 4, слушаем характерный ответ факса.
Настройки Elastix завершены.
3)Настройка шлюза.
Configure-> dial-peer-Voice-> modify dial-peer 1
Отключаем VAD ( Voice Activity Detection) -это пороговый шумоподавитель для экономии трафика.
Fax Protocol -установим значение bypass
Configure> voice port-> modify port 0/0
Отключаем Comfort noise generation(генератор комфортного шума - выдает, при включенном VAD некий шум, а не тишину в линию ) и
Echo canceller (эхоподавление)
Сохраняем конфигурацию
Звоним на городской номер , нажимаем 4 , отправляем факс.Получаем его на почту в формате PDF.
Для защиты телефонных переговоров от прослушивания в системах построенных на базе Asterisk , используется 2 протокола.
1)TLS (Transport Layer Security) — криптографический протокол,
обеспечивающий защищенную передачу данных между узлами в сети Интернет.
Этот протокол используется для шифрования SIP сессий.
2) Secure Real-time Transport Protocol — Безопасный Протокол
Передачи Данных реального времени (SRTP) определяет профиль RTP и
предназначен для шифрования ,установления подлинности
сообщения,целостности,защиты от замены данных в медиа-потоках.
Другими словами он необходим для шифрования непосредственно голоса.
Настроим шифрование на elastix.
1)Создаем сертификаты.
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 ,а затем подтвердить его:
В процессе формирования сертификата необходимо установить пароль для ca.key ,а затем подтвердить его:
Сформируем клиентский сертификат
./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:
В процессе формирования сертификата будет запрошен пароль для ca.key:
В результате в директории keys появятся следующие файлы:
asterisk.crt
asterisk.csr
asterisk.key
asterisk.pem
ca.cfg
ca.crt
ca.key
client.crt
client.csr
client.key
client.pem
2)Настраиваем Elastix для работы с TLS и SRTP.
Отредактируем файл sip_general_custom.conf, для этого запустим файловый менеджер Midnight Commander с помощью команды mc , перейдем в директорию /etc/asterisk , выберем нужный файл и нажмем "F4"(редактировать):
Добавим несколько строк в этот файл
tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/etc/asterisk/keys/asterisk.pem
tlscafile=/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
Сохраним изменения, нажав "F2"
Внесем изменения в файл sip_custom_post.conf , прописав для номера 8010 :
[8010](+)
transport = tls
encryption=yes
Сохраним изменения, нажав "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
Устанавливаем оба сертификата на клиентскую машину с помощью стандартного менеджера сертификатов.Для этого достаточно кликнуть по сертификату и на все вопросы ответить "да"
4)Подключаемся к Elastix по SSH.Подключаемся к Asterisk:
asterisk -vvvvvvvvvvvvvvvvvvr
В консоли Asterisk выполняем команду
IpPBX*CLI> reload
а затем
SIP SHOW PEER 8010
SIP SHOW PEER 8010
5)Настраиваем программный телефон
Настраивать будем программный телефон eyeBeam 1.5
Во вкладке "Account" пропишем имя , логин , пароль , ip адрес сервера
Во вкладке "Security" прописываем транспорт TLS + только шифрованный медиа-поток.
SIP SHOW PEER 8010
Наберем на телефоне тестовый номер 1234.Вызов зашифрован:
Настроим отправку уведомлений о пропущеных вызовах, которые поступили в нерабочее время,на электронную почту.Настраивать будем программный телефон eyeBeam 1.5
Во вкладке "Account" пропишем имя , логин , пароль , ip адрес сервера
Во вкладке "Security" прописываем транспорт TLS + только шифрованный медиа-поток.
SIP SHOW PEER 8010
Наберем на телефоне тестовый номер 1234.Вызов зашифрован:
1) Создадим пользовательский экстеншен,
Extension->add extension->Other(custom)Device
номер которого будет 999, при входящем вызове на который будет набираться номер 9999 в контехте from-internal
2) Отредактируем временное правило, затерминировав входящие вызовы в нерабочее время на экстеншен 999
Time Conditions->pravilo
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 -адрес на который необходимо отправить уведомление
где xxxxxx@mycompany.ru -адрес на который необходимо отправить уведомление
Пробуем позвонить и получить уведомление
Источник тут http://suli-company.org.ua/it/seti/ip-telefoniya-voip-telefoniya/833-kurs-ip-pbx-elastix.html
1 комментарий:
супер спасибо!!
Отправить комментарий