]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-4990
authorAnthony Minessale <anthm@freeswitch.org>
Fri, 26 Apr 2013 16:07:50 +0000 (11:07 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Fri, 26 Apr 2013 16:07:50 +0000 (11:07 -0500)
src/switch_core_media.c

index 082f24380b237c051f2d8e051934aa5036b566c5..ec31e034ca9d4510a4707c9b3877d2db4c75120b 100644 (file)
@@ -6229,20 +6229,25 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_receive_message(switch_core_se
        case SWITCH_MESSAGE_INDICATE_DEBUG_AUDIO:
                {
                        if (switch_rtp_ready(a_engine->rtp_session) && !zstr(msg->string_array_arg[0]) && !zstr(msg->string_array_arg[1])) {
-                               int32_t flags = 0;
-                               if (!strcasecmp(msg->string_array_arg[0], "read")) {
-                                       flags |= SWITCH_RTP_FLAG_DEBUG_RTP_READ;
-                               } else if (!strcasecmp(msg->string_array_arg[0], "write")) {
-                                       flags |= SWITCH_RTP_FLAG_DEBUG_RTP_WRITE;
-                               } else if (!strcasecmp(msg->string_array_arg[0], "both")) {
-                                       flags |= SWITCH_RTP_FLAG_DEBUG_RTP_READ | SWITCH_RTP_FLAG_DEBUG_RTP_WRITE;
+                               switch_rtp_flag_t flags[SWITCH_RTP_FLAG_INVALID] = {0};
+                               int both = !strcasecmp(msg->string_array_arg[0], "both");
+                               int set = 0;
+
+                               if (both || !strcasecmp(msg->string_array_arg[0], "read")) {
+                                       flags[SWITCH_RTP_FLAG_DEBUG_RTP_READ]++;
+                                       set++;
+                               }
+
+                               if (both || !strcasecmp(msg->string_array_arg[0], "write")) {
+                                       flags[SWITCH_RTP_FLAG_DEBUG_RTP_WRITE]++;
+                                       set++;
                                }
 
-                               if (flags) {
+                               if (set) {
                                        if (switch_true(msg->string_array_arg[1])) {
-                                               switch_rtp_set_flag(a_engine->rtp_session, flags);
+                                               switch_rtp_set_flags(a_engine->rtp_session, flags);
                                        } else {
-                                               switch_rtp_clear_flag(a_engine->rtp_session, flags);
+                                               switch_rtp_clear_flags(a_engine->rtp_session, flags);
                                        }
                                } else {
                                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Invalid Options\n");