[asterisk-users] AGI STREAM FILE not working?
A E [Gmail]
all.eforums at gmail.com
Mon Jun 6 11:56:58 CDT 2011
On Mon, Jun 6, 2011 at 10:39 AM, Tony Mountifield <tony at mountifield.org>wrote:
> In article <BANLkTikPxC_JK5xVHYX9aKakLtVL0v6e7g at mail.gmail.com>,
> A E [Gmail] <all.eforums at gmail.com> 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 at AllPhones:1] Answer("SIP/PBX-00000024", "") in
> new
> > stack
> > -- Executing [5150 at AllPhones:2] Set("SIP/PBX-00000024",
> > "CHANNEL(language)=en_AU") in new stack
> > -- Executing [5150 at 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 at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20110606/64a583c2/attachment.htm>
More information about the asterisk-users
mailing list