[libss7-commits] mattf: trunk r140 - in /trunk: isup.c libss7.h

SVN commits to the libss7 project libss7-commits at lists.digium.com
Mon Feb 18 14:52:39 CST 2008


Author: mattf
Date: Mon Feb 18 14:52:38 2008
New Revision: 140

URL: http://svn.digium.com/view/libss7?view=rev&rev=140
Log:
Fix for 11779.  Allow different point codes in same linkset

Modified:
    trunk/isup.c
    trunk/libss7.h

Modified: trunk/isup.c
URL: http://svn.digium.com/view/libss7/trunk/isup.c?view=diff&rev=140&r1=139&r2=140
==============================================================================
--- trunk/isup.c (original)
+++ trunk/isup.c Mon Feb 18 14:52:38 2008
@@ -2559,11 +2559,13 @@
 			e->iam.lspi_context = c->lspi_context;
 			strncpy(e->iam.lspi_ident, c->lspi_ident, sizeof(e->iam.lspi_ident));
 			e->iam.call = c;
+			e->iam.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_CQM:
 			e->e = ISUP_EVENT_CQM;
 			e->cqm.startcic = cic;
 			e->cqm.endcic = cic + c->range;
+			e->cqm.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c); /* Won't need this again */
 			return 0;
 		case ISUP_GRS:
@@ -2571,6 +2573,7 @@
 			e->grs.startcic = cic;
 			e->grs.endcic = cic + c->range;
 			isup_free_call(ss7, c); /* Won't need this again */
+			e->grs.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_GRA:
 			e->e = ISUP_EVENT_GRA;
@@ -2578,6 +2581,7 @@
 			e->gra.endcic = cic + c->range;
 			for (i = 0; i < (c->range + 1); i++)
 				e->gra.status[i] = c->status[i];
+			e->gra.opc = opc; /* keep OPC information */
 
 			isup_free_call(ss7, c); /* Won't need this again */
 			return 0;
@@ -2585,12 +2589,14 @@
 			e->e = ISUP_EVENT_RSC;
 			e->rsc.cic = cic;
 			e->rsc.call = c;
+			e->rsc.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_REL:
 			e->e = ISUP_EVENT_REL;
 			e->rel.cic = c->cic;
 			e->rel.call = c;
 			e->rel.cause = c->cause;
+			e->rel.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_ACM:
 			e->e = ISUP_EVENT_ACM;
@@ -2598,20 +2604,24 @@
 			e->acm.call_ref_ident = c->call_ref_ident;
 			e->acm.call_ref_pc = c->call_ref_pc;
 			e->acm.call = c;
+			e->acm.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_CON:
 			e->e = ISUP_EVENT_CON;
 			e->con.cic = c->cic;
 			e->con.call = c;
+			e->con.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_ANM:
 			e->e = ISUP_EVENT_ANM;
 			e->anm.cic = c->cic;
 			e->anm.call = c;
+			e->anm.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_RLC:
 			e->e = ISUP_EVENT_RLC;
 			e->rlc.cic = c->cic;
+			e->rlc.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_COT:
@@ -2619,35 +2629,42 @@
 			e->cot.cic = c->cic;
 			e->cot.passed = c->cot_check_passed;
 			e->cot.call = c;
+			e->cot.opc = opc; /* keep OPC information */
 			return 0;
 		case ISUP_CCR:
 			e->e = ISUP_EVENT_CCR;
 			e->ccr.cic = c->cic;
+			e->ccr.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_BLO:
 			e->e = ISUP_EVENT_BLO;
 			e->blo.cic = c->cic;
+			e->blo.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_UBL:
 			e->e = ISUP_EVENT_UBL;
 			e->ubl.cic = c->cic;
+			e->ubl.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_BLA:
 			e->e = ISUP_EVENT_BLA;
 			e->bla.cic = c->cic;
+			e->bla.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_LPA:
 			e->e = ISUP_EVENT_LPA;
 			e->lpa.cic = c->cic;
+			e->lpa.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_UBA:
 			e->e = ISUP_EVENT_UBA;
 			e->uba.cic = c->cic;
+			e->uba.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_CGB:
@@ -2658,6 +2675,7 @@
 
 			for (i = 0; i < (c->range + 1); i++)
 				e->cgb.status[i] = c->status[i];
+			e->cgb.opc = opc; /* keep OPC information */
 
 			isup_free_call(ss7, c);
 			return 0;
@@ -2669,17 +2687,20 @@
 
 			for (i = 0; i < (c->range + 1); i++)
 				e->cgu.status[i] = c->status[i];
+			e->cgu.opc = opc; /* keep OPC information */
 
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_CPG:
 			e->e = ISUP_EVENT_CPG;
 			e->cpg.cic = c->cic;
+			e->cpg.opc = opc; /* keep OPC information */
 			e->cpg.event = c->event_info;
 			return 0;
 		case ISUP_UCIC:
 			e->e = ISUP_EVENT_UCIC;
 			e->ucic.cic = c->cic;
+			e->ucic.opc = opc; /* keep OPC information */
 			isup_free_call(ss7, c);
 			return 0;
 		case ISUP_FAA:
@@ -2687,6 +2708,7 @@
 			e->faa.cic = c->cic;
 			e->faa.call_ref_ident = c->call_ref_ident;
 			e->faa.call_ref_pc = c->call_ref_pc;
+			e->ucic.opc = opc; /* keep OPC information */
 			e->faa.call = c;
 			return 0;
 		case ISUP_FAR:
@@ -2694,6 +2716,7 @@
 			e->far.cic = c->cic;
 			e->far.call_ref_ident = c->call_ref_ident;
 			e->far.call_ref_pc = c->call_ref_pc;
+			e->ucic.opc = opc; /* keep OPC information */
 			e->far.call = c;
 			return 0;
 		default:

Modified: trunk/libss7.h
URL: http://svn.digium.com/view/libss7/trunk/libss7.h?view=diff&rev=140&r1=139&r2=140
==============================================================================
--- trunk/libss7.h (original)
+++ trunk/libss7.h Mon Feb 18 14:52:38 2008
@@ -130,6 +130,7 @@
 	unsigned char lspi_spare;
 	char lspi_ident[50];
 	int oli_ani2;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_iam;
 
@@ -137,29 +138,34 @@
 	int e;
 	int cic;
 	int cause;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_rel;
 
 typedef struct {
 	int e;
 	int cic;
+	unsigned int opc;
 } ss7_event_ciconly;
 
 typedef struct {
 	int e;
 	int cic;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_con;
 
 typedef struct {
 	int e;
 	int cic;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_rsc;
 
 typedef struct {
 	int e;
 	int cic;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_anm;
 
@@ -168,6 +174,7 @@
 	int cic;
 	unsigned int call_ref_ident;
 	unsigned int call_ref_pc;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_acm;
 
@@ -176,6 +183,7 @@
 	int startcic;
 	int endcic;
 	int type;
+	unsigned int opc;
 	unsigned char status[255];
 } ss7_event_cicrange;
 
@@ -183,6 +191,7 @@
 	int e;
 	int cic;
 	int passed;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_cot;
 
@@ -194,6 +203,7 @@
 typedef struct {
 	int e;
 	int cic;
+	unsigned int opc;
 	unsigned char event;
 } ss7_event_cpg;
 
@@ -202,6 +212,7 @@
 	int cic;
 	unsigned int call_ref_ident;
 	unsigned int call_ref_pc;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_faa;
 
@@ -210,6 +221,7 @@
 	int cic;
 	unsigned int call_ref_ident;
 	unsigned int call_ref_pc;
+	unsigned int opc;
 	struct isup_call *call;
 } ss7_event_far;
 




More information about the libss7-commits mailing list