提交 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)
m->ProtDisc = Mes[IOff++];
/* CRV */
m->CRVFlag = Mes[IOff + 1] & 0x80;
m->CRV = Q931Uie_CRV(pTrunk, Mes, m->buf, &IOff, &ISize);
/* Message Type */
......
......@@ -1307,12 +1307,12 @@ L3USHORT Q931Uie_CRV(Q931_TrunkInfo_t *pTrunk, L3UCHAR *IBuf, L3UCHAR *OBuf, L3I
if(l == 1) /* One octet CRV */
{
CRV = IBuf[Octet];
CRV = IBuf[Octet] & 0x7F;
Octet++;
}
else if(l==2) /* two octet CRV */
{
CRV = IBuf[Octet] << 8;
CRV = (IBuf[Octet] << 8) & 0x7F;
CRV = CRV + IBuf[Octet+1];
Octet += 2;
}
......
......@@ -390,6 +390,7 @@ typedef struct
L3UINT Size; /* Size of message in bytes */
L3UCHAR ProtDisc; /* Protocol Discriminator */
L3UCHAR MesType; /* Message type */
L3UCHAR CRVFlag; /* Call reference value flag */
L3INT CRV; /* Call reference value */
}Q931mes_Header;
......@@ -406,6 +407,7 @@ typedef struct
L3UINT Size; /* Size of message in bytes */
L3UCHAR ProtDisc; /* Protocol Discriminator */
L3UCHAR MesType; /* Message type */
L3UCHAR CRVFlag; /* Call reference value flag */
L3INT CRV; /* Call reference value */
ie Shift;
......
......@@ -158,7 +158,7 @@ L3INT nationalPmes_Setup(Q931_TrunkInfo_t *pTrunk, Q931mes_Generic *IBuf, L3INT
OBuf[Octet++] = pMes->ProtDisc; /* Protocol discriminator */
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++] = pMes->MesType; /* message header */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论