[Home]

Summary:ASTERISK-00856: SERVICE_ACKNOWLEDGE message building problem
Reporter:zalex (zalex)Labels:
Date Opened:2004-01-15 19:12:10.000-0600Date Closed:2004-09-25 02:55:01
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) q931.c.diff
Description:The index in h->raw[index] depends on h->crlen, so it isn't h->raw[3] (as it is in the CVS) and not h->raw[4] (as it was before Tony Mancill's email) but h->raw[h->crlen + 2].
Our carriers send crlen = 1, or crlen = 2. How about using mh->msg?  

****** ADDITIONAL INFORMATION ******

retrieving revision 1.42
diff -u -r1.42 q931.c
--- q931.c      9 Dec 2003 15:55:48 -0000       1.42
+++ q931.c      16 Jan 2004 00:43:49 -0000
@@ -1935,7 +1935,7 @@
               /* This is the weird maintenance stuff.  We majorly
                  KLUDGE this by changing byte 4 from a 0xf (SERVICE)
                  to a 0x7 (SERVICE ACKNOWLEDGE) */
-               h->raw[3] -= 0x8;
+               h->raw[h->crlen + 2] -= 0x8;
               q931_xmit(pri, h, len, 1);
               return 0;
       } else if (h->pd != Q931_PROTOCOL_DISCRIMINATOR) {
Comments:By: Brian West (bkw918) 2004-01-15 20:05:32.000-0600

attach a diff -u

By: zalex (zalex) 2004-01-16 11:31:56.000-0600

Attached (was in additional info in the original post).

By: Mark Spencer (markster) 2004-01-17 09:22:25.000-0600

Fixed in CVS.  Brilliant patch.