提交 0b24196b authored 作者: Michael Jerris's avatar Michael Jerris

handle the crv flag

git-svn-id: http://svn.openzap.org/svn/openzap/trunk@249 a93c3328-9c30-0410-af19-c9cd2b2d52af
上级 306a9476
...@@ -329,6 +329,7 @@ L3INT Q931Rx23(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT Size) ...@@ -329,6 +329,7 @@ L3INT Q931Rx23(Q931_TrunkInfo_t *pTrunk, L3UCHAR * buf, L3INT Size)
m->ProtDisc = Mes[IOff++]; m->ProtDisc = Mes[IOff++];
/* CRV */ /* CRV */
m->CRVFlag = Mes[IOff + 1] & 0x80;
m->CRV = Q931Uie_CRV(pTrunk, Mes, m->buf, &IOff, &ISize); m->CRV = Q931Uie_CRV(pTrunk, Mes, m->buf, &IOff, &ISize);
/* Message Type */ /* Message Type */
......
...@@ -1307,12 +1307,12 @@ L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I ...@@ -1307,12 +1307,12 @@ L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
if(l == 1) /* One octet CRV */ if(l == 1) /* One octet CRV */
{ {
CRV = IBuf[Octet]; CRV = IBuf[Octet] & 0x7F;
Octet++; Octet++;
} }
else if(l==2) /* two octet CRV */ else if(l==2) /* two octet CRV */
{ {
CRV = IBuf[Octet] << 8; CRV = (IBuf[Octet] << 8) & 0x7F;
CRV = CRV + IBuf[Octet+1]; CRV = CRV + IBuf[Octet+1];
Octet += 2; Octet += 2;
} }
......
...@@ -390,6 +390,7 @@ typedef struct ...@@ -390,6 +390,7 @@ typedef struct
L3UINT Size; /* Size of message in bytes */ L3UINT Size; /* Size of message in bytes */
L3UCHAR ProtDisc; /* Protocol Discriminator */ L3UCHAR ProtDisc; /* Protocol Discriminator */
L3UCHAR MesType; /* Message type */ L3UCHAR MesType; /* Message type */
L3UCHAR CRVFlag; /* Call reference value flag */
L3INT CRV; /* Call reference value */ L3INT CRV; /* Call reference value */
}Q931mes_Header; }Q931mes_Header;
...@@ -406,6 +407,7 @@ typedef struct ...@@ -406,6 +407,7 @@ typedef struct
L3UINT Size; /* Size of message in bytes */ L3UINT Size; /* Size of message in bytes */
L3UCHAR ProtDisc; /* Protocol Discriminator */ L3UCHAR ProtDisc; /* Protocol Discriminator */
L3UCHAR MesType; /* Message type */ L3UCHAR MesType; /* Message type */
L3UCHAR CRVFlag; /* Call reference value flag */
L3INT CRV; /* Call reference value */ L3INT CRV; /* Call reference value */
ie Shift; ie Shift;
......
...@@ -158,7 +158,7 @@ L3INT nationalPmes_Setup(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT ...@@ -158,7 +158,7 @@ L3INT nationalPmes_Setup(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT
OBuf[Octet++] = pMes->ProtDisc; /* Protocol discriminator */ OBuf[Octet++] = pMes->ProtDisc; /* Protocol discriminator */
OBuf[Octet++] = 2; /* length is 2 octets */ OBuf[Octet++] = 2; /* length is 2 octets */
OBuf[Octet++] = (L3UCHAR)(pMes->CRV>>8); /* msb */ OBuf[Octet++] = (L3UCHAR)(pMes->CRV>>8) | (pMes->CRVFlag << 7); /* msb */
OBuf[Octet++] = (L3UCHAR)(pMes->CRV); /* lsb */ OBuf[Octet++] = (L3UCHAR)(pMes->CRV); /* lsb */
OBuf[Octet++] = pMes->MesType; /* message header */ OBuf[Octet++] = pMes->MesType; /* message header */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论