From 7188fd81cffe0cd2dcb2ea4f9bc87962d9e0e14b Mon Sep 17 00:00:00 2001 From: crichter Date: Fri, 18 May 2007 09:31:27 +0000 Subject: Merged revisions 58825-58826 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ................ r58825 | crichter | 2007-03-12 13:43:24 +0100 (Mo, 12 Mär 2007) | 1 line added UU transceiving and corect handling for rdnis ................ r58826 | crichter | 2007-03-12 14:08:06 +0100 (Mo, 12 Mär 2007) | 21 lines Merged revisions 57034,57523,57753,58558 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r57034 | crichter | 2007-02-28 17:09:27 +0100 (Mi, 28 Feb 2007) | 1 line fixed bugs.digium.com bugs: #9157 and bugs.beronet.com bugs: #302, #303, #304 ........ r57523 | crichter | 2007-03-02 19:32:51 +0100 (Fr, 02 Mar 2007) | 1 line fixed typo ........ r57753 | crichter | 2007-03-04 11:39:50 +0100 (So, 04 Mar 2007) | 1 line fixed another place where the out_cause was hardcoded to 16 ........ r58558 | crichter | 2007-03-09 15:43:58 +0100 (Fr, 09 Mar 2007) | 1 line we can free channel 31 as well, since we can occupy it ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@64951 f38db490-d61c-443f-a65b-d21fe96a405b --- channels/misdn/ie.c | 4 ++-- channels/misdn/isdn_lib.c | 11 ++++++++++- channels/misdn/isdn_lib.h | 4 +++- channels/misdn/isdn_msg_parser.c | 18 +++++++++++++++++- 4 files changed, 32 insertions(+), 5 deletions(-) (limited to 'channels/misdn') diff --git a/channels/misdn/ie.c b/channels/misdn/ie.c index af2d14019..3fbccab3e 100644 --- a/channels/misdn/ie.c +++ b/channels/misdn/ie.c @@ -1324,7 +1324,7 @@ static void dec_ie_redir_dn(unsigned char *p, Q931_info_t *qi, int *type, int *p /* IE_USERUSER */ -#if 0 +#if 1 static void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, char *user, int user_len, int nt, struct misdn_bchannel *bc) { unsigned char *p; @@ -1366,7 +1366,7 @@ static void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, ch } #endif -#if 0 +#if 1 static void dec_ie_useruser(unsigned char *p, Q931_info_t *qi, int *protocol, char *user, int *user_len, int nt, struct misdn_bchannel *bc) { char debug[768]; diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c index 7294f8f56..530731102 100644 --- a/channels/misdn/isdn_lib.c +++ b/channels/misdn/isdn_lib.c @@ -463,7 +463,7 @@ static int find_free_chan_in_stack(struct misdn_stack *stack, struct misdn_bchan static int empty_chan_in_stack(struct misdn_stack *stack, int channel) { - if (channel<=0 || channel>=MAX_BCHANS) { + if (channel<=0 || channel>MAX_BCHANS) { cb_log(0,stack?stack->port:0, "empty_chan_in_stack: cannot empty channel %d\n",channel); return -1; } @@ -618,6 +618,8 @@ static void empty_bc(struct misdn_bchannel *bc) bc->dad[0] = 0; bc->rad[0] = 0; bc->orig_dad[0] = 0; + bc->uu[0]=0; + bc->uulen=0; bc->fac_in.Function = Fac_None; bc->fac_out.Function = Fac_None; @@ -1533,8 +1535,10 @@ static int handle_event ( struct misdn_bchannel *bc, enum event_e event, iframe_ if (bc->channel>0) empty_chan_in_stack(stack,bc->channel); int tmpcause=bc->cause; + int tmp_out_cause=bc->out_cause; empty_bc(bc); bc->cause=tmpcause; + bc->out_cause=tmp_out_cause; clean_up_bc(bc); break; default: @@ -3082,6 +3086,9 @@ struct misdn_bchannel* misdn_lib_get_free_bc(int port, int channel, int inout) } int maxnum=inout&&!stack->pri&&!stack->ptp?stack->b_num+1:stack->b_num; + //int maxnum=stack->b_num+1; + + cb_log(0,0,"maxnum:%d",maxnum); for (i = 0; i bc[i].in_use) { /* 3. channel on bri means CW*/ @@ -3322,8 +3329,10 @@ int misdn_lib_send_event(struct misdn_bchannel *bc, enum event_e event ) if (bc->channel>0) empty_chan_in_stack(stack,bc->channel); int tmpcause=bc->cause; + int tmp_out_cause=bc->out_cause; empty_bc(bc); bc->cause=tmpcause; + bc->out_cause=tmp_out_cause; clean_up_bc(bc); } break; diff --git a/channels/misdn/isdn_lib.h b/channels/misdn/isdn_lib.h index d5b466ccd..f8742f81e 100644 --- a/channels/misdn/isdn_lib.h +++ b/channels/misdn/isdn_lib.h @@ -335,7 +335,9 @@ struct misdn_bchannel { /* unsigned char info_keypad[32]; */ /* unsigned char clisub[24]; */ /* unsigned char cldsub[24]; */ -/* unsigned char uu[256]; */ + + char uu[256]; + int uulen; int cause; int out_cause; diff --git a/channels/misdn/isdn_msg_parser.c b/channels/misdn/isdn_msg_parser.c index 44661adff..6ce9ed92e 100644 --- a/channels/misdn/isdn_msg_parser.c +++ b/channels/misdn/isdn_msg_parser.c @@ -252,6 +252,14 @@ static void parse_setup (struct isdn_msg msgs[], msg_t *msg, struct misdn_bchann set_channel(bc,channel); } + + { + int protocol ; + dec_ie_useruser(setup->USER_USER, (Q931_info_t *)setup, &protocol, bc->uu, &bc->uulen, nt,bc); + if (bc->uulen) cb_log(1,bc->port,"USERUESRINFO:%s\n",bc->uu); + else + cb_log(1,bc->port,"NO USERUESRINFO\n"); + } dec_ie_progress(setup->PROGRESS, (Q931_info_t *)setup, &bc->progress_coding, &bc->progress_location, &bc->progress_indicator, nt, bc); @@ -331,7 +339,15 @@ static msg_t *build_setup (struct isdn_msg msgs[], struct misdn_bchannel *bc, in enc_ie_complete(&setup->BEARER,msg, bc->sending_complete, nt, bc); } -#ifdef DEBUG + { + int protocol=4; + enc_ie_useruser(&setup->USER_USER, msg, protocol, bc->uu, bc->uulen, nt,bc); + if (bc->uulen) cb_log(1,bc->port,"ENCODING USERUESRINFO:%s\n",bc->uu); + else + cb_log(1,bc->port,"NO USERUESRINFO ENCODED\n"); + } + +#if DEBUG printf("Building SETUP Msg\n"); #endif return msg; -- cgit v1.2.3