Merged revisions 462 via svnmerge from

https://origsvn.digium.com/svn/libpri/branches/1.4

................
r462 | mattf | 2007-09-06 10:11:29 -0500 (Thu, 06 Sep 2007) | 9 lines

Merged revisions 460 via svnmerge from 
https://origsvn.digium.com/svn/libpri/branches/1.2

........
r460 | mattf | 2007-09-06 10:06:42 -0500 (Thu, 06 Sep 2007) | 1 line

TBCT now works.  It should work for NI2, 4E, and 5E.  This code was tested on NI2.
........

................


git-svn-id: https://origsvn.digium.com/svn/libpri/trunk@463 2fbb986a-6c06-0410-b554-c9c1f0a7f128
This commit is contained in:
Matthew Fredrickson
2007-09-06 15:15:50 +00:00
parent 68b9ad1084
commit dc7a314fb3
2 changed files with 33 additions and 29 deletions

46
pri.c
View File

@@ -540,28 +540,44 @@ int pri_channel_bridge(q931_call *call1, q931_call *call2)
if (!call1 || !call2)
return -1;
/* 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 (call1->pri->switchtype == PRI_SWITCH_LUCENT5E)
return eect_initiate_transfer(call1->pri, call1, call2);
if (call1->pri->switchtype == PRI_SWITCH_DMS100)
return rlt_initiate_transfer(call1->pri, call1, call2);
if (call1->pri->switchtype == PRI_SWITCH_QSIG) {
call1->bridged_call = call2;
call2->bridged_call = call1;
return anfpr_initiate_transfer(call1->pri, call1, call2);
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;
case PRI_SWITCH_DMS100:
if (rlt_initiate_transfer(call1->pri, call1, call2))
return -1;
else
return 0;
break;
case PRI_SWITCH_QSIG:
call1->bridged_call = call2;
call2->bridged_call = call1;
if (anfpr_initiate_transfer(call1->pri, call1, call2))
return -1;
else
return 0;
break;
default:
return -1;
}
return -1;
}
int pri_hangup(struct pri *pri, q931_call *call, int cause)