[asterisk-commits] rmudgett: trunk r318500 - in /trunk: ./ channels/sig_pri.c channels/sig_ss7.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue May 10 18:43:02 CDT 2011
Author: rmudgett
Date: Tue May 10 18:42:57 2011
New Revision: 318500
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=318500
Log:
Merged revisions 318499 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8
........
r318499 | rmudgett | 2011-05-10 18:41:08 -0500 (Tue, 10 May 2011) | 15 lines
Unable to pickup DAHDI/PRI call because call state is reported as DIALING.
The channel state is not updated to RINGING when an ALERTING message is
received. Regression caused when sig_pri.c (also sig_ss7.c) extracted
from chan_dahdi.c.
* Added missing channel state update to RINGING when the
AST_CONTROL_RINGING frame is queued for ISDN and SS7.
(closes issue #19257)
Reported by: alecdavis
Patches:
issue19257_v1.8_v2.patch uploaded by rmudgett (license 664)
Tested by: alecdavis, rmudgett
........
Modified:
trunk/ (props changed)
trunk/channels/sig_pri.c
trunk/channels/sig_ss7.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Modified: trunk/channels/sig_pri.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/sig_pri.c?view=diff&rev=318500&r1=318499&r2=318500
==============================================================================
--- trunk/channels/sig_pri.c (original)
+++ trunk/channels/sig_pri.c Tue May 10 18:42:57 2011
@@ -6242,6 +6242,11 @@
e->ringing.call);
sig_pri_cc_generic_check(pri, chanpos, AST_CC_CCNR);
sig_pri_set_echocanceller(pri->pvts[chanpos], 1);
+ sig_pri_lock_owner(pri, chanpos);
+ if (pri->pvts[chanpos]->owner) {
+ ast_setstate(pri->pvts[chanpos]->owner, AST_STATE_RINGING);
+ ast_channel_unlock(pri->pvts[chanpos]->owner);
+ }
pri_queue_control(pri, chanpos, AST_CONTROL_RINGING);
if (pri->pvts[chanpos]->call_level < SIG_PRI_CALL_LEVEL_ALERTING) {
pri->pvts[chanpos]->call_level = SIG_PRI_CALL_LEVEL_ALERTING;
Modified: trunk/channels/sig_ss7.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/sig_ss7.c?view=diff&rev=318500&r1=318499&r2=318500
==============================================================================
--- trunk/channels/sig_ss7.c (original)
+++ trunk/channels/sig_ss7.c Tue May 10 18:42:57 2011
@@ -697,6 +697,11 @@
if (p->call_level < SIG_SS7_CALL_LEVEL_ALERTING) {
p->call_level = SIG_SS7_CALL_LEVEL_ALERTING;
}
+ sig_ss7_lock_owner(linkset, chanpos);
+ if (p->owner) {
+ ast_setstate(p->owner, AST_STATE_RINGING);
+ ast_channel_unlock(p->owner);
+ }
sig_ss7_queue_control(linkset, chanpos, AST_CONTROL_RINGING);
break;
case CPG_EVENT_PROGRESS:
@@ -947,6 +952,11 @@
if (e->acm.called_party_status_ind == 1) {
if (p->call_level < SIG_SS7_CALL_LEVEL_ALERTING) {
p->call_level = SIG_SS7_CALL_LEVEL_ALERTING;
+ }
+ sig_ss7_lock_owner(linkset, chanpos);
+ if (p->owner) {
+ ast_setstate(p->owner, AST_STATE_RINGING);
+ ast_channel_unlock(p->owner);
}
sig_ss7_queue_control(linkset, chanpos, AST_CONTROL_RINGING);
}
More information about the asterisk-commits
mailing list