Строчка в диалплане:
| Код: |
| exten => 4444,n,AGI(touch.sh,1000,2000) |
При звонке я вижу в Agi debug передаваемые аргументы:
| Код: |
| AGI Tx >> agi_arg_1: 1000 AGI Tx >> agi_arg_2: 2000 |
В каком виде они приходят в bash скрипт??? Ни $agi_arg_1, ни ${agi_arg_1}, ни ${agi_arg_1[0]} там нет. В каких переменных они хранятся?
_________________
рву шаблоны. дорого.
Так как астер, в данном случае просто вызовет скрипт как "touch.sh 1000 2000" и начнет ему на STDIN заливать уже все остальное.
Правда обращаться к скрипту пришлось не через AGI, а через конструкцию
| Код: |
| exten => 4444,n,Set(RESULT=${SHELL(/var/lib/asterisk/agi-bin/touch.sh ${arg})}) |
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
| Код: |
| #!/bin/bash declare -a array while read -e ARG && [ "$ARG" ] ; do array=(` echo $ARG | sed -e 's/://'`) export ${array[0]}=${array[1]} done checkresults() { while read line do case ${line:0:4} in "200 " ) echo $line >&2 return;; "510 " ) echo $line >&2 return;; "520 " ) echo $line >&2 return;; * ) echo $line >&2 ;; esac done } echo "Setting variable VAR to: $agi_callerid" >&2 echo "SET VAR $agi_callerid" checkresults exit 0; |
| Wapo @ Чт Окт 10, 2013 09:29 писал(а): |
| А не проще взять тот же php-agi, написать ваш скрипт на php и уж там делать типа agi->set_variable('ASTERVAR1',$бла-бла) |
Не силен в php, точнее вообще бессилен, к сожалению.
Added after 7 minutes:
Мда, похоже использовать bash в качестве AGI жуткий гемор.
| Код: |
| Не силен в php, точнее вообще бессилен, к сожалению. |
Поверьте - очень быстро разберетесь коли знаете тот же Perl.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
_________________
рву шаблоны. дорого.
я же написал выше пример.