- Asterisk и Windows — друзья или враги?
- Платформа телефонии
- Платформа IT инфраструктуры
- Давайте наметим план:
- Пункты первый и второй. Устанавливаем Asterisk с графическим интерфейсом настройки на Windows:
- Что мы делаем:
- После загрузки:
- Результат установки:
- Пункт третий. Устанавливаем ПО для пользователей телефонии.
- Что нужно для установки программы:
- Резюме:
- Комментарии
- Оставить комментарий
- Freepbx: настройка с нуля
- Freepbx: настройка с нуля
- Установка Asterisk
- Как настроить Asterisk на Ubuntu
- Как установить Asterisk на Windows
- Частые ошибки в установке и настройке Asterisk
- Заключение
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Курс по Asterisk
- Установка FreePBX 15 на VMware
- FreePBX 13 настройка c нуля
- Что такое CEL Channel Event Logging на Asterisk?
- Русификация FusionPBX
- Перехват звонка: call pickup в Asterisk
- Настройка Digium TE122 для Asterisk
- База Asteriskcdrdb и как с ней работать?
- Asterisk — настройка с нуля
- Теория
- Создаем и редактируем необходимые файлы
Asterisk и Windows — друзья или враги?
Платформа телефонии
Asterisk — это самая популярная система телефонии во всем мире. Популярна она благодаря бесконечному количеству функций. Усиливает интерес к этой платформе телефонии её бесплатность.
Перечислять все прелести Asterisk я не буду. Вы и без меня все прекрасно знаете. Давайте поговорим о недостатках.
Если Вы читаете эту статью, значит Вы уже знаете самый главный недостаток Asterisk. Я имею в виду тот факт, что Asterisk не рассчитан на работу под Windows. Ну совершенно никак. Asterisk работает только под Linux и ему подобных операционных системах на подобии FreeBSD.
Платформа IT инфраструктуры
Обстановка в подавляющем большинстве компаний нашей с вами родины сложилась следующим образом: Везде Windows. На компьютерах Windows. На серверах Windows. Ноутбуки продаются с предустановленной Windows. Современные недорогие планшеты и те — на Windows. Все полезные и необходимые программы для бизнеса написаны для работы в Windows.
Хорошо это или плохо? Речь сейчас не об этом.
Нужно работать. Выполнять поставленные задачи. Бизнес должен развиваться и зарабатывать деньги. А в крестовый поход против Microsoft мы сегодня не пойдем.
Сегодня я расскажу Вам что нужно сделать чтобы развернуть телефонию в компании без погружения в мир Linux и черных экранов с множеством непонятных команд.
Давайте наметим план:
- Нам нужна система телефонии Asterisk,
- Мы хотим настраивать Asterisk с помощью графического интерфейса с помощью мыши,
- Нам нужно раздать пользователям (Директору, секретарю, начальникам отделов) программу для работы со статистикой. В ней должны быть все надписи на Русском языке. И там они должны легко искать звонки по номеру, сотруднику, и строить графики по уровню телефонного обслуживания.
Пункты первый и второй. Устанавливаем Asterisk с графическим интерфейсом настройки на Windows:
Что мы делаем:
- Качаем бесплатную программу VirtualBox по этой ссылке,
- Качаем готовый образ Asterisk для VirtualBox по этой ссылке.
После загрузки:
- Инсталлируем VirtualBox. Всё время жмем далее;
- В окне программы VirtualBox нажимаем «Файл» > «Импорт конфигураций». Указываем путь до образа Asterisk, который Вы только что скачали;
- После импорта следует запустить виртуальную машину и приступать к настройке телефонии в офисе.
Результат установки:
Вы получили систему телефонии Asterisk с WEB интерфейсом FreePBX. Данный образ Asterisk работает под любой версией Windows.
Логины и пароли для готового образа FreePBX:
Web: admin / helloasterisk
CONSOLE & SSH: root / helloasterisk
Видео по установке:
Пункт третий. Устанавливаем ПО для пользователей телефонии.
Как известно, FreePBX предназначен для администрирования системы телефонии. Его использует системный администратор для настройки. Директор и секретарь, а также другие руководители каждый день работают со статистикой звонков и записями разговоров. Для этих целей FreePBX им не подойдет. Пользователь в IT не разбирается. Часто это неуверенный пользователь ПК. Поэтому ему нужна русифицированная интуитивно понятная программа.
По моему мнению, наиболее соответствует этим критериям программа HelloAsterisk. Программа имеет бесплатную версию. В этой бесплатной версии огромное количество нужных функций. Есть и платные функции. Описание можно найти на официальном сайте программы.
Я приведу видео обзор одной из бесплатных функций HelloAsterisk:
Что нужно для установки программы:
- Зайти на сайт: ссылка
- Зарегистрироваться,
- Скачать программу на странице загрузки ссылка,
- Следовать инструкциям по установке и настройке программы. Инструкции приведены на официальном сайте HelloAsterisk ссылка.
Смотрите также: Продуманная настройка логики входящей связи:
Резюме:
Выводы, конечно же, делать Вам. Я лишь могу высказать свое мнение.
Лично для себя я в очередной раз отметил, что на сегодняшний день Asterisk живет в тесном соседстве с Windows. Соседство это за 10 лет моих наблюдений не изменилось. Так давайте же получать максимум отдачи от всего ПО, которое нас окружает!
Если у Вас по каким-то причинам не хватает времени разобраться во всем этом хозяйстве, то команда БОЛЬШЕ ЧЕМ АТС всегда готова помочь Вам в этом.
Комментарии
Нет комментариев к данной статье.
Оставить комментарий
Для того, чтобы оставить свой комментарий, необходимо авторизоваться на сайте через любую социальную сеть.
Freepbx: настройка с нуля
Настройка Asterisk с нуля не займет очень много времени даже у непрофессионала. Asterisk – программное обеспечение телефонии, которое превосходит по всем функциям другие серверы для осуществления ATC.
Лицензия Asterisk свободная, что позволяет пользоваться этой программой многим людям.
С каждым годом Астериск все больше и больше развивается, благодаря увеличению ресурсов.
Программа необходима с целью формирования АТС и серверов телефонии. У нее много различных функций, Asterisk может поддерживать VoIP-протоколы и имеет возможность распределения звонков, работы автоответчиков, отправки текстовых сообщений, видео, есть голосовое меню и почта. В статье будет рассмотрена установка с нуля.
Freepbx: настройка с нуля
Интерфейс Freepbhx нужен для более простой настройки Asterisk и управления VoIP-телефонией. Главное преимущество – человеку не надо исправлять самому все текстовые файлы. Эта программа помогает переводить язык программы в виде текста, который поймет пользователь. Для настройки Freepbhx надо установить программу на компьютер.
Для того чтобы установить интерфейс, требуется:
- Скачать FreePBX 13 Distro. Выбирать версию, опираясь на программное обеспечение компьютера.
- Записать образ системы на диск, используя утилиты.
- Изменить параметры загрузки системы.
- С этого диска загрузить машину.
- Выбрать версию PBX.
- Выбрать режим Full install
- Нажать ВК.
- Придумать и установить пароль.
- Перезагрузить компьютер и заходить в аккаунт как пользователь с root-правами.
Установка Asterisk
Установка и настройка окажется простой, если соблюдать пошагово инструкцию.
Если нужна только VoIP-сеть, то можно установить только asterisk. Но лучшим вариантом станет установка трех пакетов.
Драйвер dahdi используется при цифровом оборудовании. Для обмена данными с периферийным оборудованием нужен драйвер. Принцип настройкиAsterisk заключается в следующем:
сервер Asterisk chan_dahdi Драйвер dahdi Карта Телефон/Коммутатор/Телефонная сеть
Библиотека libpri необходима для использования TDM-интерфейсов ISDN: PRI (PrimaryRateInterface) и BRI (BasicRateInterface). Libri делится на каналы по времени – Time Division Multiplexing.
Можно рассмотреть установку Asterisk из исходников. Такой способ установки дает возможность установить Asterisk с нуля.
- Версия ядра системы должна быть не ниже 2.6.
- Обязательное наличие файлов заголовков в системе.
- Присутствие компилятора gccctermcap и openssl.
Проверив все эти моменты, можно приступать к установке. Для этого надо перейти на сайте в Download и загрузить такие архивы:
После этого скопировать файлы на сервер и разместить их в папке «/usr/src/.».
Далее надо запустить терминал в сервере.
Затем распаковать каждый архив командой «tar-xzf tar.gz» .
Потом перейти в каждую папку при помощи команды «cd » .
Закончив, надо выполнить определенные команды для настройки:
- «./configure» (это подготовит программу к сборке)
- «make» (команда для сборки)
- «makeinstall» (установка программы)
Для установки необходимых пакетов не нужно прилагать особых усилий. Астериск обладает автоматизацией пакетов, поэтому для этого нужен скрипт install_prereq, который можно найти в подкаталоге contrib/scripts, где есть исходные коды.
Нужно зайти в этот подкаталог и запустить скрипт. С помощью него необходимые пакеты будут установлены.
Таким образом, при соблюдении всех действий Asterisk для чайников будет готов.
Как настроить Asterisk на Ubuntu
Соблюдая пошаговую инструкцию, можно просто установить Asterisk на Ubuntu:
- Надо скачать на Ubuntu.
- Установить пакеты для корректной сборки DAHDI и LibPRI.
- Загрузить исходник (необходимо ввести «wget…» вместе со ссылкой на загрузку.
- Распаковать программу при помощи команды «tarzxvf».
- Зайти в директорию с Asterisk.
- Ввести «contrib/scripts/install_prereqinstall», чтобы загрузить утилиты из Asterisk.
- Для запуска программы надо написать эту команду, добавив «-unpackaged».
- Повторно зайти в каталог с программой.
- Заставка появится при вводе «. /configure».
- Повторить все то же самое, что делают при запуске Asterisk.
- Открыть конфигурационный файл: vi /etc/asterisk/asterisk.conf.
- Создать учетную запись asterisk в системе: useraddasterisk–m.
- Задать права: chown -R asterisk:asterisk /var/log/asterisk.
- Проверить конфигурацию: asterisk –c.
Запуск Астериск из скриптов загрузки:
[asterisk@new asterisk-1.0.1]$ cd channels/h323
[asterisk@new h323]$ make
g++ -g -c -fno-rtti -o ast_h323.o -march=i686 -DPBYTE_ORDER=PLITTLE_ENDIAN -DN
DDEBUG_THREADS -pipe -Wall -fPIC -DP_LINUX -D_REENTRANT -D_GNU_SOURCE -DP_HAS_S
DP_PTHREADS -DPHAS_TEMPLATES -DPTRACING -DP_USE_PRAGMA -I../../include
-I/home/asterisk/openh323/include -Wno-missing-prototypes -Wno-missing-declarations ast_h323.cpp
chan_h323.h:31: warning: `sockaddr_inbindaddr’ defined but not used arcr libchanh323.a ast_h323.o
Как установить Asterisk на Windows
- Скачать VirtualBox.
- Скачать Asterisk для VirtualBox.
- Установить VirtualBox.
- Нажать везде «Согласен».
- Нажать «Файл», а потом «Импорт конфигураций».
- Запустить машину и провести остальные настройки.
Чтобы скачать пакеты голосовых сообщений, надо:
- Перейти в папку «contrib/scripts/» с помощью команды «cd».
- Открыть «get_mp3_source.sh».
- Ввести «makeinstall».
- Открыть консоль Asterisk.
- Сделать файлы при помощи «makesamples».
- Запустить функцию «service asterisk start».
Основным конфигурационным файлом является asterisk.conf. Отсюда берется информация о местоположении файлов в системе.
Файл конфигурации, который пригодится для набора некоторых команд:
- conf (голосовые почтовые ящики при команде VoiceMail).
- conf (конфедерация, применяемая установкой Festival).
- conf (структура, необходимая для указания AlarmReceiver).
- conf (настройка тонов с указанием Playtones).
- conf (конфигурация, которая используется командой DUNDiLookup).
- conf (конфигурация для того, чтобы установить очередь звонков и их параметров для команды Queue).
Файлы конфигурации каналов Asterisk:
- conf (канал IАX2).
- conf (канал SIP).
- conf (канал DАHDi).
Частые ошибки в установке и настройке Asterisk
- Не отключены анонимные звонки и использован контекст для плана нумерации.
Если не планируется принимать анонимные звонки, надо их отключить.
- Отсутствие библиотеки sqlite или ее компонентов для разработчиков для сборки программ.
Чтобы решить эту проблему, надо использовать CentOS с пакетом sqlite-devel: yum -y install sqlite-devel
- Не получается зарегистрировать Asterisk на сервере ru.
Для решения этой проблемы надо проверить правильность ввода пароля, SIP ID. Также необходимо проверить, как сотрудник создан в «Личном кабинете»: правильно или нет.
- Отклонение входящего вызова Астериксом.
Надо проверить, находится ли пользователь в регистрации. Необходимо ввести команду sipshowregistry в консоле Астериск.
- Прохождение звука через одну сторону.
Нужно выбрать либо поддержку nat в Asterisk, либо поддержку SIP. Второй вариант решения проблемы – установка directmedia=nonat. Еще одним способом станет установка debug в Asterisk, с помощью которого можно будет отслеживать все запросы и аудио-трафик.
- Не получается исходящему вызову пройти.
Для этого надо написать: exten => _XXXXXX,1,Dial(DAHDI/g1/$
Изменив номер, можно решить проблему.
Заключение
Настройка Asterisk с нуля не окажется трудной как специалисту, так и новичку. Asterisk является отличным решением компьютерной телефонии.
Сервис работает на многих операционных системах, которые можно подобрать под версию ядра системы пользователя. Астериск обладает множеством функций, таких как конференц-связь, голосовая почта, Calldetailrecord и другие.
Астериск доступен в Ubuntu, но его также можно установить и на Windows.
Для удобства можно использовать Freepbx, так как это функциональный интерфейс для настройки Астериска. Он переводит текст программы на понятный язык, что облегчает задачу. С помощью данной программы можно легко менять количество абонентов, так как платформа очень гибкая и многое позволяет.
Не надо ставить лишние пробелы и ошибаться в написании команд. Совсем незаметные ошибки могут не допустить работу программы.
Разобравшись в этой системе, можно получить много новых возможностей, которые не были доступны всем раньше.
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Курс по Asterisk
Установка FreePBX 15 на VMware
FreePBX 13 настройка c нуля
Что такое CEL Channel Event Logging на Asterisk?
Русификация FusionPBX
Перехват звонка: call pickup в Asterisk
Настройка Digium TE122 для Asterisk
База Asteriskcdrdb и как с ней работать?
Еженедельный дайджест
Asterisk — настройка с нуля
21 минута чтения
На просторах Интернет можно найти много инструкций по настройке Asterisk с использованием графического интерфейса FreePBX. И они помогают настраивать и управлять АТС в большинстве случаев. Но гораздо больше возможностей дает настройка «чистого» Asterisk.
Обучайся в Merion Academy
Пройди курс по Asterisk
Начать
В статье мы сделаем базовую настройку Asterisk через конфигурационные файлы. Предполагается, что у нас уже установлена и первоначально настроена ОС, скачены и установлены модули dahdi, libpri, iax2, необходимые голосовые файлы и кодеки и проинсталлирован Asterisk.
Если вы еще не ничего не установили, то посмотрите в нашей статье как установить Asterisk на CentOS 7
А еще вам понадобится установить sngrep для трассировки и отладки SIP-сообщений. Погнали?
Теория
Итак, приступаем к внедрению Asterisk. Структура используемых Астериском директорий следующая:
- /usr/lib64/asterisk/modules – тут находятся загружаемые модули;
- /var/log/asterisk – тут находятся лог-файлы, в том числе и лог звонков (если не настроено другое);
- /var/spool/asterisk – тут находятся подпапки, в которых находятся бэкапы, записи разговоров, голосовая почта, факсы и так далее;
- /var/lib/asterisk – тут находятся подпапки, в которых находятся звуковые файлы для музыки на удержании, звуковые файлы для выбранных языков (например для проигрывания голосовых сообщений в IVR), записанные голосовые сообщения для приветствия и так далее.
Конфигурационные файлы находятся в папке /etc/asterisk. Для работы каждого модуля Asterisk необходим конфигурационный файл. Эти файлы (с расширением .conf), содержат определения каналов, описывают различные внутренние сервисы, определяют местоположения других модулей, устанавливают связь с диалпланом. Необязательно настраивать все файлы. Требуют настройки только те, которые необходимы для вашей конфигурации.
Основные конфигурационные файлы:
- asterisk.conf – определяет глобальные параметры, директории и опции для запуска Asterisk;
- cdr.conf – определяет настройки для записи параметров вызовов в файл или базу данных;
- sip.conf – определяет настройки для использования SIP-протокола (как общие, так и параметры для регистрации провайдеров, внутренних пользователей и так далее);
- rtp.conf – определяет порты для голоса (RTP);
- iax.conf – определяет настройки для использования IAX-протокола (как общие, так и параметры для регистрации провайдеров, внутренних пользователей и так далее);
- extensions.conf – основной файл, в котором описывается весь диалплан, то есть правила обработки всех вызовов;
- features.conf – описывает дополнительные функции (переадресации, парковка вызова, включение записи по запросу и так далее);
- logger.conf – определяет тип и детальность сообщений, записываемых в файлы журналов;
- modules.conf – определяет какие модули будут или наоборот не будут загружаться при запуске Asterisk;
- musiconhold.conf – используется для конфигурации разных классов музыки, используемых в приложениях музыки во время ожидания, и их местоположений;
Напомним, что это только часть конфигурационных файлов. Необходимые файлы можно добавлять в любой момент по мере необходимости. Примеры и содержание таких файлов можно найти в архиве по кнопке ниже:
Сразу после установки asterisk, если не была выбрана установка базовой конфигурации, в ней нет ни одного файла.
Для подключения к asterisk в режиме командной строки необходимо ввести
- r – подключение к уже запущенному процессу;
- vvvvv – уровень логирования, то есть вывода информации (от слова verbose — v). Чем больше v выставляем, тем более детальная информация будет выдаваться в командную строку;
Создаем и редактируем необходимые файлы
Начнем с файла asterisk.conf:
- [directories](!) – указываем расположение необходимых директорий. Знаком (!) указывается признак шаблона. В шаблоне указываются общие настройки, на которые можно ссылаться дальше.
- [options] – указываем необходимые опции, одна из необходимых maxcalls указывает на количество одновременных вызовов, разрешенных на Asterisk;
- transmit_silence_during_record = yes — передавать тишину SLINEAR во время записи канала;
- languageprefix = yes | no — Должен ли код языка быть последним или первым компонентом имени звукового файла? Если выключен, поиск звуковых файлов ведется в формате / / Если включен, поиск ведется в формате / / ;
- execincludes = yes | no — Разрешить записи #exec в конфигурационных файлах;
- hideconnect = yes | no — Показывать сообщение о подключении удаленных консолей;
- dontwarn = yes | no — Отключить предупреждения (warning messages);
- debug = no — Отладка: No или значение (1-4);
- maxcalls = 10 — Максимальное число одновременных вызовов;
Приступаем к файлу cdr.conf. Комментарии к опциям в конфиге:
Закончили. Теперь файл features.conf:
Теперь конфигурируем RTP в файле rtp.conf
Музыка на ожидании в здании. Открываем файл musiconhold.conf
Следом открываем файл logger.conf:
Для удобства работы рекомендуется ограничивать уровень детализации сообщений, выводимых в консоль, но для вывода в файл выставить максимальный уровень детализации.
И напоследок — файл modules.conf. Есть 2 варианта: либо читаем все модули и указываем те, которые не надо читать:
Либо указываем конкретные модули, которые необходимо прочитать и запрещаем чтение всех. В этом случае для удобства лучше поделить модули на секции. Ниже приведена часть такого варианта:
В данной статье мы используем первый вариант. На этом с настройкой основных файлов закончим. В дальнейшем по мере необходимости в них можно вносить изменения. Все последующие настройки мы будем вносить в файлы sip.conf и extensions.conf. Погнали к созданию и регистрации внутренних абонентов.
Создание и регистрация внутренних абонентов
В sip.conf указываем сначала общие параметры SIP для Asterisk:
Так же в этой секции можно указать поддерживается ли видео, время регистрации, перечислить локальные сети, указываем внешний IP-адрес в случае использования NAT и так далее.
В случае, когда у нас есть разные группы абонентов (например, есть несколько отделов, подразделений либо другие какие-то признаки группировки абонентов или абонентов большое количество), рекомендуется использовать шаблоны, в которые можно выносить обобщенные настройки.
Имя шаблона берется в скобки [ ] и следом указывается (!). В шаблоне можно указать контекст для этих абонентов, используемые кодеки, разрешенные/запрещенные сети для регистрации этих абонентов, использование NAT и так далее. Пример шаблона приведен ниже:
И таких шаблонов можно может быть несколько. Теперь для создания записи для регистрации абонентов нам достаточно указать только отличительные параметры, такие как внутренний номер, имя абонента, пароль для регистрации и так далее.
В результате, по команде sip show peers мы видим зарегистрированных пользователей
Абоненты зарегистрировались, но позвонить даже между собой они пока не могут. Для того, чтобы они могли совершать и принимать звонки необходимо настроить маршрутизацию (или диалплан). Делать это мы будем в файле extensions.conf, там тоже есть своя структура. И тут мы снова немного погружаемся в теорию:
Диалплан состоит из следующих основных элементов:
Контекст – часть (раздел) диалплана, описывающая алгоритм обработки вызова и изолированная от остального диалплана. Содержит дополнительные номера (extension). Дополнительные номера, определенные в одном контексте, полностью изолированы от добавочных номеров в другом контексте, если это не разрешено специально. Так же с помощью контекстов можно ограничивать доступ к различным функциям (например к междугородним или международным звонкам). Имя контекста заключается в квадратные скобки []. Рекомендуется создавать разные контексты для внутренних абонентов и для транков.
В начале диалплана находятся два специальных контекста, [general] и [globals]
- [general] – содержит список общих настроек диалплана;
- [globals] – содержит глобальные переменные;
Эти два контекста являются специальными. Контекст является одним из обязательных параметров как для абонента, так и для транка.
Asterisk определяет контекст для обработки по тому принципу откуда пришел вызов, а не куда он пришел, то есть если пришел вызов на мобильный номер от абонента, то применяться будет тот контекст, который прописан у конкретного абонента, а не указанный в транке.
Добавочные номера – это широкое понятие, которое определяет уникальные последовательности шагов (каждый шаг включает приложение), которые Asterisk будет применять к вызову по этой линии. В каждом контексте может быть задано столько добавочных номеров, сколько требуется. При вызове конкретного добавочного номера (входящим или внутренним звонком) Asterisk будет выполнять шаги, определенные для этого добавочного номера. Поэтому именно добавочные номера определяют, что происходит со звонками при их обработке соответственно диалплану.
Полный добавочный номер состоит из трех компонентов:
- Имени (или номера). В качестве имени может быть использованы любые комбинации цифр и букв;
- Приоритета (каждый добавочный номер может включать множество шагов; порядковый номер шага называется его приоритетом);
- Приложения (или команды), которое выполняет некоторое действие над вызовом;
Эти три компонента разделяются запятыми:
Есть ещё зарезервированные добавочные номера:
- s — когда в контекст поступают вызовы, для которых не указан конкретный добавочный номер, они передаются на добавочный номер s. (s — сокращение от start (начало), поскольку именно здесь начнется обработка вызова, если не передана информация о добавочном номере.;
- i — когда абонент нажимает не ту кнопку (не существующий добавочный номер), вызов направляется на добавочный номер i;
- t — если абонент слишком долго не нажимает кнопку после запуска приложения WaitExten(), вызовы направляются на добавочный номер t (время ожидания по умолчанию — 10 с);
- h — экстеншен обрабатываемый при завершении вызова. После того как медиаканал закрылся;
Иногда можно встретить использование same вместо exten. Это применяют в основном с автоматическим выставлением приоритета, то есть same => n и означает «тоже самое, продолжение предыдущего»
Приоритеты – последовательность выполнения приложений. Каждый приоритет пронумерован последовательно, начиная с 1, и выполняет одно определенное приложение. В Asterisk есть еще приоритет n, что означает «следующий». Каждый раз, когда Asterisk встречает приоритет n, она берет номер предыдущего приоритета и добавляет 1. Это упрощает внесение изменений в диалплан, поскольку теперь не надо изменять номера всех шагов.
Приложения – выполняет определенное действие в конкретном дополнительном номере (например воспроизведение звука, прием тонального ввода, вызов канала, разрыв соединения и так далее).
Для выполнения некоторых приложений, таких как Answer() и Hangup(), не требуется никаких дополнительных инструкций. Некоторым приложениям необходима дополнительная информация. Эти данные, называемые аргументами, могут передаваться в приложения, чтобы оказывать влияние на то, как они выполняют свои действия. Чтобы передать аргументы в приложение их указывают через запятую в круглых скобках, следующих за именем приложения.
Для внесения комментариев в файл extensions.conf используют ; — вы уже могли об этом догадаться, судя по нашим комментариям прямо в конфигах 🙂
Таким образом можно как делать пометки для себя, так и делать невыполнимыми строки конфигурации (например, во время отладки)
Теперь давайте вернемся к нашим созданным абонентам. Создадим контекст, который указан у абонентов (context=from-internal)
В нем мы прописали что при наборе номера (ИМЯ), с приоритетом 1 выполнить приложение Dial c параметрами ПРОТОКОЛ/НОМЕР. Когда номеров немного, то можно конечно и так описывать. Но более правильно и красиво сделать тоже самое, но с использованием «маски»:
То есть при наборе любого номера из диапазона 10хх (шаблон показан нижним подчеркиванием) выполнить вызов с приоритетом 1 через приложение Dial с параметрами ПРОТОКОЛ/НАБРАННЫЙ_НОМЕР, время вызова 60 секунд и можно использовать перевод звонка (transfer).
Шаблон номера — это уникальный набор цифр, который определяет использование этого номера. Если набранный номер соответствует этому шаблону, то последующие номера не рассматриваются. Формат заполнения шаблона:
- X — совпадение любой цифры от 0 — 9;
- Z — любая цифра от 1 до 9;
- N — совпадение любой цифры от 2 — 9;
- 1237 — соответствует любым цифрам или буквам и скобках (в этом примере,1,2,3,7,8,9);
Перечитываем диалплан в консоли Asterisk командой dialplan reload и видим выполнение вызова.
Таким образом мы можем придумать и реализовать практически любой диалплан. Например для запрета вызовов на международную связь достаточно прописать 3 строчки:
То есть при наборе 810 будет проиграно сообщение destination-closed (если оно было загружено в Asterisk) и будет отправлен сигнал отбоя.
Создание и регистрация транков
Ну, начнем с того, что IP-транки, используемые в Asterisk, бывают 2-х видов – SIP и IAX.
SIP-транки в основном используются для подключения провайдеров, а IAX-транки для подключения других Asterisk. Транки могут быть с регистрацией (то есть когда провайдер выдает логин, пароль и адрес или домен для регистрации у него) и без регистрации (то есть когда подключение идет по IP-адресу без логина и пароля). В случае с регистрацией в файле sip.conf необходимо сразу после секции [general] указать строку регистрации в формате:
- SIP-ПРОВАЙДЕР — указывается или IP-адрес провайдера или его домен;
- ЛОГИН:ПАРОЛЬ — выдаются провайдером для подключения;
- НОМЕР — указывается городской номер, выданный провайдером для совершения звонков;
Рассмотрим создание SIP-транка с регистрацией. Опять же если у нас несколько (до 3-5) таких транков, то можно их описать каждый отдельно. А если из больше или в дальнейшем планируется увеличить их количество, то можно использовать шаблон для подключения к оператору.
Дальше указываем строки для регистрации у данных операторов:
Перечитываем файл sip.conf и проверяем регистрации:
В случае подключения транка без регистрации можно использовать тот же шаблон, а в настройках транка указать изменяемые параметры
Перечитываем файл sip.conf и проверяем регистрации:
Теперь рассмотрим создание IAX-транка. Для настройки IAX-транков используется файл iax.conf, который содержит всю информацию, необходимую Asterisk для создания и управления каналами, работающими по протоколу IAX. Структура его примерно такая же, как и у sip.conf:
Сохраняем файл iax.conf, перечитываем и проверяем регистрацию командой iax2 show peers:
Если есть абоненты, работающие по протоколу IAX, то их регистрацию описываем тоже в этом же файле аналогично SIP-регистрации.
Итак, сейчас мы имеем зарегистрированных абонентов, которые могут звонить друг другу, и зарегистрированные транки. Внутренних абонентов мы можем группировать по отделам:
Можем настраивать различные функции, запускать различные команды (в том числе и для выполнения через ОС), настраивать запись и прослушивание разговоров и так далее:
Для совершения звонков через созданные и зарегистрированные транки SIP и IAX: Допустим через транк IAX у нас подключен другой Asterisk с внутренней нумерацией, начинающейся с 1, 2, 3. И для вызова этих абонентов мы будем использовать префикс (код выхода на маршрут) 2. Тогда строки настройки будут следующие:
То есть при наборе, начинающемся с 21-23, будет осуществлен вызов через транк msk-spb по протоколу IAX набранного номера, предварительно «отрезав» 1 (первую) набранную цифру. Если в течение 30 секунд не будет получен ответ, то вызов будет прекращен.
Для выхода в город мы используем транк с оператором-1 и префикс выхода будем использовать 9
Тут важно понимать, что все, что мы реализовываем для внутренних абонентов, должно быть описано в соответствующем контексте.
Теперь перейдем к транкам и входящим звонкам. Соответственно для того, чтобы принимать входящие вызовы, необходимо прописать маршрутизацию уже в контексте транка (context=from-trunk или context = from-iax)
Для возможности через транк осуществлять вызов нашего внутреннего абонента (например через транк со встречной АТС) необходимо в контекст транка вставить exten => _10XX,1,Dial(SIP/$
Давайте рассмотрим реализацию обработки входящего вызова от оператора (вызов на городской номер) через создание меню IVR и реализуем ещё определение рабочего и нерабочего времени. Схема обработки входящего вызова следующая:
Рабочее время у нас определено с 9:00 до 19:00 и с понедельника по пятницу. При поступлении звонка в нерабочее время после сообщения с приветствием (01-hello) проигрывается сообщение с указанием рабочего времени (07-working-hours). При поступлении звонка в рабочее время (проверка осуществляется в строке GoToIfTime(09:00-19:00,mon-fri)) после приветствия осуществляется переход в другой контекст ([working-time]), где предлагается выбрать необходимый пункт меню (0 – вызов секретаря, 1 – вызов на группу тех. поддержки, 2 – переход в другое меню выбора (GoTo(ivr-2,s,1)), в котором по такому же принципу осуществляется выбор. В каждом меню реализован донабор внутренних номеров (exten => _1xхx,1,NoOp), обработка неправильного набора номера (exten => i,1,NoOp), обработка в случае, что если ничего не выбрали (exten => t,1,NoOp), вызов переводится на секретаря.
Естественно необходимо загрузить все используемые голосовые файлы в /var/lib/asterisk/sound/ru в случае использования русского языка. Тут давайте немного по-подробнее.
Как мы уже указывали выше в системе мы определили какой основной язык у нас будет использоваться для голосовых файлов (в файле sip.conf параметр language = ru). Это значит, что Asterisk будет искать имена файлов, которые мы указываем, например, в меню ivr в папке /var/lib/asterisk/sound/ru (смотрим обозначения директорий при запуске asterisk в начале статьи). Если бы мы использовали в качестве основного языка английский, то папка была бы /var/lib/asterisk/sound/en. В каждой из этих папок находятся голосовые файлы выбранных языков и в выбранных форматах, указанных при компилировании asterisk. Если мы хотим записать свои сообщения (персональные приветствия, необходимые объявления, произносимые в создаваемых меню ivr и так далее), нам необходимо положить эти файлы в папку с соответствующим языком. Сами файлы при этом можно записать любой звукозаписывающей программой (хоть программой Звукозапись, входящей в стандартный дистрибутив любой версии Windows) и сохранить в формате wav (несжатый голос, 8кГц, 16 Бит, Моно)
Тут главное не перепутать имена файлов, находящихся в папке с голосовыми сообщениями, с именами, указанными в ivr меню. при этом в ivr меню имена указываются без расширения. Сам листинг приведен ниже.
После сохранения файла extensions.conf перечитываем диалплан в консоли (dialplan reload) и проверяем. На этом закончим с примерами.
Конфигурируя Asterisk через конфигурационные файлы, мы получаем возможность реализовать практически любую логику работы, проводить интеграции со сторонними сервисами, запускать и выполнять скрипты на уровне ОС и так далее.