]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
chan_local: Skip filtering audio formats on removed streams.
authorJoshua C. Colp <jcolp@sangoma.com>
Wed, 28 Apr 2021 12:17:13 +0000 (09:17 -0300)
committerJoshua Colp <jcolp@sangoma.com>
Thu, 29 Apr 2021 13:41:03 +0000 (08:41 -0500)
When a stream topology is provided to chan_local when dialing
it filters the audio formats down. This operation did not skip
streams which were removed (that have no formats) resulting in
calling being aborted.

This change causes such streams to be skipped.

ASTERISK-29407

Change-Id: I1de8b98727cb2d10f4bc287da0b5fdcb381addd6

main/core_local.c

index 07a6ff7beaf4bef001256771cb85c16fb50743ad..15a546cbfc6b24ee9ffdf4770022d1e251ea05dc 100644 (file)
@@ -967,7 +967,8 @@ static struct ast_channel *local_request_with_stream_topology(const char *type,
 
                stream = ast_stream_topology_get_stream(audio_filtered_topology, i);
 
-               if (ast_stream_get_type(stream) != AST_MEDIA_TYPE_AUDIO) {
+               if (ast_stream_get_type(stream) != AST_MEDIA_TYPE_AUDIO ||
+                       ast_stream_get_state(stream) == AST_STREAM_STATE_REMOVED) {
                        continue;
                }