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

Reply via email to