[commit] r10269 - in freeswitch/branches/gmaruzz: src/mod/endpoints/mod_skypiax stuff
Author: gmaruzz Date: Thu Nov 6 09:04:02 2008 New Revision: 10269 Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c freeswitch/branches/gmaruzz/stuff/skypiax.conf.xml Log: skypiax: continue to parse nested configuration, eg: multiple interfaces Modified: freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c ============================================================================== --- freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c (original) +++ freeswitch/branches/gmaruzz/src/mod/endpoints/mod_skypiax/mod_skypiax.c Thu Nov 6 09:04:02 2008 @@ -2271,6 +2271,7 @@ typedef struct private_object private_t; struct skypiax_config { + char span_id[80]; char name[80]; char dialplan[80]; char context[80]; @@ -2723,6 +2724,8 @@ } if ((spans = switch_xml_child(cfg, "analog_spans"))) { + int i=0; + for (myspan = switch_xml_child(spans, "span"); myspan; myspan = myspan->next) { char *id = (char *) switch_xml_attr(myspan, "id"); char *name = (char *) switch_xml_attr(myspan, "name"); @@ -2771,6 +2774,13 @@ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span missing REQUIRED param 'id'\n"); continue; } + if (switch_is_number(id)) { + span_id = atoi(id); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d\n", span_id); + } else { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "span param 'id' MUST be a number, now id='%s'\n", id); + continue; + } if (!name) { @@ -2793,17 +2803,13 @@ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "name=%s\n", name); } - if (switch_is_number(id)) { - span_id = atoi(id); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d\n", span_id); - } - if(span_id && span_id < SKYPIAX_MAX_INTERFACES ) { struct skypiax_config newconf; //skypax_config_t newconf; memset(&newconf, '\0', sizeof(newconf)); SKYPIAX_CONFIGS[span_id]=newconf; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "CONFIGURING span_id=%d\n", span_id); + switch_set_string(SKYPIAX_CONFIGS[span_id].span_id, id); if (name) { switch_set_string(SKYPIAX_CONFIGS[span_id].name, name); } else { @@ -2811,6 +2817,7 @@ } switch_set_string(SKYPIAX_CONFIGS[span_id].context, context); switch_set_string(SKYPIAX_CONFIGS[span_id].dialplan, dialplan); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].name=%s\n", span_id, SKYPIAX_CONFIGS[span_id].name); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].context=%s\n", span_id, SKYPIAX_CONFIGS[span_id].context); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].dialplan=%s\n", span_id, SKYPIAX_CONFIGS[span_id].dialplan); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "STARTING span_id=%d\n", span_id); @@ -2819,17 +2826,18 @@ continue; } - for(span_id=0; span_id < SKYPIAX_MAX_INTERFACES; span_id++) { - if(strlen(SKYPIAX_CONFIGS[span_id].name)) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].context=%s\n", span_id, SKYPIAX_CONFIGS[span_id].context); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "span_id=%d SKYPIAX_CONFIGS[span_id].dialplan=%s\n", span_id, SKYPIAX_CONFIGS[span_id].dialplan); - } + } + for(i=0; i < SKYPIAX_MAX_INTERFACES; i++) { + if(strlen(SKYPIAX_CONFIGS[i].name)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].span_id=%s\n", i, SKYPIAX_CONFIGS[i].span_id); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].name=%s\n", i, SKYPIAX_CONFIGS[i].name); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].context=%s\n", i, SKYPIAX_CONFIGS[i].context); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "i=%d SKYPIAX_CONFIGS[i].dialplan=%s\n", i, SKYPIAX_CONFIGS[i].dialplan); } } } - switch_xml_free(xml); return SWITCH_STATUS_SUCCESS; Modified: freeswitch/branches/gmaruzz/stuff/skypiax.conf.xml ============================================================================== --- freeswitch/branches/gmaruzz/stuff/skypiax.conf.xml (original) +++ freeswitch/branches/gmaruzz/stuff/skypiax.conf.xml Thu Nov 6 09:04:02 2008 @@ -46,7 +46,29 @@ <param name="dial-regex" value="9996"/> <param name="dial-regex-fail" value="9996"/> </span> - <span id="2" name="cucu"> + <span id="55" name="cucu"> + <param name="hold-music" value="$${moh_uri}"/> + <param name="tonegroup" value="us"/> + <param name="digit-timeout" value="2000"/> + <param name="max-digits" value="11"/> + <param name="dialplan" value="XML"/> + <param name="context" value="default"/> + <param name="enable-callerid" value="true"/> + <param name="dial-regex" value="9996"/> + <param name="dial-regex-fail" value="9996"/> + </span> + <span id="55c" name="cucu"> + <param name="hold-music" value="$${moh_uri}"/> + <param name="tonegroup" value="us"/> + <param name="digit-timeout" value="2000"/> + <param name="max-digits" value="11"/> + <param name="dialplan" value="XML"/> + <param name="context" value="default"/> + <param name="enable-callerid" value="true"/> + <param name="dial-regex" value="9996"/> + <param name="dial-regex-fail" value="9996"/> + </span> + <span id="73"> <param name="hold-music" value="$${moh_uri}"/> <param name="tonegroup" value="us"/> <param name="digit-timeout" value="2000"/> @@ -68,6 +90,5 @@ <param name="dial-regex" value="9996"/> <param name="dial-regex-fail" value="9996"/> </span> - </analog_spans> </configuration>
participants (1)
-
Freeswitch SVN