summaryrefslogtreecommitdiffstats
path: root/main/freeswitch
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2011-06-11 12:52:33 +0300
committerTimo Teräs <timo.teras@iki.fi>2011-06-11 12:52:33 +0300
commitd465e9a3844534c8253cf784e0e64b5e6ea2ef8a (patch)
tree3d513f35bf4c9f596313e692258cf9f5cf02980e /main/freeswitch
parent3d4d59637f9e87c22196be00d4f0ad61ba578a5f (diff)
downloadaports-d465e9a3844534c8253cf784e0e64b5e6ea2ef8a.tar.bz2
aports-d465e9a3844534c8253cf784e0e64b5e6ea2ef8a.tar.xz
main/freeswitch: add the missing patch
Diffstat (limited to 'main/freeswitch')
-rw-r--r--main/freeswitch/0003-mod_conference_no_hangup.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/main/freeswitch/0003-mod_conference_no_hangup.patch b/main/freeswitch/0003-mod_conference_no_hangup.patch
new file mode 100644
index 000000000..577ca8e1a
--- /dev/null
+++ b/main/freeswitch/0003-mod_conference_no_hangup.patch
@@ -0,0 +1,27 @@
+diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c
+index 572fdf0..d62d114 100644
+--- a/src/mod/applications/mod_conference/mod_conference.c
++++ b/src/mod/applications/mod_conference/mod_conference.c
+@@ -1482,13 +1482,15 @@ static void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, v
+ if (!switch_test_flag(imember, MFLAG_NOCHANNEL)) {
+ channel = switch_core_session_get_channel(imember->session);
+
+- /* add this little bit to preserve the bridge cause code in case of an early media call that */
+- /* never answers */
+- if (switch_test_flag(conference, CFLAG_ANSWERED)) {
+- switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
+- } else {
+- /* put actual cause code from outbound channel hangup here */
+- switch_channel_hangup(channel, conference->bridge_hangup_cause);
++ if (!switch_false(switch_channel_get_variable(channel, "hangup_after_conference"))) {
++ /* add this little bit to preserve the bridge cause code in case of an early media call that */
++ /* never answers */
++ if (switch_test_flag(conference, CFLAG_ANSWERED)) {
++ switch_channel_hangup(channel, SWITCH_CAUSE_NORMAL_CLEARING);
++ } else {
++ /* put actual cause code from outbound channel hangup here */
++ switch_channel_hangup(channel, conference->bridge_hangup_cause);
++ }
+ }
+ }
+