AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

[Решено] Вопрос по phpAgi

Asterisk IP PBX 11 сообщений -
#1

Здравствуйте

Начал разбираться с phpAgi и затык, скрипт почему-то не выполняется, вот его листинг:
Код:

// test_agi.agi

#!/usr/bin/php -q




лог Астерискка:
Код:

[2010-03-05 18:40:08] == Using SIP RTP CoS mark 5
[2010-03-05 18:40:08] -- Executing [5010@office:1] Answer("SIP/sflphone-sip-00000004", "") in new stack
[2010-03-05 18:40:08] -- Executing [5010@office:2] AGI("SIP/sflphone-sip-00000004", "test_agi.agi") in new stack
[2010-03-05 18:40:08] -- Launched AGI Script /usr/share/asterisk/agi-bin/test_agi.agi
[2010-03-05 18:40:08] AGI Tx >> agi_request: test_agi.agi
[2010-03-05 18:40:08] AGI Tx >> agi_channel: SIP/sflphone-sip-00000004
[2010-03-05 18:40:08] AGI Tx >> agi_language: ru
[2010-03-05 18:40:08] AGI Tx >> agi_type: SIP
[2010-03-05 18:40:08] AGI Tx >> agi_uniqueid: 1267796408.4
[2010-03-05 18:40:08] AGI Tx >> agi_version: 1.6.1.12
[2010-03-05 18:40:08] AGI Tx >> agi_callerid: 5010
[2010-03-05 18:40:08] AGI Tx >> agi_calleridname: sflphone-sip
[2010-03-05 18:40:08] AGI Tx >> agi_callingpres: 0
[2010-03-05 18:40:08] AGI Tx >> agi_callingani2: 0
[2010-03-05 18:40:08] AGI Tx >> agi_callington: 0
[2010-03-05 18:40:08] AGI Tx >> agi_callingtns: 0
[2010-03-05 18:40:08] AGI Tx >> agi_dnid: 5010
[2010-03-05 18:40:08] AGI Tx >> agi_rdnis: unknown
[2010-03-05 18:40:08] AGI Tx >> agi_context: office
[2010-03-05 18:40:08] AGI Tx >> agi_extension: 5010
[2010-03-05 18:40:08] AGI Tx >> agi_priority: 2
[2010-03-05 18:40:08] AGI Tx >> agi_enhanced: 0.0
[2010-03-05 18:40:08] AGI Tx >> agi_accountcode:
[2010-03-05 18:40:08] AGI Tx >> agi_threadid: -1226527888
[2010-03-05 18:40:08] AGI Tx >>
[2010-03-05 18:40:09] AGI Rx > 510 Invalid or unknown command
[2010-03-05 18:40:09] -- AGI Script test_agi.agi completed, returning 0
[2010-03-05 18:40:09] -- Auto fallthrough, channel 'SIP/sflphone-sip-00000004' status is 'UNKNOWN'


Непонятно почему не может выполнить команду, phpAgi подключил вроде, права доступа тоже в порядке, посоветуйте что нибуть


Последний раз редактировалось: koqep (Вт Мар 09, 2010 15:55)
#2

Код:
[2010-03-05 18:40:09] AGI Tx >> 510 Invalid or unknown command

Астериск ясно же сказал что ему не нравится.
#3

Уберите все пробельные символы до
#4

latv, спасибо, помогло ошибка пропала. Но только $agi->verbose($cid['name'], 1); в консоль все равно не пишет. Буду дальше разбираться
#5

ни как не могу победить эти скрипты, не пойму в чем дело. В консоли пишется что скрипт успешно выполнился но он ничего не делает, пробовал права доступа менять, владельца - толку нет. Все вроде как в примерах делаю.

Вот скрипт
Код:

#!/usr/bin/php -q
#6

В соседнем посте, http://asteriskforum.ru/viewtopic.php?t=5939, есть вариант.
#7

смотрел соседний пост, сделал так же и его скрипт у меня выполнился, а мой почему-то нет Sad хотя вроде все правильно написано
#8

А запускается без Asterisk?
Путь к библтотеке может стоит полным написать, вместо относительного?
#9

Код:

root@myhomeputer[/usr/share/asterisk/agi-bin] $ ./test_agi.php
PHP Parse error: syntax error, unexpected T_GOTO, expecting T_STRING in /usr/share/asterisk/agi-bin/libs/phpagi.php on line 1184


запускается и выдает ошибку

Вообще скрипты вот такого вида выполняются
Код:
#!/usr/bin/php


а те которые используют phpagi.php ошибок не выдают но и не выполняются

стоит в начало выше приведённого кода вписать require('./libs/phpagi.php'); все после этой строчки ничего не выполняется
#10

а что там на этой строчке?
может быть нужно версию библиотеки поновее скачать, или может функции какой не хватает в PHP.
#11

Все разобрался, в файле phpagi.php была ошибка(незнаю что за ошибка) закоментировал

Код:

// начинается на строке 1184

function goto($context, $extension='s', $priority=1)
{
$this->set_context($context);
$this->set_extension($extension);
$this->set_priority($priority);
}

и все заработало, но только теперь нельзя будет использовать $agi->goto(); будет время буду разбираться в чем дело, причем эта проблемма только на моем компе, пробовал на другом этот же скрипт все работает, наверно дело в настройках php. При выполнении phpagi.php(с раскомментированной функцией) выдает вот такую ошибку
Код:
PHP Parse error: syntax error, unexpected T_GOTO, expecting T_STRING in /usr/share/asterisk/agi-bin/libs/phpagi.php on line 1184


Может кто знает из-за чего это может быть?

Added after 24 minutes:

Smile Разобрался из-за чего php ругается на goto, с версии php 5.3 появился оператор goto (все давно от него отказались, а эти ведать выделиться решили)

Решение:

- открывает phpagi.php
- переходим на строчку 1184
- перименовываем function goto($context, $extension='s', $priority=1) в function ast_goto($context, $extension='s', $priority=1)
- радуемся жизни

P.S
и не забываем переписать в уже готовых скриптах