Категории
Самые читаемые
onlinekniga.com » Компьютеры и Интернет » Интернет » Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван

Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван

Читать онлайн Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 67 68 69 70 71 72 73 74 75 ... 157
Перейти на страницу:

Пройдя аутентификацию, вы сможете запускать действия, а также видеть события, сформированные Asterisk. В сильно загруженной системе может быть очень сложно или практически невозможно отслеживать все это «невооруженным глазом». Чтобы отключить для Asterisk возможность посылать события, можно добавить параметр Events в команду на регистрацию: Action: login Username: oreilly Secret: notvery Events: off <CR+LF>

Если вы боитесь передавать свой пароль по сети незашифрованным (и это нормально), можно осуществить аутентификацию, используя систему запрос/ответ и алгоритм MD5, принцип работы которого очень похож на краткую аутентификацию HTTP. Для этого сначала вызывается действие Challenge (Запрос), которое предоставит вам маркер запроса:

Action: Challenge AuthType: MD5

Response: Success Challenge: 840415273

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

Action: Login AuthType: MD5 Username: Admin

Key: e7a056e1488882c6c509bbe71a049978

Response: Success

Message: Authentication accepted

Передача команд

После успешной регистрации в системе AMI можно передавать команды в Asterisk, используя другие действия. Здесь мы продемонстрируем несколько команд, чтобы дать представление о том, как они работают.

Перенаправление вызова

Действие Redirect (Перенаправить) может использоваться для перенаправления вызова. После регистрации необходимо послать такое действие:

Action: Redirect Channel: SIP/John-ae201e78 Context: Lab Exten: 6001 Priority: 1

ActionID: 2340981650981

Каждое действие, передаваемое по интерфейсу Manager, может сопровождаться произвольным значением ActionID. Это позволит распознавать, к какому действию относится ответ Asterisk. Настоятельно рекомендуется передавать уникальный ActionID с каждой командой AMI.

Этот URL переносит заданный канал в другой добавочный номер и приоритет диалплана. Ответ на это действие такой:

Response: Success ActionID: 2340981650981 Message: Redirect Successful

Чтение конфигурационного файла

Чтобы прочитать конфигурационный файл Asterisk через интерфейс Manager, можно использовать действие GetConfig. GetConfig возвращает содержимое конфигурационного файла или его часть. Следующая команда извлекает содержимое файла users.conf:

Action: GetConfig Filename: users.conf ActionID: 9873497149817

После этого Asterisk возвращает содержимое файла users.conf. Ответ

выглядит так:

Response: Success ActionID: 987397149817 Category-000000: general

Line-000000-000000: fullname=New User

Line-000000-000001: userbase=6000

Line-000000-000002: hasvoicemail=yes

Line-000000-000003: hassip=yes

Line-000000-000004: hasiax=yes

Line-000000-000005: hasmanager=no

Line-000000-000006: callwaiting=yes

Line-000000-000007: threewaycalling=yes

Line-000000-000008: callwaitingcallerid=yes

Line-000000-000009: transfer=yes

Line-000000-000010: canpark=yes

Line-000000-000011: cancallforward=yes

Line-000000-000012: callreturn=yes

Line-000000-000013: callgroup=1

Line-000000-000014: pickupgroup=1

Line-000000-000015: host=dynamic

Обновление конфигурационных файлов

Часто полезно иметь возможность обновлять конфигурационный файл Asterisk через интерфейс Manager. Для обновления одной или более настроек конфигурационного файла используется действие Update Config. Например, чтобы удалить из users.conf пользователя под именем 6003, можно использовать следующую команду:

Action: UpdateConfig Filename: users.conf Reload: yes

SrcFilename: users.conf DstFilename: users.conf Action-00000: delcat Cat-00000: 6003 ActionID: 5298795987243

Конечно, мы лишь слегка коснулись возможностей Asterisk Manager Interface и рассмотрели лишь несколько из множества предоставляемых им разнообразных действий. Более подробный список доступных команд приведен в приложении F.

Flash Operator Panel

Flash Operator Panel (FOP) - один из наиболее популярных примеров, демонстрирующих мощь интерфейса Manager. FOP обеспечивает визу-

Рис. 10.1. Интерфейс управления Flash Operator Panel

альное веб-представление вашей системы и возможность управления вызовами.

FOP чаще всего используется для того, чтобы дать возможность оператору-человеку видеть пользователей системы и устанавливать соединения между ними. Также он может применяться в инфраструктуре центра обработки звонков для обеспечения инициируемых CRM всплывающих экранов[105].

Интерфейс управления FOP представлен на рис. 10.1. Копию FOP можно найти по адресу http://www.asternic.org.

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

FOP имеет фантастическое сообщество разработчиков и пользующуюся большой популярностью рассылку. Успеху FOP также способствовало его включение в Trixbox.

Разработка в Asterisk с использованием Adhearsion

Не так давно появилась новая технология, которая может изменить порядок составления диалпланов[106].

Новый подход к диалпланам

Asterisk повзрослела с точки зрения как технологии, так и ее популярности, но при все большем погружении в этот чудесный мир невозможно не столкнуться с ограничениями. Созданию сложных сценариев уровня предприятия с использованием только Asterisk будет сопутствовать множество трудностей применения логики диалплана. Несмотря на всю гибкость и мощь диалплана, как язык программирования он довольно слаб и существенно менее гибок, чем большинство современных языков сценариев. При реализации расширенной логики диалплан, GUI и даже более развитый AEL (Asterisk Extension Language) могут разочаровать. Создавая все более сложные диалпланы, можно столкнуться с трудностями в следующих вопросах:

• Условные циклы и переходы по условию.

• Переменные.

• Сложные структуры данных.

• Интеграция с базой данных/LDAP.

• Использование библиотек сторонних производителей.

• Обмен и распространение функциональности VoIP.

• Расширение конфигурационных языков.

• Плохая обработка ошибок.

• Плохая обработка даты и времени.

• Сопоставление с шаблонами.

• Единообразие использования.

• Организация исходного кода.

Многие решают эти проблемы, реализуя расширенную логику во внешних программах на таких языках программирования, как Perl и PHP, и соединяясь с Asterisk через AMI и AGI. К сожалению, обеспечивая желаемую мощь, эти решения не всегда упрощают жизнь разработчика. Наоборот, они зачастую еще более усложняют процесс разработки. Используя существующие технологии в Asterisk, но имея целью обеспечение мощи и простоты, Adhearsion предлагает новый подход.

Разработка в Asterisk с использованием Adhearsion

Adhearsion - это инфраструктура с открытым исходным кодом (распространяемая по лицензии LGPL), которая разработана с целью улучшения реализации решений Asterisk. Она располагается поверх системы Asterisk, обрабатывая части или весь диалплан, и обеспечивает несколько уникальных способов управления доступом к Asterisk посредством ряда улучшенных интерфейсов. Adhearsion выполняется в отдельном процессе-демоне и интегрируется через уже представленные выше интерфейсы Gateway (AGI) и Manager (AMI), поэтому конфигурирование контекста на ее использование заключается просто в добавлении нескольких строк в диалплан или пользователя в файл manager.conf.

1 ... 67 68 69 70 71 72 73 74 75 ... 157
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Asterisk™: будущее телефонии Второе издание - Меггелен Джим Ван.
Комментарии