On Mon, Jun 6, 2011 at 10:39 AM, Tony Mountifield <[email protected]>wrote:
> 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) > > Yes, had done that as first order of business before even trying AGI > 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. > I thought so too, didn't know what to do about it > > 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. > > This works! > 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. > > This doesn't work Thanks for the help. I just need some sort of a wait loop there (as I don't really know how to pick up the "200 result=0") till the prompt finishes.
-- _____________________________________________________________________ -- 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
