Hello everyone!

At first I would like to thank the folks at sifira for finaly taking the t35 handling for overlap dialing into the code. ;)

Anders Baekgaard wrote:
As a work-around to support overlapped dialling without the use of the dial plan to determine when the dialled number is complete, a configuration option t35 is introduced. For example,

  t35 => 4000,st

means that the T35 timer has a value of 4000 msecs, and when it times out, an "end-of-pulsing" signal is assumed, and that completes the dialled number.

What is implented right now only works partly. I attach a patch to this mail, which adds the wanted feature ...

Best regards,
Kai

--
Kai Militzer                 WESTEND GmbH  |  Internet-Business-Provider
Technik                      CISCO Systems Partner - Authorized Reseller
                             Lütticher Straße 10      Tel 0241/701333-14
[EMAIL PROTECTED]               D-52064 Aachen              Fax 0241/911879

--- chan_ss7-0.8.3/chan_ss7.c	2006-03-17 10:11:57.000000000 +0100
+++ chan_ss7-0.8.3.mod/chan_ss7.c	2006-03-17 15:36:37.355806984 +0100
@@ -1335,19 +1335,23 @@
 static void check_iam_sam(struct ss7_chan* pvt)
 {
   int complete = (pvt->link->linkset->enable_st && pvt->iam.dni.complete) ||
-    ast_exists_extension(pvt->owner, pvt->context, pvt->iam.dni.num, 1, pvt->iam.rni.num);
+    ( ast_exists_extension(pvt->owner, pvt->context, pvt->iam.dni.num, 1, pvt->iam.rni.num) && (!pvt->link->linkset->t35_action) );
   if (complete) {
     pvt->iam.dni.complete = 1;
     ast_log(LOG_DEBUG, "Setting iam.dni.complete\n");
     handle_complete_address(pvt);
   } else {
-    if (ast_canmatch_extension(pvt->owner, pvt->context, pvt->iam.dni.num, 1, pvt->iam.rni.num) != 0) {
-      ast_log(LOG_DEBUG, "Processing addr %s, incomplete, starting T35\n", pvt->iam.dni.num);
-      t35_start(pvt);
+    if (pvt->link->linkset->t35_action) {
+	   if (ast_canmatch_extension(pvt->owner, pvt->context, pvt->iam.dni.num, 1, pvt->iam.rni.num) != 0) {
+	     ast_log(LOG_DEBUG, "Processing addr %s, incomplete, starting T35\n", pvt->iam.dni.num);
+	     t35_start(pvt);
+	   } else {
+	      initiate_release_circuit(pvt, AST_CAUSE_UNALLOCATED);
+	   }
     }
     else {
-      ast_log(LOG_DEBUG, "Unable to match extension, context: %s, dni: %s, rni: %s\n", pvt->context, pvt->iam.dni.num, pvt->iam.rni.num);
-      initiate_release_circuit(pvt, AST_CAUSE_UNALLOCATED);
+    	ast_log(LOG_DEBUG, "Processing addr %s, incomplete, starting T35\n", pvt->iam.dni.num);
+	t35_start(pvt);
     }
   }
 }
@@ -2315,6 +2319,9 @@
     return;
   }
   strcat(pvt->iam.dni.num, inmsg->sam.sni.num);
+  if (inmsg->sam.sni.complete) {
+	  pvt->iam.dni.complete = 1;
+  }
   check_iam_sam(pvt);
 }
 
_______________________________________________
--Bandwidth and Colocation provided by Easynews.com --

asterisk-ss7 mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-ss7

Reply via email to