[Freeswitch-branches] [commit] r2264 - freeswitch/branches/bennylp/src/mod/endpoints/mod_pjsip

Freeswitch SVN anthm at freeswitch.org
Fri Aug 11 16:10:29 EDT 2006


Author: anthm
Date: Fri Aug 11 16:10:29 2006
New Revision: 2264

Modified:
   freeswitch/branches/bennylp/src/mod/endpoints/mod_pjsip/mod_pjsip.c

Log:
add more config options to control debug and rtp-ip

Modified: freeswitch/branches/bennylp/src/mod/endpoints/mod_pjsip/mod_pjsip.c
==============================================================================
--- freeswitch/branches/bennylp/src/mod/endpoints/mod_pjsip/mod_pjsip.c	(original)
+++ freeswitch/branches/bennylp/src/mod/endpoints/mod_pjsip/mod_pjsip.c	Fri Aug 11 16:10:29 2006
@@ -74,10 +74,11 @@
 
 	pj_sockaddr_in sip_addr;
 	char *sip_ip;
+	char *rtp_ip;
 	int sip_port;
 
 	/* */
-	char name[128];
+	char *name;
 	char local_addr[128];
 	char *dialplan;
 	char *codec_string;
@@ -89,6 +90,7 @@
 
 	int flags;
 	switch_hash_t *call_hash;
+	switch_memory_pool_t *pool;
 };
 
 typedef enum {
@@ -1603,7 +1605,7 @@
 	media->desc.port_count = 1;
 	media->desc.transport = pj_str( "RTP/AVP" );
 
-	strncpy( tech_pvt->local_sdp_audio_addr, profile->local_addr, 
+	strncpy( tech_pvt->local_sdp_audio_addr, profile->rtp_ip, 
 			 sizeof(tech_pvt->local_sdp_audio_addr) );
 
 	/* codec rtpmap list */
@@ -1768,33 +1770,52 @@
 static switch_status_t config_pjsip( void )
 {
 	char *cfgname = MOD_PJSIP_CFG;
-	switch_xml_t config, xml, xmlprofile, param;
+	switch_xml_t config, xml, xmlprofile, settings, param;
 	switch_status_t result = SWITCH_STATUS_SUCCESS;
 
+
 	if( !( xml = switch_xml_open_cfg( cfgname, &config, NULL ) )) {
                 switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Could not open config %s\n", cfgname );
                 return SWITCH_STATUS_TERM;
 	}
 
+
+	if ((settings = switch_xml_child( config, "settings" ))) {
+		for (param = switch_xml_child(settings, "param"); param; param = param->next) {
+            char *var = (char *) switch_xml_attr_soft(param, "name");
+            char *val = (char *) switch_xml_attr_soft(param, "value");
+			
+			if (!strcasecmp(var, "debug")) {
+				pj_log_set_level(atoi(val));
+			}
+		}
+	}
+
 	for( xmlprofile = switch_xml_child( config, "profile" ); xmlprofile; xmlprofile = xmlprofile->next )
 	{
 		struct pjsip_profile *profile;
 		char *profile_name = (char *) switch_xml_attr_soft( xmlprofile, "name" );
+		switch_memory_pool_t *pool = NULL;
 
 		if( !profile_name ) {
 			profile_name = "noname";
 		}
+		
+		if (switch_core_new_memory_pool(&pool) != SWITCH_STATUS_SUCCESS) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "OH OH no pool\n");
+			result = SWITCH_STATUS_TERM;
+			goto out;
+		}
 
-		if( !(profile = switch_core_alloc( module_pool, sizeof(struct pjsip_profile))) ) {
-	                switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, 
-									   "Failed to allocate new profile %s\n", profile_name );
-        	        result = SWITCH_STATUS_TERM;
+		if( !(profile = switch_core_alloc( pool, sizeof(struct pjsip_profile))) ) {
+			switch_log_printf( SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Failed to allocate new profile %s\n", profile_name );
+			result = SWITCH_STATUS_TERM;
 			goto out;
 		}
-		memset( profile, 0, sizeof( struct pjsip_profile ) );
+		
+		profile->pool = pool;
+		profile->name = switch_core_strdup(pool, profile_name);
 
-		switch_copy_string( profile->name, profile_name, sizeof( profile->name ) );
-
 		profile->sip_addr.sin_family = PJ_AF_INET;
 		profile->sip_addr.sin_port = pj_htons( DEFAULT_PORT );
 
@@ -1806,7 +1827,9 @@
 			if ( !strcmp( var, "max-calls" ) ) {
 				profile->max_calls = atoi( val );
 			}
-			else if ( !strcmp( var, "ip" ) ) {
+			else if ( !strcmp( var, "rtp-ip" ) ) {
+				profile->rtp_ip = switch_core_strdup(profile->pool, val);
+			} else if ( !strcmp( var, "ip" ) ) {
 				pj_str_t tmp;
 
 				if( !pj_inet_aton( pj_cstr( &tmp, val ), &profile->sip_addr.sin_addr ) ) {
@@ -2003,7 +2026,7 @@
 	}
 
 	pj_log_set_log_func(log_func);
-	pj_log_set_level(4);
+	pj_log_set_level(0);
 
 	/* next: pjlib_util */
 	status = pjlib_util_init();



More information about the Freeswitch-branches mailing list