[asterisk-users] AGI: How to break out of AGI when stream_file escape_digits are detected in middle of long sequence of files?

Jonathan H lardconcepts at gmail.com
Mon Oct 10 16:47:23 CDT 2016


For reasons best known to myself, I call a python agi (PYST2 - love
it!) which streams a series of very short files in quick succession.

Like this:

escape_digits = str("0")
agi.stream_file(promptFile,escape_digits)

and this is what I see on the AGI debug:

<Local/s at root-00000061;2>AGI Tx >> 200 result=0 endpos=6784
<Local/s at root-00000061;2>AGI Rx << STREAM FILE
/home/DefaultPrompts/en_GB/female/wx/low "0" 0
    -- <Local/s at root-00000061;2> Playing
'/home/DefaultPrompts/en_GB/female/wx/low.alaw' (escape_digits=0)
(sample_offset 0) (language 'en_GB')
<Local/s at root-00000061;2>AGI Tx >> 200 result=48 endpos=1440

The FIRST line is a file that finished normally, with result=0, the
LAST line is a file that was interrupted, and receives result=48 from
asterisk.

Yes, zero stops the file playing, but it just goes onto the next file.

So, how do I get that variable? It doesn't become available in python,
and trying to get it via either

agi.env[result']
agi.get_variable('result')

just makes python choke and the AGI quits. That would be fine if it
was a result of result being 48!

I feel like I'm going slightly bonkers here because it's something so
obvious, and yet I've googled so hard over this!

Thanks.



More information about the asterisk-users mailing list