]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_pjsip_session.c: Map empty extensions in INVITEs to s.
authorNaveen Albert <asterisk@phreaknet.org>
Mon, 17 Oct 2022 00:33:44 +0000 (00:33 +0000)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Thu, 8 Dec 2022 19:56:38 +0000 (13:56 -0600)
Some SIP devices use an empty extension for PLAR functionality.

Rather than rejecting these empty extensions, we now use the s
extension for such calls to mirror the existing PLAR functionality
in Asterisk (e.g. chan_dahdi).

ASTERISK-30265 #close

Change-Id: I0861a405cd49bbbf532b52f7b47f0e2810832590

res/res_pjsip_session.c

index a7bde0da4ece41bb0e560e34f523e59da8fbd16f..67dcdf50d12f99a47f70163843ce4c8a19b4fa07 100644 (file)
@@ -3665,6 +3665,11 @@ static enum sip_get_destination_result get_destination(struct ast_sip_session *s
        }
 
        ast_copy_pj_str(session->exten, ast_sip_pjsip_uri_get_username(ruri), sizeof(session->exten));
+       if (ast_strlen_zero(session->exten)) {
+               /* Some SIP devices send an empty extension for PLAR: this should map to s */
+               ast_debug(1, "RURI contains no user portion: defaulting to extension 's'\n");
+               ast_copy_string(session->exten, "s", sizeof(session->exten));
+       }
 
        /*
         * We may want to match in the dialplan without any user