diff options
Diffstat (limited to 'channels/sig_ss7.c')
-rw-r--r-- | channels/sig_ss7.c | 10 |
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); |