Add optional <variables> and <params> tag to <gateway> tag.

current gateways are:
<gateway>
 <param name="foo" value="bar"/>
</gateway>

now can also be:
<gateway>
 <params>
  <param name="foo" value="bar"/>
 </params>
</gateway>

now can also be:
<gateway>
 <params>
  <param name="foo" value="bar"/>
 </params>
 <variables>
  <variable name="myvar" val="myval"/>
 </variables>
</gateway>

any variables will be set on all outgoing channels using that gateway.




git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10103 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-10-21 22:40:20 +00:00
parent ef24ef8db9
commit 9c176dc203
3 changed files with 14 additions and 0 deletions

View File

@ -2029,6 +2029,16 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session
} else {
tech_pvt->invite_contact = switch_core_session_strdup(nsession, gateway_ptr->register_contact);
}
if (gateway_ptr->vars) {
switch_event_header_t *hp;
for(hp = gateway_ptr->vars->headers; hp; hp = hp->next) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s setting variable [%s]=[%s]\n",
switch_channel_get_name(nchannel), hp->name, hp->value);
switch_channel_set_variable(nchannel, hp->name, hp->value);
}
}
} else {
if (!(dest = strchr(profile_name, '/'))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid URL\n");

View File

@ -297,6 +297,7 @@ struct sofia_gateway {
reg_state_t state;
switch_memory_pool_t *pool;
int deleted;
switch_event_t *vars;
struct sofia_gateway *next;
};

View File

@ -93,6 +93,9 @@ void sofia_reg_check_gateway(sofia_profile_t *profile, time_t now)
switch_core_hash_delete(mod_sofia_globals.gateway_hash, gateway_ptr->register_from);
switch_core_hash_delete(mod_sofia_globals.gateway_hash, gateway_ptr->register_contact);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Deleted gateway %s\n", gateway_ptr->name);
if (gateway_ptr->vars) {
switch_event_destroy(&gateway_ptr->vars);
}
} else {
last = gateway_ptr;
}