Merged revisions 78936 via svnmerge from
authorChristian Richter <christian.richter@beronet.com>
Wed, 15 Aug 2007 11:27:51 +0000 (11:27 +0000)
committerChristian Richter <christian.richter@beronet.com>
Wed, 15 Aug 2007 11:27:51 +0000 (11:27 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r78936 | crichter | 2007-08-10 15:24:03 +0200 (Fr, 10 Aug 2007) | 1 line

fixed a bug with the useruser information element. We send them now also in the disconnect message.
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79507 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c
channels/misdn/ie.c
channels/misdn/isdn_msg_parser.c

index 17c6d09..eb19e03 100644 (file)
@@ -2319,6 +2319,15 @@ static int misdn_hangup(struct ast_channel *ast)
 
        bc = p->bc;
 
+       if (bc) {
+               const char *tmp=pbx_builtin_getvar_helper(ast,"MISDN_USERUSER");
+               if (tmp) {
+                       ast_log(LOG_NOTICE, "MISDN_USERUSER: %s\n", tmp);
+                       strcpy(bc->uu, tmp);
+                       bc->uulen=strlen(bc->uu);
+               }
+       }
+
        MISDN_ASTERISK_TECH_PVT(ast) = NULL;
        p->ast = NULL;
 
index 02e28c8..75dd4c7 100644 (file)
@@ -1348,7 +1348,7 @@ static void enc_ie_useruser(unsigned char **ntmode, msg_t *msg, int protocol, ch
                
        if (MISDN_IE_DEBG) printf("    protocol=%d user-user%s\n", protocol, debug);
 
-       l = user_len;
+       l = user_len+1;
        p = msg_put(msg, l+3);
        if (nt)
                *ntmode = p+1;
index 24c2fb3..e9529a4 100644 (file)
@@ -797,6 +797,12 @@ static msg_t *build_disconnect (struct isdn_msg msgs[], struct misdn_bchannel *b
        
        enc_ie_cause(&disconnect->CAUSE, msg, (nt)?1:0, bc->out_cause,nt,bc);
        if (nt) enc_ie_progress(&disconnect->PROGRESS, msg, 0, nt?1:5, 8 ,nt,bc);
+
+       if (bc->uulen) {
+               int  protocol=4;
+               enc_ie_useruser(&disconnect->USER_USER, msg, protocol, bc->uu, bc->uulen, nt,bc);
+               cb_log(1,bc->port,"ENCODING USERUESRINFO:%s\n",bc->uu);
+       }
   
 #ifdef DEBUG 
        printf("Building DISCONNECT Msg\n"); 
@@ -867,6 +873,12 @@ static msg_t *build_release (struct isdn_msg msgs[], struct misdn_bchannel *bc,
   
        if (bc->out_cause>= 0)
                enc_ie_cause(&release->CAUSE, msg, nt?1:0, bc->out_cause, nt,bc);
+
+       if (bc->uulen) {
+               int  protocol=4;
+               enc_ie_useruser(&release->USER_USER, msg, protocol, bc->uu, bc->uulen, nt,bc);
+               cb_log(1,bc->port,"ENCODING USERUESRINFO:%s\n",bc->uu);
+       }
   
 #ifdef DEBUG 
        printf("Building RELEASE Msg\n"); 
@@ -917,6 +929,12 @@ static msg_t *build_release_complete (struct isdn_msg msgs[], struct misdn_bchan
        release_complete=(RELEASE_COMPLETE_t*)((msg->data+HEADER_LEN)); 
        
        enc_ie_cause(&release_complete->CAUSE, msg, nt?1:0, bc->out_cause, nt,bc);
+
+       if (bc->uulen) {
+               int  protocol=4;
+               enc_ie_useruser(&release_complete->USER_USER, msg, protocol, bc->uu, bc->uulen, nt,bc);
+               cb_log(1,bc->port,"ENCODING USERUESRINFO:%s\n",bc->uu);
+       }
   
 #ifdef DEBUG 
        printf("Building RELEASE_COMPLETE Msg\n");