res/res_pjsip_refer: call xfer w/o extension
authorTorrey Searle <torrey@voxbone.com>
Tue, 14 Mar 2017 13:49:54 +0000 (14:49 +0100)
committerTorrey Searle <tsearle@gmail.com>
Wed, 15 Mar 2017 16:29:16 +0000 (10:29 -0600)
When transfering to a URI without an extension, ensure that the
s extension of the dialplan is entered

ASTERISK-26869 #close

Change-Id: I07403df66cf93f09e00a40ab5b41bfc6f72b1525

res/res_pjsip_refer.c

index aa2af09..0f4a95c 100644 (file)
@@ -822,6 +822,13 @@ static int refer_incoming_blind_request(struct ast_sip_session *session, pjsip_r
         */
        AST_SIP_USER_OPTIONS_TRUNCATE_CHECK(exten);
 
+       /* Uri without exten */
+       if (ast_strlen_zero(exten)) {
+               ast_copy_string(exten, "s", sizeof(exten));
+               ast_debug(3, "Channel '%s' from endpoint '%s' attempted blind transfer to a target without extension. Target was set to 's@%s'\n",
+                       ast_channel_name(session->channel), ast_sorcery_object_get_id(session->endpoint), context);
+       }
+
        if (!ast_exists_extension(NULL, context, exten, 1, NULL)) {
                ast_log(LOG_ERROR, "Channel '%s' from endpoint '%s' attempted blind transfer to '%s@%s' but target does not exist\n",
                        ast_channel_name(session->channel), ast_sorcery_object_get_id(session->endpoint), exten, context);