More ticket #61: enabled SRTP on Symbian

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1979 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/build.symbian/bld.inf b/build.symbian/bld.inf
index 865462c..80645f6 100644
--- a/build.symbian/bld.inf
+++ b/build.symbian/bld.inf
@@ -17,6 +17,7 @@
 pjsip_simple.mmp
 pjsip_ua.mmp
 pjsua_lib.mmp
+libsrtp.mmp
 
 /* Codecs */
 libgsmcodec.mmp
diff --git a/build.symbian/libsrtp.mmp b/build.symbian/libsrtp.mmp
new file mode 100644
index 0000000..11384d2
--- /dev/null
+++ b/build.symbian/libsrtp.mmp
@@ -0,0 +1,59 @@
+TARGET		libsrtp.lib
+TARGETTYPE	lib
+
+MACRO		PJ_M_I386=1
+MACRO		PJ_SYMBIAN=1
+
+//
+// GCCE optimization setting
+//
+OPTION		GCCE -O2 -fno-unit-at-a-time
+
+//
+// Speex files
+//
+SOURCEPATH	..\third_party\srtp
+
+SOURCE crypto\ae_xfm\xfm.c
+SOURCE crypto\cipher\aes.c
+SOURCE crypto\cipher\aes_cbc.c
+SOURCE crypto\cipher\aes_icm.c
+SOURCE crypto\cipher\cipher.c
+SOURCE crypto\cipher\null_cipher.c
+SOURCE crypto\hash\auth.c
+SOURCE crypto\hash\hmac.c
+SOURCE crypto\hash\null_auth.c
+SOURCE crypto\hash\sha1.c
+SOURCE crypto\kernel\alloc.c
+SOURCE crypto\kernel\crypto_kernel.c
+//SOURCE crypto\kernel\err.c
+SOURCE crypto\kernel\key.c
+SOURCE crypto\math\datatypes.c
+SOURCE crypto\math\gf2_8.c
+//SOURCE crypto\math\math.c
+SOURCE crypto\math\stat.c
+SOURCE crypto\replay\rdb.c
+SOURCE crypto\replay\rdbx.c
+//SOURCE crypto\replay\ut_sim.c
+SOURCE crypto\rng\ctr_prng.c
+SOURCE crypto\rng\prng.c
+//SOURCE crypto\rng\rand_linux_kernel.c
+SOURCE crypto\rng\rand_source.c
+SOURCE pjlib\srtp_err.c
+SOURCE srtp\srtp.c
+SOURCE tables\aes_tables.c
+
+//SOURCEPATH	..\pjmedia\src\pjmedia
+
+//SOURCE transport_srtp.c
+
+//
+// Header files
+//
+SYSTEMINCLUDE	..\third_party\srtp\include
+SYSTEMINCLUDE	..\third_party\srtp\crypto\include
+SYSTEMINCLUDE	..\third_party\build\srtp
+SYSTEMINCLUDE	..\pjlib\include 
+
+SYSTEMINCLUDE	\epoc32\include 
+SYSTEMINCLUDE	\epoc32\include\libc
diff --git a/build.symbian/pjlib_util.mmp b/build.symbian/pjlib_util.mmp
index 9f8ed50..1270d9c 100644
--- a/build.symbian/pjlib_util.mmp
+++ b/build.symbian/pjlib_util.mmp
@@ -29,6 +29,7 @@
 //
 // PJLIB-UTIL files
 //
+SOURCE	base64.c
 SOURCE	crc32.c
 SOURCE	dns.c
 SOURCE	dns_dump.c
diff --git a/build.symbian/pjmedia.mmp b/build.symbian/pjmedia.mmp
index 6626647..60ec642 100644
--- a/build.symbian/pjmedia.mmp
+++ b/build.symbian/pjmedia.mmp
@@ -69,6 +69,7 @@
 SOURCE		tonegen.c
 SOURCE		transport_ice.c
 SOURCE		transport_udp.c
+SOURCE		transport_srtp.c
 SOURCE		wav_player.c
 SOURCE		wav_playlist.c
 SOURCE		wav_writer.c
@@ -92,6 +93,9 @@
 SYSTEMINCLUDE	..\pjlib\include 
 SYSTEMINCLUDE	..\pjlib-util\include 
 SYSTEMINCLUDE	..\pjnath\include 
+SYSTEMINCLUDE	..\third_party\srtp\include
+SYSTEMINCLUDE	..\third_party\srtp\crypto\include
+SYSTEMINCLUDE	..\third_party\build\srtp
 
 SYSTEMINCLUDE	\epoc32\include
 SYSTEMINCLUDE	\epoc32\include\libc
diff --git a/build.symbian/symbian_ua.mmp b/build.symbian/symbian_ua.mmp
index 1a9363f..e23d0d8 100644
--- a/build.symbian/symbian_ua.mmp
+++ b/build.symbian/symbian_ua.mmp
@@ -31,13 +31,13 @@
 	LIBRARY		pjsua_lib.lib pjsip_ua.lib

 	LIBRARY		pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib

 	LIBRARY		pjnath.lib pjlib_util.lib pjlib.lib

-	LIBRARY		symbian_audio.lib

-	LIBRARY		libgsmcodec.lib

+	LIBRARY		symbian_audio.lib libsrtp.lib

+	LIBRARY		libgsmcodec.lib libspeexcodec.lib

 #else

 	STATICLIBRARY	pjsua_lib.lib pjsip_ua.lib

 	STATICLIBRARY	pjsip_simple.lib pjsip.lib pjsdp.lib pjmedia.lib

 	STATICLIBRARY	pjnath.lib pjlib_util.lib pjlib.lib

-	STATICLIBRARY	symbian_audio.lib

+	STATICLIBRARY	symbian_audio.lib libsrtp.lib

 	STATICLIBRARY	libgsmcodec.lib libspeexcodec.lib

 #endif

 

diff --git a/pjlib/include/pj/config_site_sample.h b/pjlib/include/pj/config_site_sample.h
index 33699d8..086214f 100644
--- a/pjlib/include/pj/config_site_sample.h
+++ b/pjlib/include/pj/config_site_sample.h
@@ -45,7 +45,7 @@
 #   define PJ_MAXPATH			80
 
 	/* SRTP has not been ported to Symbian yet */
-#   define PJMEDIA_HAS_SRTP			0
+#   define PJMEDIA_HAS_SRTP			1
 
     /* Disable these */
 #   define PJMEDIA_RESAMPLE_IMP		PJMEDIA_RESAMPLE_NONE
diff --git a/pjsip-apps/src/symbian_ua/ua.cpp b/pjsip-apps/src/symbian_ua/ua.cpp
index 7910bff..34935a1 100644
--- a/pjsip-apps/src/symbian_ua/ua.cpp
+++ b/pjsip-apps/src/symbian_ua/ua.cpp
@@ -77,6 +77,10 @@
 //
 #define USE_ICE		1
 
+//
+// Use SRTP?
+//
+#define USE_SRTP 	PJSUA_DEFAULT_USE_SRTP
 
 //
 // Globals
@@ -289,6 +293,9 @@
     pjsua_config_default(&cfg);
     cfg.max_calls = 2;
     cfg.thread_cnt = 0; // Disable threading on Symbian
+    cfg.use_srtp = USE_SRTP;
+    cfg.srtp_secure_signaling = 0;
+    
     cfg.cb.on_incoming_call = &on_incoming_call;
     cfg.cb.on_call_media_state = &on_call_media_state;
     cfg.cb.on_call_state = &on_call_state;
diff --git a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
index ac29a6a..bd9864b 100644
--- a/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
+++ b/pjsip-apps/src/symbian_ua_gui/src/symbian_ua.cpp
@@ -26,6 +26,7 @@
 

 #define SIP_PORT	5060

 #define USE_ICE		0

+#define USE_SRTP	PJSUA_DEFAULT_USE_SRTP

 

 static RSocketServ aSocketServer;

 static RConnection aConn;

@@ -302,8 +303,8 @@
     pjsua_config_default(&cfg);

     cfg.max_calls = 2;

     cfg.thread_cnt = 0; // Disable threading on Symbian

-    //cfg.use_srtp = 0;

-    //cfg.srtp_secure_signaling = 0;

+    cfg.use_srtp = USE_SRTP;

+    cfg.srtp_secure_signaling = 0;

 

     cfg.cb.on_incoming_call = &on_incoming_call;

     cfg.cb.on_call_media_state = &on_call_media_state;