[asterisk-ss7] ISUP decoding error

Kristian Nielsen knielsen at mysql.com
Wed Jan 17 00:24:45 MST 2007


asterisk at nicox.org writes:

> I talked with my Carrier, and the problem is that the "Propagation
> Delay Counter" which is given in ms is not set in chan_ss7 and the
> Ecrisson give an Confusion after this.

It seems that the idea is that the initial exchange sets the propagation delay
counter to zero, or to a known delay value for the initial circuit (I think it
means the delay in the speech path). Then each subsequent exchange will add
the appropriate delay value for the circuit chosen to forward the call.

> Is it possible to set this counter in chan_ss7?

Try the following untested patch.

If it works, it is left as an exercise for the reader to make the initial
value configurable (on a per-circuit basis), and/or use an Asterisk provided
known value (assuming it exists).

 - Kristian.

diff -u --recursive a/isup.h b/isup.h
--- a/isup.h	2006-06-23 15:40:03.000000000 +0200
+++ b/isup.h	2007-01-17 08:17:54.000000000 +0100
@@ -71,6 +71,7 @@
   IP_EVENT_INFORMATION = 0x24,                                /* (3.21) */
   IP_OPTIONAL_BACKWARD_CALL_INDICATORS = 0x29,                /* (3.5) */
   IP_SUSPEND_RESUME_INDICATORS = 0x22,                        /* (3.21) */
+  IP_PROPAGATION_DELAY_COUNTER = 0x31,                        /* (3.42) */
   IP_ECHO_CONTROL_INFORMATION = 0x37,                         /* (3.19) */
 };
 
diff -u --recursive a/l4isup.c b/l4isup.c
--- a/l4isup.c	2006-07-19 10:13:40.000000000 +0200
+++ b/l4isup.c	2007-01-17 08:18:18.000000000 +0100
@@ -1640,6 +1640,15 @@
     isup_msg_add_optional(msg, sizeof(msg), &current, IP_REDIRECTION_INFORMATION, param, 2);
   }
 
+  /* Propagation delay counter.
+     This seems to be needed to avoid a confusion return from some switches.
+     ToDo: Make this a per-circuit configurable entity. */
+  unsigned int propagation_delay = 10; /* In milliseconds. */
+  param[0] = (propagation_delay>>8) & 0xff;
+  param[1] = propagation_delay & 0xff;
+  isup_msg_add_optional(msg, sizeof(msg), &current,
+                        IP_PROPAGATION_DELAY_COUNTER, param, 2);
+
   /* End and send the message. */
   isup_msg_end_optional_part(msg, sizeof(msg), &current);
 

-- 
Kristian Nielsen, Software Developer
MySQL AB, Hvidovre, Denmark, www.mysql.com
Office: +46 18 174 400 ext. 4525
Are you MySQL certified?  www.mysql.com/certification



More information about the asterisk-ss7 mailing list