summaryrefslogtreecommitdiff
path: root/channels/sig_ss7.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2011-05-10 23:42:57 +0000
committerRichard Mudgett <rmudgett@digium.com>2011-05-10 23:42:57 +0000
commitd1e27b1026790fdec5de0497415952cd7df31c45 (patch)
tree9b7d037549f29cda89709298f68fc4716869f163 /channels/sig_ss7.c
parent0ccfc8609a21f20d0ca524b7d8d9a5974e04b32a (diff)
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 ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@318500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/sig_ss7.c')
-rw-r--r--channels/sig_ss7.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/channels/sig_ss7.c b/channels/sig_ss7.c
index ebc5ca858..b533e9e19 100644
--- a/channels/sig_ss7.c
+++ b/channels/sig_ss7.c
@@ -697,6 +697,11 @@ void *ss7_linkset(void *data)
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:
@@ -948,6 +953,11 @@ void *ss7_linkset(void *data)
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);
}
sig_ss7_unlock_private(p);