[Asterisk-code-review] pjsip: replace 180 by 183 if SDP negotiation has completed (...asterisk[13])

Friendly Automation asteriskteam at digium.com
Mon Jun 3 08:52:50 CDT 2019


Friendly Automation has submitted this change and it was merged. ( https://gerrit.asterisk.org/c/asterisk/+/11385 )

Change subject: pjsip: replace 180 by 183 if SDP negotiation has completed
......................................................................

pjsip: replace 180 by 183 if SDP negotiation has completed

The caller endpoint hears dead silence if a callee replies 180 (without SDP)
and the caller already received 183 (with SDP).
It happens because Asterisk sends 180 (WITH SDP) to the caller,
there are not incoming RTP packets from the callee
and Asterisk does not generate inband ringing,
so there are not any outgoing RTP packets to the caller.

This patch replaces 180 by 183 if SDP negotiation has completed,
as if the caller endpoint is configured with "inband_progress=yes".

In this case Asterisk will generate inband ringing untill Asterisk receive
incoming RTP packets from the callee.

ASTERISK-27994 #close

Change-Id: I7450b751083ec30d68d6abffe922215a15ae5a73
---
M channels/chan_pjsip.c
1 file changed, 3 insertions(+), 1 deletion(-)

Approvals:
  Joshua Colp: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Friendly Automation: Approved for Submit



diff --git a/channels/chan_pjsip.c b/channels/chan_pjsip.c
index 6d027b3..0d565df 100644
--- a/channels/chan_pjsip.c
+++ b/channels/chan_pjsip.c
@@ -1363,7 +1363,9 @@
 	switch (condition) {
 	case AST_CONTROL_RINGING:
 		if (ast_channel_state(ast) == AST_STATE_RING) {
-			if (channel->session->endpoint->inband_progress) {
+			if (channel->session->endpoint->inband_progress ||
+				(channel->session->inv_session && channel->session->inv_session->neg &&
+				pjmedia_sdp_neg_get_state(channel->session->inv_session->neg) == PJMEDIA_SDP_NEG_STATE_DONE)) {
 				response_code = 183;
 				res = -1;
 			} else {

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/11385
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Change-Id: I7450b751083ec30d68d6abffe922215a15ae5a73
Gerrit-Change-Number: 11385
Gerrit-PatchSet: 1
Gerrit-Owner: Alexei Gradinari <alex2grad at gmail.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20190603/740a70e0/attachment.html>


More information about the asterisk-code-review mailing list