Вы находитесь на странице: 1из 42

Digium Asterisk

Administration

Авторский курс
Александра Левичева
ASTERISK

Пособие для выполнения


лабораторных работ
Обзор
Настоящее пособие представляет инструкции и другую информацию, необходимые для выполнения
лабораторных работ по курсу Digium Asterisk Administration

План лабораторных работ


В данном пособии рассматриваются следующие лабораторные работы:

 Lab 1.0: Лабораторная работа №1.0 – Установка Asterisk


 Lab 1.1: Базовая настройка Asterisk и регистрация программных IP телефонов
 Lab1.2: Глобальная конфигурация
 Lab1.3: Регистрация аппаратных IP телефонов
 Lab2.1: Создание плана номеров и конфигурация PRI потока (интеграция с SIP шлюзом)
 Lab2.2: Интеграция с Cisco Unified Communications Manager
 Lab2.3: Интеграция с Microsoft Lync 2010
 Lab2.4: Интеграция с Asterisk
 Lab2.5: Интеграция со шлюзом Cisco по протоколу H.323
 Lab3.1: Использование контекстов, приоритетов, приложений
 Lab4.1: Настройка дополнительных функций
 Lab4.2: Повышение безопасности

2
Лабораторная топология
На рисунке представлена топология, которая используется для лабораторных работ в курсе AAE

3
План набора номеров в лабораторной топологии

В следующей таблице представлен план набора номеров, использующийся в данной лабораторной


топологии – номер лабораторного пода

HQ-x Phones 2011 (xlite)


2012 (phonerlite)
2013 (3cx)
2014 (msip)
2015 (jitsi)
2016 (zoiper)
2017 (blink)
2018 (reserved)
2019 (reserved)

4
Лабораторная работа №1.0 – Установка Asterisk 11.2
Описание работы

В данной работе Вы установите IP PBX Asterisk на CentOS выбрав необходимые модули (OOH323), а
кроме того необходимые зависимости для Asterisk (LibPRI, DAHDI).

Краткое описание установки

1) Установка зависимостей
a. Отключить selinux
b. Установить необходимые сетевые и системные параметры
c. Обновиться
d. Установить зависимости и необходимое ПО
e. Установить необходимые модули ядра
2) Загрузка Asterisk и его модулей (dahdi, libpri)
a. wget
i. libpri
ii. dahdi
iii. asterisk
b. разархивировать скачанное
3) Установка ПО с необходимыми модулями

Установка

При установке Asterisk необходимо настроить доступ к интернету, также установка системы
производится под пользователем root (с целью ускорения процесса).

Установка и настройка зависимостей


Шаг 1 Отключаем SELINUX
vi /etc/selinux/config
Измените значение параметра SELINUX с «enforcing» на «disabled» и сделайте reboot.

Шаг 2 yum update –y && reboot


Шаг 3 yum install –y ntp sshd vsftpd xinetd tftp tftp-server && ntpdate pool.ntp.org

Шаг 4 Asterisk 11 использует SQLite3 поэтому для него необходимо установить sqlite-devel.
yum install –y gcc gcc-c++ make wget subversion libxml2-devel ncurses-devel
yum install –y openssl-devel vim-enhanced sqlite-devel

Шаг 5 Добавить сервисы в автозагрузку


chkconfig ntpd on
chkconfig sshd on
chkconfig vsftpd on
chkconfig xinetd on

Шаг 6 Создать каталоги

5
mkdir -p /usr/src/asterisk-complete/libpri
mkdir -p /usr/src/asterisk-complete/dahdi
mkdir -p /usr/src/asterisk-complete/asterisk

Установка DAHDI

Шаг 7 Установить дополнительные компоненты ядра


uname –r
2.6.32-358.2.1.el6.i686

yum install kernel-devel-`uname –r`


Или
yum install kernel-devel-2.6.32-358.2.1.el6.i686

Шаг 8 Создать каталог и скачать DAHDI модули


cd /usr/src/asterisk-complete/dahdi/
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-
2.5.1+2.5.1.tar.gz
tar zxvf dahdi-linux-complete-2.5.1+2.5.1.tar.gz
cd dahdi-linux-complete-2.5.1+2.5.1
Шаг 9 Скомпилировать модули
make

Шаг 10 Проверить результат выполнения команды:


echo $?
В случае, если echo $? выводит ноль, то операция завершена успешно. Если число отличное от ноля,
необходимо проверить зависимости и права доступа.

Шаг 11 Установить DAHDI


make install
echo $?

make config
Шаг 12 Добавить в автозагрузку
chkconfig dahdi on

Шаг 13 Запустить модуль DAHDI.


/etc/init.d/dahdi start

Шаг 14 Для проверки загружен ли модуль DAHDI в ядро операционной системы нужно ввести.
lsmod | grep dahdi

В случае если отобразилось несколько модулей, значит DAHDI загружен успешно.

Установка LibPRI

Шаг 15 Создать каталог и скачать LibPRI модули

6
cd /usr/src/asterisk-complete/libpri
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
tar zxvf libpri-1.4-current.tar.gz
cd libpri-1.4.14

Шаг 16 Скомпилировать модули


make
Шаг 17 Установить LibPRI
sudo make install

echo $?

Установка Asterisk

Шаг 18 Создать каталог и скачать модули Asterisk


cd /usr/src/asterisk-complete/asterisk
wget http://downloads.asterisk.org/pub/telephony/certified-asterisk/certified-asterisk-1.8.15-current.tar.gz
tar -zxvf certified-asterisk-1.8.15-current.tar.gz
cd /usr/src/asterisk-complete/asterisk/certified-asterisk-1.8.15-cert2

Шаг 19 Проверка зависимостей, установка ключей. В случае установки Asterisk 11 поверх х64 систем
модуль libasteriskssl необходимо установить в директорию /usr/lib64. По-умолчанию Asterisk
установит этот модуль в каталог /usr/lib, что неверно. Для корректной установки используйте
команду ниже
./configure --libdir=/usr/lib64

Шаг 20 Сборка пакетов из исходников.


make

Шаг 21 С помощью утилиты Menuselect выбрать необходимые компоненты для Asterisk.


make menuselect

Шаг 22 Выбрать модуль OOH323, русскую локализацию, сохранить и выйти.


Шаг 23 Пересобрать пакеты для Asterisk.
make

Шаг 24 Установка Asterisk.


make install
make config
chkconfig asterisk on

Шаг 25 Создать шаблонные файлы конфигурации


make samples

Шаг 26 Запустить Asterisk


asterisk

Шаг 27 Подключиться к консоли Asterisk


7
asterisk –r

8
Лабораторная работа №1.1 – Регистрация
программных телефонов
Описание работы

В данной работе Вы будете регистрировать программные телефонные аппараты (softphones)


 Xlite (2011)
 PhonerLite (2012)
 3cx (2013)
 MicroSip (2014)
 Jitsi (2015) [самостоятельно]
 Zoiper (2016)
 Blink (2017) [самостоятельно]

по протоколу сигнализации SIP на Asterisk. Необходимо разобраться с настройкой телефона в


конфигурационном файле sip.conf, а также настройкой специфических параметров программного
телефона.

Перечень команд (Asterisk CLI)

sip show peers


sip show settings
sip show channels
sip show channelstats
sip show users
dialplan reload
sip reload

Регистрация xlite

Шаг 1 Отредактировать файлы extensions.conf и sip.conf следующим образом:

extensions.conf sip.conf

[default] [general]
exten => 2011,1,Dial(SIP/xlite)
[xlite]
secret=pass1
host=dynamic
type=friend

Применить изменения (перечитать конфигурационные файлы).

dialplan reload
sip reload

9
Регистрация с использованием аутентификацией. Значения в выделенных полях должны совпадать при
регистрации с аутентификацией.

10
Регистрация Zoiper (Idefisk)

Недостатком данного телефона, является нестабильность работы. Часто может завершать работу из-за
неизвестной ошибки.

Шаг 1 Файлы extensions.conf и sip.conf должны выглядеть следующим образом:

extensions.conf sip.conf

[default] [general]
exten => 2011,1,Dial(SIP/xlite)
exten => 2012,1,Dial(SIP/idefisk) [xlite]
secret=pass1
host=dynamic
type=friend

[idefisk]
secret=pass1
host=dynamic
type=friend

Шаг 2 Применить изменения (перечитать конфигурационные файлы).

dialplan reload
sip reload

Шаг 3 Настройка аккаунта на клиенте

11
Конфигурация SJPhone (опционально)
Недостатком данного телефона, является невозможность выбрать сетевой интерфейс на Windows 7 ОС и
поэтому телефон не регистрируется.

Шаг 1 Файлы extensions.conf и sip.conf должны выглядеть следующим образом:

extensions.conf sip.conf

[default] [general]
exten => 2011,1,Dial(SIP/xlite)
exten => 2012,1,Dial(SIP/idefisk) [xlite]
exten => 2013,1,Dial(SIP/sjphone) secret=pass1
host=dynamic
type=friend

[idefisk]
secret=pass1
host=dynamic
type=friend

[sjphone]
secret=pass1
host=dynamic
type=friend

Шаг 2 Применить изменения (перечитать конфигурационные файлы).


dialplan reload
sip reload

Шаг 3 Настройка аккаунта на клиенте. Создание SIP профиля


Правый клик
Options -> (вкладка) Profiles -> New

12
Profile name: 2003
File name: 2003.ini
Profile type: Calls through SIP proxy
OK!

(вкладка SIP Proxy)


Proxy domain: 10.1.1.1x : 5060
Register with proxy (отметить)
OK!

account: sjphone
password: pass1
OK!

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

Регистрация MicroSip телефона

Недостаток данного телефона в том, что если у


компьютера два сетевых интерфейса, то MicroSip
регистрируется под IP адресом первичного сетевого
интерфейса (например, wlan0). Из-за этого могут не
работать входящие звонки на MicroSip.

Шаг 1 Добавить в файлы extensions.conf и sip.conf


следующее:

extensions.conf sip.conf

[default] [msip]
exten => 2014,1,Dial(SIP/msip) secret=pass1
host=dynamic
type=friend

Шаг 2 Применить изменения


dialplan reload
sip reload
Шаг 3 Настройка аккаунта на клиенте. Создание SIP
профиля
14
Регистрация PhonerLite телефона

Добавить в файлы extensions.conf и sip.conf следующее:

extensions.conf sip.conf

[default] [phonerlite]
exten => 2015,1,Dial(SIP/phonerlite) secret=pass1
host=dynamic
type=friend

dialplan reload
sip reload

15
Регистрация 3cx телефона

Добавить в файлы extensions.conf и sip.conf следующее:

extensions.conf sip.conf

[default] [2013]
exten => 2013,1,Dial(SIP/2013) secret=pass1
host=dynamic
type=friend

dialplan reload
sip reload

16
Кроме того есть возможность посмотреть на отладку телефона 3cx.

Использование шаблонов
extensions.conf sip.conf

[default] [general]
exten => 2011,1,Dial(SIP/xlite) [codec](!)
exten => 2012,1,Dial(SIP/sjphone) disallow=all
exten => 2013,1,Dial(SIP/3cx) allow=ulaw
allow=alaw

[std](!)
host=dynamic
type=friend
context=default

[xlite](std)

17
secret=pass1
callerid=”xlite” <5552011>

[sjphone] (std, codec)


secret=pass1
callerid=”xlite” <5552012>

Проверка выполненной работы

 Телефоны SIP успешно зарегистрировались. Вы можете совершить звонок между ними.

18
Лабораторная работа №1.2 – Глобальная
конфигурация
Описание работы
В данной работе нужно сделать глобальные преднастройки для оптимизации работы Asterisk.

Перечень команд (Asterisk CLI)

core show settings global settings


core show applications
core show applications like <GREP-STRING>
core show calls active calls
core show channels
core show channeltypes signaling protocols
core show functions
core show function like <GREP-STRING>
core show uptime
core show sysinfo shows free memory
core set verbose <VERBOSE-LEVEL>
dialplan show
rtp set debug <on/off>
rtcp set debug <on/off>
config list

Каталоги Asterisk

Когда в конфигурации указывается имя файла, который нужно использовать Asterisk должен определить
полное имя файла (т.е. путь + имя файла). Посмотреть где хранятся файлы конфигурации, используемые
модули, буфер можно в файле:

vim /etc/asterisk/asterisk.conf

Загружаемые модули

Как и большинство других систем Asterisk имеет модульную архитектуру. Каждый из модулей
предоставляет какой-то набор функций. Естественно, абсолютно все функции никогда не используются,
поэтому рекомендуется отключить часть модулей. Но большинство модулей имеют зависимости, поэтому
нельзя просто отключить все неиспользуемые модули – может какой-то из нужных модулей использует
выключенный Вами модуль.

В файле /etc/asterisk/modules.conf сделайте похожую конфигурацию

modules.conf

[modules]
autoload=yes

load=codec_g722.so
load=chan_skinny.so

19
;
noload => pbx_ael.so
noload => res_calendar.so
noload => chan_mgcp.so
noload => pbx_dundi.so
noload => app_festival.so
noload => app_morsecode.so
noload =>func_enum.so

Приведен пример включения всех модулей по-умолчанию, включения модулей кодека G.722 и протокола
сигнализации SCCP или Skinny (команды необязательные, т.к. эти два модуля и так будут
автозагружены). Неиспользуемые модули (протокол MGCP, интеграция с почтой, преобразование текста-
в-речь (text-to-speech) и др.) выключены и не будут потреблять ресурсы.

Уровень информационных сообщений

Чтобы посмотреть на информационные сообщения (verbose) в консоли, воспользуйтесь следующими


командами. Изменяя уровень вывода сообщение, пробуйте включать и выключать SIP телефон. Он будет
регистрировать/разрегистрироваться, и выдавать разное количество служебной информации.

core set verbose 1


core set verbose 2
core set verbose 3
core set verbose 6

Включение отладки (debug) для протокола SIP

Нередко возникают проблемы при интеграции разных телефонных станций (например, Asterisk-Cisco Call
Manager). Чтобы найти причину нужно посмотреть в сообщения отладки с помощью команд:

Включит и выключить отладку для всех peer сконфигурированных в системе:


sip set debug on
sip set debug off

Включит и выключить отладку только для телефона xlite:


sip set debug peer xlite
sip set debug off

Включите отладку и позвоните с одного SIP телефона на другой. Посмотрите на сообщения протокола
SIP.

Применение изменений в конфигурации

После того как конфигурационные файлы отредактированы надлежащим образом нужно применить
конфигурацию. Это делается путем перезагрузки модулей, конфигурация которых была изменена.

Команда config list покажет, какие конфигурационные файлы связаны с какими модулями. Остается
посмотреть какие файлы были изменены и перезагрузить соответствующие модули с помощью команды
module reload <MODULE-NAME>.

20
Просмотр логов
logger.conf

[general]
console => notice,warning,error,verbose,dtmf,fax

Применить изменения

logger reload

Позвонить и проверить отображение набранных DTMF цифр в консоли Astersk.

Настройки asterisk.conf

asterisk.conf

maxcalls = 2 ; Asterisk total max calls equals to 2 calls


maxload = 0.9 ; Asterisk stops accepting new calls if the
; load average exceed this limit.
maxfiles = 1000 ; Maximum amount of openfiles.
minmemfree = 1 ; In MBs, Asterisk stops accepting new calls if
; the amount of free memory falls below this
; watermark.

runuser = root ; The user to run as.


rungroup = root ; The group to run as.

defaultlanguage = ru ; Default language

Применить изменения.

core restart now

Установка alias команд

Добавьте создания «алиасов» (коротких обозначений) команд включения и выключения отладки SIP
протокола. Пример ниже.

cli_aliases.conf

[friendly]
;….
;….
sipdeb = sip set debug on
sipudeb = sip set debug off

21
Авто-выполнение команд при запуске Asterisk
cli.conf

[friendly]
;….
sip set debug on = yes
core set verbose 3 = yes

22
Лабораторная работа №1.3 – Регистрация аппаратных
телефонов (опциональная)
Описание работы

В данной работе Вы будете регистрировать Cisco IP телефон по протоколу сигнализации SIP на Asterisk.
Необходимо разобраться с настройкой DHCP, TFTP серверов необходимых для регистрации Cisco
телефона.

Компоненты регистрации Cisco SIP телефона

1) Питание (Power over Ethernet, PoE)


2) Vlan
3) DHCP
a. ip helper-address
b. dhcpd
c. chkconfig dhcpd on

4) TFTP
a. xinetd tftp-server tftp
b. look at root directory [ps ax | grep tftp]
c. netstat –lu | grep tftp
d. chkconfig xinetd on
e. Firmware и файлы конфигурации (не обязательно)
i. firmware [apps*,cnu,cvm,dsp,jar*,termXX,SIPXX]
ii. config
1. SEP<MAC>.cnf.xml
2. dialplan.xml
3. softkeyDefault.xml
4. softkeyDefault_kpml.xml

f. iptables
i. iptables –L
ii. iptables –F

5) SFTP (не обязательно)


i. vsftpd ftp
ii. vi /etc/vsftpd.conf
iii. /etc/init.d/vsftpd restart
iv. chkconfig vsftpd on
6) Asterisk
a. sip.conf
b. extensions.conf

Питание
Шаг 4 Обеспечивается коммутатором с поддержкой 802.1af PoE (802.1at PoE+).

23
Vlan
Шаг 5 Обеспечивается коммутатором с поддержкой 802.1q

Настройка DHCPd
yum install dhcp

/etc/init.d/dhcpd start

; для автозагрузки сервиса


chkconfig dhcpd on

; отредактировать файл /etc/dhcp/dhcpd.conf в соответствии со следующим образцом


ddns-update-style none;
deny bootp;
authoritstive;
subnet 10.1.1.0 netmask 255.255.255.0
{
option subnet-mask 255.255.255.0;
option domain-name "test.com";
option routers 10.1.1.101;
option domain-name-servers 10.1.1.211;
option tftp-server-address 10.1.1.11
range dynamic-bootp 10.1.1.50 10.1.1.90;
default-lease-time 31200;
max-lease-time 62400;
}

less /var/lib/dhcpd/dhcpd.leases

Шаг 6 Настройка TFTPd на Linux


yum install xinetd tftp-server tftp
chmod -R 777 /var/lib/tftpboot
chown -R root /var/lib/tftpboot
vim /etc/xinetd.d/tftp
/etc/init.d/xinetd restart

netstat -l -u | grep tftp

tftp localhost

Шаг 7 Настройка SFTP


sudo apt-get install vsftpd ftp
sudo vi /etc/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES

sudo /etc/init.d/vsftpd restart

После конфигурации SFTP сервера необходимо загрузить конфигурационный файл для Cisco телефона.
Воспользуйтесь программой winSCP client.

24
Шаг 8 Настройка Asterisk

extensions.conf sip.conf

[default] [2019]
exten => 2019,1,Dial(SIP/2019) secret=pass1
host=dynamic
type=friend

25
Лабораторная работа №2.1 – Использования
контекстов, приоритетов, приложений
Описание
Задача 1 – Конфигурация входящих звонков из города и привилегий пользователей:

Пользователь xlite может звонить:


 по городу

Пользователь 3cx может звонить:


 без ограничений

Пользователь msip может звонить:


 всем кроме международных линий

Входящие вызовы извне доступны только для внутренних номеров (запрещены транзитные звонки
черезAsterisk).

Создать контексты:

 globals ; для объявление глобальных переменных


 incoming ; для входящих звонков
 internal ; для исходящих звонков на внутренние номера
 local ; для исходящих звонков в город
 ld ; для исходящих звонков, междугородные звонки
 intl ; для исходящих звонков, международные звонки

Перечень команд (Asterisk CLI)


В таблице представлены команды, необходимые для выполнения данной работы.

dialplan show <CONTEXT-NAME>


core show channels
core show calls uptime seconds
core set verbose <VERBOSE-LEVEL>
hangup request <CHANNEL-ID>
config list

Настройка

Шаг 1 Использовать приложение Goto() для перенаправления вызова.


extensions.conf sip.conf

[globals] [general]
[incoming] context=all-blocked
exten => _X.,1,Verbose(2,Incoming call to ${EXTEN:-4})
same => n,Goto(internal,${EXTEN:4},1) [cme]
type=peer
[internal] host=10.1.250.101
exten => 2011,1,Dial(SIP/xlite,10) context=incoming
exten => 2012,1,Dial(SIP/idefisk,10)
exten => 2013,1,Dial(SIP/sjphone,20) [xlite]
26
secret=pass1
[local] host=dynamic
include => internal type=friend
exten => _0[1-9]XXXXXX,1,Dial(SIP/cme/${EXTEN:1}) context=local

[ld] [idefisk]
include => local secret=pass1
exten => _00[1-9]XX[1-9]XXXXXX,1,Dial(SIP/cme/${EXTEN:1}) host=dynamic
type=friend
[intl] context=intl
include => ld
exten => _000.,1,Dial(SIP/cme/${EXTEN:1}) [sjphone]
secret=pass1
host=dynamic
type=friend
context=ld

Note Маршруты созданные в контекстах local, ld, intl в данной работе не используются. Они показаны для
наглядности и улучшения понимания понятия «контекст». Эти маршруты будут использованы после
подключения к оператору.

Шаг 2 Использование глобальных переменных и шаблонов для уменьшения конфигурационных


записей
extensions.conf sip.conf

[general] [general]
autofallthrough=yes context=all-blocked
[globals]
sipgw=SIP/cme [std](!)
host=dynamic
[incoming] type=friend
exten => _X.,1,Verbose(2,Incoming call to ${EXTEN:-4}) context=local
same => n,Goto(internal,${EXTEN:-4},1)
[cme]
[internal] type=peer
exten => 2003,1,Dial(SIP/sjphone) host=10.1.250.101
context=incoming
[local]
include => internal [xlite](std)
exten => _0[1-9]XXXXXX,1,Dial(${sipgw}/${EXTEN:1}) secret=pass1

[ld] [idefisk](std)
include => local secret=pass1
exten => _00[1-9]XX[1-9]XXXXXX,1,Dial(${sipgw}/${EXTEN:1}) context=intl
exten => 2002,1,Dial(SIP/idefisk,10)
[sjphone](std)
[intl] secret=pass1
include => ld context=ld
exten => _000.,1,Dial(${sipgw}/${EXTEN:1})
exten => 2001,1,Dial(SIP/xlite,10)

Одновременный вызов нескольких абонентов.

extensions.conf sip.conf

[internal]
exten => 2011,1,Dial(SIP/xlite)
27
exten => 2012,1,Dial(SIP/sjphone)
exten => 2013,1,Dial(SIP/3cx)

exten => 2010,1,Dial(Local/200[1-3])

Проверка выполненной работы

Вы успешно выполнили данную задачу, если имеется следующий результат:


 Пользователь xlite может звонить – по городу и пользователю sjPhone
 Пользователь idefisk может звонить – без ограничений
 Пользователь sjphone может звонить – всем кроме пользователя xlite и международных линий
 Входящие вызовы извне доступны только для внутренних номеров (запрещены транзитные звонки
через Астериск)
 При звонке на номер 2010, вызов приходит на xlite, phonerlite, 3cx.

28
Лабораторная работа №3.1 – Создание плана набора
номеров и конфигурация PRI потока

Описание работы

В данной работе необходимо настроить маршрут на ТфОП и проверить настройки доступа к


междугородной и международной связи.

Уровень доступа для 3х телефонов:


 xlite может звонить только на phonerlite
 phonerlite может звонить на phonerlite и 3cx
 3cx может звонить на все направления

Настройка
Конфигурация Asterisk

extensions.conf sip.conf

[default] [cme](codec)
exten => 2011,1,Dial(SIP/xlite) type=friend
exten => _112,1,Dial(SIP/cme/${EXTEN}) host=10.1.250.101
exten => _0112,1,Dial(SIP/cme/${EXTEN:1}) dtmfmode=rfc2833

[local] [xlite]
exten => _0[2-9]XXXXXX,1,Dial(SIP/cme/${EXTEN:1}) context=local
exten => 2012,1,Dial(SIP/phonerlite)
[phonerlite]
[ld] context=ld
exten => _00[2-9]XX[1-9]XXXXXX,1,Dial(SIP/cme/${EXTEN:1})
exten => 2013,1,Dial(SIP/3cx) [3cx]
context=default
[intl]
exten => _000.,1,Dial(SIP/cme/${EXTEN:1})

Конфигурация Cisco шлюза

voice service voip


sip
bind all source-interface loopback 0

dial-peer voice 7777 voip


description Asterisk
destination-pattern 20..
session protocol sipv2
session target ipv4:10.1.1.1x
session transport udp
incoming called-number 200.
dtmf-relay rtp-nte sip-notify
codec g711ulaw

29
Проверка выполненной работы

Успешно выполенные звонки на номера:


 0112
 05554444
 00606-5554444
 000380-44-5554444

Лабораторная работа №3.2 – Интеграция с Cisco


Unified Communications Manager (UCM)

Конфигурация со стороны Cisco UCM выполнена инструктором.

Пример конфигурации Asterisk.

extensions.conf sip.conf

[codec](!)
exten => _X.,1,Verbose(2,Incoming call to ${EXTEN:-4}) disallow=all
same => n,Goto(default,${EXTEN:-4},1) allow=ulaw
allow=alaw

exten => _500XXXX,1,Dial(SIP/cucm/${EXTEN:3}) [cucm](codec)


; alternative syntax type=friend
; exten =>_500XXXX,1,Dial(SIP/${EXTEN:3}@cucm) host=10.1.1.55
dtmfmode=rfc2833
context= default

30
Лабораторная работа №3.3 (опциональная) – Интеграция с
Microsoft Lync 2010

Конфигурация со стороны Microsoft Lync 2010 выполнена инструктором.

Пример конфигурации Asterisk.

extensions.conf sip.conf

[lync](codec)
exten => _520XXXX,1,Dial(SIP/lync/${EXTEN:3}) type=friend
host=10.1.1.212
port=5068
dtmfmode=rfc2833
transport=tcp, tls
nat=no

В файл /etc/hosts добавить следующие строки.

10.1.1.10 pbx0
10.1.1.212 lync.ciscoclass.com
10.1.1.212 lync

31
Лабораторная работа №3.4 – Интеграция с Asterisk

Конфигурация со стороны Microsoft Lync 2010 выполнена инструктором.

Пример конфигурации Asterisk с Вашей стороны.

extensions.conf sip.conf

[astr0](codec)
exten => _510XXXX,1,Dial(SIP/astr0/${EXTEN:3}) type=friend
host=10.1.1.10
username=astr1 ; себя
secret=secretpass1
port=5060 ;5091

[xlite]
callerid=”xlite” <5112011>

[sjphone]
callerid=”sjphone” <5112012>

[2013]
callerid=”3cx” <5112013>

Конфигурация с другой стороны (пример, для 1го комплекта оборудования)

extensions.conf sip.conf

[astr1](codec)
exten => _511XXXX,1,Dial(SIP/astr1/${EXTEN:3}) type=friend
host=10.1.1.11
username=astr0
secret=secretpass1

[xlite]
callerid=”xlite” <5102011>

32
Лабораторная работа №3.5 – Интеграция с Cisco H323
шлюзом
Описание работы
Необходимо настроить подключение к удаленной АТС или шлюзу по протоколу H.323. По-умолчанию
драйвер протокола сигнализации H.323 не установлен в Asterisk 11.2cert.

Добавить поддержку протокола сигнализации H.323, а именно модуль – OOH323, настроить подключение
к удаленному шлюзу, создать маршрут и убедится в успешном звонке по данному маршруту.

Перечень команд (Asterisk CLI)


В таблице представлены команды, необходимые для выполнения данной работы

module unload chan_ooh323.so


module load chan_ooh323.so
ooh323 set debug
ooh323 show config
ooh323 show peers
ooh323 show users

Нужно проверить с помощью команды core show channeltypes наличие работающего OOH323 модуля в
системе. Провера того загружен ли модуль в Asterisk.

cd /usr/src/asterisk-complete/asterisk/certified-asterisk-1.8.15-cert2/
make menuselect
Меню Add-ons ‒‒> chan_ooh323

Если модуль отмечен, то нужно поверять правильна ли конфигурация файла /etc/asterisk/ooh323.conf


Пример конфигурации файла ooh323.conf приведен ниже.

Конфигурация со стороны Cisco UCM выполнена инструктором.


Пример конфигурации Asterisk.

extensions.conf ooh323.conf

[general]
exten => _530XXXX,1,Dial(OOH323/h323gw/${EXTEN:3}) faststart=yes
;h245tunneling=yes
gatekeeper=DISABLE
bindaddr=10.1.1.10
port=1720
;tos_audio=ef
;cos_audio=5
context=default

[h323gw]
ip=10.1.1.101
port=1720
disallow=all
allow=ulaw
allow=alaw
type=friend
context=default
33
;incominglimit=4
h245Tunneling=no
;h323id=ObjSysAsterisk
;e164=100
rtptimeout=60 ; Terminate call if 60
seconds of no RTP activity

Сконфигурируйте ограничение на входящие вызовы с шлюза.

extensions.conf ooh323.conf

[h323gw]
incominglimit=1

Пример вывода отладки OOH323 при несогласовании кодеков.

[Dec 25 15:49:13] ERROR[22060]: chan_ooh323.c:1848 ooh323_onReceivedSetup: Unacceptable ip 10.1.1.101

34
Лабораторная работа №3.6 – Интеграция с Cisco H323 GK

Описание
В данной работе необходимо зарегистрировать несколько телефонных номеров на контроллере зон
(Gatekeeper). Позвонить с зарегистрированных номеров используя контроллер зон на другую телефонную
станцию также зарегистрированную на GK.

Номера:
 2012
 2013

Перечень команд (Asterisk CLI)


В таблице представлены команды, необходимые для выполнения данной работы

ooh323 show gk

Конфигурация

Шаг 1 Настроить регистрацию на GK в файле ooh323.conf. Указать IP адрес контроллера зон, перечень
используемых кодеков, список номеров для регистрации, контекст для входящих звонков через
GK.
Шаг 2 Указать маршрут для звонков через GK в файле extensions.conf
extensions.conf ooh323.conf

[general]
exten => _530XXXX,1,Dial(OOH323/${EXTEN:3}) faststart=yes
gatekeeper=10.1.250.101
bindaddr=10.1.1.10
port=1720
context=default
h323id=ourAsterisk
disallow=all
allow=ulaw
allow=alaw
e164=2012
e164=2013

Шаг 3 Проверить (настроить) параметры GK.


configure terminal
gatekeeper
zone local sf-msk skillfactory.ru
zone prefix sf-msk 530....
zone prefix sf-msk 540....

Шаг 4 Настроить вызовы с номеров 2012, 2013 на номер 5302001. Вызов должен быть успешен.

Проверка выполненной работы

Вы успешно выполнили данную задачу, если имеется следующий результат:


 Вызов с номеров 2012, 2013 на номер 5302001
35
Лабораторная работа №4.1 – Конфигурация
дополнительных функций Asterisk

Описание
В данной работе необходимо настроить телефонные функции на базе Asterisk.

Перечень команд (Asterisk CLI)


В таблице представлены команды, необходимые для выполнения данной работы.

meetme list
meetme list <CONF-NUMBER>
features show
parkedcalls show
mixmonitor start <CHANNEL><FILE-NAME>
mixmonitor stop<CHANNEL>
config list

MeetMe
Шаг 1 Убедиться в том что DAHDI модуль установлен и запущен.
lsmod | grep dahdi

Если DAHDI установлен, то отобразится несколько модулей.

lsmod | grep dahdi

dahdi_transcode
dahdi_voicebus
dahdi

Шаг 2 В консоли Asterisk ввести команду


core show channeltypes

Шаг 3 Убедиться в том что модуль DAHDI установлен


Шаг 4 Дополнительно можно выгрузить загрузить, чтобы убедиться в отсутствии ошибок при загрузке
модуля
module unload chan_dadhi.so
module load chan_dadhi.so

Шаг 5 Настройка MeetMe конференции.

36
extensions.conf meetme.conf

exten => 2040,1,MeetMe(2041,i) [rooms]


exten => 2041,1,MeetMe(2041,i,12345) conf => 2041,12345

Шаг 6 Применить изменения


dialplan reload
module reload app_meetme.so

Note Настройка конференции с помощью ConfBridge

extensions.conf
exten => 2040,1,ConfBridge(primary,,,)

Запись голосовых подсказок

Шаг 1 Проиграть приветствие, установить переменную используемую для имени файла и вызвать
приложение для записи.
extensions.conf

[internal]
exten => 2020,1,Playback(vm-intro)
same => n,Set(var1=${UNIQUEID:1:9})
same => n,Record(/var/lib/asterisk/sounds/en/new-greeting_${var1}.wav)

Шаг 2 Применить изменения


dialplan reload

Создание черного списка


Вариант 1
Шаг 1 Создать контекст для входящих вызовов [incoming]. Применить этот контекст для удаленного
peer Asterisk.
extensions.conf sip.conf

[incoming] [general]
exten => _X./2014,1,Playback(hello-world)
same => n,Hangup(1) [xlite]
callerid="xlite" <5102011>
exten => _X.,1,Verbose(2,Incoming call to ${EXTEN})
same => n,Set(SEC_EXTEN=${FILTER(0-9,${EXTEN})}) [3cx]
same => n,Goto(default,${SEC_EXTEN:-4},1) callerid="3cx" <5102013>

Шаг 2 Применить изменения


dialplan reload

37
Шаг 3 Позвонить с номера 2014 и убедиться в том что вызов был заблокирован.
Вариант 2
Шаг 1 Добавить номера в черный список базы данных Asterisk.
localhost*CLI> database put blacklist 2014 ""
localhost*CLI> database put blacklist 2015 ""

Шаг 2 Убедится, что в черном списке присутствуют добавленные номера


localhost*CLI> database show

Шаг 3 Создать контекст для входящих вызовов [incoming]. Применить этот контекст для удаленного
peer Asterisk.

extensions.conf sip.conf

[incoming] [general]
exten => _X.,1,Verbose(2,Incoming call to ${EXTEN}) [xlite]
same => n,GotoIf(${BLACKLIST()}?black) callerid="xlite" <5102011>
same => n,Goto(default,${EXTEN},1)
same => n(blacklisted),Hangup() [3cx]
callerid="3cx" <5102013>

Шаг 4 Применить изменения


dialplan reload

Шаг 5 Позвонить с номера 2014 или 2015 и убедиться в том что вызов был заблокирован.

Подмена А номера

Шаг 1 При подключении к телефонной сети общего пользования компания обязана купить номер. Для
того чтобы делать звонки в ТфОП необходимо всем абонентам компании «выходить» под
купленным номером. Это реализовано путем подстановки номера ниже.

extensions.conf

[internal]
exten => _502XXXX,1,Set(CALLERID(all)="Call Center" <5102000>)
same => n,Dial(SIP/cucm/2${EXTEN:4})

Шаг 2 Применить изменения


dialplan reload

Запись звонков абонентов


Шаг 1 Для записи разговоров используется приложение MixMonitor c указанием имени файла для
записи. При звонке на номер 412011 будет активирована запись разговора и послан вызов
абоненту с номером 2011.
extensions.conf

38
exten => _41XXXX,1,NoOp()
same => n,MixMonitor(/var/lib/asterisk/record/rec_${UNIQUEID:1:9}.wav)
same => n,Goto(default,${EXTEN:2},1)

Шаг 2 Применить изменения


dialplan reload

MoH

Шаг 1 Для проигрывания нестандартных звуковых дорожек в качестве music on hold необходимо
создать профиль MoH и назначить этот профиль пиру.

musiconhold.conf sip.conf

[custom1] [xlite](std)
mode=files secret=pass1
directory=custom_moh mohsuggest=custom1
sort=random

Шаг 2 Применить изменения


module reload res_musiconhold.so
sip reload

FollowMe

Шаг 1 Для использования функции дозвона по единому номеру (SNR, Single Number Reach) можно
использовать FollomMe. При звонке на номер 2044 вызов будет направлен в течении 10 секунд
на номер 2014, затем в течении 20 секунд на номер 2011.

extensions.conf followme.conf

exten =>2044,1,followme(xlite,da) [default]


takecall=>1
declinecall=>2
call_from_prompt=>followme/call-from
norecording_prompt=>followme/no-recording

[xlite]
context=>internal
number=>2011,20
number=>2014,10

Шаг 2 Применить изменения


dialplan reload
module reload app_followme.so
39
40
Лабораторная работа №4.2 – Повышение безопасности

Описание
В данной работе необходимо настроить функции безопасности для Asterisk.

Шаг 1 Позвоните с телефона (200х) на номер 51х2011. Быть ли звонок успешным? Почему? Теперь
добавьте команду.
sip.conf

[general]
allowguest=no

Шаг 2 Закомментируйте строки транка ведущего на Cisco Unified Communications Manager


sip.conf

; [cucm](codec)
; type=peer
; host=10.1.1.55
; dtmfmode=rfc2833
; context=default

Шаг 3 Попытайтесь позвонить ещё раз. Почему вызов был неуспешен?


sip.conf

[general]
context=internal
allowguest=yes

Шаг 4 Попытайтесь позвонить ещё раз. Почему вызов прошел?


Шаг 5 Рекомендуемой является следующая конфигурация.
sip.conf

[general]
context=MINIMAL-PRIVILEGES
allowguest=no

[cucm](codec)
type=peer
host=10.1.1.55
dtmfmode=rfc2833
context=default

Шаг 6 Регистрация ip телефонов только с определенных подсетей. Добавьте в конфигурацию Asterisk


следующую строку и не забудьте перезагрузить SIP channel.
sip.conf

41
[xlite]
deny = 0.0.0.0/0.0.0.0

Шаг 7 Закройте и запустите xlite. Регистрация была не успешной, потому что были запрещены все
адреса с которых может прийти запрос о регистрации. Откройте cmd и посмотрите IP адрес
компьютера с которого регистрируется Xlite телефон. Добавьте IPадрес компьютера с которого
регистрируется xlite.

sip.conf

[xlite]
deny = 0.0.0.0/0.0.0.0
permit=10.1.3.28/255.255.255.255

Шаг 8 Рекомендуется!
 Выключить неиспользуемые транспорты для SIP протокола
 Использовать сложные пароли для регистрации телефонов
 Изменить слушающий порт SIP на нестандартный
 Если используются несколько сетевых карт – выбрать только один адрес для Asterisk
 Указать контекст с минимальными (или никакими) привилегиями для входящих вызовов

sip.conf

[general]
allowguest=no
tcpenable=no
bindaddr=10.1.1.10
bindport=5091
context=MINIMAL_PRIVILEGES

tcpauthtimeout = 15
tcpauthlimit = 30
dynamic_exclude_static = yes
shrinkcallerid=yes

42

Вам также может понравиться