提交 19cc96cf authored 作者: Anthony Minessale's avatar Anthony Minessale

sick of this sip

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6061 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 c0ece5b7
...@@ -550,7 +550,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) ...@@ -550,7 +550,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
char *d_url = NULL, *url = NULL; char *d_url = NULL, *url = NULL;
sofia_private_t *sofia_private; sofia_private_t *sofia_private;
char *invite_contact = NULL, *to_str, *use_from_str, *from_str, *url_str; char *invite_contact = NULL, *to_str, *use_from_str, *from_str, *url_str;
char *transport = "udp", *t_var; char *transport = "udp", *t_var, *d_contact = NULL;
if (switch_strlen_zero(tech_pvt->dest)) { if (switch_strlen_zero(tech_pvt->dest)) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "URL Error! [%s]\n", tech_pvt->dest); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "URL Error! [%s]\n", tech_pvt->dest);
...@@ -586,10 +586,16 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) ...@@ -586,10 +586,16 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
url_str = switch_core_session_sprintf(session, "%s;transport=%s", url, transport); url_str = switch_core_session_sprintf(session, "%s;transport=%s", url, transport);
} }
if (strchr(tech_pvt->invite_contact, ';')) { d_contact = sofia_glue_get_url_from_contact(tech_pvt->invite_contact, 1);
invite_contact = switch_core_session_sprintf(session, "<%s&transport=%s>", tech_pvt->invite_contact, transport);
if (switch_stristr("port=", d_contact)) {
invite_contact = switch_core_session_sprintf(session, "<%s>", d_contact);
} else { } else {
invite_contact = switch_core_session_sprintf(session, "<%s;transport=%s>", tech_pvt->invite_contact, transport); if (strchr(d_contact, ';')) {
invite_contact = switch_core_session_sprintf(session, "<%s&transport=%s>", d_contact, transport);
} else {
invite_contact = switch_core_session_sprintf(session, "%s;transport=%s", d_contact, transport);
}
} }
if (strchr(use_from_str, '>')) { if (strchr(use_from_str, '>')) {
...@@ -612,6 +618,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session) ...@@ -612,6 +618,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
TAG_END()); TAG_END());
switch_safe_free(d_url); switch_safe_free(d_url);
switch_safe_free(d_contact);
if (!(sofia_private = malloc(sizeof(*sofia_private)))) { if (!(sofia_private = malloc(sizeof(*sofia_private)))) {
abort(); abort();
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论