summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerge script <automerge@asterisk.org>2012-11-11 17:20:20 +0000
committerAutomerge script <automerge@asterisk.org>2012-11-11 17:20:20 +0000
commit0874e3c825ece4331103441398b4d2db09b72a32 (patch)
treea7ef7bc6eb7fbb860e7cf02faaa76db92cf9df19
parent7d84963667c9c1eff2dd8da44b4fc76fd8890f7c (diff)
Merged revisions 376131 via svnmerge from
file:///srv/subversion/repos/asterisk/trunk ................ r376131 | file | 2012-11-11 11:15:47 -0600 (Sun, 11 Nov 2012) | 16 lines Remove a fixed size limitation for producing SDP and change how ICE support is disabled by default. With ICE support enabled in chan_sip and a large number of interfaces on the system it was possible for the produced SDP to be truncated due to some fixed size buffers. These buffers have now been changed so they will dynamically grow as needed. ICE support is now also enabled by default in res_rtp_asterisk to provide a smoother experience for chan_motif users where it is required. To maintain the previous behavior in chan_sip it is no longer enabled by default there. (closes issue ASTERISK-20643) Reported by: coopvr ........ Merged revisions 376130 from http://svn.asterisk.org/svn/asterisk/branches/11 ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/team/mmichelson/threadpool@376136 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--channels/chan_sip.c15
-rw-r--r--configs/sip.conf.sample5
-rw-r--r--res/res_rtp_asterisk.c2
3 files changed, 10 insertions, 12 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 9059669f0..c939df955 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -12927,9 +12927,9 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
struct ast_str *m_video = ast_str_alloca(256); /* Media declaration line for video */
struct ast_str *m_text = ast_str_alloca(256); /* Media declaration line for text */
struct ast_str *m_modem = ast_str_alloca(256); /* Media declaration line for modem */
- struct ast_str *a_audio = ast_str_alloca(1024); /* Attributes for audio */
- struct ast_str *a_video = ast_str_alloca(1024); /* Attributes for video */
- struct ast_str *a_text = ast_str_alloca(1024); /* Attributes for text */
+ struct ast_str *a_audio = ast_str_create(256); /* Attributes for audio */
+ struct ast_str *a_video = ast_str_create(256); /* Attributes for video */
+ struct ast_str *a_text = ast_str_create(256); /* Attributes for text */
struct ast_str *a_modem = ast_str_alloca(1024); /* Attributes for modem */
const char *a_crypto = NULL;
const char *v_a_crypto = NULL;
@@ -13193,11 +13193,6 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
add_dtls_to_sdp(p->rtp, &a_audio);
}
-
- if (m_audio->len - m_audio->used < 2 || m_video->len - m_video->used < 2 ||
- m_text->len - m_text->used < 2 || a_text->len - a_text->used < 2 ||
- a_audio->len - a_audio->used < 2 || a_video->len - a_video->used < 2)
- ast_log(LOG_WARNING, "SIP SDP may be truncated due to undersized buffer!!\n");
}
if (add_t38) {
@@ -13376,6 +13371,9 @@ static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p, int
ast_debug(3, "Done building SDP. Settling with this capability: %s\n", ast_getformatname_multiple(buf, SIPBUFSIZE, tmpcap));
add_sdp_cleanup:
+ ast_free(a_text);
+ ast_free(a_video);
+ ast_free(a_audio);
alreadysent = ast_format_cap_destroy(alreadysent);
tmpcap = ast_format_cap_destroy(tmpcap);
@@ -31227,7 +31225,6 @@ static int reload_config(enum channelreloadreason reason)
ast_set_flag(&global_flags[0], SIP_DTMF_RFC2833); /*!< Default DTMF setting: RFC2833 */
ast_set_flag(&global_flags[0], SIP_DIRECT_MEDIA); /*!< Allow re-invites */
ast_set_flag(&global_flags[2], SIP_PAGE3_NAT_AUTO_RPORT); /*!< Default to nat=auto_force_rport */
- ast_set_flag(&global_flags[2], SIP_PAGE3_ICE_SUPPORT); /*!< Default to enabling ICE support */
ast_copy_string(default_engine, DEFAULT_ENGINE, sizeof(default_engine));
ast_copy_string(default_parkinglot, DEFAULT_PARKINGLOT, sizeof(default_parkinglot));
diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample
index 3d6db9798..bbd2af8df 100644
--- a/configs/sip.conf.sample
+++ b/configs/sip.conf.sample
@@ -919,10 +919,11 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls
;
; subscribe_network_change_event = yes ; on by default
;
-; ICE/STUN/TURN usage can be disabled globally or on a per-peer basis using the icesupport
+; ICE/STUN/TURN usage can be enabled globally or on a per-peer basis using the icesupport
; configuration option. When set to yes ICE support is enabled. When set to no it is disabled.
+; It is disabled by default.
;
-; icesupport = no
+; icesupport = yes
;----------------------------------- MEDIA HANDLING --------------------------------
; By default, Asterisk tries to re-invite media streams to an optimal path. If there's
diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c
index 45df0f923..7179d592a 100644
--- a/res/res_rtp_asterisk.c
+++ b/res/res_rtp_asterisk.c
@@ -111,7 +111,7 @@ enum strict_rtp_state {
};
#define DEFAULT_STRICT_RTP STRICT_RTP_CLOSED
-#define DEFAULT_ICESUPPORT 0
+#define DEFAULT_ICESUPPORT 1
extern struct ast_srtp_res *res_srtp;
extern struct ast_srtp_policy_res *res_srtp_policy;