команда для отображения всех взаимодействий между ним и сценарием AGI - agi debug.

Отладка из операционной системы

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

• Список переменных и их значений, таких как agi_test:1.

• Символы перевода строки ( ), указывающие на то, что передача переменных завершена.

• Ответы на каждую из команд AGI, поступающую из вашего сценария AGI. Обычно достаточно ввести 200 response=1.

При тестировании программы непосредственно из операционной системы, возможно, проще замечать ошибки в ней.

Использование команды Asterisk agi debug

В интерфейсе командной строки Asterisk есть очень полезная команда для отладки сценариев AGI, которая называется (вполне уместно) agi debug. Если ввести в консоли Asterisk agi debug и затем запустить AGI- сценарий, вы увидите нечто подобное:

-- Executing AGI('Zap/1-1', 'temperature.php') in new stack

-- Launched AGI Script /var/lib/asterisk/agi-bin/temperature.php AGI Tx >> agi_request: temperature.php AGI Tx >> agi_channel: Zap/1-1 AGI Tx >> agi_language: en AGI Tx >> agi_type: Zap AGI Tx >> agi_uniqueid: 1116732890.8 AGI Tx >> agi_callerid: 101 AGI Tx >> agi_calleridname: Tom Jones

AGI Tx >> agi_callingpres: 00
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: unknown
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: incoming
AGI Tx >> agi_extension: 141
AGI Tx >> agi_priority: 2
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
AGI Tx >>
AGI Rx << STREAM FILE temperature
AGI Tx >> 200 result=0 endpos=6400
AGI Rx << STREAM FILE is ''
AGI Tx >> 200 result=0 endpos=5440
AGI Rx << SAY NUMBER 67 ''

-- 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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату