Вход/Регистрация
Asterisk™: будущее телефонии Второе издание
вернуться

Меггелен Джим Ван

Шрифт:

– - Playing 'digits/60' (language 'en')

– - Playing 'digits/7' (language 'en')

AGI Tx >> 200 result=0

AGI Rx << STREAM FILE degrees ""

AGI Tx >> 200 result=0 endpos=6720

AGI Rx << STREAM FILE fahrenheit ""

AGI Tx >> 200 result=0 endpos=8000

– - AGI Script temperature.php completed, returning 0

Во время выполнения сценария AGI будут выведены строки трех типов. Первый тип - строки, начинающиеся с AGI TX >>. Это строки, которые Asterisk передает в STDIN вашей программы. Второй тип - строки, начинающиеся с AGI RX <<. Это команды, которые ваша AGI-программа записывает в Asterisk через STDOUT. Третий тип - строки, начинающиеся с --. Это стандартные сообщения Asterisk, выводимые при выполнении определенных команд.

Чтобы отключить отладку AGI после запуска, просто введите в консоли Asterisk agi no debug.

Используя команду agi debug, можно увидеть взаимодействие между Asterisk и своей программой, что может быть очень полезным при отладке. Надеемся, эти два совета помогут вам создавать и отлаживать мощные AGI-программы.

Заключение

AGI для разработчика - это один из наиболее революционных и веских аргументов в пользу Asterisk, а не закрытой узкоспециализированной офисной АТС. Но AGI - это только часть картины. В главе 10 будет рассмотрен другой мощный интерфейс программирования, известный как Asterisk Manager Interface.10

Интерфейс Asterisk Manager (AMI) и Adhearsion

Лучше позаботьтесь о том, чтобы все слова ваши были понятны, пристойны и правильно расположены, чтобы каждое предложение и каждый ваш период, затейливый и полнозвучный, с наивозможною и доступною вам простотою и живостью передавали то, что вы хотите сказать; выражайтесь яснее, не запутывая и не затемняя смысла. – Мигель де Сервантес, предисловие к книге «Дон Кихот»

Интерфейс Manager

Asterisk Manager Interface (AMI) - мощный программный интерфейс. Он позволяет внешним программам как управлять, так и контролировать систему Asterisk1. Этот интерфейс часто используется для интеграции Asterisk с существующими бизнес-процессами и системами, программным обеспечением CRM (Customer Relationship Management - управление взаимоотношениями с клиентами). Он также может применяться для разнообразных приложений, таких как программы автоматического набора номера и системы click-to-call (звонок-по-щелчку). Интерфейс Asterisk Manager слушает соединения, устанавливаемые по сетевому порту. Клиентская программа может соединяться с интерфейсом Asterisk Manager через этот порт, аутентифицироваться и передавать команды в Asterisk. После этого Asterisk будет отвечать на запрос, а также обновлять в клиентской программе информацию о статусе системы.

Чтобы использовать интерфейс Manager, необходимо задать учетную запись в файле /etc/asterisk/manager.conf. Этот файл будет выглядеть примерно так:

[general] enabled = yes port = 5038 bindaddr = 0.0.0.0

[oreilly]

secret = notvery

;deny=0.0.0.0/0.0.0.0

;permit=209.16.236.73/255.255.255.0

read = system,call,log,verbose,command,agent,user

write = system,call,log,verbose,command,agent,user

В разделе [general] необходимо активировать сервис, задав параметр enabled = yes. Чтобы эти изменения вступили в силу, понадобится перезагрузить интерфейс Manager (команда module reload manager из консоли Asterisk). По умолчанию используется TCP-порт 5038. Далее вы создаете по разделу для каждого пользователя, который будет присылать запрос на аутентификацию в системе. Для пользователя задается имя пользователя в квадратных скобках ([ ]), за которым следует пароль этого пользователя (secret), все IP-адреса, которым вы желаете запретить (deny) доступ, все IP-адреса, которым вы хотите разрешить (permit) доступ, и права на чтение (read) и запись (write) для этого пользователя.

Очень важно понимать, что, кроме незашифрованного пароля и возможности ограничить доступ для определенных IP-адре- сов, в интерфейсе Manager нет других средств обеспечения безопасности. Если вы запускаете Manager в ненадежной сети (или существуют любые другие сложные требования), для обработки всех соединений с API интерфейса Manager следует использовать замечательный пакет AstManProxy Дэвида Троя (David Troy).

Подключение к интерфейсу Manager

Важно помнить, что интерфейс Manager создан для использования программами, а не пользователями. Дело здесь не в том, что не получится направлять команды к нему напрямую, просто не следует ожидать увидеть обычный консольный интерфейс - назначение интерфейса Manager не в этом.

Команды в интерфейс Manager доставляются в пакетах, имеющих следующий синтаксис (строки завершаются CR+LF) [104] :

Действие: <тип действия> Ключ 1: Значение 1 Ключ 2: Значение 2 и т. д. ... Переменная: Значение Переменная: Значение и т. д. ...

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

104

Возврат каретки с переводом строки (Carriage Return + Line Feed). Как правило, это обеспечивается нажатием клавиши Enter, но может отличаться для различных платформ ОС и языков программирования, поэтому, если имеются какие-то проблемы с передачей команд в интерфейс, вероятно, нелишним будет точно указать необходимое сочетание клавиш. На момент написания данной книги в Википедии имеется подробное описание этой концепции .

Action: login Username: oreilly Secret: notvery <CR+LF>

Дополнительная CR+LF в пустой строке обеспечит передачу в интерфейс Manager пакета целиком.

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

  • Читать дальше
  • 1
  • ...
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: