Revision
14576
Author
gmaruzz
Date
2009-08-20 04:30:29 -0500 (Thu, 20 Aug 2009)

Log Message

skypiax: patch from Seven Du: channel naming when using 'RR' and 'ANY' interfaces, interface statistics 'sk list' totals

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/endpoints/mod_skypiax/mod_skypiax.c (14575 => 14576)


--- freeswitch/trunk/src/mod/endpoints/mod_skypiax/mod_skypiax.c	2009-08-20 09:03:27 UTC (rev 14575)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypiax/mod_skypiax.c	2009-08-20 09:30:29 UTC (rev 14576)
@@ -914,7 +914,15 @@
 		if (outbound_profile) {
 			char name[128];
 
-			snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
+			if (strncmp("ANY", outbound_profile->destination_number, 3 ) == 0) {
+				snprintf(name, sizeof(name), "skypiax/ANY/%s%s", tech_pvt->name, outbound_profile->destination_number+3);
+			} else if (strncmp("RR", outbound_profile->destination_number, 2) == 0) {
+				snprintf(name, sizeof(name), "skypiax/RR/%s%s", tech_pvt->name, outbound_profile->destination_number+2);
+			} else {
+				snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
+			}
+
+			//snprintf(name, sizeof(name), "skypiax/%s", outbound_profile->destination_number);
 			//snprintf(name, sizeof(name), "skypiax/%s", tech_pvt->name);
 			switch_channel_set_name(channel, name);
 			caller_profile = switch_caller_profile_clone(*new_session, outbound_profile);
@@ -1762,6 +1770,10 @@
 
 	if (!strcasecmp(argv[0], "list")) {
 		int i;
+		int ib = 0;
+		int ib_failed = 0;
+		int ob = 0;
+		int ob_failed = 0;
 		char next_flag_char = ' ';
 
 		stream->write_function(stream, "F ID\t    Name    \tIB (F/T)    OB (F/T)\tState\tCallFlw\t\tUUID\n");
@@ -1769,6 +1781,10 @@
 
 		for (i = 0; i < SKYPIAX_MAX_INTERFACES; i++) {
 			next_flag_char = i == globals.next_interface ? '*' : ' ';
+			ib += globals.SKYPIAX_INTERFACES[i].ib_calls;
+			ib_failed += globals.SKYPIAX_INTERFACES[i].ib_failed_calls;
+			ob += globals.SKYPIAX_INTERFACES[i].ob_calls;
+			ob_failed += globals.SKYPIAX_INTERFACES[i].ob_failed_calls;
 
 			if (strlen(globals.SKYPIAX_INTERFACES[i].name)) {
 				stream->write_function(stream,
@@ -1786,7 +1802,8 @@
 			}
 
 		}
-		stream->write_function(stream, "\nTotal: %d\n", globals.real_interfaces - 1);
+		stream->write_function(stream, "\nTotal Interfaces: %d  IB Calls(Failed/Total): %ld/%ld  OB Calls(Failed/Total): %ld/%ld\n",
+		       globals.real_interfaces - 1, ib_failed, ib, ob_failed, ob);
 
 	} else if (!strcasecmp(argv[0], "console")) {
 		int i;

Modified: freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax.h (14575 => 14576)


--- freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax.h	2009-08-20 09:03:27 UTC (rev 14575)
+++ freeswitch/trunk/src/mod/endpoints/mod_skypiax/skypiax.h	2009-08-20 09:30:29 UTC (rev 14576)
@@ -243,10 +243,10 @@
 	char transfer_callid_number[50];
 	char skype_transfer_call_id[512];
 	int running;
-	unsigned long ib_calls;
-	unsigned long ob_calls;
-	unsigned long ib_failed_calls;
-	unsigned long ob_failed_calls;
+	uint32_t ib_calls;
+	uint32_t ob_calls;
+	uint32_t ib_failed_calls;
+	uint32_t ob_failed_calls;
 };
 
 typedef struct private_object private_t;