From: Joshua Colp Date: Tue, 20 Feb 2018 16:33:43 +0000 (-0400) Subject: chan_sip: Emit a second ringing event to ensure channel is found. X-Git-Tag: 13.21.0-rc1~96^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4da0e19b8947c7bc83bef393953cb6c0a47c2903;p=thirdparty%2Fasterisk.git 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 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 563cea886b..0a5caecb96 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -23755,6 +23755,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)) {