diff options
author | Timo Teräs <timo.teras@iki.fi> | 2011-06-11 12:52:33 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2011-06-11 12:52:33 +0300 |
commit | d465e9a3844534c8253cf784e0e64b5e6ea2ef8a (patch) | |
tree | 3d513f35bf4c9f596313e692258cf9f5cf02980e /main/freeswitch | |
parent | 3d4d59637f9e87c22196be00d4f0ad61ba578a5f (diff) | |
download | aports-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.patch | 27 |
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); ++ } + } + } + |