chan_pjsip: add a flag to ignore 183 responses if no SDP present

chan_sip will always ignore 183 responses that do not contain SDP
however, chan_pjsip will currently always translate it into a
183 with SDP.  This new flag allows chan_pjsip to have the same
behavior as chan_sip.

ASTERISK-28322 #close

Change-Id: If81cfaa17c11b6ac703e3d71696f259d86c6be4a
This commit is contained in:
Torrey Searle
2019-03-04 08:50:18 +01:00
committed by Sean Bright
parent 5f6890a8f9
commit 4661c08549
7 changed files with 75 additions and 1 deletions

View File

@@ -1127,6 +1127,16 @@
option allows the 'Q.850' Reason header to be suppressed.</para>
</description>
</configOption>
<configOption name="ignore_183_without_sdp" default="no">
<synopsis>Do not forward 183 when it doesn't contain SDP</synopsis>
<description><para>
Certain SS7 internetworking scenarios can result in a 183
to be generated for reasons other than early media. Forwarding
this 183 can cause loss of ringback tone. This flag emulates
the behavior of chan_sip and prevents these 183 responses from
being forwarded.</para>
</description>
</configOption>
</configObject>
<configObject name="auth">
<synopsis>Authentication type</synopsis>

View File

@@ -1949,6 +1949,7 @@ int ast_res_pjsip_initialize_configuration(void)
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "follow_early_media_fork", "yes", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.rtp.follow_early_media_fork));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "accept_multiple_sdp_answers", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, media.rtp.accept_multiple_sdp_answers));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "suppress_q850_reason_headers", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, suppress_q850_reason_headers));
ast_sorcery_object_field_register(sip_sorcery, "endpoint", "ignore_183_without_sdp", "no", OPT_BOOL_T, 1, FLDSET(struct ast_sip_endpoint, ignore_183_without_sdp));
if (ast_sip_initialize_sorcery_transport()) {
ast_log(LOG_ERROR, "Failed to register SIP transport support with sorcery\n");