Added typedefs for some functions to simplify the declarations for the function pointer tables and the header files.
API rework to simplify the Umes functions. git-svn-id: http://svn.openzap.org/svn/openzap/trunk@169 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
parent
231762faae
commit
53f6f60ba8
|
@ -52,7 +52,6 @@ $(SRC)/isdn/Q931ie.o \
|
|||
$(SRC)/isdn/Q931mes.o \
|
||||
$(SRC)/isdn/Q931StateNT.o \
|
||||
$(SRC)/isdn/Q931StateTE.o \
|
||||
$(SRC)/isdn/nationalie.o \
|
||||
$(SRC)/isdn/nationalmes.o \
|
||||
$(SRC)/isdn/nationalStateNT.o \
|
||||
$(SRC)/isdn/nationalStateTE.o \
|
||||
|
|
|
@ -202,10 +202,6 @@
|
|||
RelativePath="..\src\isdn\mfifo.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\isdn\nationalie.c"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\src\isdn\nationalmes.c"
|
||||
>
|
||||
|
|
|
@ -56,163 +56,14 @@
|
|||
these table entries during system inititialization of a stack.
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT (*Q931Proc [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *,L3INT);
|
||||
q931proc_func_t *Q931Proc[Q931MAXDLCT][Q931MAXMES];
|
||||
|
||||
L3INT (*Q931Umes [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size);
|
||||
L3INT (*Q931Pmes [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
|
||||
q931umes_func_t *Q931Umes[Q931MAXDLCT][Q931MAXMES];
|
||||
q931pmes_func_t *Q931Pmes[Q931MAXDLCT][Q931MAXMES];
|
||||
|
||||
L3INT (*Q931Uie [Q931MAXDLCT][Q931MAXIE]) (Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT (*Q931Pie [Q931MAXDLCT][Q931MAXIE]) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
q931uie_func_t *Q931Uie[Q931MAXDLCT][Q931MAXIE];
|
||||
q931pie_func_t *Q931Pie[Q931MAXDLCT][Q931MAXIE];
|
||||
|
||||
L3UINT Q931MsgieOffset[Q931MAXIE];
|
||||
|
||||
void Q931Initialize_MsgieOffset()
|
||||
{
|
||||
L3INT x;
|
||||
Q931mes_Generic msg;
|
||||
ie *index;
|
||||
|
||||
for(x=0; x<Q931MAXIE; x++) {
|
||||
switch(x)
|
||||
{
|
||||
case Q931ie_SWITCHOOK:
|
||||
index = &msg.Switchhook;
|
||||
break;
|
||||
case Q931ie_FEATURE_ACTIVATION:
|
||||
index = &msg.FeatAct;
|
||||
break;
|
||||
case Q931ie_FEATURE_INDICATION:
|
||||
index = &msg.FeatInd;
|
||||
break;
|
||||
case Q931ie_CALL_IDENTITY:
|
||||
index = &msg.CallID;
|
||||
break;
|
||||
case Q931ie_SHIFT:
|
||||
index = &msg.Shift;
|
||||
break;
|
||||
case Q931ie_MORE_DATA:
|
||||
index = &msg.MoreData;
|
||||
break;
|
||||
case Q931ie_SENDING_COMPLETE:
|
||||
index = &msg.SendComplete;
|
||||
break;
|
||||
case Q931ie_CONGESTION_LEVEL:
|
||||
index = &msg.CongestionLevel;
|
||||
break;
|
||||
case Q931ie_REPEAT_INDICATOR:
|
||||
index = &msg.RepeatInd;
|
||||
break;
|
||||
case Q931ie_SEGMENTED_MESSAGE:
|
||||
index = &msg.Segment;
|
||||
break;
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
index = &msg.BearerCap;
|
||||
break;
|
||||
case Q931ie_CAUSE:
|
||||
index = &msg.Cause;
|
||||
break;
|
||||
case Q931ie_CALL_STATE:
|
||||
index = &msg.CallState;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
index = &msg.ChanID;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
index = &msg.ProgInd;
|
||||
break;
|
||||
case Q931ie_NETWORK_SPECIFIC_FACILITIES:
|
||||
index = &msg.NetFac;
|
||||
break;
|
||||
case Q931ie_NOTIFICATION_INDICATOR:
|
||||
index = &msg.NotifInd;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
index = &msg.Display;
|
||||
break;
|
||||
case Q931ie_DATETIME:
|
||||
index = &msg.DateTime;
|
||||
break;
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
index = &msg.KeypadFac;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
index = &msg.Signal;
|
||||
break;
|
||||
case Q931ie_INFORMATION_RATE:
|
||||
index = &msg.InfoRate;
|
||||
break;
|
||||
case Q931ie_END_TO_END_TRANSIT_DELAY:
|
||||
index = &msg.EndEndTxDelay;
|
||||
break;
|
||||
case Q931ie_TRANSIT_DELAY_SELECTION_AND_IND:
|
||||
index = &msg.TransDelSelInd;
|
||||
break;
|
||||
case Q931ie_PACKED_LAYER_BIMARY_PARAMETERS:
|
||||
index = &msg.PackParam;
|
||||
break;
|
||||
case Q931ie_PACKED_LAYER_WINDOW_SIZE:
|
||||
index = &msg.PackWinSize;
|
||||
break;
|
||||
case Q931ie_PACKED_SIZE:
|
||||
index = &msg.PackSize;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_NUMBER:
|
||||
index = &msg.CallingNum;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_SUBADDRESS:
|
||||
index = &msg.CallingSub;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
index = &msg.CalledNum;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_SUBADDRESS:
|
||||
index = &msg.CalledSub;
|
||||
break;
|
||||
case Q931ie_REDIRECTING_NUMBER:
|
||||
index = &msg.RedirNum;
|
||||
break;
|
||||
case Q931ie_TRANSIT_NETWORK_SELECTION:
|
||||
index = &msg.TransNetSel;
|
||||
break;
|
||||
case Q931ie_RESTART_INDICATOR:
|
||||
index = &msg.RestartInd;
|
||||
break;
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
index = &msg.LLComp;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
index = &msg.HLComp;
|
||||
break;
|
||||
case Q931ie_USER_USER:
|
||||
index = &msg.UserUser;
|
||||
break;
|
||||
case Q931ie_ESCAPE_FOR_EX:
|
||||
index = &msg.Escape;
|
||||
break;
|
||||
default:
|
||||
index = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
if (index) {
|
||||
Q931MsgieOffset[x] = (L3UINT)((L3UCHAR *)index - (L3UCHAR *)&msg);
|
||||
} else {
|
||||
Q931MsgieOffset[x] = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ie *Q931MegGetIE(Q931mes_Generic *msg, L3UINT ie_type)
|
||||
{
|
||||
L3UINT offset = Q931MsgieOffset[ie_type];
|
||||
|
||||
if (!offset) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (ie *)((L3UCHAR *)msg + offset);
|
||||
|
||||
}
|
||||
|
||||
void (*Q931CreateDialectCB[Q931MAXDLCT]) (L3UCHAR iDialect)=
|
||||
{
|
||||
|
@ -305,7 +156,7 @@ L3INT Q931UmesDummy(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, Q931mes_Generic *OBu
|
|||
Description: Dummy function for message processing
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931UieDummy(Q931_TrunkInfo_t *pTrunk,ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931UieDummy(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
return Q931E_UNKNOWN_IE;
|
||||
}
|
||||
|
@ -317,7 +168,7 @@ L3INT Q931UieDummy(Q931_TrunkInfo_t *pTrunk,ie *pIE,L3UCHAR * IBuf, L3UCHAR * OB
|
|||
Description: Dummy function for message processing
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931PmesDummy(Q931_TrunkInfo_t *pTrunk,Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)
|
||||
L3INT Q931PmesDummy(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)
|
||||
{
|
||||
return Q931E_UNKNOWN_MESSAGE;
|
||||
}
|
||||
|
@ -377,9 +228,6 @@ void Q931Initialize()
|
|||
{
|
||||
L3INT x,y;
|
||||
|
||||
/* Initialize the Message offset ie Table */
|
||||
Q931Initialize_MsgieOffset();
|
||||
|
||||
/* Secure the callbacks to default procs */
|
||||
Q931ErrorProc = Q931ErrorDummy;
|
||||
|
||||
|
|
|
@ -145,11 +145,7 @@ L3INT Q931Api_InitTrunk(Q931_TrunkInfo_t *pTrunk,
|
|||
return 1;
|
||||
}
|
||||
|
||||
void Q931SetMesProc(L3UCHAR mes, L3UCHAR dialect,
|
||||
L3INT (*Q931ProcFunc)(Q931_TrunkInfo_t *pTrunk, L3UCHAR * b, L3INT iFrom),
|
||||
L3INT (*Q931UmesFunc)(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size),
|
||||
L3INT (*Q931PmesFunc)(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)
|
||||
)
|
||||
void Q931SetMesProc(L3UCHAR mes, L3UCHAR dialect, q931proc_func_t *Q931ProcFunc, q931umes_func_t *Q931UmesFunc, q931pmes_func_t *Q931PmesFunc)
|
||||
{
|
||||
if(Q931ProcFunc != NULL)
|
||||
Q931Proc[dialect][mes] = Q931ProcFunc;
|
||||
|
@ -159,10 +155,7 @@ void Q931SetMesProc(L3UCHAR mes, L3UCHAR dialect,
|
|||
Q931Pmes[dialect][mes] = Q931PmesFunc;
|
||||
}
|
||||
|
||||
void Q931SetIEProc(L3UCHAR iec, L3UCHAR dialect,
|
||||
L3INT (*Q931PieProc)(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet),
|
||||
L3INT (*Q931UieProc)(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
)
|
||||
void Q931SetIEProc(L3UCHAR iec, L3UCHAR dialect, q931pie_func_t *Q931PieProc, q931uie_func_t *Q931UieProc)
|
||||
{
|
||||
if(Q931PieProc != NULL)
|
||||
Q931Pie[dialect][iec] = Q931PieProc;
|
||||
|
|
|
@ -126,9 +126,10 @@ L3INT Q931ReadExt(L3UCHAR * IBuf, L3INT Off)
|
|||
|
||||
*****************************************************************************/
|
||||
|
||||
L3INT Q931Uie_BearerCap(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_BearerCap(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_BearerCap * pie = (Q931ie_BearerCap*)OBuf;
|
||||
ie *pIE = &pMsg->BearerCap;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -431,9 +432,10 @@ L3INT Q931Pie_BearerCap(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CallID(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CallID(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CallID * pie = (Q931ie_CallID*)OBuf;
|
||||
ie *pIE = &pMsg->CallID;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x=0;
|
||||
|
@ -517,9 +519,10 @@ L3INT Q931Pie_CallID(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CallState(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CallState(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CallState * pie = (Q931ie_CallState*)OBuf;
|
||||
ie *pIE = &pMsg->CallState;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -594,9 +597,10 @@ L3INT Q931Pie_CallState(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CalledSub(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CalledSub(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CalledSub * pie = (Q931ie_CalledSub*)OBuf;
|
||||
ie *pIE = &pMsg->CalledSub;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x;
|
||||
|
@ -690,9 +694,10 @@ L3INT Q931Pie_CalledSub(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CalledNum(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CalledNum(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CalledNum * pie = (Q931ie_CalledNum*)OBuf;
|
||||
ie *pIE = &pMsg->CalledNum;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x;
|
||||
|
@ -783,9 +788,10 @@ L3INT Q931Pie_CalledNum(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CallingNum(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CallingNum(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CallingNum * pie = (Q931ie_CallingNum*)OBuf;
|
||||
Q931ie_CallingNum * pie = (Q931ie_CallingNum*)OBuf;
|
||||
ie *pIE = &pMsg->CallingNum;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x;
|
||||
|
@ -897,9 +903,10 @@ L3INT Q931Pie_CallingNum(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CallingSub(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CallingSub(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CallingSub * pie = (Q931ie_CallingSub*)OBuf;
|
||||
ie *pIE = &pMsg->CallingSub;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x;
|
||||
|
@ -993,9 +1000,10 @@ L3INT Q931Pie_CallingSub(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_Cause(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_Cause(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_Cause * pie = (Q931ie_Cause*)OBuf;
|
||||
ie *pIE = &pMsg->Cause;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -1085,9 +1093,10 @@ L3INT Q931Pie_Cause(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3IN
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_CongLevel(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_CongLevel(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_CongLevel *pie = (Q931ie_CongLevel*)OBuf;
|
||||
ie *pIE = &pMsg->CongestionLevel;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
|
||||
|
@ -1143,9 +1152,10 @@ L3INT Q931Pie_CongLevel(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error code, 0 = OK
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_ChanID(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_ChanID(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_ChanID * pie = (Q931ie_ChanID*)OBuf;
|
||||
ie *pIE = &pMsg->ChanID;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -1336,9 +1346,10 @@ L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_DateTime(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_DateTime(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_DateTime * pie = (Q931ie_DateTime*)OBuf;
|
||||
ie *pIE = &pMsg->DateTime;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize=0;
|
||||
|
@ -1455,9 +1466,10 @@ L3INT Q931Pie_DateTime(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_Display(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_Display(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_Display * pie = (Q931ie_Display*)OBuf;
|
||||
ie *pIE = &pMsg->Display;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -1538,9 +1550,10 @@ L3INT Q931Pie_Display(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_HLComp(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_HLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_HLComp * pie = (Q931ie_HLComp*)OBuf;
|
||||
ie *pIE = &pMsg->HLComp;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -1659,9 +1672,10 @@ L3INT Q931Pie_HLComp(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_KeypadFac(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_KeypadFac(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_KeypadFac * pie = (Q931ie_KeypadFac*)OBuf;
|
||||
ie *pIE = &pMsg->KeypadFac;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -1741,9 +1755,10 @@ L3INT Q931Pie_KeypadFac(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_LLComp * pie = (Q931ie_LLComp*)OBuf;
|
||||
ie *pIE = &pMsg->LLComp;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2122,9 +2137,10 @@ L3INT Q931Pie_LLComp(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_NetFac(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_NetFac(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_NetFac * pie = (Q931ie_NetFac*)OBuf;
|
||||
ie *pIE = &pMsg->NetFac;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x=0;
|
||||
|
@ -2232,9 +2248,10 @@ L3INT Q931Pie_NetFac(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_NotifInd(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_NotifInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_NotifInd * pie = (Q931ie_NotifInd*)OBuf;
|
||||
ie *pIE = &pMsg->NotifInd;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2308,9 +2325,10 @@ L3INT Q931Pie_NotifInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_ProgInd(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_ProgInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_ProgInd * pie = (Q931ie_ProgInd*)OBuf;
|
||||
ie *pIE = &pMsg->ProgInd;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2393,9 +2411,10 @@ L3INT Q931Pie_ProgInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_RepeatInd(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_RepeatInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_RepeatInd *pie = (Q931ie_RepeatInd*)OBuf;
|
||||
ie *pIE = &pMsg->RepeatInd;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
|
||||
|
@ -2452,9 +2471,10 @@ L3INT Q931Pie_RepeatInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_RevChargeInd(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_RevChargeInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
ie iE;
|
||||
/* ie *pIE = &pMsg->RevChargeInd; */
|
||||
Q931SetIE(iE, *OOff);
|
||||
|
||||
return iE;
|
||||
|
@ -2497,9 +2517,10 @@ L3INT Q931Pie_RevChargeInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBu
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_RestartInd(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_RestartInd(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_RestartInd * pie = (Q931ie_RestartInd*)OBuf;
|
||||
ie *pIE = &pMsg->RestartInd;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2574,9 +2595,10 @@ L3INT Q931Pie_RestartInd(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf,
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_Segment(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_Segment(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_Segment * pie = (Q931ie_Segment*)OBuf;
|
||||
ie *pIE = &pMsg->Segment;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2656,9 +2678,10 @@ L3INT Q931Pie_Segment(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_SendComplete(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_SendComplete(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_SendComplete *pie = (Q931ie_SendComplete*)OBuf;
|
||||
ie *pIE = &pMsg->SendComplete;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
|
||||
|
@ -2713,9 +2736,10 @@ L3INT Q931Pie_SendComplete(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBu
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_Signal(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_Signal(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_Signal * pie = (Q931ie_Signal*)OBuf;
|
||||
ie *pIE = &pMsg->Signal;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT IESize;
|
||||
|
@ -2787,9 +2811,10 @@ L3INT Q931Pie_Signal(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_TransNetSel(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_TransNetSel(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_TransNetSel * pie = (Q931ie_TransNetSel*)OBuf;
|
||||
ie *pIE = &pMsg->TransNetSel;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x=0;
|
||||
|
@ -2878,9 +2903,10 @@ L3INT Q931Pie_TransNetSel(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf
|
|||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT Q931Uie_UserUser(Q931_TrunkInfo_t *pTrunk, ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
L3INT Q931Uie_UserUser(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
Q931ie_UserUser * pie = (Q931ie_UserUser*)OBuf;
|
||||
ie *pIE = &pMsg->UserUser;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x=0;
|
||||
|
|
|
@ -59,32 +59,12 @@ L3INT Q931Umes_Alerting(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -168,27 +148,11 @@ L3INT Q931Umes_CallProceeding(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_G
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -300,42 +264,14 @@ L3INT Q931Umes_Connect(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DATETIME:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->DateTime, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->LLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -429,13 +365,8 @@ L3INT Q931Umes_ConnectAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gener
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -498,22 +429,10 @@ L3INT Q931Umes_Disconnect(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gener
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -585,29 +504,13 @@ L3INT Q931Umes_Information(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gene
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_SENDING_COMPLETE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->SendComplete, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->KeypadFac, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CalledNum, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
default:
|
||||
return Q931E_ILLEGAL_IE;
|
||||
break;
|
||||
|
@ -680,19 +583,9 @@ L3INT Q931Umes_Notify(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_NOTIFICATION_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->NotifInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -753,27 +646,11 @@ L3INT Q931Umes_Progress(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -849,17 +726,9 @@ L3INT Q931Umes_Release(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -924,17 +793,9 @@ L3INT Q931Umes_ReleaseComplete(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -999,17 +860,9 @@ L3INT Q931Umes_Restart(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_RESTART_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RestartInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1074,17 +927,9 @@ L3INT Q931Umes_RestartAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gener
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_RESTART_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RestartInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1149,7 +994,7 @@ L3INT Q931Umes_Resume(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CALL_IDENTITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1206,12 +1051,8 @@ L3INT Q931Umes_ResumeAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generi
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1273,12 +1114,8 @@ L3INT Q931Umes_ResumeReject(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gen
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1357,101 +1194,33 @@ L3INT Q931Umes_Setup(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *m
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_SENDING_COMPLETE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->SendComplete, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
case Q931ie_NETWORK_SPECIFIC_FACILITIES:
|
||||
case Q931ie_DISPLAY:
|
||||
case Q931ie_DATETIME:
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
case Q931ie_SIGNAL:
|
||||
case Q931ie_CALLING_PARTY_NUMBER:
|
||||
case Q931ie_CALLING_PARTY_SUBADDRESS:
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
case Q931ie_CALLED_PARTY_SUBADDRESS:
|
||||
case Q931ie_TRANSIT_NETWORK_SELECTION:
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_REPEAT_INDICATOR:
|
||||
if(ir==0)
|
||||
{
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RepeatInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(ir < 2) {
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
ir++;
|
||||
}
|
||||
else if(ir==1)
|
||||
{
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->LLRepeatInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
ir++;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return Q931E_ILLEGAL_IE;
|
||||
}
|
||||
break;
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_NETWORK_SPECIFIC_FACILITIES:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->NetFac, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DATETIME:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->DateTime, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->KeypadFac, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_NUMBER:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallingNum, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_SUBADDRESS:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallingSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CalledSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_SUBADDRESS:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CalledSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_TRANSIT_NETWORK_SELECTION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->TransNetSel, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->LLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
default:
|
||||
return Q931E_ILLEGAL_IE;
|
||||
break;
|
||||
|
@ -1606,22 +1375,10 @@ L3INT Q931Umes_SetupAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1693,17 +1450,9 @@ L3INT Q931Umes_Status(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALL_STATE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallState, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1769,7 +1518,7 @@ L3INT Q931Umes_StatusEnquiry(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Ge
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1826,7 +1575,7 @@ L3INT Q931Umes_Suspend(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CALL_IDENTITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1884,7 +1633,7 @@ L3INT Q931Umes_SuspendAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Gener
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
@ -1941,12 +1690,8 @@ L3INT Q931Umes_SuspendReject(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Ge
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_CAUSE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Cause, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
|
|
|
@ -371,6 +371,11 @@ typedef struct
|
|||
L3UCHAR ProtDisc; /* Protocol Discriminator */
|
||||
L3UCHAR MesType; /* Message type */
|
||||
L3INT CRV; /* Call reference value */
|
||||
L3UINT codeset; /* Current Codeset - Temporary variable */
|
||||
/* used for the Q931Uie functions */
|
||||
/* in a parsed message this will only */
|
||||
/* indicate the codeset of the last */
|
||||
/* ie parsed */
|
||||
|
||||
ie Shift;
|
||||
ie MoreData;
|
||||
|
@ -588,15 +593,21 @@ typedef struct
|
|||
The proc tables are defined in Q931.c and initialized in Q931Initialize.
|
||||
|
||||
*****************************************************************************/
|
||||
extern L3INT (*Q931Proc [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *,L3INT);
|
||||
typedef L3INT (q931proc_func_t) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *, L3INT);
|
||||
|
||||
extern L3INT (*Q931Umes [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size);
|
||||
extern L3INT (*Q931Pmes [Q931MAXDLCT][Q931MAXMES]) (Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
|
||||
typedef L3INT (q931umes_func_t) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size);
|
||||
typedef L3INT (q931pmes_func_t) (Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize);
|
||||
|
||||
extern L3INT (*Q931Uie [Q931MAXDLCT][Q931MAXIE] ) (Q931_TrunkInfo_t *pTrunk,ie *pIE,L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
extern L3INT (*Q931Pie [Q931MAXDLCT][Q931MAXIE] ) (Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
typedef L3INT (q931uie_func_t) (Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *pMsg, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
typedef L3INT (q931pie_func_t) (Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
|
||||
extern L3UINT Q931MsgieOffset[Q931MAXIE];
|
||||
extern q931proc_func_t *Q931Proc[Q931MAXDLCT][Q931MAXMES];
|
||||
|
||||
extern q931umes_func_t *Q931Umes[Q931MAXDLCT][Q931MAXMES];
|
||||
extern q931pmes_func_t *Q931Pmes[Q931MAXDLCT][Q931MAXMES];
|
||||
|
||||
extern q931uie_func_t *Q931Uie[Q931MAXDLCT][Q931MAXIE];
|
||||
extern q931pie_func_t *Q931Pie[Q931MAXDLCT][Q931MAXIE];
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
|
@ -705,8 +716,6 @@ extern L3UINT Q931MsgieOffset[Q931MAXIE];
|
|||
|
||||
*****************************************************************************/
|
||||
|
||||
extern Q931_TrunkInfo_t Q931Trunk[Q931MAXTRUNKS];
|
||||
|
||||
#include "Q931ie.h"
|
||||
|
||||
#include "Q932.h"
|
||||
|
@ -847,14 +856,9 @@ void Q931CreateNT(L3UCHAR i);
|
|||
void Q931SetMesCreateCB(L3INT (*callback)());
|
||||
void Q931SetDialectCreateCB(L3INT (*callback)(L3INT));
|
||||
void Q931SetHeaderSpace(L3INT space);
|
||||
void Q931SetMesProc(L3UCHAR mes, L3UCHAR dialect,
|
||||
L3INT (*Q931ProcFunc)(Q931_TrunkInfo_t *pTrunk, L3UCHAR * b, L3INT iFrom),
|
||||
L3INT (*Q931UmesFunc)(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generic *OBuf, L3INT IOff, L3INT Size),
|
||||
L3INT (*Q931PmesFunc)(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize));
|
||||
|
||||
void Q931SetIEProc(L3UCHAR iec, L3UCHAR dialect,
|
||||
L3INT (*Q931PieProc)(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet),
|
||||
L3INT (*Q931UieProc)(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff));
|
||||
void Q931SetMesProc(L3UCHAR mes, L3UCHAR dialect, q931proc_func_t *Q931ProcFunc, q931umes_func_t *Q931UmesFunc, q931pmes_func_t *Q931PmesFunc);
|
||||
void Q931SetIEProc(L3UCHAR iec, L3UCHAR dialect, q931pie_func_t *Q931PieProc, q931uie_func_t *Q931UieProc);
|
||||
|
||||
void Q931Initialize();
|
||||
void Q931AddDialect(L3UCHAR iDialect, void (*Q931CreateDialectCB)(L3UCHAR iDialect));
|
||||
|
@ -873,8 +877,6 @@ void Q931SetGetTimeCB(L3ULONG (*callback)());
|
|||
void Q931AddStateEntry(L3UCHAR iD, L3INT iState, L3INT iMes, L3UCHAR cDir);
|
||||
L3BOOL Q931IsEventLegal(L3UCHAR iD, L3INT iState, L3INT iMes, L3UCHAR cDir);
|
||||
|
||||
ie *Q931MegGetIE(Q931mes_Generic *msg, L3UINT ie_type);
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Q.931 Low Level API Function Prototyping. Implemented in Q931API.c
|
||||
|
|
|
@ -96,6 +96,9 @@ typedef enum {
|
|||
#define Q931ie_USER_USER 0x7e /* 0111 1110 */
|
||||
#define Q931ie_ESCAPE_FOR_EX 0x7f /* 0111 1111 */
|
||||
|
||||
#define Q931ie_GENERIC_DIGITS 0x37 /* 0011 0111 */
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
|
@ -1061,6 +1064,19 @@ typedef struct
|
|||
/* 111 All interfaces */
|
||||
}Q931ie_RestartInd;
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Struct: Q931ie_GenericDigits
|
||||
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
L3UCHAR IEId; /* 00110111 */
|
||||
L3UCHAR Size; /* Length of Information Element */
|
||||
} Q931ie_GenericDigits;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
|
@ -1068,56 +1084,61 @@ typedef struct
|
|||
|
||||
*****************************************************************************/
|
||||
|
||||
L3INT Q931Pie_BearerCap(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_ChanID(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_ProgInd(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_Display(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_Signal(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_HLComp(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_Segment(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_DateTime(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_Cause(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_SendComplete(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_KeypadFac(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_NotifInd(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CallID(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_RepeatInd(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_NetFac(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CallingNum(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CallingSub(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CalledNum(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CalledSub(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CalledNum(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_TransNetSel(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_LLComp(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_CallState(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_RestartInd(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT Q931Pie_UserUser(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
q931pie_func_t Q931Pie_BearerCap;
|
||||
q931pie_func_t Q931Pie_ChanID;
|
||||
q931pie_func_t Q931Pie_ProgInd;
|
||||
q931pie_func_t Q931Pie_Display;
|
||||
q931pie_func_t Q931Pie_Signal;
|
||||
q931pie_func_t Q931Pie_HLComp;
|
||||
q931pie_func_t Q931Pie_Segment;
|
||||
q931pie_func_t Q931Pie_DateTime;
|
||||
q931pie_func_t Q931Pie_Cause;
|
||||
q931pie_func_t Q931Pie_SendComplete;
|
||||
q931pie_func_t Q931Pie_KeypadFac;
|
||||
q931pie_func_t Q931Pie_NotifInd;
|
||||
q931pie_func_t Q931Pie_CallID;
|
||||
q931pie_func_t Q931Pie_RepeatInd;
|
||||
q931pie_func_t Q931Pie_NetFac;
|
||||
q931pie_func_t Q931Pie_CallingNum;
|
||||
q931pie_func_t Q931Pie_CallingSub;
|
||||
q931pie_func_t Q931Pie_CalledNum;
|
||||
q931pie_func_t Q931Pie_CalledSub;
|
||||
q931pie_func_t Q931Pie_CalledNum;
|
||||
q931pie_func_t Q931Pie_TransNetSel;
|
||||
q931pie_func_t Q931Pie_LLComp;
|
||||
q931pie_func_t Q931Pie_CallState;
|
||||
q931pie_func_t Q931Pie_RestartInd;
|
||||
q931pie_func_t Q931Pie_UserUser;
|
||||
|
||||
q931pie_func_t Q931Pie_GenericDigits;
|
||||
|
||||
L3INT Q931Uie_BearerCap(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk,L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_ChanID(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_ProgInd(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_Display(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_Signal(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_HLComp(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_Segment(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_DateTime(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_Cause(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_SendComplete(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_KeypadFac(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_NotifInd(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CallID(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_RepeatInd(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_NetFac(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CallingNum(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CallingSub(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CalledNum(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CalledSub(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_TransNetSel(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_LLComp(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_CallState(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_RestartInd(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
L3INT Q931Uie_UserUser(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff);
|
||||
|
||||
q931uie_func_t Q931Uie_BearerCap;
|
||||
q931uie_func_t Q931Uie_ChanID;
|
||||
q931uie_func_t Q931Uie_ProgInd;
|
||||
q931uie_func_t Q931Uie_Display;
|
||||
q931uie_func_t Q931Uie_Signal;
|
||||
q931uie_func_t Q931Uie_HLComp;
|
||||
q931uie_func_t Q931Uie_Segment;
|
||||
q931uie_func_t Q931Uie_DateTime;
|
||||
q931uie_func_t Q931Uie_Cause;
|
||||
q931uie_func_t Q931Uie_SendComplete;
|
||||
q931uie_func_t Q931Uie_KeypadFac;
|
||||
q931uie_func_t Q931Uie_NotifInd;
|
||||
q931uie_func_t Q931Uie_CallID;
|
||||
q931uie_func_t Q931Uie_RepeatInd;
|
||||
q931uie_func_t Q931Uie_NetFac;
|
||||
q931uie_func_t Q931Uie_CallingNum;
|
||||
q931uie_func_t Q931Uie_CallingSub;
|
||||
q931uie_func_t Q931Uie_CalledNum;
|
||||
q931uie_func_t Q931Uie_CalledSub;
|
||||
q931uie_func_t Q931Uie_TransNetSel;
|
||||
q931uie_func_t Q931Uie_LLComp;
|
||||
q931uie_func_t Q931Uie_CallState;
|
||||
q931uie_func_t Q931Uie_RestartInd;
|
||||
q931uie_func_t Q931Uie_UserUser;
|
||||
|
||||
q931uie_func_t Q931Uie_GenericDigits;
|
||||
|
||||
#endif /* _Q931IE_NL */
|
||||
|
|
|
@ -65,37 +65,6 @@
|
|||
*****************************************************************************/
|
||||
|
||||
|
||||
/* Single octet information elements */
|
||||
|
||||
/* Variable Length Information Elements */
|
||||
#define nationalie_GENERIC_DIGITS 0x37 /* 0011 0111 */
|
||||
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Struct: nationalie_GenericDigits
|
||||
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
typedef struct
|
||||
{
|
||||
L3UCHAR IEId; /* 00110111 */
|
||||
L3UCHAR Size; /* Length of Information Element */
|
||||
}nationalie_GenericDigits;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Q.931 Information Element Pack/Unpack functions. Implemented in nationalie.c
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
L3INT nationalPie_GenericDigits(Q931_TrunkInfo_t *pTrunk,L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet);
|
||||
L3INT nationalUie_GenericDigits(Q931_TrunkInfo_t *pTrunk,ie *pIE, L3UCHAR * IBuf, L3UCHAR *OBuf, L3INT *IOff, L3INT *OOff);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Q.931 Message Pack/Unpack functions. Implemented in nationalmes.c
|
||||
|
|
|
@ -116,7 +116,7 @@ void nationalCreateNT(L3UCHAR i)
|
|||
Q931SetIEProc(Q931ie_LOW_LAYER_COMPATIBILITY, i,Q931Pie_LLComp, Q931Uie_LLComp);
|
||||
Q931SetIEProc(Q931ie_HIGH_LAYER_COMPATIBILITY, i,Q931Pie_HLComp, Q931Uie_HLComp);
|
||||
Q931SetIEProc(Q931ie_USER_USER, i,Q931Pie_UserUser, Q931Uie_UserUser);
|
||||
Q931SetIEProc(nationalie_GENERIC_DIGITS, i,nationalPie_GenericDigits, nationalUie_GenericDigits);
|
||||
Q931SetIEProc(Q931ie_GENERIC_DIGITS, i,Q931Pie_GenericDigits, Q931Uie_GenericDigits);
|
||||
|
||||
/* The following define a state machine. The point is that the Message */
|
||||
/* procs can when search this to find out if the message/state */
|
||||
|
|
|
@ -123,7 +123,7 @@ void nationalCreateTE(L3UCHAR i)
|
|||
Q931SetIEProc(Q931ie_LOW_LAYER_COMPATIBILITY, i,Q931Pie_LLComp, Q931Uie_LLComp);
|
||||
Q931SetIEProc(Q931ie_HIGH_LAYER_COMPATIBILITY, i,Q931Pie_HLComp, Q931Uie_HLComp);
|
||||
Q931SetIEProc(Q931ie_USER_USER, i,Q931Pie_UserUser, Q931Uie_UserUser);
|
||||
Q931SetIEProc(nationalie_GENERIC_DIGITS, i,nationalPie_GenericDigits, nationalUie_GenericDigits);
|
||||
Q931SetIEProc(Q931ie_GENERIC_DIGITS, i,Q931Pie_GenericDigits, Q931Uie_GenericDigits);
|
||||
|
||||
/* The following define a state machine. The point is that the Message */
|
||||
/* procs can when search this to find out if the message/state */
|
||||
|
|
|
@ -1,141 +0,0 @@
|
|||
/*****************************************************************************
|
||||
|
||||
FileName: nationalie.c
|
||||
|
||||
Contents: Information Element Pack/Unpack functions.
|
||||
|
||||
These functions will pack out a National ISDN message from the bit
|
||||
packed original format into structs that are easier to process
|
||||
and pack the same structs back into bit fields when sending
|
||||
messages out.
|
||||
|
||||
The messages contains a short for each possible IE. The MSB
|
||||
bit flags the precense of an IE, while the remaining bits
|
||||
are the offset into a buffer to find the actual IE.
|
||||
|
||||
Each IE are supported by 3 functions:
|
||||
|
||||
nationalPie_XXX Pack struct into Q.931 IE
|
||||
nationalUie_XXX Unpack Q.931 IE into struct
|
||||
nationalInitIEXXX Initialize IE (see nationalapi.c).
|
||||
|
||||
License/Copyright:
|
||||
|
||||
Copyright (c) 2007, Jan Vidar Berger, Case Labs, Ltd. All rights reserved.
|
||||
email:janvb@caselaboratories.com
|
||||
|
||||
Copyright (c) 2007, Michael Jerris. All rights reserved.
|
||||
email:mike@jerris.com
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the Case Labs, Ltd nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include "national.h"
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Macro: Q931MoreIE
|
||||
|
||||
Description: Local helper macro detecting if there is more IE space left
|
||||
based on the 3 standard parameters Octet, Off and IESpace.
|
||||
This can be used to test if the IE is completed to avoid
|
||||
that the header of the next IE is interpreted as a part of
|
||||
the current IE.
|
||||
|
||||
*****************************************************************************/
|
||||
#define Q931MoreIE() (Octet+Off - 2< IESize)
|
||||
|
||||
#define Q931IESizeTest(x) {\
|
||||
if(Octet + Off - 2!= IESize)\
|
||||
{\
|
||||
Q931SetError(pTrunk,x, Octet, Off);\
|
||||
return x;\
|
||||
}\
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Function: nationalUie_GenericDigits
|
||||
|
||||
Parameters: pIE[OUT] ptr to Information Element id.
|
||||
IBuf[IN] ptr to a packed ie.
|
||||
OBuf[OUT] ptr to buffer for Unpacked ie.
|
||||
IOff[IN\OUT] Input buffer offset
|
||||
OOff[IN\OUT] Output buffer offset
|
||||
|
||||
|
||||
Ibuf and OBuf points directly to buffers. The IOff and OOff
|
||||
must be updated, but are otherwise not used in the ie unpack.
|
||||
|
||||
Return Value: Error Message
|
||||
|
||||
*****************************************************************************/
|
||||
L3INT nationalUie_GenericDigits(Q931_TrunkInfo_t *pTrunk, ie *pIE, L3UCHAR * IBuf, L3UCHAR * OBuf, L3INT *IOff, L3INT *OOff)
|
||||
{
|
||||
nationalie_GenericDigits * pie = (nationalie_GenericDigits*)OBuf;
|
||||
L3INT Off = 0;
|
||||
L3INT Octet = 0;
|
||||
L3INT x=0;
|
||||
L3INT IESize;
|
||||
|
||||
*pIE=0;
|
||||
|
||||
/* Octet 1 */
|
||||
pie->IEId = IBuf[Octet++];
|
||||
|
||||
/* Octet 2 */
|
||||
IESize = IBuf[Octet++];
|
||||
|
||||
Q931SetIE(*pIE, *OOff);
|
||||
|
||||
*IOff = (*IOff) + Octet + Off;
|
||||
*OOff = (*OOff) + sizeof(nationalie_GenericDigits) + x -1;
|
||||
|
||||
pie->Size = (L3UCHAR)(sizeof(nationalie_GenericDigits) + x -1);
|
||||
|
||||
return Q931E_NO_ERROR;
|
||||
}
|
||||
|
||||
/*****************************************************************************
|
||||
|
||||
Function: nationalPie_GenericDigits
|
||||
|
||||
Parameters: IBuf[IN] Ptr to struct.
|
||||
OBuf[OUT] Ptr tp packed output buffer.
|
||||
Octet[IN/OUT] Offset into OBuf.
|
||||
|
||||
Return Value: Error code, 0 = OK
|
||||
|
||||
*****************************************************************************/
|
||||
|
||||
L3INT nationalPie_GenericDigits(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT *Octet)
|
||||
{
|
||||
OBuf[(*Octet)++] = nationalie_GENERIC_DIGITS ;
|
||||
OBuf[(*Octet)++] = 2;
|
||||
|
||||
return Q931E_NO_ERROR;
|
||||
}
|
||||
|
|
@ -62,102 +62,34 @@ L3INT nationalUmes_Setup(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, Q931mes_Generi
|
|||
switch(IBuf[IOff])
|
||||
{
|
||||
case Q931ie_SENDING_COMPLETE:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->SendComplete, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
case Q931ie_NETWORK_SPECIFIC_FACILITIES:
|
||||
case Q931ie_DISPLAY:
|
||||
case Q931ie_DATETIME:
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
case Q931ie_SIGNAL:
|
||||
case Q931ie_CALLING_PARTY_NUMBER:
|
||||
case Q931ie_CALLING_PARTY_SUBADDRESS:
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
case Q931ie_CALLED_PARTY_SUBADDRESS:
|
||||
case Q931ie_TRANSIT_NETWORK_SELECTION:
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_REPEAT_INDICATOR:
|
||||
if(ir==0)
|
||||
{
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RepeatInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(ir < 2) {
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
ir++;
|
||||
}
|
||||
else if(ir==1)
|
||||
{
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->LLRepeatInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
ir++;
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
return Q931E_ILLEGAL_IE;
|
||||
}
|
||||
break;
|
||||
case Q931ie_BEARER_CAPABILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->BearerCap, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CHANNEL_IDENTIFICATION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_PROGRESS_INDICATOR:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ProgInd, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_NETWORK_SPECIFIC_FACILITIES:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->NetFac, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DISPLAY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_DATETIME:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->DateTime, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_KEYPAD_FACILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->KeypadFac, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_SIGNAL:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Signal, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_NUMBER:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallingNum, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLING_PARTY_SUBADDRESS:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CallingSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_NUMBER:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CalledSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_CALLED_PARTY_SUBADDRESS:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->CalledSub, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_TRANSIT_NETWORK_SELECTION:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->TransNetSel, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_LOW_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->LLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case Q931ie_HIGH_LAYER_COMPATIBILITY:
|
||||
rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->HLComp, &IBuf[IOff], &mes->buf[OOff], &IOff, &OOff);
|
||||
if(rc != Q931E_NO_ERROR)
|
||||
return rc;
|
||||
break;
|
||||
case nationalie_GENERIC_DIGITS:
|
||||
case Q931ie_GENERIC_DIGITS:
|
||||
/* TODO: Implement this ie */
|
||||
IOff = IOff + 4;
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue