提交 20568e64 authored 作者: Anthony Minessale's avatar Anthony Minessale

wip

上级 f5e2a2e0
......@@ -1329,8 +1329,8 @@ static void parse_media(sdp_parser_t *p, char *r, sdp_media_t **result)
/* RTP format list */
if (*r && sdp_media_has_rtp(m)) {
parse_payload(p, r, &m->m_rtpmaps);
return;
parse_payload(p, r, &m->m_rtpmaps);
return;
}
/* "normal" format list */
......@@ -1602,8 +1602,9 @@ static void parse_media_attr(sdp_parser_t *p, char *r, sdp_media_t *m,
}
if (rtp && su_casematch(name, "rtpmap")) {
if ((n = parse_rtpmap(p, r, m)) == 0 || n < -1)
return;
if ((n = parse_rtpmap(p, r, m)) == 0 || n < -1)
return;
}
else if (rtp && su_casematch(name, "fmtp")) {
if ((n = parse_fmtp(p, r, m)) == 0 || n < -1)
......
......@@ -38,6 +38,8 @@
SWITCH_BEGIN_EXTERN_C
#define SWITCH_MAX_CAND_ACL 25
typedef enum {
DTMF_2833,
DTMF_INFO,
......@@ -242,6 +244,7 @@ SWITCH_DECLARE(void) switch_core_media_reset_autofix_timing(switch_core_session_
SWITCH_DECLARE(void) switch_core_media_check_outgoing_proxy(switch_core_session_t *session);
SWITCH_DECLARE(switch_status_t) switch_core_media_codec_chosen(switch_core_session_t *session, switch_media_type_t media);
SWITCH_DECLARE (void) switch_core_media_recover_session(switch_core_session_t *session);
SWITCH_DECLARE(switch_status_t) switch_core_media_add_ice_acl(switch_core_session_t *session, switch_media_type_t type, const char *acl_name);
SWITCH_END_EXTERN_C
#endif
......
......@@ -1295,6 +1295,8 @@ typedef enum {
CF_REINVITE,
CF_AUTOFLUSH_DURING_BRIDGE,
CF_RTP_NOTIMER_DURING_BRIDGE,
CF_WEBRTC,
CF_ICE,
/* WARNING: DO NOT ADD ANY FLAGS BELOW THIS LINE */
/* IF YOU ADD NEW ONES CHECK IF THEY SHOULD PERSIST OR ZERO THEM IN switch_core_session.c switch_core_session_request_xml() */
CF_FLAG_MAX
......
......@@ -619,6 +619,8 @@ struct sofia_profile {
uint32_t reg_acl_count;
char *nat_acl[SOFIA_MAX_ACL];
uint32_t nat_acl_count;
char *cand_acl[SWITCH_MAX_CAND_ACL];
uint32_t cand_acl_count;
int server_rport_level;
int client_rport_level;
sofia_presence_type_t pres_type;
......
......@@ -4359,6 +4359,13 @@ switch_status_t config_sofia(sofia_config_t reload, char *profile_name)
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SOFIA_MAX_ACL);
}
} else if (!strcasecmp(var, "apply-candidate-acl")) {
if (profile->cand_acl_count < SWITCH_MAX_CAND_ACL) {
profile->cand_acl[profile->cand_acl_count++] = strdup(val);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SWITCH_MAX_CAND_ACL);
}
} else if (!strcasecmp(var, "alias")) {
sip_alias_node_t *node;
if (zstr(val)) {
......
......@@ -72,7 +72,7 @@ void sofia_glue_set_name(private_object_t *tech_pvt, const char *channame)
void sofia_glue_attach_private(switch_core_session_t *session, sofia_profile_t *profile, private_object_t *tech_pvt, const char *channame)
{
unsigned int x;
unsigned int x, i;
switch_assert(session != NULL);
switch_assert(profile != NULL);
......@@ -167,6 +167,10 @@ void sofia_glue_attach_private(switch_core_session_t *session, sofia_profile_t *
switch_media_handle_set_media_flags(tech_pvt->media_handle, tech_pvt->profile->media_flags);
for(i = 0; i < profile->cand_acl_count; i++) {
switch_core_media_add_ice_acl(session, SWITCH_MEDIA_TYPE_AUDIO, profile->cand_acl[i]);
switch_core_media_add_ice_acl(session, SWITCH_MEDIA_TYPE_VIDEO, profile->cand_acl[i]);
}
switch_core_session_set_private(session, tech_pvt);
......
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论