[Freeswitch-branches] [commit] r10269 - in freeswitch/branches/gmaruzz: src/mod/endpoints/mod_skypiax stuff
Freeswitch SVN
gmaruzz at freeswitch.org
Fri Nov 7 11:40:59 PST 2008
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>
More information about the Freeswitch-branches
mailing list