e->ringing.subcmds, 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;
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:
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);