#include "mod_opal.h"\r
#include <opal/patch.h>\r
#include <h323/h323pdu.h>\r
+#include <h323/gkclient.h>\r
\r
SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_codec_string, mod_opal_globals.codec_string);\r
SWITCH_DECLARE_GLOBAL_STRING_FUNC(set_global_context, mod_opal_globals.context);\r
}\r
}\r
\r
+ if (!m_gkAddress.IsEmpty()) {\r
+ if (m_h323ep->UseGatekeeper(m_gkAddress, m_gkIdentifer, m_gkInterface))\r
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Started gatekeeper: %s\n",\r
+ (const char *)m_h323ep->GetGatekeeper()->GetName());\r
+ else\r
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,\r
+ "Could not start gatekeeper: addr=\"%s\", id=\"%s\", if=\"%s\"\n",\r
+ (const char *)m_gkAddress,\r
+ (const char *)m_gkIdentifer,\r
+ (const char *)m_gkInterface);\r
+ }\r
+\r
return TRUE;\r
}\r
\r
if (xml == NULL) {\r
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of %s failed\n", cf);\r
return SWITCH_STATUS_FALSE;\r
- } else {\r
- switch_xml_t xmlSettings = switch_xml_child(cfg, "settings");\r
- if (xmlSettings) {\r
- for (switch_xml_t xmlParam = switch_xml_child(xmlSettings, "param"); xmlParam != NULL; xmlParam = xmlParam->next) {\r
- const char *var = switch_xml_attr_soft(xmlParam, "name");\r
- const char *val = switch_xml_attr_soft(xmlParam, "value");\r
+ }\r
\r
- if (!strcasecmp(var, "trace-level")) {\r
- int level = atoi(val);\r
- if (level > 0) {\r
- mod_opal_globals.trace_level = level;\r
- }\r
- } else if (!strcasecmp(var, "context")) {\r
- set_global_context(val);\r
- } else if (!strcasecmp(var, "dialplan")) {\r
- set_global_dialplan(val);\r
- } else if (!strcasecmp(var, "codec-prefs")) {\r
- set_global_codec_string(val);\r
- } else if (!strcasecmp(var, "jitter-size")) {\r
- char * next;\r
- unsigned minJitter = strtoul(val, &next, 10);\r
- if (minJitter >= 10) {\r
- unsigned maxJitter = minJitter;\r
- if (*next == ',')\r
- maxJitter = atoi(next+1);\r
- SetAudioJitterDelay(minJitter, maxJitter); // In milliseconds\r
- }\r
+ switch_xml_t xmlSettings = switch_xml_child(cfg, "settings");\r
+ if (xmlSettings) {\r
+ for (switch_xml_t xmlParam = switch_xml_child(xmlSettings, "param"); xmlParam != NULL; xmlParam = xmlParam->next) {\r
+ const char *var = switch_xml_attr_soft(xmlParam, "name");\r
+ const char *val = switch_xml_attr_soft(xmlParam, "value");\r
+\r
+ if (!strcasecmp(var, "trace-level")) {\r
+ int level = atoi(val);\r
+ if (level > 0) {\r
+ mod_opal_globals.trace_level = level;\r
}\r
+ } else if (!strcasecmp(var, "context")) {\r
+ set_global_context(val);\r
+ } else if (!strcasecmp(var, "dialplan")) {\r
+ set_global_dialplan(val);\r
+ } else if (!strcasecmp(var, "codec-prefs")) {\r
+ set_global_codec_string(val);\r
+ } else if (!strcasecmp(var, "jitter-size")) {\r
+ char * next;\r
+ unsigned minJitter = strtoul(val, &next, 10);\r
+ if (minJitter >= 10) {\r
+ unsigned maxJitter = minJitter;\r
+ if (*next == ',')\r
+ maxJitter = atoi(next+1);\r
+ SetAudioJitterDelay(minJitter, maxJitter); // In milliseconds\r
+ }\r
+ } else if (!strcasecmp(var, "gk-address")) {\r
+ m_gkAddress = val;\r
+ } else if (!strcasecmp(var, "gk-identifer")) {\r
+ m_gkIdentifer = val;\r
+ } else if (!strcasecmp(var, "gk-interface")) {\r
+ m_gkInterface = val;\r
}\r
}\r
}\r
\r
-\r
switch_xml_t xmlListeners = switch_xml_child(cfg, "listeners");\r
if (xmlListeners != NULL) {\r
for (switch_xml_t xmlListener = switch_xml_child(xmlListeners, "listener"); xmlListener != NULL; xmlListener = xmlListener->next) {\r