]> git.ipfire.org Git - thirdparty/asterisk.git/commit
confbridge: Fix MOH on simultaneous user entry to a new conference.
authorRichard Mudgett <rmudgett@digium.com>
Thu, 13 Dec 2012 20:52:26 +0000 (20:52 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 13 Dec 2012 20:52:26 +0000 (20:52 +0000)
commit8a208185d5b3d3dcca47efcecd102ccb961523cd
treeac1c2dec859fe7a708b5b6f32af0c6cd0b20dd59
parent89865b99d350b368ae183fb7943ad7779a628705
confbridge: Fix MOH on simultaneous user entry to a new conference.

When two users entered a new conference simultaneously, one of the callers
hears MOH.  This happened if two unmarked users entered simultaneously and
also if a waitmarked and a marked user entered simultaneously.

* Created a confbridge internal MOH API to eliminate the inlined MOH
handling code.  Note that the conference mixing bridge needs to be locked
when actually starting/stopping MOH because there is a small window
between the conference join unsuspend MOH and actually joining the mixing
bridge.

* Created the concept of suspended MOH so it can be interrupted while
conference join announcements to the user and DTMF features can operate.

* Suspend any MOH until the user is about to actually join the mixing
bridge of the conference.  This way any pre-join file playback does not
need to worry about MOH.

* Made post-join actions only play deferred entry announcement files.
Changing the user/conference state during that time is not protected or
controlled by the state machine.

(closes issue ASTERISK-20606)
Reported by: Eugenia Belova
Tested by: rmudgett

Review: https://reviewboard.asterisk.org/r/2232/

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/10@377992 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apps/app_confbridge.c
apps/confbridge/conf_state.c
apps/confbridge/conf_state_multi_marked.c
apps/confbridge/include/confbridge.h
include/asterisk/bridging.h