In article <[email protected]>, A E [Gmail] <[email protected]> wrote: > Hello, > using 1.8.4. using a very simple local AGI script in bash which has only one > line in it: > > echo -e 'STREAM FILE welcome 123 \n' > > dialplan: > exten => 5150,1,Answer() > same => n,Set(CHANNEL(language)=en_AU) > same => n,AGI(testagi.sh) > same => n,Hangup > > console output: > -- Executing [5150@AllPhones:1] Answer("SIP/PBX-00000024", "") in new > stack > -- Executing [5150@AllPhones:2] Set("SIP/PBX-00000024", > "CHANNEL(language)=en_AU") in new stack > -- Executing [5150@AllPhones:3] AGI("SIP/PBX-00000024", "testagi.sh") in > new stack > -- Launched AGI Script /var/lib/asterisk/agi-bin/testagi.sh > -- Playing 'welcome' (escape_digits=1) (sample_offset 0) > -- <SIP/PBX-00000024>AGI Script testagi.sh completed, returning 0 > -- Executing [5150@AllPhones:4] Hangup("SIP/PBX-00000024", "") in new > stack > == Spawn extension (AllPhones, 5150, 4) exited non-zero on > 'SIP/PBX-00000024' > > But nothing happens...as in even when it says that it's playing the file (as > verified in the asterisk 'full' log), I hear nothing on the phone > > What gives? spent 2 hrs Googling but nothing! :(
Firstly, you need to check that you can successfully play files outside of the AGI environment. Replace the AGI command with: same => n,Playback(welcome) If that doesn't work, the problem is nothing to do with AGI. However, I think what else is happening is that your AGI script is sending the STREAM FILE command and then immediately exiting. This goes back to the dialplan and executes a hangup when only a tiny fraction of the welcome file has been played. You could test this theory in two different ways, as I'm not sure whether it's the exiting of the AGI or the subsequent hangup that is aborting the playback. a) Put a "sleep 5" in your agitest.sh after the echo. As others have said, you should really use a proper library that reads responses to AGI commands, but for testing, a sleep will keep the AGI script alive while the message plays. b) Put a "same => n,Wait(5)" after the AGI command. If the AGI leaves the message playing, this would give it some time to play before you hang up the line. Hope this helps! Tony -- Tony Mountifield Work: [email protected] - http://www.softins.co.uk Play: [email protected] - http://tony.mountifield.org -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
