Современный ритм жизни не мыслим без создания чёткой и настроенной системы коммуникации между представителями различных сфер производства, услуг, да и любого бизнеса. Обеспечение телефонной поддержки — один из важных этапов в создании обратной связи или консультативных услуг. Проект Asterisk представляет собой оптимальное решение для развертывания компьютерной телефонии.
Так что же такое Asterisk?
Если просто, то Asterisk — это классическая АТС, обладающая большим набором функций, плагинов, модулей и расширений, способных увеличить спектр возможностей. Программный комплекс распространяется по лицензии открытого ПО, что позволяет многих свободным разработчикам-энтузиастам поддерживать и развивать проект.
Операционная система не имеет значения для полноценного функционирования комплекса, так как продукт является кроссплатформенным. Гибкость Asterisk заключается в том, что она имеет возможность создавать собственные модули на основе встроенного языка.
Система поддерживает многие известные протоколы, например, SIP, MGCP, SCCP.
У Asterisk также имеется свой собственный протокол IAX, позволяющий обмениваться информацией между серверами одной системы.
Принципы работы
Какого-то особого оборудования для работы Asterisk не требуется. Все известные устройства без каких-либо проблем стыкуются с системой. В некоторых случаях имеет смысл использовать фирменное оборудование от компании Digium, создателей системы.
Все функционирование системы происходит за счёт чтения из конфигурационных файлов. Самый главный из них — sip.conf. В его недрах заключены сведения о работе протокола SIP, настройках NAT и других ключевых функций.
По умолчанию сразу готов к работе и допускает использование Asterisk в полном его функционале. Однако должны быть заполнены данные об учётных записях. В sip.conf имеется три разновидности:
- user;
- peer;
- friend.
Последняя включает в себя две предыдущих, поэтому многие специалисты практически всегда используют именно её.
CLI команды Asterisk
Для управления и анализа работы системы используется специальный интерфейс командной строки. Войти в него можно с помощью rasterisk. Такой же эффект даст команда asterisk -rvvv. Ключ -rvvv нужен для изменения уровня логирования.
Для начала стоит рассмотреть общие команды CLI Asterisk:
- sip show peers - асширенная информация о всех абонентах системы, их номерах, ip адресах, пингах и мн. др.;
- sip show registry - показывает все имеющиеся регистрации SIP;
- sip reload - команда используется после того как были внесены определенные изменения в конфигурационный файл sip.conf. По сути, она производит перезагрузку модуля;
- sip show channels - показывает активные в данный момент каналы с информацией о пользователях, идентификаторы звонков и другую;
- sip show settings - отображает все глобальные настройки SIP;
- sip set debug - включает режим отладки. Можно указать конкретный адрес или пира;
- dialplan show - отобразит используемый диалплан;
- dialplan reload - выполнит его перезагрузку;
- core show codecs - выведет информацию о всех установленных в систему Asterisk кодеках;
- core restart now - произведёт незамедлительную перезагрузку Asterisk;
- core show help - список применяемых в Asterisk команд.
Следующие команды используются реже, но они также важны и могут понадобиться при настройке и анализе:
- keys show - отображение всех RSA ключей;
- keys init - задание пароля для отдельного ключа RSA;
- indication show - отображение перечня индикаторов и стран;
- http show status - выводит статус HTTP сервера;
- database showkey - отображает сведения из базы данных по ключу;
- database del - удаляет ключ и значения из БД;
- core show threads - отображает сведения о запущенных приложениях;
- core show function - показывает сведения о специальных функциях текущего диалплана.
AMI - команды Asterisk
Для управления системой из внешних приложений был придуман специальный интерфейс. Называется он AMI. И происходит этот процесс способом ввода специальных Asterisk AMI команд. Передаются они по протоколу TCP. Это очень удобный механизм для удалённого управления системой из различных программных решений.
Вкратце расскажем: между клиентским приложением и сервером устанавливается соединение, при помощи команд Asterisk происходит изменение настроек. Для этого ему передаётся строка, которая состоит из следующих элементов:
- key - ключевое слово, которое содержит описание для информации в поступившей строке;
- value - значение ключа.
Для того чтобы появилась возможность отправлять серверу Asterisk команды, нужно к нему сначала подключиться. После того как соединение будет установлено, можно посылать пакеты. Они могут быть переданы в любом порядке. В ключе должен быть указано одно из следующих слов: Action, Event, Response. Теперь немного подробней о них:
- Action. После того как сервер получит данный тип пакета, будет произведено какое-либо действие. На один пакет — одно действие.
- Response. Здесь заключается ответ сервера после выполненного действия.
- Event. Информация о событии, произошедшем на сервере.
Response может принимать несколько значений, в зависимости от того, какое действие выполнил сервер. Например, успешное завершение будет инициироваться словом Success, ошибка — Error, Follows — сведения о реакции сервера будут переданы в следующих пакетах.
Использование и примеры
Чтобы понять, как использовать команды Asterisk, нужно рассмотреть несколько примеров.
Action: login Username: admin Secret: secret12
В этой строке передается пакет Action, содержащий имя пользователя с паролем. Ключевое слово login означает, что нужно авторизоваться в системе с указанными параметрами. В ответ сервер может прислать нечто вроде этого: Response: Success Message: Authentification accepted.
Данная строка говорит о том, что операция прошла успешно.
Отключение от Asterisk можно выполнить, передав команду Action: logoff. В ответе придет сообщение с прощанием.
Следующий пример покажет, как с помощью команд Asterisk и AMI можно совершить вызов: Action: Originate Channel: SIP/2001 Context: incoming Exten: 2001 Priority: 1 Callerid: 2001 Variable: ANSWER = 1 Variable: _ACC=1.
В команде передаются данные о пользователе, совершающем звонок. Это отражается в Callerid и Channel.
На самом деле через AMI можно реализовать множество различных операций и функций. Ознакомиться с полным перечнем можно в официальном руководстве на сайте производителя.
Заключение
Использование команд консоли Asterisk придаёт гибкость и универсальность системе. А значит, что можно применять её удалённо. При этом есть возможность сохранить весь функционал комплекса.
Помимо всего прочего, компания разработчик имеет программное решение и для тех пользователей, которые недолюбливают командную строку. Оно обладает удобным графическим интерфейсом и имеет все необходимые функции.
Для некоторых решений сторонние разработчики используют веб-версию программы. Она не требует установки на компьютер, но при этом позволяет полноценно применять систему Asterisk. Для её работы понадобится всего лишь ПК, подключенный к сети, и установленный на нем браузер.