Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Не работает AGI скрипт

1

Доброго дня, о великие гуру * ! :-)

Накалякал скрипт, запускаю и получаю Failed to execute '/var/lib/asterisk/agi-bin/crude1.php': Exec format error" 1

Подскажите в каком направлении рыть

Call-centre*CLI> == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [122@test_balance:1] Answer("SIP/5603-00000000", "") in new stack -- Executing [122@test_balance:2] AGI("SIP/5603-00000000", "crude1.php") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/crude1.php <SIP/5603-00000000>AGI Tx >> agi_request: crude1.php <SIP/5603-00000000>AGI Tx >> agi_channel: SIP/5603-00000000 <SIP/5603-00000000>AGI Tx >> agi_language: en <SIP/5603-00000000>AGI Tx >> agi_type: SIP <SIP/5603-00000000>AGI Tx >> agi_uniqueid: 1338806057.0 <SIP/5603-00000000>AGI Tx >> agi_version: 1.8.11.0 <SIP/5603-00000000>AGI Tx >> agi_callerid: 5603 <SIP/5603-00000000>AGI Tx >> agi_calleridname: device <SIP/5603-00000000>AGI Tx >> agi_callingpres: 0 <SIP/5603-00000000>AGI Tx >> agi_callingani2: 0 <SIP/5603-00000000>AGI Tx >> agi_callington: 0 <SIP/5603-00000000>AGI Tx >> agi_callingtns: 0 <SIP/5603-00000000>AGI Tx >> agi_dnid: 122 <SIP/5603-00000000>AGI Tx >> agi_rdnis: unknown <SIP/5603-00000000>AGI Tx >> agi_context: test_balance <SIP/5603-00000000>AGI Tx >> agi_extension: 122 <SIP/5603-00000000>AGI Tx >> agi_priority: 2 <SIP/5603-00000000>AGI Tx >> agi_enhanced: 0.0 <SIP/5603-00000000>AGI Tx >> agi_accountcode: <SIP/5603-00000000>AGI Tx >> agi_threadid: -1226949744 <SIP/5603-00000000>AGI Tx >> <SIP/5603-00000000>AGI Rx << verbose "Failed to execute '/var/lib/asterisk/agi-bin/crude1.php': Exec format error" 1 crude1.php: Failed to execute '/var/lib/asterisk/agi-bin/crude1.php': Exec format error <SIP/5603-00000000>AGI Tx >> 200 result=1 

Вот сам скриптик:

#!/usr/bin/php -q <?php require('phpagi.php'); global $agi; $agi = new AGI(); $res=$agi->answer(); $cid = $agi->request["agi_callerid"]; $r=$agi->get_data('please-enter-your',14000,9); $account_Number=$r['result']; $balance=0; $username = 'test'; $password = 'tester'; $client = new SoapClient( 'https://192.168.0.1:443/services/abc/ClientDataService?wsdl', array('trace' => TRUE, 'style' => SOAP_RPC) ); // Prepare SoapHeader parameters $sh_param = new stdClass(); $sh_param->login = $username; $sh_param->passhash = md5($password); $headers = new SoapHeader('http://abc.ru/services/authentication/1.0', 'auth-token', $sh_param); // Prepare Soap Client $client->__setSoapHeaders(array($headers)); $balance=''; try { $res = $client->getPersonData(array('request' => array('accountNumber' => $accountNumber))); echo $res->return->agreements->agreement->accounts->account->balance . "\n"; $agi->stream_file('podogovoru'); $agi->say_number($accountNumber); $agi->stream_file('balanssostavlyaet'); $agi->say_money($balance); $s=$agi->get_data('returntomenu',9000,1); $st=$s['result']; if ($st=="*"){ $agi->goto_dest('ivr-3'); } else { $agi->hangup(); } } catch (SoapFault $fault) { //echo $client->__getLastRequest(); //echo '\n---------------------------------------\n'; //echo $client->__getLastResponse(); $agi->stream_file('invalid'); $agi->hangup(); } ?> 
удалить закрыть спам изменить тег редактировать

спросил 2012-06-05 05:27:11 +0400

nana_MeDBeD Gravatar nana_MeDBeD
312 ● 46 ● 11 ● 34

Comments

Ну как бэ он тебе написал, что команда Exec неверно выполняется, но в скрипте ее нету, что странно...

switch ( 2012-06-05 08:19:35 +0400 )редактировать

Вот и я голову ломаю.......акромя agi set debug on как то можно дебажить agi скрипты ?

nana_MeDBeD ( 2012-06-05 11:00:48 +0400 )редактировать

4 Ответа

2

Попробуй chmod +x /var/lib/asterisk/agi-bin/crude1.php

ссылка удалить спам редактировать

ответил 2012-06-05 11:33:56 +0400

mik Gravatar mik
31 ● 3 ● 1 ● 7
0

Упрости файл, попробуй пустой скрипт для начала. Версия * какая?

ссылка удалить спам редактировать

ответил 2012-06-05 13:33:10 +0400

Aven Gravatar Aven flag of Russian Federation
343 ● 1 ● 13
http://it-need.ru/
0

Короче трабла была в том, что скрипт был сохранен не в ANSI формате.

Но вылезло следующее :

-- Executing [122@test_balance:1] AGI("SIP/5603-00000001", "crude1.php") in new stack -- Launched AGI Script /var/lib/asterisk/agi-bin/crude1.php <SIP/5603-00000001>AGI Tx >> agi_request: crude1.php <SIP/5603-00000001>AGI Tx >> agi_channel: SIP/5603-00000001 <SIP/5603-00000001>AGI Tx >> agi_language: en <SIP/5603-00000001>AGI Tx >> agi_type: SIP <SIP/5603-00000001>AGI Tx >> agi_uniqueid: 1338884606.1 <SIP/5603-00000001>AGI Tx >> agi_version: 1.8.11.0 <SIP/5603-00000001>AGI Tx >> agi_callerid: 5603 <SIP/5603-00000001>AGI Tx >> agi_calleridname: device <SIP/5603-00000001>AGI Tx >> agi_callingpres: 0 <SIP/5603-00000001>AGI Tx >> agi_callingani2: 0 <SIP/5603-00000001>AGI Tx >> agi_callington: 0 <SIP/5603-00000001>AGI Tx >> agi_callingtns: 0 <SIP/5603-00000001>AGI Tx >> agi_dnid: 122 <SIP/5603-00000001>AGI Tx >> agi_rdnis: unknown <SIP/5603-00000001>AGI Tx >> agi_context: test_balance <SIP/5603-00000001>AGI Tx >> agi_extension: 122 <SIP/5603-00000001>AGI Tx >> agi_priority: 1 <SIP/5603-00000001>AGI Tx >> agi_enhanced: 0.0 <SIP/5603-00000001>AGI Tx >> agi_accountcode: <SIP/5603-00000001>AGI Tx >> agi_threadid: -1225966704 <SIP/5603-00000001>AGI Tx >> <SIP/5603-00000001>AGI Rx << Usage: php [options] [-f] <file> [--] [args...] <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << php [options] -r <code> [--] [args...] <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << php [options] -- [args...] <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << php [options] -a <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -a Run interactively <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -c <path>|<file> Look for php.ini file in this directory <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -n No php.ini file will be used <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -d foo[=bar] Define INI entry foo with value 'bar' <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -e Generate extended information for debugger/profiler <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -f <file> Parse <file>. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -h This help <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -i PHP information <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -l Syntax check only (lint) <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -m Show compiled in modules <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -r <code> Run PHP <code> without using script tags <?..?> <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -B <begin_code> Run PHP <begin_code> before processing input lines <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -R <code> Run PHP <code> for every input line <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -F <file> Parse and execute <file> for every input line <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -E <end_code> Run PHP <end_code> after processing all input lines <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -H Hide any passed arguments from external tools. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -s Display colour syntax highlighted source. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -v Version number <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -w Display source with stripped comments and whitespace. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << -z <file> Load Zend extension <file>. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << args... Arguments passed to script. Use -- args when first argument <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << starts with - or script is read from stdin <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << --rf <name> Show information about function <name>. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << --rc <name> Show information about class <name>. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << --re <name> Show information about extension <name>. <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command <SIP/5603-00000001>AGI Rx << <SIP/5603-00000001>AGI Tx >> 510 Invalid or unknown command -- <SIP/5603-00000001>AGI Script crude1.php completed, returning 0 

Пошел за пистолетом...

ссылка удалить спам редактировать

ответил 2012-06-05 20:13:10 +0400

nana_MeDBeD Gravatar nana_MeDBeD
312 ● 46 ● 11 ● 34

Comments

у вас сам скрипт выводит дебажные сообщение в консоль Астериска. вы неполный скрипт показали, нет подключении ваших классов.сложно что то сказать. уберите echo из скрипта.

brost ( 2012-06-06 10:27:49 +0400 )редактировать
0

Можно дебажить просто запуская их из консоли, но надо тогда сделать пхп скрипт исполняемым.

ссылка удалить спам редактировать

ответил 2012-06-05 11:08:10 +0400

switch Gravatar switch
8334 ● 11 ● 7 ● 92
http://lynks.ru/

Comments

Он в любом случае должен быть исполняемым.

Aven ( 2012-06-05 13:32:13 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2012-06-05 05:27:11 +0400

Просмотрен: 4,985 раз

Обновлен: Jun 05 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.