Add flags to chanspy audiohook so that audio stays in sync.

There are two flags being added to the chanspy audiohook here. One
is the pre-existing AST_AUDIOHOOK_TRIGGER_SYNC flag. With this set,
we ensure that the read and write slinfactories on the audiohook do
not skew beyond a certain tolerance.

In addition, there is a new audiohook flag added here,
AST_AUDIOHOOK_SMALL_QUEUE. With this flag set, we do not allow for
a slinfactory to build up a substantial amount of audio before 
flushing it. For this particular issue, this means that the person 
spying on the call will hear the conversations in real time with very 
little delay in the audio.

(closes issue #13745)
Reported by: geoffs
Patches:
      13745.patch uploaded by mmichelson (license 60)
Tested by: snblitz



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@197537 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Michelson
2009-05-28 14:49:13 +00:00
parent eb2a672328
commit 3268149a1f
3 changed files with 17 additions and 1 deletions

View File

@@ -215,6 +215,8 @@ static int start_spying(struct ast_channel *chan, const char *spychan_name, stru
ast_log(LOG_NOTICE, "Attaching %s to %s\n", spychan_name, chan->name);
ast_set_flag(audiohook, AST_AUDIOHOOK_TRIGGER_SYNC | AST_AUDIOHOOK_SMALL_QUEUE);
res = ast_audiohook_attach(chan, audiohook);
if (!res && ast_test_flag(chan, AST_FLAG_NBRIDGE) && (peer = ast_bridged_channel(chan))) {