Страница 1 из 1

php и Asterisk

Добавлено: 21 сен 2014, 10:17
DIMMon
Здравствуйте! Нужна помощь - как правильно изъять переменную из php скрипта в диал плане?

Re: php и Asterisk

Добавлено: 21 сен 2014, 11:22
virus_net

Re: php и Asterisk

Добавлено: 21 сен 2014, 12:25
DIMMon
У меня такой dial plan

Код: Выделить всё

exten => s,1,Set(numb=${CALLERID(num)})
exten => s,2,System(/usr/bin/php -f /asterisk_my_scripts/call_last_src.php ${numb})
exten => s,n,Hangup()
Мне надо из php взять переменную $mes и вставить ее, например, сюда exten => s,3,agi(googletts.agi,${mes},ru) , но не могу понять как :oops:

Re: php и Asterisk

Добавлено: 22 сен 2014, 08:38
virus_net
Вы две ссылки, которые я привел выше, открывали ? Судя по всему нет... Посему и не поймете, пока как следует не изучите доку.
Еще раз:
Скрипт нужно вызывать не через System, а через AGI.
В скрипте выставлять нужную переменную, которую потом использовать в dialplan.
Например:

Код: Выделить всё

exten => s,1,AGI(test.php,${numb})
exten => s,n,Goto(s,${phpreturn})
exten => s,n(passed),Playback(good)
exten => s,n,Hangup()
exten => s,n(failed),Playback(bad)
exten => s,n,Hangup()
соответственно в test.php выставляется переменная phpreturn в значения passed или failed. Например:

Код: Выделить всё

SET VARIABLE phpreturn passed
Вот тут вполне доступно написано и с примерами: Asterisk AGI php
Ну и если погуглить, то можно найти ещё вагон и телегу примеров.

Re: php и Asterisk

Добавлено: 22 сен 2014, 11:07
DIMMon
Через AGI так и не получилось.
Сделал так

Код: Выделить всё

exten => s,1,Set(numb=${CALLERID(num)})
exten => s,2,agi(googletts.agi,${SHELL(/usr/bin/php -f /asterisk_my_scripts/call_last_src.php ${numb})},ru)
exten => s,n,Hangup()

Re: php и Asterisk

Добавлено: 23 сен 2014, 08:07
virus_net
Не знаю что могло не получиться. Если прочитать доку и следовать ей и примерам, то все работает.