Philipp von Klitzing
2003-Dec-10 08:28 UTC
[Asterisk-Users] Trouble with AGI and SAY DIGITS and WAIT FOR DIGIT using PHP
Hi there, AGI is partially not working for me with SAY DIGITS, SAY NUMBER, WAIT FOR DIGITS etc. It appears that result is always one for any function that looks for user input, regardless of which key was pressed. Playing sound is only possible using EXEC. This applies to two * servers with RH 7.2 and RH 7.3 and very recent CVS. Any suggestion or tips about where I goofed? Thanks, Philipp -- [CLI output] -- demo.agi: write: ANSWER demo.agi: read: 200 result=1 demo.agi: write: SAY DIGITS 68 7 -- Playing 'digits/6' (language 'en') <-- no sound & 6 only demo.agi: read: 200 result=1 (null): write: EXEC SayNumber 34 <-- but this works fine -- AGI Script Executing Application: (SayNumber) Options: (34) -- Playing 'digits/30' (language 'en') -- Playing 'digits/4' (language 'en') (null): read: 200 result=1 (null): write: WAIT FOR DIGIT 5000 (null): read: 200 result=1 <-- user pressed 4, but we get result=1 -- [extensions.conf] -- exten => _104[013-9],1,Answer exten => _104[013-9],2,Playback(beep) exten => _104[013-9],3,AGI(demo.agi) exten => _104[013-9],4,Playback(beep) exten => _104[013-9],5,Hangup -- [demo.agi] -- #!/usr/bin/php -q <?php ob_implicit_flush(true); set_time_limit(0); $in = fopen("php://stdin","r"); ... function __read__() { global $in, $debug; $input = str_replace("\n", "", fgets($in, 4096)); return $input; } function __write__($line) { print $line."\n"; } ... __write__("ANSWER"); __read__(); __write__("SAY DIGITS 68 \"7\""); __read__(); __write__("EXEC SayNumber 34"); __read__(); __write__("WAIT FOR DIGIT 5000"); __read__();