]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
merge 1
authorAnthony Minessale <anthony.minessale@gmail.com>
Sat, 7 Apr 2007 21:13:54 +0000 (21:13 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Sat, 7 Apr 2007 21:13:54 +0000 (21:13 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4885 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/libdingaling/src/libdingaling.c
src/mod/endpoints/mod_dingaling/mod_dingaling.c

index 68bd716ac1127e0a211f30bd85a4eaa65742173e..8c4622ed0d37a7246b90ad8f1f43c8f05e2c1142 100644 (file)
@@ -559,6 +559,8 @@ static int on_disco_default(void *user_data, ikspak *pak)
                globals.logger(DL_LOG_DEBUG, "FixME!!! node=[%s]\n", node?node:"");             
        } else if (pak->subtype == IKS_TYPE_GET) {
                if ((iq = iks_new("iq"))) {
+                       int all = 0;
+
                        iks_insert_attrib(iq, "from", handle->login);
                        iks_insert_attrib(iq, "to", pak->from->full);
                        iks_insert_attrib(iq, "id", pak->id);
@@ -576,13 +578,17 @@ static int on_disco_default(void *user_data, ikspak *pak)
                        if (!(tag = iks_insert (query, "identity"))) {
                                goto fail;
                        }
+                       
+                       if (!strcasecmp(ns, FEATURE_DISCO) && !node) {
+                               all++;
+                       }
 
                        iks_insert_attrib(tag, "category", "gateway");
                        iks_insert_attrib(tag, "type", "voice");
                        iks_insert_attrib(tag, "name", "LibDingaLing");
 
                        for (x = 0; FEATURES[x].name; x++) {
-                               if (!ns || !strcasecmp(ns, FEATURES[x].name)) {
+                               if (all || !ns || !strcasecmp(ns, FEATURES[x].name)) {
                                        if (!(tag = iks_insert (query, "feature"))) {
                                                goto fail;
                                        }
index 26cdab0bdd4d42f362552be19080b161efac014d..78f4614bcdf4a937afea2731f57a3cc90dea0cb0 100644 (file)
@@ -108,7 +108,9 @@ struct mdl_profile {
        char *login;
        char *password;
        char *message;
+#ifdef AUTO_REPLY
        char *auto_reply;
+#endif
        char *dialplan;
        char *ip;
        char *extip;
@@ -723,13 +725,15 @@ static void dl_logger(char *file, const char *func, int line, int level, char *f
                        if (ll) {
                                if ((xmltxt = strchr(ll, ':'))) {
                                        *xmltxt++ = '\0';
-                                       xml = switch_xml_parse_str(xmltxt, strlen(xmltxt));
-                                       form = switch_xml_toxml(xml);
-                                       switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, level, 
-                                                                         "%s:\n-------------------------------------------------------------------------------\n"
-                                                                         "%s\n", ll, form);
-                                       switch_xml_free(xml);
-                                       free(data);
+                                       if (strlen(xmltxt) > 2) {
+                                               xml = switch_xml_parse_str(xmltxt, strlen(xmltxt));
+                                               form = switch_xml_toxml(xml);
+                                               switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, level, 
+                                                                                 "%s:\n-------------------------------------------------------------------------------\n"
+                                                                                 "%s\n", ll, form);
+                                               switch_xml_free(xml);
+                                               free(data);
+                                       }
                                }
                        }
                } else {
@@ -1959,8 +1963,10 @@ static void set_profile_val(mdl_profile_t *profile, char *var, char *val)
                switch_set_flag(profile, TFLAG_TIMER);
        } else if (!strcasecmp(var, "dialplan")) {
                profile->dialplan = switch_core_strdup(module_pool, val);
+#ifdef AUTO_REPLY // gotta fix looping on this
        } else if (!strcasecmp(var, "auto-reply")) {
                profile->auto_reply = switch_core_strdup(module_pool, val);
+#endif
        } else if (!strcasecmp(var, "name")) {
                profile->name = switch_core_strdup(module_pool, val);
        } else if (!strcasecmp(var, "message")) {
@@ -2396,6 +2402,8 @@ static ldl_status handle_signalling(ldl_handle_t * handle, ldl_session_t * dlses
                                        switch_mutex_unlock(profile->mutex);
                                        if (is_special(to)) {
                                                ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call", profile->avatar);
+                                       } else {
+                                               ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Authenticated.\nCome to ClueCon!\nhttp://www.cluecon.com", profile->avatar);
                                        }
 #if 0
                                        if (is_special(to)) {
@@ -2491,12 +2499,13 @@ static ldl_status handle_signalling(ldl_handle_t * handle, ldl_session_t * dlses
                        char *proto = MDL_CHAT_PROTO;
                        char *pproto = NULL, *ffrom = NULL;
                        char *hint;
-
+#ifdef AUTO_REPLY
                        if (profile->auto_reply) {
                                ldl_handle_send_msg(handle,
                                                                        (profile->user_flags & LDL_FLAG_COMPONENT) ? to : ldl_handle_get_login(profile->handle), from, "",
                                                                        profile->auto_reply);
                        }
+#endif
 
                        if (strchr(to, '+')) {
                                pproto = strdup(to);