const struct ast_stream_topology *source)
{
int i;
+ const char *stream_identify;
for (i = 0; i < ast_stream_topology_get_count(source); ++i) {
struct ast_stream *stream;
continue;
}
+ stream_identify = ast_stream_get_metadata(stream, "MSID:LABEL");
+ if (!stream_identify) {
+ stream_identify = ast_stream_get_name(stream);
+ }
+
if (ast_asprintf(&stream_clone_name, "%s_%s_%s", SOFTBRIDGE_VIDEO_DEST_PREFIX,
- channel_name, ast_stream_get_name(stream)) < 0) {
+ channel_name, stream_identify) < 0) {
return -1;
}
for (i = 0; i < ast_stream_topology_get_count(topology); ++i) {
struct ast_stream *stream = ast_stream_topology_get_stream(topology, i);
+ const char *stream_identify;
if (is_video_source(stream)) {
AST_VECTOR_APPEND(&media_types, AST_MEDIA_TYPE_VIDEO);
*/
ast_channel_unlock(participant->chan);
ast_bridge_channel_unlock(participant);
- map_source_to_destinations(ast_stream_get_name(stream), ast_channel_name(participant->chan),
+
+ stream_identify = ast_stream_get_metadata(stream, "MSID:LABEL");
+ if (!stream_identify) {
+ stream_identify = ast_stream_get_name(stream);
+ }
+ map_source_to_destinations(stream_identify, ast_channel_name(participant->chan),
AST_VECTOR_SIZE(&media_types) - 1, &bridge->channels);
ast_bridge_channel_lock(participant);
ast_channel_lock(participant->chan);
}
if (ast_strlen_zero(session_media->label)) {
- ast_uuid_generate_str(session_media->label, sizeof(session_media->label));
+ ast_uuid_generate_str(session_media->label, sizeof(session_media->label));
+ /* add for stream identification to replace stream_name */
+ ast_stream_set_metadata(stream, "MSID:LABEL", session_media->label);
}
snprintf(msid, sizeof(msid), "%s %s", session_media->mslabel, session_media->label);