]> git.ipfire.org Git - thirdparty/asterisk.git/commit
res_agi: Prevent an AGI from eating frames it should not. (Re-do) 76/4876/1
authorRichard Mudgett <rmudgett@digium.com>
Tue, 31 Jan 2017 22:38:49 +0000 (16:38 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 2 Feb 2017 18:38:18 +0000 (12:38 -0600)
commitd23fed8f2a1cf7b7e4de020399e1b4b802e672c2
tree5de41aa6c41d2b3a4b70f4c0d90d7283f43b952e
parent4c4be0e0be2543c9d2de4b2d9e9bb2d3f5b7142b
res_agi: Prevent an AGI from eating frames it should not. (Re-do)

A dialplan intercept routine is equivalent to an interrupt routine.  As
such, the routine must be done quickly and you do not have access to the
media stream.  These restrictions are necessary because the media stream
is the responsibility of some other code and interfering with or delaying
that processing is bad.  A possible future dialplan processing
architecture change may allow the interception routine to run in a
different thread from the main thread handling the media and remove the
execution time restriction.

* Made res_agi.c:run_agi() running an AGI in an interception routine run
in DeadAGI mode.  No touchy channel frames.

ASTERISK-25951

ASTERISK-26343

ASTERISK-26716

Change-Id: I638f147ca7a7f2590d7194a8ef4090eb191e4e43
include/asterisk/channel.h
main/channel.c
res/res_agi.c