[svn-commits] rmudgett: branch 1.6.2 r278703 - /branches/1.6.2/channels/chan_dahdi.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Thu Jul 22 14:32:22 CDT 2010


Author: rmudgett
Date: Thu Jul 22 14:32:16 2010
New Revision: 278703

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=278703
Log:
DNID does not get cleard on a new call when using immediate=yes with ISDN signaling.

When you are using chan_dahdi ISDN signaling with immediate=yes and a call
comes in without a DNID then you get the DNID of a previous call.
Chan_dahdi does not touch the DNID field on a new call if it does not have
a DNID.

Made always copy the DNID from the new call.

The patches backport the relevant changes from trunk -r210387.

(closes issue #17568)
Reported by: wuwu
Patches:
      issue17568_v1.4.patch uploaded by rmudgett (license 664)
      issue17568_v1.6.2.patch uploaded by rmudgett (license 664)

Modified:
    branches/1.6.2/channels/chan_dahdi.c

Modified: branches/1.6.2/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/channels/chan_dahdi.c?view=diff&rev=278703&r1=278702&r2=278703
==============================================================================
--- branches/1.6.2/channels/chan_dahdi.c (original)
+++ branches/1.6.2/channels/chan_dahdi.c Thu Jul 22 14:32:16 2010
@@ -12966,6 +12966,10 @@
 					}
 					apply_plan_to_number(pri->pvts[chanpos]->rdnis, sizeof(pri->pvts[chanpos]->rdnis), pri,
 						e->ring.redirectingnum, e->ring.callingplanrdnis);
+
+					/* Set DNID on all incoming calls -- even immediate */
+					ast_copy_string(pri->pvts[chanpos]->dnid, e->ring.callednum, sizeof(pri->pvts[chanpos]->dnid));
+
 					/* If immediate=yes go to s|1 */
 					if (pri->pvts[chanpos]->immediate) {
 						ast_verb(3, "Going to extension s|1 because of immediate=yes\n");
@@ -12975,7 +12979,6 @@
 					/* Get called number */
 					else if (!ast_strlen_zero(e->ring.callednum)) {
 						ast_copy_string(pri->pvts[chanpos]->exten, e->ring.callednum, sizeof(pri->pvts[chanpos]->exten));
-						ast_copy_string(pri->pvts[chanpos]->dnid, e->ring.callednum, sizeof(pri->pvts[chanpos]->dnid));
 					} else if (pri->overlapdial)
 						pri->pvts[chanpos]->exten[0] = '\0';
 					else {
@@ -12983,9 +12986,6 @@
 						pri->pvts[chanpos]->exten[0] = 's';
 						pri->pvts[chanpos]->exten[1] = '\0';
 					}
-					/* Set DNID on all incoming calls -- even immediate */
-					if (!ast_strlen_zero(e->ring.callednum))
-						ast_copy_string(pri->pvts[chanpos]->dnid, e->ring.callednum, sizeof(pri->pvts[chanpos]->dnid));
 					/* No number yet, but received "sending complete"? */
 					if (e->ring.complete && (ast_strlen_zero(e->ring.callednum))) {
 						ast_verb(3, "Going to extension s|1 because of Complete received\n");




More information about the svn-commits mailing list