aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-15 11:27:51 +0000
committercrichter <crichter@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-15 11:27:51 +0000
commit5b558b082070746026a5e151bf45b5e4461c1e72 (patch)
tree5416a3d71c40dab0167810905d01f0d546af3828
parent600ef2b1ef4a51215e9a870a1d71f2c12fc8219a (diff)
Merged revisions 78936 via svnmerge from
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: http://svn.digium.com/svn/asterisk/trunk@79507 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_misdn.c9
-rw-r--r--channels/misdn/ie.c2
-rw-r--r--channels/misdn/isdn_msg_parser.c18
3 files changed, 28 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 17c6d09c9..eb19e0326 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -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;
diff --git a/channels/misdn/ie.c b/channels/misdn/ie.c
index 02e28c8bc..75dd4c7f2 100644
--- a/channels/misdn/ie.c
+++ b/channels/misdn/ie.c
@@ -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;
diff --git a/channels/misdn/isdn_msg_parser.c b/channels/misdn/isdn_msg_parser.c
index 24c2fb3aa..e9529a4c8 100644
--- a/channels/misdn/isdn_msg_parser.c
+++ b/channels/misdn/isdn_msg_parser.c
@@ -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");