[Freeswitch-svn] [commit] r3624 - in freeswitch/trunk: libs/libdingaling libs/libdingaling/src src/mod/endpoints/mod_dingaling

Freeswitch SVN anthm at freeswitch.org
Tue Dec 12 12:44:59 EST 2006


Author: anthm
Date: Tue Dec 12 12:44:59 2006
New Revision: 3624

Modified:
   freeswitch/trunk/libs/libdingaling/.update
   freeswitch/trunk/libs/libdingaling/src/libdingaling.c
   freeswitch/trunk/libs/libdingaling/src/libdingaling.h
   freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c

Log:
tweak to jingle

Modified: freeswitch/trunk/libs/libdingaling/.update
==============================================================================
--- freeswitch/trunk/libs/libdingaling/.update	(original)
+++ freeswitch/trunk/libs/libdingaling/.update	Tue Dec 12 12:44:59 2006
@@ -1 +1 @@
-Fri Dec  1 21:13:04 EST 2006
+Tue Dec 12 11:55:02 EST 2006

Modified: freeswitch/trunk/libs/libdingaling/src/libdingaling.c
==============================================================================
--- freeswitch/trunk/libs/libdingaling/src/libdingaling.c	(original)
+++ freeswitch/trunk/libs/libdingaling/src/libdingaling.c	Tue Dec 12 12:44:59 2006
@@ -701,6 +701,8 @@
 	
 	if (type && !strcasecmp(type, "unavailable")) {
 		signal = LDL_SIGNAL_PRESENCE_OUT;
+    } else if (type && !strcasecmp(type, "probe")) {
+		signal = LDL_SIGNAL_PRESENCE_PROBE;
 	} else {
 		signal = LDL_SIGNAL_PRESENCE_IN;
 	}
@@ -725,20 +727,15 @@
 	}
 
 
-	
 	if (resource && strstr(resource, "talk") && (buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) {
 		apr_cpystrn(buffer->buf, from, buffer->len);
 		fflush(stderr);
 		buffer->hit = 1;
 	}
 	
-	if (!type || (type && strcasecmp(type, "probe"))) {
-
-		if (handle->session_callback) {
-			handle->session_callback(handle, NULL, signal, to, id, status ? status : "n/a", show ? show : "n/a");
-		}
-	}
-
+    if (handle->session_callback) {
+        handle->session_callback(handle, NULL, signal, to, id, status ? status : "n/a", show ? show : "n/a");
+    }
 
 	return IKS_FILTER_EAT;
 }

Modified: freeswitch/trunk/libs/libdingaling/src/libdingaling.h
==============================================================================
--- freeswitch/trunk/libs/libdingaling/src/libdingaling.h	(original)
+++ freeswitch/trunk/libs/libdingaling/src/libdingaling.h	Tue Dec 12 12:44:59 2006
@@ -125,6 +125,7 @@
 	LDL_SIGNAL_MSG,
 	LDL_SIGNAL_PRESENCE_IN,
 	LDL_SIGNAL_PRESENCE_OUT,
+	LDL_SIGNAL_PRESENCE_PROBE,
 	LDL_SIGNAL_ROSTER,
 	LDL_SIGNAL_SUBSCRIBE,
 	LDL_SIGNAL_UNSUBSCRIBE,

Modified: freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c	(original)
+++ freeswitch/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c	Tue Dec 12 12:44:59 2006
@@ -2107,7 +2107,7 @@
 				}
 
 				if (is_special(to)) {
-					ldl_handle_send_presence(profile->handle, to, from, NULL, "unknown", "Click To Call");
+					ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
 				}
 
 #if 0
@@ -2116,7 +2116,7 @@
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO);
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login);
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s",  to);
-						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
+						//switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call");
 						switch_event_fire(&event);
 					}
@@ -2130,6 +2130,11 @@
 					switch_event_fire(&event);
 				}
 				break;
+			case LDL_SIGNAL_PRESENCE_PROBE:
+				if (is_special(to)) {
+                    ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
+                }
+                break;
 			case LDL_SIGNAL_PRESENCE_IN:
 				
 				if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) {
@@ -2148,7 +2153,7 @@
 
 				
 				if (is_special(to)) {
-					ldl_handle_send_presence(profile->handle, to, from, NULL, "unknown", "Click To Call");
+					ldl_handle_send_presence(profile->handle, to, from, NULL, NULL, "Click To Call");
 				}
 #if 0
 				if (is_special(to)) {
@@ -2156,13 +2161,14 @@
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "proto", MDL_CHAT_PROTO);
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "login", "%s", profile->login);
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "from", "%s",  to);
-						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
+						//switch_event_add_header(event, SWITCH_STACK_BOTTOM, "rpid", "unknown");
 						switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Click To Call");
 						switch_event_fire(&event);
 					}
 				}
 				break;
 #endif
+
 			case LDL_SIGNAL_PRESENCE_OUT:
 				
 				if ((sql = switch_mprintf("update subscriptions set show='%q', status='%q' where sub_from='%q'", msg, subject, from))) {



More information about the Freeswitch-svn mailing list