[commit] r10103 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Author: anthm Date: Tue Oct 21 18:40:20 2008 New Revision: 10103 Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Log: 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. Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c Tue Oct 21 18:40:20 2008 @@ -2029,6 +2029,16 @@ } 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"); Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h Tue Oct 21 18:40:20 2008 @@ -297,6 +297,7 @@ reg_state_t state; switch_memory_pool_t *pool; int deleted; + switch_event_t *vars; struct sofia_gateway *next; }; Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c ============================================================================== --- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c (original) +++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_reg.c Tue Oct 21 18:40:20 2008 @@ -93,6 +93,9 @@ 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; }
participants (1)
-
Freeswitch SVN