L3INT OOff = 0;\r
L3INT rc = Q931E_NO_ERROR;\r
L3UCHAR last_codeset = 0, codeset = 0;\r
- L3UCHAR shift_lock = 1;\r
+ L3UCHAR shift_nolock = 1;\r
\r
- while (IOff < Size)\r
- {\r
- if (!shift_lock) {\r
+ while (IOff < Size) {\r
+\r
+ if (shift_nolock) {\r
codeset = last_codeset;\r
}\r
\r
- if ((IBuf[IOff] & 0xF0) == Q931ie_SHIFT ) {\r
- shift_lock = (IBuf[IOff] & 0x08);\r
- if (shift_lock) {\r
+ if ((IBuf[IOff] & 0xF0) == Q931ie_SHIFT) {\r
+ shift_nolock = (IBuf[IOff] & 0x08);\r
+ if (shift_nolock) {\r
last_codeset = codeset;\r
}\r
codeset = ((IBuf[IOff] & 0x07));\r
return Q931E_ILLEGAL_IE;\r
break;\r
}\r
-\r
+ } else if (codeset == 7) {\r
+ switch (IBuf[IOff])\r
+ {\r
+ case Q931ie_DISPLAY:\r
+ rc = Q931Uie[pTrunk->Dialect][IBuf[IOff]](pTrunk, mes, &IBuf[IOff], &mes->buf[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
} else {\r
return Q931E_ILLEGAL_IE;\r
}\r