return rc;
}
-/*****************************************************************************
-
- Function: Q931Umes_Restart
-
-*****************************************************************************/
-L3INT Q931Umes_Restart(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR * OBuf, L3INT I, L3INT O)
-{
- L3BOOL RetCode = L3FALSE;
-
- NoWarning(OBuf);
- NoWarning(IBuf);
-
- return RetCode;
-}
-
-/*****************************************************************************
-
- Function: Q931Pmes_Restart
-
-*****************************************************************************/
-L3INT Q931Pmes_Restart(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)
-{
- L3BOOL RetCode = L3FALSE;
-
- NoWarning(OBuf);
- NoWarning(IBuf);
-
- return RetCode;
-}
-
-/*****************************************************************************
-
- Function: Q931Umes_RestartAck
-
-*****************************************************************************/
-L3INT Q931Umes_RestartAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR * OBuf, L3INT I, L3INT O)
-{
- L3BOOL RetCode = L3FALSE;
-
- NoWarning(OBuf);
- NoWarning(IBuf);
-
- return RetCode;
-}
-
-/*****************************************************************************
-
- Function: Q931Pmes_RestartAck
-
-*****************************************************************************/
-L3INT Q931Pmes_RestartAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)
-{
- L3BOOL RetCode = L3FALSE;
-
- NoWarning(OBuf);
- NoWarning(IBuf);
-
- return RetCode;
-}
+/*****************************************************************************\r
+\r
+ Function: Q931Umes_Restart\r
+\r
+*****************************************************************************/\r
+L3INT Q931Umes_Restart(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT IOff, L3INT Size)\r
+{\r
+ L3INT OOff=0;\r
+ Q931mes_Restart *mes = (Q931mes_Restart*)OBuf;\r
+ L3INT rc=Q931E_NO_ERROR;\r
+ while(IOff < Size)\r
+ {\r
+ switch(IBuf[IOff])\r
+ {\r
+ case Q931ie_CHANNEL_IDENTIFICATION:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ case Q931ie_DISPLAY:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ case Q931ie_RESTART_INDICATOR:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RestartInd,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ default:\r
+ return Q931E_ILLEGAL_IE;\r
+ break;\r
+ }\r
+ }\r
+ mes->Size = sizeof(Q931mes_Restart) - 1 + OOff;\r
+ return Q931E_NO_ERROR;\r
+}\r
+\r
+/*****************************************************************************\r
+\r
+ Function: Q931Pmes_Restart\r
+\r
+*****************************************************************************/\r
+L3INT Q931Pmes_Restart(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)\r
+{\r
+ L3INT rc = Q931E_NO_ERROR;\r
+ Q931mes_Restart *pMes = (Q931mes_Restart *)IBuf;\r
+ L3INT Octet = 0;\r
+\r
+ /* Q931 Message Header */\r
+\r
+ OBuf[Octet++] = pMes->ProtDisc; /* Protocol discriminator */\r
+ OBuf[Octet++] = 2; /* length is 2 octets */\r
+ OBuf[Octet++] = (L3UCHAR)(pMes->CRV>>8); /* msb */\r
+ OBuf[Octet++] = (L3UCHAR)(pMes->CRV); /* lsb */\r
+ OBuf[Octet++] = pMes->MesType; /* message header */\r
+ \r
+ /* ChanID */\r
+ if(Q931IsIEPresent(pMes->ChanID))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->ChanID,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+ /* Display */\r
+ if(Q931IsIEPresent(pMes->Display))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->Display,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+ /* RestartInd */\r
+ if(Q931IsIEPresent(pMes->RestartInd))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->RestartInd,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+\r
+ return rc;\r
+}\r
+\r
+/*****************************************************************************\r
+\r
+ Function: Q931Umes_RestartAck\r
+\r
+*****************************************************************************/\r
+L3INT Q931Umes_RestartAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3INT IOff, L3INT Size)\r
+{\r
+ L3INT OOff=0;\r
+ Q931mes_RestartAck *mes = (Q931mes_RestartAck*)OBuf;\r
+ L3INT rc=Q931E_NO_ERROR;\r
+ while(IOff < Size)\r
+ {\r
+ switch(IBuf[IOff])\r
+ {\r
+ case Q931ie_CHANNEL_IDENTIFICATION:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->ChanID,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ case Q931ie_DISPLAY:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->Display,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ case Q931ie_RESTART_INDICATOR:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, &mes->RestartInd,&IBuf[IOff], &OBuf[OOff], &IOff, &OOff);\r
+ if(rc != Q931E_NO_ERROR) \r
+ return rc;\r
+ break;\r
+ default:\r
+ return Q931E_ILLEGAL_IE;\r
+ break;\r
+ }\r
+ }\r
+ mes->Size = sizeof(Q931mes_RestartAck) - 1 + OOff;\r
+ return Q931E_NO_ERROR;\r
+}\r
+\r
+/*****************************************************************************\r
+\r
+ Function: Q931Pmes_RestartAck\r
+\r
+*****************************************************************************/\r
+L3INT Q931Pmes_RestartAck(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3INT ISize, L3UCHAR *OBuf, L3INT *OSize)\r
+{\r
+ L3INT rc = Q931E_NO_ERROR;\r
+ Q931mes_RestartAck *pMes = (Q931mes_RestartAck *)IBuf;\r
+ L3INT Octet = 0;\r
+\r
+ /* Q931 Message Header */\r
+\r
+ OBuf[Octet++] = pMes->ProtDisc; /* Protocol discriminator */\r
+ OBuf[Octet++] = 2; /* length is 2 octets */\r
+ OBuf[Octet++] = (L3UCHAR)(pMes->CRV>>8); /* msb */\r
+ OBuf[Octet++] = (L3UCHAR)(pMes->CRV); /* lsb */\r
+ OBuf[Octet++] = pMes->MesType; /* message header */\r
+ \r
+ /* ChanID */\r
+ if(Q931IsIEPresent(pMes->ChanID))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->ChanID,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+ /* Display */\r
+ if(Q931IsIEPresent(pMes->Display))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->Display,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+ /* RestartInd */\r
+ if(Q931IsIEPresent(pMes->RestartInd))\r
+ if((rc=Q931Pie[pTrunk->Dialect][pMes->MesType](pTrunk, Q931GetIEPtr(pMes->RestartInd,pMes->buf), OBuf, &Octet))!=0)\r
+ return rc;\r
+\r
+ return rc;\r
+}\r
/*****************************************************************************