diff options
author | crichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-06-01 12:51:41 +0000 |
---|---|---|
committer | crichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-06-01 12:51:41 +0000 |
commit | f6aed90150bf6cfb76b20aa46bdf283cdceebc37 (patch) | |
tree | 42613d0b600eb6ffba08e84ff4a8184effc344a7 /channels/misdn/ie.c | |
parent | d42fc385b543fc9b71eb971c77ea822a88b22b30 (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.c | 13 |
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; |