[libpri-commits] mattf: branch 1.2 r460 - in /branches/1.2: pri.c pri_facility.c
SVN commits to the libpri project
libpri-commits at lists.digium.com
Thu Sep 6 10:06:43 CDT 2007
Author: mattf
Date: Thu Sep 6 10:06:42 2007
New Revision: 460
URL: http://svn.digium.com/view/libpri?view=rev&rev=460
Log:
TBCT now works. It should work for NI2, 4E, and 5E. This code was tested on NI2.
Modified:
branches/1.2/pri.c
branches/1.2/pri_facility.c
Modified: branches/1.2/pri.c
URL: http://svn.digium.com/view/libpri/branches/1.2/pri.c?view=diff&rev=460&r1=459&r2=460
==============================================================================
--- branches/1.2/pri.c (original)
+++ branches/1.2/pri.c Thu Sep 6 10:06:42 2007
@@ -521,24 +521,30 @@
if (!call1 || !call2)
return -1;
- /* Check switchtype compatibility */
- if (call1->pri->switchtype != PRI_SWITCH_LUCENT5E ||
- call2->pri->switchtype != PRI_SWITCH_LUCENT5E)
+ /* Make sure we have compatible switchtypes */
+ if (call1->pri->switchtype != call2->pri->switchtype)
return -1;
/* Check for bearer capability */
if (call1->transcapability != call2->transcapability)
return -1;
- /* Check to see if calls are on the same PRI dchannel
- * Currently only support calls on the same dchannel
- */
+
+ /* Check to see if we're on the same PRI */
if (call1->pri != call2->pri)
return -1;
- if (eect_initiate_transfer(call1->pri, call1, call2))
- return -1;
-
- return 0;
+ switch (call1->pri->switchtype) {
+ case PRI_SWITCH_NI2:
+ case PRI_SWITCH_LUCENT5E:
+ case PRI_SWITCH_ATT4ESS:
+ if (eect_initiate_transfer(call1->pri, call1, call2))
+ return -1;
+ else
+ return 0;
+ break;
+ default:
+ return -1;
+ }
}
int pri_hangup(struct pri *pri, q931_call *call, int cause)
Modified: branches/1.2/pri_facility.c
URL: http://svn.digium.com/view/libpri/branches/1.2/pri_facility.c?view=diff&rev=460&r1=459&r2=460
==============================================================================
--- branches/1.2/pri_facility.c (original)
+++ branches/1.2/pri_facility.c Thu Sep 6 10:06:42 2007
@@ -859,13 +859,10 @@
/* EECT functions */
extern int eect_initiate_transfer(struct pri *pri, q931_call *c1, q931_call *c2)
{
- /* Did all the tests to see if we're on the same PRI and
- * are on a compatible switchtype */
- /* TODO */
int i = 0;
int res = 0;
unsigned char buffer[255] = "";
- unsigned short call_reference = c2->cr;
+ short call_reference = c2->cr ^ 0x8000; /* Let's do the trickery to make sure the flag is correct */
struct rose_component *comp = NULL, *compstk[10];
int compsp = 0;
static unsigned char op_tag[] = {
@@ -878,16 +875,7 @@
0x08,
};
- buffer[i++] = (ASN1_CONTEXT_SPECIFIC | Q932_PROTOCOL_EXTENSIONS);
- /* Interpretation component */
-
- ASN1_ADD_SIMPLE(comp, COMP_TYPE_NFE, buffer, i);
- ASN1_PUSH(compstk, compsp, comp);
- ASN1_ADD_BYTECOMP(comp, (ASN1_CONTEXT_SPECIFIC | ASN1_TAG_0), buffer, i, 0);
- ASN1_ADD_BYTECOMP(comp, (ASN1_CONTEXT_SPECIFIC | ASN1_TAG_2), buffer, i, 0);
- ASN1_FIXUP(compstk, compsp, buffer, i);
-
- ASN1_ADD_BYTECOMP(comp, COMP_TYPE_INTERPRETATION, buffer, i, 0);
+ buffer[i++] = (ASN1_CONTEXT_SPECIFIC | Q932_PROTOCOL_ROSE);
ASN1_ADD_SIMPLE(comp, COMP_TYPE_INVOKE, buffer, i);
ASN1_PUSH(compstk, compsp, comp);
More information about the libpri-commits
mailing list