Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Диплом Внедрение IP телефонии в организации Master Content / Диплом Внедрение IP телефонии в организации Master Content.docx
Скачиваний:
240
Добавлен:
10.04.2019
Размер:
1.94 Mб
Скачать

3.1.4 Подключение к оператору связи

В качестве основного поставщика траффика выбран, используемый ранее на протяжении нескольких лет, провайдер Манго-Телеком.

На сайте оператора Манго-Телеком размещена инструкция для настройки серверов на базе Asterisk. Поскольку выбранная IP-ATC работает на его основе данные конфигурационные файлы совпадают.

Для подключения к Asterisk виртуальной АТС от Маго-Телеком, необходимо выполнить следующие шаги.

Входим в личный кабинет ≥ вкладка сотрудники ≥ добавить сотрудника. Появится поле добавления сотрудника, так как у нас будет подключение к Asterisk, то достаточно ввести в поле ФИО какой-нибудь идентификатор (например — user2). Нажимаем «Создать».

После нажатия кнопки «Создать» появится окно расширенных настроек.

Так как нам необходимо создать SIP-транк к Asterisk, то выбираем строку SIP (не задан) нажимаем «Добавить», появляется окно «Создание учетной записи SIP». Здесь мы задаем домен (желательно третьего уровня, например, mydomain.mangosip.ru), а также пароль, который можно сгенерировать. Имя пользователя, пароль и домен необходимы будут для создания sip-транка в Asterisk, поэтому записываем/запоминаем их.

Жмем «Добавить», затем «Сохранить». Убеждаемся, что наш user2 появился в списке сотрудников и у него присутствует в столбце «Способ связи по умолчанию» запись вида: user@domain.ru. Если есть необходимость формируем группы.

Настройка sip транка Asterisk:

Во FreePBX создаем новый SIP-транк, назовем его Mango. В PEER Details укажем:

username=user2

type=friend

secret=наш_пароль

nat=yes

insecure=very

host=mydomain.mangosip.ru

fromuser=user2

fromdomain=mydomain.mangosip.ru

dtmfmode=rfc2833

disallow=all

context=from-trunk

canreinvite=no

allow=g729&alaw&ulaw

и в строке регистрации:

user2:наш_пароль@mydomain.mangosip.ru.

3.1.5 Конфигурация программной атс Asterisk

Рассмотрим конфигурацию программной АТС Asterisk.

Схема организации сети телефонии приведена ниже.

Рисунок 3.3 - Схема организации сети телефонии

IP АТС Asterisk находится за маршрутизатором. Для связи с телефонной сетью общего пользования используется оператор Манго.

Устанавливаем Asterisk.

Скачиваем исходные коды Asterisk, распаковаем их и затем собираем Asterisk.

Для исследуемой конфигурации подойдет версия Asterisk 1.8. Устанавливаем версию 1.8 из стандартного репозитория Debian:

#aptitude install asterisk asterisk-core-sounds-ru asterisk-voicemail

После установки IP АТС Asterisk рекомендуется добавить автоматический запуск asterisk после перезагрузки:

#update-rc.d asterisk defaults

Для реализации на IP АТС Asterisk нужно минимум сконфигурировать три файла в директории где хранятся конфигурационные файлы /ets/asterisk.

Первый из них sip.conf, в этом файле настраиваются общие параметры сигнального протокола SIP, учетные записи IP-телефонов, а также подключения к внешней сети.

Второй файл voicemail.conf описывает настройки голосовой почты.

Третий файл extensions.conf, описывает сценарий работы IP АТС на языке дайлплана Asterisk в виде последовательности действий с вызовом.

Пример файлов конфигурации для настройки Asterisk приведен ниже.

Настроим каналы SIP, SIP-транки на оператора Манго и учетные записи IP телефонов, а также общие настройки SIP.

#cat /etc/asterisk/sip.conf

[general]

context=default; Контекст по умолчанию для входящих вызовов

allowoverlap=no

allowguest=no; отбивать все вызовы с неизветстный IP.

alwaysauthreject=yes; Присылать одно и тоже SIP сообщение вне зависимости неверный пароль или пользователь не существует.

;Опция усложняет взлом.

useragent=PBX; То что будет отображаться в UA вашего Asterisk.

defaultexpiry=360;Интервал обязательной перерегистрации абонентов.

callevents=no; Означает что RTP для всех вызовов должен проксироваться.

limitonpeer=yes; Считаем исходящие и входящие вызовы пиров вместе.

rtptimeout=10; Таймаут отсутствия RTP-трафика

language=ru

;Язык в системе по умолчанию. Например для голосовых файлов.

bindport=9966

;Заменяем стандартный порт SIP 5060 на нестандартный.

;9966 уменьшает вероятность нахождения сканнером порта SIP.

bindaddr=0.0.0.0 ;Слушаем на всех интерфейсах

srvlookup=yes

;Активировать поиск DNS SRV-записей для исходящих вызовов

disallow=all

;сначала запрещаем все кодеки затем, разрешаем только те, которые хотим использовать.

allow=ulaw

allow=alaw

allow=g729; можно использовать если очень узкий канал

allow=g722; для звонков между IP-телефонов, кодек с повышенным качеством звука

dtmfmode=auto

rtpholdtimeout=300

rtpkeepalive=5

externip=84.52.XX.XX;Указываем наш внешний IP, Asterisk за NAT.

localnet=192.168.2.0/255.255.255.0

Указываем внутреннюю сеть, где находятся IP-телефоны.

register => 00081111:pass@voice.telphin.com:5068/00081111

; номер 78123091111, регистрируем для входящих вызовов.

register => 00081112:рass2@voice.telphin.com:5068/00081112

; номер 78123091113, регистрируем для входящих вызовов.

[78123091111]; Первый номер.

context=inbound

type=peer

username=000115272

fromuser=000115272

secret=pass

host=voice.telphin.com

port=5068

promiscredir=yes

qualify=yes

insecure=port,invite

[000115272]

context=inbound

type=peer

username=000115272

host=voice.telphin.com

port=5068

qualify=yes

[78123091112] ; второй номер

context=inbound

type=peer

username=00083807

fromuser=00083807

secret=H3QJgzPN

host=voice.telphin.com

port=5068

promiscredir=yes

;qualify=yes

insecure=port,invite

[00083807]

context=inbound

type=peer

username=00083807

host=voice.telphin.com

port=5068

qualify=yes

На этом настройка каналов закончена.

Настроим голосовые почтовые ящики для наших абонентов.

#cat /etc/asterisk/voicemail.conf

[general]

format=wav49|gsm|wav

serveremail=root@asteriskserver.com

attach=yes ; прикрепить запись сообщения

maxmsg=100 ;максимальное кол-во сообщений для ящика.

maxsecs=180 ;максимальная длинна сообщения, 3 минуты макс.

minsecs=3 ;минимальная длина

maxgreet=60 ;Максимальное время приветствия

skipms=3000

maxlogins=3

moveheard=yes

charset=UTF-8

pbxskip=yes

fromstring=Voicemail server ; от этого "лица" будут приходить сообщения

emailsubject=Новое голосовое сообщение ${VM_MSGNUM} в ящике ${VM_MAILBOX}

; Subject электронного письма с оповещением

emailbody=Вам пришло новое голосовое сообщение длительностью ${VM_DUR} под номером ${VM_MSGNUM} \nв ящик ${VM_MAILBOX} от ${VM_CALLERID}, в ${VM_DATE}.

; текст сообщения электронного письма

emaildateformat=%A, %B %d, %Y at %r

pagerdateformat=%A, %B %d, %Y at %r

;mailcmd=/usr/sbin/sendmail –t

;если у вас какой-то особенный MTA агент, укажите его.

delete=yes

; Если голосовая почта отправляется только на email – yes,

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

[zonemessages]

eastern=America/New_York|'vm-received' Q 'digits/at' IMp

central=America/Chicago|'vm-received' Q 'digits/at' IMp

central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'

military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'

european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM

Настройка закончена.

Все настройки сервера Asterisk хранятся в текстовых файлах, все файлы конфигурации Asterisk, располагаются в директории /etc/asterisk, при стандартной инсталляции. В стандартный дистрибутив входят файлы с примерами конфигураций, которые хорошо документируют использование почти всех параметров конфигурации.

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

Если присутствует поле username:

Ищет в файле конфигурации iax.conf (и включенных из него файлов) секцию, имя которой совпадает с username, в котрой type=user. Если совпадений не найдено, произойдет закрытие канала.

В найденной секции проверяется наличие параметров allow/deny, и если IP адрес звонящего совпадает с deny, или не проходит цепочку allow, звонок завешается.

Проверяется пароль. Если пароли не совпадают, звонок завершается.

Если во входящем звонке указан контекст назначения, Asterisk проверяет наличие в настройках пира записи context=требуемый контекст.

Если контекст не указан, звонок направляется на обработку в первую запись context=, наденную в настройках пира.

Если в заголовке сообщения нового звонка не содержится поле username, Asterisk выполняет следующее:

1. Выполняет поиск секции type=user, в которой нет поля secret, и есть атрибуты allow/deny. Если такой пир найден, звонок принимается, и именем username звонящего становится название совпавшей секции.

2. Выполняет поиск секции type=user, где нет поля secret, и нет атрибутов allow/deny. Если такая секция найдена, звонок принимается, и именем username звонящего становится название этой секции.

3. Если совпадений выше найдено не было, Asterisk ищет секцию type=user, с указанным паролем secret или RSA ключем одновременно с allow/deny фильтром. Если такая секция найдена, и все проверки пройдены, астериск принимает звонок, и устанавливает именем username название секции.

4. Выполнеяет поиск секции type=user с установленным паролем secret (или RSA ключем), но без фильтров allow/deny. Если проверка по паролю проходит, звонок принимается, и значение username устанавливается равным названию совпавшей секции.