[libss7-commits] mattf: trunk r6 - in /trunk: isup.c mtp3.c

libss7-commits at lists.digium.com libss7-commits at lists.digium.com
Thu Aug 3 12:45:13 MST 2006


Author: mattf
Date: Thu Aug  3 14:45:12 2006
New Revision: 6

URL: http://svn.digium.com/view/libss7?rev=6&view=rev
Log:
Add support for ANSI style CICs

Modified:
    trunk/isup.c
    trunk/mtp3.c

Modified: trunk/isup.c
URL: http://svn.digium.com/view/libss7/trunk/isup.c?rev=6&r1=5&r2=6&view=diff
==============================================================================
--- trunk/isup.c (original)
+++ trunk/isup.c Thu Aug  3 14:45:12 2006
@@ -653,8 +653,8 @@
 		mh->cic[0] = c->cic & 0xff;
 		mh->cic[1] = (c->cic >> 8) & 0x0f;
 	} else {
-		ss7_error(ss7, "Incomplete support for non ITU style switchtypes\n");
-		return -1;
+		mh->cic[0] = c->cic & 0xff;
+		mh->cic[1] = (c->cic >> 8) & 0x03f;
 	}
 
 	mh->type = messagetype;
@@ -754,8 +754,7 @@
 	if (ss7->switchtype == SS7_ITU) {
 		cic = mh->cic[0] | ((mh->cic[1] << 8) & 0x0f);
 	} else {
-		ss7_error(ss7, "Don't handle non ITU switchtypes yet\n");
-		return -1;
+		cic = mh->cic[0] | ((mh->cic[1] << 8) & 0x3f);
 	}
 	/* Find us in the message list */
 	for (x = 0; x < sizeof(messages)/sizeof(struct message_data); x++)
@@ -791,8 +790,7 @@
 	if (ss7->switchtype == SS7_ITU) {
 		cic = mh->cic[0] | ((mh->cic[1] << 8) & 0x0f);
 	} else {
-		ss7_error(ss7, "Don't handle non ITU switchtypes yet\n");
-		return -1;
+		cic = mh->cic[0] | ((mh->cic[1] << 8) & 0x3f);
 	}
 
 	/* Find us in the message list */

Modified: trunk/mtp3.c
URL: http://svn.digium.com/view/libss7/trunk/mtp3.c?rev=6&r1=5&r2=6&view=diff
==============================================================================
--- trunk/mtp3.c (original)
+++ trunk/mtp3.c Thu Aug  3 14:45:12 2006
@@ -30,7 +30,7 @@
 		case SIG_ISUP:
 			return "ISUP";
 		default:
-			return "Unknown User part";
+			return "Unknown";
 	}
 }
 
@@ -68,6 +68,11 @@
 static inline unsigned char get_ni(unsigned char sio)
 {
 	return (sio >> 6) & 0x3;
+}
+
+static inline unsigned char get_priority(unsigned char sio)
+{
+	return (sio >> 4) & 0x3;
 }
 
 int set_routinglabel(unsigned char *sif, struct routing_label *rl)
@@ -315,6 +320,7 @@
 	unsigned char *sio = &buf[0];
 	unsigned char *sif = &buf[1];
 	unsigned char ni = get_ni(*sio);
+	unsigned char priority = get_priority(*sio);
 	unsigned char userpart = get_userpart(*sio);
 	struct routing_label rl;
 	unsigned int siflen = len - 1;
@@ -327,7 +333,7 @@
 
 	ss7_message(ss7, "\tOPC 0x%x DPC 0x%x\n", rl.opc, rl.dpc);
 
-	ss7_message(ss7, "\tUser Part: %s (%x)\n", userpart2str(userpart), userpart);
+	ss7_message(ss7, "\tUser Part: %s (%x) Priority: %d\n", userpart2str(userpart), userpart, priority);
 
 	/* Pass it to the correct user part */
 	switch (userpart) {



More information about the libss7-commits mailing list