Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба 2 Asterisk 2.docx
Скачиваний:
0
Добавлен:
03.10.2026
Размер:
5 Мб
Скачать
☆

2. Функциональные модули ядра Asterisk

IP-АТС Asterisk имеет модульную структуру (рис. 2.1). Интерфейс командной строки позволяет перегружать отдельные модули и их конфигурации, не нарушая работы в целом и не разрывая установленные соединения, а также выгружать и загружать интерфейсы, файлы и кодеки, делать прозрачным соединение между всеми поддерживаемыми интерфейсами, объединять различные телефонные системы в единую сетевую среду.

Рисунок 1 - Структурная схема IP-АТС Asterisk

Загружаемые модули определяют четыре независимых интерфейса API (Application programming interface), которые управляют уровнями слоя аппаратных и программных абстракций. Используя такую модульную систему, ядро Asterisk не зависит от типа соединения абонентов, выбранного кодека и т.д.

1) Соединение внутри ядра (PBX switching Core). Основной функцией станции Asterisk является прозрачное установление соединений между абонентами вне зависимости от тех аппаратных и программных решений, которые они используют.

2) Загрузчик приложений (Application Launcher) обеспечивает запуск приложений, которые поддерживают работоспособность голосовой почты, воспроизведение файлов и просмотр содержимого каталогов.

3) Преобразователь кодеков (Codec Translator) использует набор кодеков для преобразования различных форматов сжатия аудиопотоков между собой, которые незаметны для пользователя. Количество кодеков изменяется в зависимости от потребностей соединений с целью обеспечить наилучший баланс между качеством аудиопотока и используемой полосой канала передачи данных.

4) Планировщик задач и I/O менеджер (Scheduler and I/O Manager) обеспечивает планирование низкоуровневых задач и менеджмент системы для обеспечения оптимальной производительности в любых условиях работы.

5) Модуль детализации вызовов (Call Detailed Records Core) обеспечивает сбор детализированной информации о вызовах и сохраняет записи в базе данных MySQL.

6) Загрузчик динамических модулей (Dynamic Module Loader) обеспечивает запуск динамических модулей любого типа.

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

1) Интерфейс канала (Channel API) управляет типом соединения, которое использует абонент. Это может быть абонент VoIP, абонент ISDN с доступом BRI или PRI, сигнализация Robbed-bit (RBS) или любая другая технология. Динамически загружаемые модули управляют низшим уровнем этих соединений.

2) Интерфейс приложений (Application API) позволяет создавать различные модули для выполнения определенных услуг, например, конференции, пейджинга, просмотра содержимого каталогов, голосовой почты, передачи данных и т.д.

3) Интерфейс кодеков (Codec Translator API) загружает модули кодеков для поддержки различных форматов сжатия аудиопотока, таких как GSM, G.711 (μ-Law, A-Law), G723, G729, iLBC, speex и MP3.

4) Интерфейс формата файлов (File Format API) управляет записью и чтением различных форматов файлов для хранения данных в файловой системе.

Размер системы Asterisk определяется не количеством пользователей или телефонных аппаратов, а количеством вызовов, которые система должна поддерживать одновременно. Для больших установок Asterisk функциональность обычно распределяют между несколькими серверами.

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

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

- максимальное число одновременных соединений, которое система должна будет поддерживать;

- доля трафика в процентном выражении, который потребует интенсивной работы процессора для цифровой обработки сигналов кодеками, использующими алгоритмы сжатия (такими, как G.729 и GSM);

- интенсивность использования конференц-связи;

- эхоподавление;

- логика разработки сценариев маршрутизации вызовов.

Общие характеристики станции Asterisk представлены в табл.1.

Таблица 1 - Общие характеристики IP –АТС Asterisk

Технические характеристики

Значение

Операционная система

GNU/Linux, FreeBSD, Solaris

Количество одновременных соединений

Не ограничено

Тип процессора

CISC

Максимальное число портов

Не ограничено

Протоколы VoIP

H.323, SIP, IAX, MGCP, SCCP, XMPP, UNIStim, Skype, T.38, OSP, DUNDi

Аналоговые сетевые сигнализации

Нет

Цифровые сетевые сигнализации

EDSS1, QSIG, SS#7

Модуль аналоговых абонентских линий

От 4 до 24 портов

Модуль цифровых абонентских линий

От 4 до 24 портов

Модуль ISDN BRI

8 портов

Кодеки VoIP

G.711, G.722, G.723, G.726, G.729, GSM, iLPBC, LPC10, Speex

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

- users.conf – настройка соединений (тип, логин и пароль, адрес, разрешенные кодеки, контекст);

- extensions.conf – программирование плана набора (контексты, номера телефонов и программы обработки вызовов);

- voicemail.conf – настройка голосовой почты (логин, пароль, email);

- confbridge.conf – настройка конференц-связи;

- features.conf – программирование управления соединением (перевод и перехват вызова).

В файле users.conf перечисляются соединения, оконечные устройства, а также соседние АТС. Каждое соединение оформляется в виде отдельной секции. Параметры могут указываться в любой последовательности. Формат секции с примерами приведены в табл. 2.

Кроме этого, с консоли для управления АТС могут быть выполнены следующие команды:

- voicemail reload – перечитать файл voicemail.conf;

- features reload – перечитать файл features.conf;

- core restart now – перезапустить АТС (необходимо для перечитывания файла confbridge.conf);

- sip show peers – показать список подключенных абонентов (если абонент зарегистрирован, то в таблице указан его IP-адрес);

- exit – закрыть консоль Asterisk.

Таблица 2 - Пример оформления соединения в виде отдельной секции

Строка

Обяза-тельное поле

Назначение

[username]

Да

Логин

type = XXX

Да

peer – разрешены только исходящие вызовы; user – разрешены только входящие вызовы; friend – разрешены оба типа вызовов

secret = password

Да

Пароль

host = XXX

Да

IP-адрес – указать адрес абонента; dynamic – разрешить подключение с любого адреса

context = somecontext

Да

контекст абонента

disallow = all

Нет

запретить все кодеки

allow = XXX

Нет

разрешить отдельные кодеки (alaw – G.711A, μlaw – G.711μ, G.729)

qualify = yes

Нет

yes - разрешить АТС отслеживать доступность абонента; no – запретить отслеживание доступности

directmedia = XXX

Нет

yes – разрешить прохождение RTP-трафика независимо от телефонного аппарата SIP; no – запретить

callgroup=X

Нет

Группа вызова, в которую входит абонент

Pickupgroup =X,Y,Z,…

Нет

Список групп вызова, у которых данному абоненту разрешено перехватывать вызов

Конфигурация плана набора номера содержится в одном из самых важных конфигурационных файлов Asterisk - extensions.conf. В нем определяется обработка и маршрутизация входящих и исходящих вызовов. Этот файл управляет поведением всех соединений, проходящих через АТС. Его содержимое разбито на секции, которые представляют собой перечень номеров, доступных для набора определенным абонентам в определенный момент времени. В файле extensions.conf существуют секции [general] и [globals], служащие для определения общих для всех контекстов параметров и переменных.

Шаблон номера, доступного для набора абонентом, называется «экстеншн». Каждый экстеншн – это отдельная программа, состоящая из одной или более команд, выполняемых в соответствии с порядковым номером.

Имя экстеншна может состоять из букв, цифр и символов замещения:

- X – любая цифра от 0 до 9;

- Z – любая цифра от 1 до 9;

- N – любая цифра от 2 до 9;

- [123-6] – любая цифра из указанного диапазона (в данном случае – 1, 2, 3, 4, 5, 6);

- (точка) – один или более любых символов.

Кроме того, системой предусмотрены специальные экстеншны для обработки различных ситуаций:

- a: Вызывается, когда пользователь нажимает '*' во время проигрывания приветствия системы голосовой почты;

- h: Вызывается по завершению вызова;

- i: Вызывается при вызове неизвестного номера телефона;

- o: Расширение оператора, используется для обработки нажатия нуля в системе голосовой почты;

- s: Стартовое расширение в контексте;

- t: Вызывается при наступлении состояния таймаута.

Каждый экстеншн задается в виде набора команд с использованием языка программирования Asterisk. Общий формат команды

Exten =>extension, priority, command,

где extension – имя экстеншна, priority – порядковый номер команды внутри экстеншна, а command – выполняемая команда.

Пример:

[example]

Exten => 70101,1,Dial(SIP/70101)

Exten => 70102,1,Dial(SIP/70102)

Основные команды, используемые в плане набора:

Dial(type/identifier, timeout, options)

В качестве протокола можно указать один из поддерживаемых IP-PBX Asterisk протоколов: SIP, IAX2, ZAP и др.). Если вызываемый абонент имеет телефонный аппарат SIP, подключенный к той же АТС, первый параметр будет иметь вид SIP/phone001. IP-АТС Asterisk поддерживает возможность одновременного вызова нескольких абонентов, в этом случае их нужно указывать подряд через символ ‘&' (без пробелов). Например, при выполнении команды Dial(SIP/70101&SIP/70102) будет произведена попытка одновременно установить два соединения: с локальным абонентом с логином 70101 и абонентом с номером 70102.

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

После изменения файла voicemail.conf необходимо выполнить в консоли Asterisk команду voicemail reload.

Необязательные параметры options определяют поведение при осуществлении вызова. Рассмотрим некоторые из них (табл. 2.3).

Таблица 3 - Значение необязательных параметров Options

Опция

Назначение

m

Воспроизведение мелодии вместо тонов КПВ

T

Вызывающий абонент может перевести вызов

t

Вызываемый абонент может перевести вызов

X

Вызывающий абонент может инициировать запись переговоров

x

Вызываемый абонент может инициировать запись переговоров

Далее приведены дополнительные услуги.