Ticket #788: Updated pjsua_media_subsys_init() to perform SRTP library initialization.

git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2597 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjmedia/include/pjmedia/transport_srtp.h b/pjmedia/include/pjmedia/transport_srtp.h
index e0407f4..4ac99dc 100644
--- a/pjmedia/include/pjmedia/transport_srtp.h
+++ b/pjmedia/include/pjmedia/transport_srtp.h
@@ -195,6 +195,16 @@
 
 
 /**
+ * Initialize SRTP library. This function should be called before
+ * any SRTP functions, however calling #pjmedia_transport_srtp_create() 
+ * will also invoke this function. This function will also register SRTP
+ * library deinitialization to #pj_atexit(), so the deinitialization
+ * of SRTP library will be performed automatically by PJLIB destructor.
+ */
+PJ_DECL(pj_status_t) pjmedia_srtp_init_lib(void);
+
+
+/**
  * Initialize SRTP setting with its default values.
  *
  * @param opt	SRTP setting to be initialized.
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c
index d46d4fc..cd9fb73 100644
--- a/pjmedia/src/pjmedia/transport_srtp.c
+++ b/pjmedia/src/pjmedia/transport_srtp.c
@@ -263,12 +263,13 @@
 
 static void pjmedia_srtp_deinit_lib(void);
 
-static pj_status_t pjmedia_srtp_init_lib(void)
+PJ_DEF(pj_status_t) pjmedia_srtp_init_lib(void)
 {
     static pj_bool_t initialized = PJ_FALSE;
 
     if (initialized == PJ_FALSE) {
 	err_status_t err;
+
 	err = srtp_init();
 	if (err != err_status_ok) { 
 	    PJ_LOG(4, (THIS_FILE, "Failed to initialize libsrtp: %s", 
diff --git a/pjsip/src/pjsua-lib/pjsua_media.c b/pjsip/src/pjsua-lib/pjsua_media.c
index bd41186..5d81fb0 100644
--- a/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/pjsip/src/pjsua-lib/pjsua_media.c
@@ -279,6 +279,16 @@
 				      &pjsua_var.null_port);
     PJ_ASSERT_RETURN(status == PJ_SUCCESS, status);
 
+#if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0)
+    /* Initialize SRTP library. */
+    status = pjmedia_srtp_init_lib();
+    if (status != PJ_SUCCESS) {
+	pjsua_perror(THIS_FILE, "Error initializing SRTP library", 
+		     status);
+	return status;
+    }
+#endif
+
     /* Perform NAT detection */
     pjsua_detect_nat_type();