channel: No hung-up on failing security requirements.
authorAlexander Traud <pabstraud@compuserve.com>
Fri, 26 Aug 2016 13:41:16 +0000 (15:41 +0200)
committerAlexander Traud <pabstraud@compuserve.com>
Fri, 26 Aug 2016 14:37:46 +0000 (16:37 +0200)
In your Diaplan, if you specify
 same => n,Set(CHANNEL(secure_bridge_media)=1)
 same => n,Set(CHANNEL(secure_bridge_signaling)=1)
only the SIP channel driver chan_sip supports this. All other channels drivers
like res_pjsip fail. In case of failure, the original sRTP source code released
the whole channel, even if not hung-up, yet. This change does not release the
channel but instead hangs-up the channel.

ASTERISK-26306

Change-Id: I0489f0cb660fab6673b0db8af027d116e70a66db

main/channel.c

index 1f18d53..94505ad 100644 (file)
@@ -6093,7 +6093,7 @@ struct ast_channel *ast_request(const char *type, struct ast_format_cap *request
 
                if (set_security_requirements(requestor, c)) {
                        ast_log(LOG_WARNING, "Setting security requirements failed\n");
-                       c = ast_channel_release(c);
+                       ast_hangup(c);
                        *cause = AST_CAUSE_BEARERCAPABILITY_NOTAVAIL;
                        return NULL;
                }