From 259c80675e800110bcdd55fcd22e091315964163 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Tue, 20 Feb 2018 12:33:43 -0400 Subject: [PATCH] chan_sip: Emit a second ringing event to ensure channel is found. When constructing a dialog-info+xml NOTIFY message a ringing channel is found if the state is ringing and further information is placed into the message. Due to the migration to the Stasis message bus this did not always work as expected. This change raises a second ringing event in such a way to guarantee that the event is received by chan_sip and another lookup is done to find the ringing channel. ASTERISK-24488 Change-Id: I547a458fc59721c918cb48be060cbfc3c88bcf9c --- channels/chan_sip.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index acf5a147e2..85701634ca 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -23984,6 +23984,9 @@ static void handle_response_invite(struct sip_pvt *p, int resp, const char *rest ast_queue_control(p->owner, AST_CONTROL_RINGING); if (ast_channel_state(p->owner) != AST_STATE_UP) { ast_setstate(p->owner, AST_STATE_RINGING); + if (p->relatedpeer) { + ast_devstate_changed(AST_DEVICE_UNKNOWN, AST_DEVSTATE_NOT_CACHABLE, "SIP/%s", p->relatedpeer->name); + } } } if (find_sdp(req)) {