summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;