forked from Mirrors/freeswitch
Add sofia gateway parameter "destination-prefix"
FS-5497 add sofia gateway parameter destination-prefix in case you need to send Invites to your provider with prefix only to this gateway
This commit is contained in:
parent
3e5933a57b
commit
64060c7dbd
@ -4319,9 +4319,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
|
||||
}
|
||||
|
||||
if (!strchr(dest, '@')) {
|
||||
tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s@%s", dest, sofia_glue_strip_proto(gateway_ptr->register_proxy));
|
||||
tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s@%s", gateway_ptr->destination_prefix, dest, sofia_glue_strip_proto(gateway_ptr->register_proxy));
|
||||
} else {
|
||||
tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s", dest);
|
||||
tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s", gateway_ptr->destination_prefix, dest);
|
||||
}
|
||||
|
||||
if ((host = switch_core_session_strdup(nsession, tech_pvt->dest))) {
|
||||
|
@ -478,6 +478,7 @@ struct sofia_gateway {
|
||||
char *register_context;
|
||||
char *expires_str;
|
||||
char *register_url;
|
||||
char *destination_prefix;
|
||||
char *from_domain;
|
||||
sofia_transport_t register_transport;
|
||||
uint32_t freq;
|
||||
|
@ -3315,6 +3315,7 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag)
|
||||
gateway->ob_calls = 0;
|
||||
gateway->ib_failed_calls = 0;
|
||||
gateway->ob_failed_calls = 0;
|
||||
gateway->destination_prefix = "";
|
||||
|
||||
if ((x_params = switch_xml_child(gateway_tag, "variables"))) {
|
||||
param = switch_xml_child(x_params, "variable");
|
||||
@ -3416,6 +3417,10 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag)
|
||||
outbound_proxy = val;
|
||||
} else if (!strcmp(var, "distinct-to")) {
|
||||
distinct_to = switch_true(val);
|
||||
} else if (!strcmp(var, "destination-prefix")) {
|
||||
if (!zstr(val)) {
|
||||
gateway->destination_prefix = switch_core_strdup(gateway->pool, val);
|
||||
}
|
||||
} else if (!strcmp(var, "rfc-5626")) {
|
||||
rfc_5626 = switch_true(val);
|
||||
} else if (!strcmp(var, "reg-id")) {
|
||||
|
Loading…
Reference in New Issue
Block a user