dect
/
asterisk
Archived
13
0
Fork 0

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: http://svn.digium.com/svn/asterisk/trunk@318500 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
rmudgett 2011-05-10 23:42:57 +00:00
parent 6eca928012
commit c5b93b031f
2 changed files with 15 additions and 0 deletions

View File

@ -6242,6 +6242,11 @@ static void *pri_dchannel(void *vpri)
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;

View File

@ -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);