aboutsummaryrefslogtreecommitdiffstats
path: root/channels/misdn/ie.c
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-01 12:51:41 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2006-06-01 12:51:41 +0000
commitf6aed90150bf6cfb76b20aa46bdf283cdceebc37 (patch)
tree42613d0b600eb6ffba08e84ff4a8184effc344a7 /channels/misdn/ie.c
parentd42fc385b543fc9b71eb971c77ea822a88b22b30 (diff)
added bearer capability reject support. we send release instead of disconnect in case we have no real channel yet. added support for Restarting channels added support for sending complete decoding. changed some log levels.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@31324 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/misdn/ie.c')
-rw-r--r--channels/misdn/ie.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/channels/misdn/ie.c b/channels/misdn/ie.c
index 6f29cb2f8..eeeff040b 100644
--- a/channels/misdn/ie.c
+++ b/channels/misdn/ie.c
@@ -162,23 +162,28 @@ void dec_ie_bearer(unsigned char *p, Q931_info_t *qi, int *coding, int *capabili
*stopbits = -1;
*dbits = -1;
*parity = -1;
-
+
if (!nt)
{
p = NULL;
- if (qi->QI_ELEMENT(llc))
+#ifdef LLC_SUPPORT
+ if (qi->QI_ELEMENT(llc)) {
+
p = (unsigned char *)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(llc) + 1;
- else if (qi->QI_ELEMENT(bearer_capability))
+ }
+#endif
+ if (qi->QI_ELEMENT(bearer_capability))
p = (unsigned char *)qi + sizeof(Q931_info_t) + qi->QI_ELEMENT(bearer_capability) + 1;
}
if (!p)
return;
+
if (p[0] < 2)
{
printf("%s: ERROR: IE too short (%d).\n", __FUNCTION__, p[0]);
return;
}
-
+
*coding = (p[1]&0x60) >> 5;
*capability = p[1] & 0x1f;
octet = 2;