[Freeswitch-svn] [commit] r13461 - in freeswitch/trunk: conf src

FreeSWITCH SVN brian at freeswitch.org
Tue May 26 22:07:19 PDT 2009


Author: brian
Date: Wed May 27 00:07:19 2009
New Revision: 13461

Log:
 zrtp_secure_media=true will have to be set to true in order for your zrtp to work moving forward similar to how srtp_secure_media works.

Modified:
   freeswitch/trunk/conf/vars.xml
   freeswitch/trunk/src/switch_rtp.c

Modified: freeswitch/trunk/conf/vars.xml
==============================================================================
--- freeswitch/trunk/conf/vars.xml	(original)
+++ freeswitch/trunk/conf/vars.xml	Wed May 27 00:07:19 2009
@@ -26,6 +26,9 @@
   <X-PRE-PROCESS cmd="set" data="domain=$${local_ip_v4}"/>
   <X-PRE-PROCESS cmd="set" data="domain_name=$${domain}"/>
   <X-PRE-PROCESS cmd="set" data="hold_music=local_stream://moh"/>
+
+  <!-- Enable ZRTP globally you can override this on a per channel basis -->
+  <X-PRE-PROCESS cmd="set" data="zrtp_secure_media=true"/>
   <!--
       xmpp_client_profile and xmpp_server_profile
       xmpp_client_profile can be any string. 

Modified: freeswitch/trunk/src/switch_rtp.c
==============================================================================
--- freeswitch/trunk/src/switch_rtp.c	(original)
+++ freeswitch/trunk/src/switch_rtp.c	Wed May 27 00:07:19 2009
@@ -1107,35 +1107,38 @@
 		int initiator = 0;
 		switch_core_session_t *session = switch_core_memory_pool_get_data(rtp_session->pool, "__session");
 		switch_channel_t *channel = switch_core_session_get_channel(session);
+		const char *zrtp_enabled = switch_channel_get_variable(channel, "zrtp_secure_media");
 
-		if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
-			initiator = 1;
-		}
-
-		rtp_session->zrtp_profile = switch_core_alloc(rtp_session->pool, sizeof(*rtp_session->zrtp_profile));
-		zrtp_profile_defaults(rtp_session->zrtp_profile, zrtp_global);
-
-		rtp_session->zrtp_profile->allowclear = 0;
-		rtp_session->zrtp_profile->disclose_bit = 0;
-		rtp_session->zrtp_profile->cache_ttl = -1;
-
-		if (zrtp_status_ok != zrtp_session_init(zrtp_global, rtp_session->zrtp_profile, zid, initiator, &rtp_session->zrtp_session)) {
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error! zRTP INIT Failed\n");
-			zrtp_session_down(rtp_session->zrtp_session);
-			rtp_session->zrtp_session = NULL;
-		}
-
-		zrtp_session_set_userdata(rtp_session->zrtp_session, rtp_session);
-	
-		if (zrtp_status_ok != zrtp_stream_attach(rtp_session->zrtp_session, &rtp_session->zrtp_ctx)) {
-			abort();
-		}
-		zrtp_stream_set_userdata(rtp_session->zrtp_ctx, rtp_session);
-		
-		if (switch_true(switch_channel_get_variable(channel, "zrtp_enrollment"))) {
-			zrtp_stream_registration_start(rtp_session->zrtp_ctx, rtp_session->ssrc);
-		} else {
-			zrtp_stream_start(rtp_session->zrtp_ctx, rtp_session->ssrc);
+		if (switch_true(zrtp_enabled)) {
+			if (switch_channel_direction(channel) == SWITCH_CALL_DIRECTION_OUTBOUND) {
+				initiator = 1;
+			}
+			
+			rtp_session->zrtp_profile = switch_core_alloc(rtp_session->pool, sizeof(*rtp_session->zrtp_profile));
+			zrtp_profile_defaults(rtp_session->zrtp_profile, zrtp_global);
+			
+			rtp_session->zrtp_profile->allowclear = 0;
+			rtp_session->zrtp_profile->disclose_bit = 0;
+			rtp_session->zrtp_profile->cache_ttl = -1;
+			
+			if (zrtp_status_ok != zrtp_session_init(zrtp_global, rtp_session->zrtp_profile, zid, initiator, &rtp_session->zrtp_session)) {
+				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error! zRTP INIT Failed\n");
+				zrtp_session_down(rtp_session->zrtp_session);
+				rtp_session->zrtp_session = NULL;
+			}
+			
+			zrtp_session_set_userdata(rtp_session->zrtp_session, rtp_session);
+			
+			if (zrtp_status_ok != zrtp_stream_attach(rtp_session->zrtp_session, &rtp_session->zrtp_ctx)) {
+				abort();
+			}
+			zrtp_stream_set_userdata(rtp_session->zrtp_ctx, rtp_session);
+			
+			if (switch_true(switch_channel_get_variable(channel, "zrtp_enrollment"))) {
+				zrtp_stream_registration_start(rtp_session->zrtp_ctx, rtp_session->ssrc);
+			} else {
+				zrtp_stream_start(rtp_session->zrtp_ctx, rtp_session->ssrc);
+			}
 		}
 	}
 #endif	



More information about the Freeswitch-svn mailing list