提交 0e7a3290 authored 作者: Michael Jerris's avatar Michael Jerris

fix for MODENDP-60 (handle max-forwards across a bridge). Move logic to core to…

fix for MODENDP-60 (handle max-forwards across a bridge).  Move logic to core to copy and decrement var.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6974 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 9857d6dd
......@@ -616,10 +616,8 @@ char *sofia_overcome_sip_uri_weakness(switch_core_session_t *session, const char
switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
{
char *alert_info = NULL;
char *max_forwards = NULL;
const char *max_forwards = NULL;
const char *alertbuf;
const char *forwardbuf;
int forwardval;
private_object_t *tech_pvt;
switch_channel_t *channel = NULL;
switch_caller_profile_t *caller_profile;
......@@ -664,10 +662,7 @@ switch_status_t sofia_glue_do_invite(switch_core_session_t *session)
alert_info = switch_core_session_sprintf(tech_pvt->session, "Alert-Info: %s", alertbuf);
}
if ((forwardbuf = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE))) {
forwardval = atoi(forwardbuf) - 1;
max_forwards = switch_core_session_sprintf(tech_pvt->session, "%d", forwardval);
}
max_forwards = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE);
if ((status = sofia_glue_tech_choose_port(tech_pvt)) != SWITCH_STATUS_SUCCESS) {
return status;
......
......@@ -288,8 +288,14 @@ SWITCH_DECLARE(switch_call_cause_t) switch_core_session_outgoing_channel(switch_
switch_channel_set_variable(peer_channel, SWITCH_B_SDP_VARIABLE, val);
}
if ((val = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE))) {
switch_channel_set_variable(peer_channel, SWITCH_MAX_FORWARDS_VARIABLE, val);
val = switch_channel_get_variable(channel, SWITCH_MAX_FORWARDS_VARIABLE);
if (!switch_strlen_zero(val)) {
int forwardval = atoi(val) - 1;
const char *max_forwards = switch_core_session_sprintf(session, "%d", forwardval);
switch_channel_set_variable(peer_channel, SWITCH_MAX_FORWARDS_VARIABLE, max_forwards);
} else {
switch_channel_set_variable(peer_channel, SWITCH_MAX_FORWARDS_VARIABLE, "70");
}
if (switch_channel_test_flag(channel, CF_BYPASS_MEDIA)) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论