diff options
author | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-13 08:02:20 +0000 |
---|---|---|
committer | root <root@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-10-13 08:02:20 +0000 |
commit | 00abe55dd3c08fcb8382d61013c845e605421e2c (patch) | |
tree | 3979ed00f7ef886824f1ce640f97de7fcc09fa30 /channels/misdn | |
parent | f6fce9f24796a18477ea906a06990cb6889ac02e (diff) |
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@44999 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/misdn')
-rw-r--r-- | channels/misdn/isdn_msg_parser.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/channels/misdn/isdn_msg_parser.c b/channels/misdn/isdn_msg_parser.c index d23031ecb..540098d23 100644 --- a/channels/misdn/isdn_msg_parser.c +++ b/channels/misdn/isdn_msg_parser.c @@ -734,8 +734,9 @@ void parse_disconnect (struct isdn_msg msgs[], msg_t *msg, struct misdn_bchannel int HEADER_LEN = nt?mISDNUSER_HEAD_SIZE:mISDN_HEADER_LEN; DISCONNECT_t *disconnect=(DISCONNECT_t*)((unsigned long)(msg->data+HEADER_LEN)); int location; - - dec_ie_cause(disconnect->CAUSE, (Q931_info_t *)(disconnect), &location, &bc->cause, nt,bc); + int cause; + dec_ie_cause(disconnect->CAUSE, (Q931_info_t *)(disconnect), &location, &cause, nt,bc); + if (cause>0) bc->cause=cause; dec_ie_progress(disconnect->PROGRESS, (Q931_info_t *)disconnect, &bc->progress_coding, &bc->progress_location, &bc->progress_indicator, nt, bc); #if DEBUG @@ -801,8 +802,10 @@ void parse_release (struct isdn_msg msgs[], msg_t *msg, struct misdn_bchannel *b int HEADER_LEN = nt?mISDNUSER_HEAD_SIZE:mISDN_HEADER_LEN; RELEASE_t *release=(RELEASE_t*)((unsigned long)(msg->data+HEADER_LEN)); int location; + int cause; - dec_ie_cause(release->CAUSE, (Q931_info_t *)(release), &location, &bc->cause, nt,bc); + dec_ie_cause(release->CAUSE, (Q931_info_t *)(release), &location, &cause, nt,bc); + if (cause>0) bc->cause=cause; #if DEBUG printf("Parsing RELEASE Msg\n"); #endif @@ -831,6 +834,7 @@ void parse_release_complete (struct isdn_msg msgs[], msg_t *msg, struct misdn_bc int HEADER_LEN = nt?mISDNUSER_HEAD_SIZE:mISDN_HEADER_LEN; RELEASE_COMPLETE_t *release_complete=(RELEASE_COMPLETE_t*)((unsigned long)(msg->data+HEADER_LEN)); int location; + int cause; iframe_t *frm = (iframe_t*) msg->data; struct misdn_stack *stack=get_stack_by_bc(bc); @@ -851,7 +855,8 @@ void parse_release_complete (struct isdn_msg msgs[], msg_t *msg, struct misdn_bc return; } } - dec_ie_cause(release_complete->CAUSE, (Q931_info_t *)(release_complete), &location, &bc->cause, nt,bc); + dec_ie_cause(release_complete->CAUSE, (Q931_info_t *)(release_complete), &location, &cause, nt,bc); + if (cause>0) bc->cause=cause; #if DEBUG printf("Parsing RELEASE_COMPLETE Msg\n"); @@ -1008,8 +1013,10 @@ void parse_status (struct isdn_msg msgs[], msg_t *msg, struct misdn_bchannel *bc int HEADER_LEN = nt?mISDNUSER_HEAD_SIZE:mISDN_HEADER_LEN; STATUS_t *status=(STATUS_t*)((unsigned long)(msg->data+HEADER_LEN)); int location; + int cause; - dec_ie_cause(status->CAUSE, (Q931_info_t *)(status), &location, &bc->cause, nt,bc); + dec_ie_cause(status->CAUSE, (Q931_info_t *)(status), &location, &cause, nt,bc); + if (cause>0) bc->cause=cause; ; #if DEBUG |