[Freeswitch-svn] [commit] r2312 - in freeswitch/branches/james: . libs/libdingaling/src mac/xcode/FreeSWITCH.xcodeproj src src/include src/mod/applications/mod_bridgecall src/mod/applications/mod_conference src/mod/endpoints/mod_iax src/mod/event_handlers/mod_cdr w32/Setup

Freeswitch SVN james at freeswitch.org
Wed Aug 16 20:59:57 EDT 2006


Author: james
Date: Wed Aug 16 20:59:56 2006
New Revision: 2312

Modified:
   freeswitch/branches/james/   (props changed)
   freeswitch/branches/james/libs/libdingaling/src/libdingaling.c
   freeswitch/branches/james/mac/xcode/FreeSWITCH.xcodeproj/project.pbxproj
   freeswitch/branches/james/src/include/switch_ivr.h
   freeswitch/branches/james/src/include/switch_types.h
   freeswitch/branches/james/src/mod/applications/mod_bridgecall/mod_bridgecall.c
   freeswitch/branches/james/src/mod/applications/mod_conference/mod_conference.c
   freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.c
   freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.vcproj
   freeswitch/branches/james/src/mod/event_handlers/mod_cdr/basecdr.cpp
   freeswitch/branches/james/src/mod/event_handlers/mod_cdr/csvcdr.cpp
   freeswitch/branches/james/src/mod/event_handlers/mod_cdr/pddcdr.cpp
   freeswitch/branches/james/src/switch.c
   freeswitch/branches/james/src/switch_channel.c
   freeswitch/branches/james/src/switch_core.c
   freeswitch/branches/james/src/switch_event.c
   freeswitch/branches/james/src/switch_ivr.c
   freeswitch/branches/james/src/switch_log.c
   freeswitch/branches/james/w32/Setup/Setup.vdproj

Log:
Update to trunk.


Modified: freeswitch/branches/james/libs/libdingaling/src/libdingaling.c
==============================================================================
--- freeswitch/branches/james/libs/libdingaling/src/libdingaling.c	(original)
+++ freeswitch/branches/james/libs/libdingaling/src/libdingaling.c	Wed Aug 16 20:59:56 2006
@@ -592,7 +592,8 @@
 #define B64BUFFLEN 1024
 
 static int b64encode(unsigned char *in, uint32_t ilen, unsigned char *out, uint32_t olen) {
-	int x=0,y=0,bytes=0;
+	int y=0,bytes=0;
+	uint32_t x=0;
 	unsigned int b=0,l=0;
 
 	for(x=0;x<ilen;x++) {
@@ -667,7 +668,7 @@
 						iks_insert_attrib(x, "mechanism", "PLAIN");
 						iks_insert_attrib(x, "encoding", "UTF-8");
 						snprintf(s, sizeof(s), "%c%s%c%s", 0, handle->acc->user, 0, handle->password);
-						slen = strlen(handle->acc->user) + strlen(handle->password) + 2;
+						slen = (uint32_t)(strlen(handle->acc->user) + strlen(handle->password) + 2);
 						b64encode((unsigned char *)s, slen, (unsigned char *) base64, sizeof(base64));
 						iks_insert_cdata(x, base64, 0);
 						iks_send(handle->parser, x);

Modified: freeswitch/branches/james/mac/xcode/FreeSWITCH.xcodeproj/project.pbxproj
==============================================================================
--- freeswitch/branches/james/mac/xcode/FreeSWITCH.xcodeproj/project.pbxproj	(original)
+++ freeswitch/branches/james/mac/xcode/FreeSWITCH.xcodeproj/project.pbxproj	Wed Aug 16 20:59:56 2006
@@ -195,6 +195,30 @@
 		D34725610A76D91E001C8ED7 /* apr.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3DEC21D0A75CB06002001CF /* apr.framework */; };
 		D34725C40A76D954001C8ED7 /* mod_iax.c in Sources */ = {isa = PBXBuildFile; fileRef = D34725C30A76D954001C8ED7 /* mod_iax.c */; };
 		D34725CA0A76D9BF001C8ED7 /* iax.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D34725350A76D7B1001C8ED7 /* iax.framework */; };
+		D35834B20A8F8047004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B40A8F8052004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B50A8F8058004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B60A8F805D004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B70A8F8069004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B80A8F806E004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834B90A8F8072004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834BA0A8F807A004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834BB0A8F807F004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834BC0A8F8085004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834BE0A8F8094004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834BF0A8F8099004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C00A8F809F004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C10A8F80A3004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C20A8F80A9004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C30A8F80AF004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C40A8F80B3004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C50A8F80BB004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C60A8F80C1004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C70A8F80C9004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834C90A8F80D1004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834CA0A8F80D6004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834DD0A8F968C004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
+		D35834DE0A8F9699004459D4 /* pcre.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D36500F10A76BE9400C47A76 /* pcre.framework */; };
 		D36500860A76BE4700C47A76 /* mod_dialplan_xml.c in Sources */ = {isa = PBXBuildFile; fileRef = D36500850A76BE4700C47A76 /* mod_dialplan_xml.c */; };
 		D36500870A76BE5A00C47A76 /* apr.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3DEC21D0A75CB06002001CF /* apr.framework */; };
 		D36500880A76BE5A00C47A76 /* aprutil.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D3DEC6CF0A75D4E9002001CF /* aprutil.framework */; };
@@ -1171,6 +1195,13 @@
 			remoteGlobalIDString = D34725340A76D7B1001C8ED7;
 			remoteInfo = iax2;
 		};
+		D35834D60A8F9679004459D4 /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = D36500F00A76BE9400C47A76 /* pcre */;
+			remoteInfo = pcre;
+		};
 		D36501760A76C28200C47A76 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
@@ -2481,6 +2512,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C30A8F80AF004459D4 /* pcre.framework in Frameworks */,
 				D3152FB50A76F27000549119 /* apr.framework in Frameworks */,
 				D3152FB60A76F27000549119 /* aprutil.framework in Frameworks */,
 				D3152FB70A76F27000549119 /* libfreeswitch.framework in Frameworks */,
@@ -2498,6 +2530,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C20A8F80A9004459D4 /* pcre.framework in Frameworks */,
 				D34725CA0A76D9BF001C8ED7 /* iax.framework in Frameworks */,
 				D347255B0A76D91E001C8ED7 /* teletone.framework in Frameworks */,
 				D347255C0A76D91E001C8ED7 /* srtp.framework in Frameworks */,
@@ -2539,6 +2572,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834BE0A8F8094004459D4 /* pcre.framework in Frameworks */,
 				D36501F10A76C64200C47A76 /* apr.framework in Frameworks */,
 				D36501F20A76C64200C47A76 /* aprutil.framework in Frameworks */,
 				D36501F30A76C64200C47A76 /* libfreeswitch.framework in Frameworks */,
@@ -2555,6 +2589,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834BF0A8F8099004459D4 /* pcre.framework in Frameworks */,
 				D36501F80A76C64A00C47A76 /* apr.framework in Frameworks */,
 				D36501F90A76C64A00C47A76 /* aprutil.framework in Frameworks */,
 				D36501FA0A76C64A00C47A76 /* libfreeswitch.framework in Frameworks */,
@@ -2571,6 +2606,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C00A8F809F004459D4 /* pcre.framework in Frameworks */,
 				D36501FF0A76C65300C47A76 /* apr.framework in Frameworks */,
 				D36502000A76C65300C47A76 /* aprutil.framework in Frameworks */,
 				D36502010A76C65300C47A76 /* libfreeswitch.framework in Frameworks */,
@@ -2594,6 +2630,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C10A8F80A3004459D4 /* pcre.framework in Frameworks */,
 				D365025F0A76C91100C47A76 /* gsm.framework in Frameworks */,
 				D36502570A76C90700C47A76 /* apr.framework in Frameworks */,
 				D36502580A76C90700C47A76 /* aprutil.framework in Frameworks */,
@@ -2642,6 +2679,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834DD0A8F968C004459D4 /* pcre.framework in Frameworks */,
 				D30DE7670A7819B300C8AAD5 /* System.framework in Frameworks */,
 				D38DD5540A768CB100FEDB19 /* resample.framework in Frameworks */,
 				D38DD51F0A768B4700FEDB19 /* srtp.framework in Frameworks */,
@@ -2656,6 +2694,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834DE0A8F9699004459D4 /* pcre.framework in Frameworks */,
 				D38DD55C0A768CD600FEDB19 /* srtp.framework in Frameworks */,
 				D38DD55A0A768CCB00FEDB19 /* speakup.framework in Frameworks */,
 				D38DD5590A768CC700FEDB19 /* resample.framework in Frameworks */,
@@ -2671,6 +2710,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C40A8F80B3004459D4 /* pcre.framework in Frameworks */,
 				D3B4072E0A76EED9000AF6D4 /* speex.framework in Frameworks */,
 				D3B406CA0A76EED0000AF6D4 /* apr.framework in Frameworks */,
 				D3B406CB0A76EED0000AF6D4 /* aprutil.framework in Frameworks */,
@@ -2688,6 +2728,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B20A8F8047004459D4 /* pcre.framework in Frameworks */,
 				D3BC32480A769B9C00DE971E /* teletone.framework in Frameworks */,
 				D3BC32460A769B9100DE971E /* resample.framework in Frameworks */,
 				D3BC32450A769B8C00DE971E /* srtp.framework in Frameworks */,
@@ -2704,6 +2745,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B40A8F8052004459D4 /* pcre.framework in Frameworks */,
 				D3BC326A0A769D7700DE971E /* teletone.framework in Frameworks */,
 				D3BC326B0A769D7700DE971E /* resample.framework in Frameworks */,
 				D3BC326C0A769D7700DE971E /* srtp.framework in Frameworks */,
@@ -2722,6 +2764,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B50A8F8058004459D4 /* pcre.framework in Frameworks */,
 				D3BC32850A769E2700DE971E /* teletone.framework in Frameworks */,
 				D3BC32860A769E2700DE971E /* resample.framework in Frameworks */,
 				D3BC32870A769E2700DE971E /* srtp.framework in Frameworks */,
@@ -2754,6 +2797,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B60A8F805D004459D4 /* pcre.framework in Frameworks */,
 				D3BC32ED0A76A75B00DE971E /* teletone.framework in Frameworks */,
 				D3BC32EE0A76A75B00DE971E /* resample.framework in Frameworks */,
 				D3BC32EF0A76A75B00DE971E /* srtp.framework in Frameworks */,
@@ -2770,6 +2814,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B70A8F8069004459D4 /* pcre.framework in Frameworks */,
 				D3BC33000A76A7EB00DE971E /* teletone.framework in Frameworks */,
 				D3BC33010A76A7EB00DE971E /* resample.framework in Frameworks */,
 				D3BC33020A76A7EB00DE971E /* srtp.framework in Frameworks */,
@@ -2786,6 +2831,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B90A8F8072004459D4 /* pcre.framework in Frameworks */,
 				D3BC33130A76A86A00DE971E /* apr.framework in Frameworks */,
 				D3BC33140A76A86A00DE971E /* aprutil.framework in Frameworks */,
 				D3BC33150A76A86A00DE971E /* libfreeswitch.framework in Frameworks */,
@@ -2802,6 +2848,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834B80A8F806E004459D4 /* pcre.framework in Frameworks */,
 				D3BC332A0A76A8BC00DE971E /* apr.framework in Frameworks */,
 				D3BC332B0A76A8BC00DE971E /* aprutil.framework in Frameworks */,
 				D3BC332C0A76A8BC00DE971E /* libfreeswitch.framework in Frameworks */,
@@ -2818,6 +2865,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834BA0A8F807A004459D4 /* pcre.framework in Frameworks */,
 				D3BC33450A76AA0D00DE971E /* apr.framework in Frameworks */,
 				D3BC33460A76AA0D00DE971E /* aprutil.framework in Frameworks */,
 				D3BC33470A76AA0D00DE971E /* libfreeswitch.framework in Frameworks */,
@@ -2842,6 +2890,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834BB0A8F807F004459D4 /* pcre.framework in Frameworks */,
 				D3BC34DC0A76B05C00DE971E /* sndfile.framework in Frameworks */,
 				D3BC34D40A76B04600DE971E /* apr.framework in Frameworks */,
 				D3BC34D50A76B04600DE971E /* aprutil.framework in Frameworks */,
@@ -2859,6 +2908,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834BC0A8F8085004459D4 /* pcre.framework in Frameworks */,
 				D3BC34ED0A76B17800DE971E /* apr.framework in Frameworks */,
 				D3BC34EE0A76B17800DE971E /* aprutil.framework in Frameworks */,
 				D3BC34EF0A76B17800DE971E /* libfreeswitch.framework in Frameworks */,
@@ -2893,6 +2943,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C60A8F80C1004459D4 /* pcre.framework in Frameworks */,
 				D3E66A800A77E63C00D04E25 /* apr.framework in Frameworks */,
 				D3E66A810A77E63C00D04E25 /* aprutil.framework in Frameworks */,
 				D3E66A820A77E63C00D04E25 /* libfreeswitch.framework in Frameworks */,
@@ -2909,6 +2960,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C70A8F80C9004459D4 /* pcre.framework in Frameworks */,
 				D3E66B190A77E7F400D04E25 /* apr.framework in Frameworks */,
 				D3E66B1A0A77E7F400D04E25 /* aprutil.framework in Frameworks */,
 				D3E66B1B0A77E7F400D04E25 /* libfreeswitch.framework in Frameworks */,
@@ -2925,6 +2977,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C90A8F80D1004459D4 /* pcre.framework in Frameworks */,
 				D3E66B200A77E7FC00D04E25 /* apr.framework in Frameworks */,
 				D3E66B210A77E7FC00D04E25 /* aprutil.framework in Frameworks */,
 				D3E66B220A77E7FC00D04E25 /* libfreeswitch.framework in Frameworks */,
@@ -2941,6 +2994,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834CA0A8F80D6004459D4 /* pcre.framework in Frameworks */,
 				D3E66B270A77E80400D04E25 /* apr.framework in Frameworks */,
 				D3E66B280A77E80400D04E25 /* aprutil.framework in Frameworks */,
 				D3E66B290A77E80400D04E25 /* libfreeswitch.framework in Frameworks */,
@@ -2981,6 +3035,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				D35834C50A8F80BB004459D4 /* pcre.framework in Frameworks */,
 				D3AA5D290A77D54A008F105E /* exosip2.framework in Frameworks */,
 				D3AA5D2A0A77D54A008F105E /* osip2.framework in Frameworks */,
 				D3AA5D2B0A77D54A008F105E /* osipparser2.framework in Frameworks */,
@@ -5739,6 +5794,7 @@
 			buildRules = (
 			);
 			dependencies = (
+				D35834D70A8F9679004459D4 /* PBXTargetDependency */,
 				D36501BF0A76C40000C47A76 /* PBXTargetDependency */,
 				D36501D50A76C54300C47A76 /* PBXTargetDependency */,
 				D36501BD0A76C3FB00C47A76 /* PBXTargetDependency */,
@@ -7368,6 +7424,11 @@
 			isa = PBXTargetDependency;
 			target = D34725340A76D7B1001C8ED7 /* iax */;
 			targetProxy = D34725570A76D904001C8ED7 /* PBXContainerItemProxy */;
+		};
+		D35834D70A8F9679004459D4 /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = D36500F00A76BE9400C47A76 /* pcre */;
+			targetProxy = D35834D60A8F9679004459D4 /* PBXContainerItemProxy */;
 		};
 		D36501770A76C28200C47A76 /* PBXTargetDependency */ = {
 			isa = PBXTargetDependency;

Modified: freeswitch/branches/james/src/include/switch_ivr.h
==============================================================================
--- freeswitch/branches/james/src/include/switch_ivr.h	(original)
+++ freeswitch/branches/james/src/include/switch_ivr.h	Wed Aug 16 20:59:56 2006
@@ -164,6 +164,22 @@
 													  void *buf,
 													  unsigned int buflen);
 
+/*!
+  \brief Make an outgoing call
+  \param session originating session
+  \param bleg B leg session
+  \param bridgeto the desired remote callstring
+  \param table optional state handler table to install on the channel
+  \param cid_name_override override the caller id name
+  \param cid_num_override override the caller id number
+  \return SWITCH_STATUS_SUCCESS if bleg is a running session.
+*/
+SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *session,
+													 switch_core_session_t **bleg,
+													 char *bridgeto,
+													 const switch_state_handler_table_t *table,
+													 char *cid_name_override,
+													 char *cid_num_override);
 
 /*!
   \brief Bridge Audio from one session to another

Modified: freeswitch/branches/james/src/include/switch_types.h
==============================================================================
--- freeswitch/branches/james/src/include/switch_types.h	(original)
+++ freeswitch/branches/james/src/include/switch_types.h	Wed Aug 16 20:59:56 2006
@@ -86,7 +86,7 @@
 typedef struct switch_directories switch_directories;
 SWITCH_DECLARE_DATA extern switch_directories SWITCH_GLOBAL_dirs;
 
-#define SWITCH_THREAD_STACKSIZE 512 * 1024
+#define SWITCH_THREAD_STACKSIZE 384 * 1024
 #define SWITCH_RECCOMMENDED_BUFFER_SIZE 2048
 #define SWITCH_MAX_CODECS 30
 #define SWITCH_MAX_STATE_HANDLERS 30

Modified: freeswitch/branches/james/src/mod/applications/mod_bridgecall/mod_bridgecall.c
==============================================================================
--- freeswitch/branches/james/src/mod/applications/mod_bridgecall/mod_bridgecall.c	(original)
+++ freeswitch/branches/james/src/mod/applications/mod_bridgecall/mod_bridgecall.c	Wed Aug 16 20:59:56 2006
@@ -40,42 +40,17 @@
 {
 	switch_channel_t *caller_channel;
 	switch_core_session_t *peer_session;
-	switch_caller_profile_t *caller_profile, *caller_caller_profile;
-	char chan_type[128] = { '\0' }, *chan_data;
-	unsigned int timelimit = 60;			/* probably a useful option to pass in when there's time */
+	unsigned int timelimit = 60; /* probably a useful option to pass in when there's time */
+
 	caller_channel = switch_core_session_get_channel(session);
 	assert(caller_channel != NULL);
 
-
-	strncpy(chan_type, data, sizeof(chan_type));
-
-	if ((chan_data = strchr(chan_type, '/')) != 0) {
-		*chan_data = '\0';
-		chan_data++;
-	}
-
-	caller_caller_profile = switch_channel_get_caller_profile(caller_channel);
-	caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
-											   caller_caller_profile->username,
-											   caller_caller_profile->dialplan,
-											   caller_caller_profile->caller_id_name,
-											   caller_caller_profile->caller_id_number,
-											   caller_caller_profile->network_addr, 
-											   NULL, 
-											   NULL, 
-											   caller_caller_profile->rdnis,
-											   caller_caller_profile->source,
-											   caller_caller_profile->context,
-											   chan_data);
-
-
-
-	if (switch_core_session_outgoing_channel(session, chan_type, caller_profile, &peer_session, NULL) !=
-		SWITCH_STATUS_SUCCESS) {
+	if (switch_ivr_originate(session, &peer_session, data, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
 		switch_channel_hangup(caller_channel, SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL);
 		return;
 	} else {
+		/* peer channel is read locked now the bridge func will unlock it for us */
 		switch_ivr_multi_threaded_bridge(session, peer_session, timelimit, NULL, NULL, NULL);
 	}
 }

Modified: freeswitch/branches/james/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/branches/james/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/branches/james/src/mod/applications/mod_conference/mod_conference.c	Wed Aug 16 20:59:56 2006
@@ -53,6 +53,8 @@
 	switch_mutex_t *id_mutex;
 	switch_mutex_t *hash_mutex;
 	uint32_t id_pool;
+	int32_t running;
+	uint32_t threads;
 } globals;
 
 struct conference_member;
@@ -451,7 +453,9 @@
 		return NULL;
 	}
 
-	while(!switch_test_flag(conference, CFLAG_DESTRUCT)) {
+	globals.threads++;
+
+	while(globals.running && !switch_test_flag(conference, CFLAG_DESTRUCT)) {
 		uint8_t file_frame[CONF_BUFFER_SIZE] = {0};
 		switch_size_t file_sample_len = samples;
 		switch_size_t file_data_len = samples * 2;
@@ -654,7 +658,8 @@
 			switch_core_destroy_memory_pool(&pool);
 		}
 	}
-	
+
+	globals.threads--;	
 	return NULL;
 }
 
@@ -1969,148 +1974,32 @@
 static switch_status_t conference_outcall(conference_obj_t *conference, switch_core_session_t *session, char *bridgeto, char *cid_name, char *cid_num)
 {
 	switch_core_session_t *peer_session;
-	switch_caller_profile_t *caller_profile, *caller_caller_profile;
-	char *chan_type, *chan_data;
-	unsigned int timelimit = 60;
 	switch_channel_t *peer_channel;
-	time_t start;
-	switch_frame_t *read_frame = NULL;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	switch_channel_t *caller_channel = NULL;
 
-	chan_type = strdup(bridgeto);
-		
-	if ((chan_data = strchr(chan_type, '/')) != 0) {
-		*chan_data = '\0';
-		chan_data++;
-	}
-	
-	if (session) {
-		caller_channel = switch_core_session_get_channel(session);
-		assert(caller_channel != NULL);
-		caller_caller_profile = switch_channel_get_caller_profile(caller_channel);
 
-		if (!cid_name) {
-			cid_name = caller_caller_profile->caller_id_name;
-		}
-
-		if (!cid_num) {
-			cid_num = caller_caller_profile->caller_id_number;
-		}
-		
-		caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
-												   caller_caller_profile->username,
-												   caller_caller_profile->dialplan,
-												   cid_name,
-												   cid_num,
-												   caller_caller_profile->network_addr, 
-												   NULL, 
-												   NULL, 
-												   caller_caller_profile->rdnis,
-												   caller_caller_profile->source,
-												   caller_caller_profile->context,
-												   chan_data);
-	} else {
-
-		if (!cid_name) {
-			cid_name = conference->caller_id_name;
-		}
-
-		if (!cid_num) {
-			cid_num = conference->caller_id_number;
-		}
-
-		caller_profile = switch_caller_profile_new(conference->pool,
-												   NULL,
-												   NULL,
-												   cid_name,
-												   cid_num,
-												   NULL,
-												   NULL, 
-												   NULL, 
-												   NULL,
-												   (char *) global_app_name,
-												   NULL,
-												   chan_data);
-	}
-
-
-
-	if (switch_core_session_outgoing_channel(session, chan_type, caller_profile, &peer_session, NULL) !=
-		SWITCH_STATUS_SUCCESS) {
+	if (switch_ivr_originate(session, &peer_session, bridgeto, &audio_bridge_peer_state_handlers, cid_name, cid_num) != SWITCH_STATUS_SUCCESS) {
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
-		if (caller_channel) {
+		if (session) {
+			caller_channel = switch_core_session_get_channel(session);
 			switch_channel_hangup(caller_channel, SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL);
 		}
-		status = SWITCH_STATUS_FALSE;
 		goto done;
 	} 
 
+
+	switch_core_session_rwunlock(peer_session);
 	peer_channel = switch_core_session_get_channel(peer_session);
 	assert(peer_channel != NULL);
-		
-	switch_channel_add_state_handler(peer_channel, &audio_bridge_peer_state_handlers);
-
-	if (switch_core_session_runing(peer_session)) {
-		switch_channel_set_state(peer_channel, CS_RING);
-	} else {
-		switch_core_session_thread_launch(peer_session);
-	}
-
-	time(&start);
-
-	for (;;) {
-		int state = switch_channel_get_state(peer_channel);
-		if (state >= CS_RING) {
-			break;
-		}
-		
-		if (caller_channel && !switch_channel_ready(caller_channel)) {
-			break;
-		}
-		
-		if ((time(NULL) - start) > (time_t)timelimit) {
-			break;
-		}
-		switch_yield(1000);
-	}
-
-	if (caller_channel) {
-		switch_channel_pre_answer(caller_channel);
-	}
-
-	while ((!caller_channel || switch_channel_ready(caller_channel)) &&
-		   !switch_channel_test_flag(peer_channel, CF_ANSWERED) &&
-		   !switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA) &&
-		   ((time(NULL) - start) < (time_t)timelimit)) {
-		
-		/* read from the channel while we wait if the audio is up on it */
-		if (session && (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
-			switch_status_t status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
-			
-			if (!SWITCH_READ_ACCEPTABLE(status)) {
-				break;
-			}
-			if (read_frame) {
-				if (switch_core_session_write_frame(session, read_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
-					break;
-				}
-			}
-
-		} else {
-			switch_yield(1000);
-		}
-
-	}
-
+	
 	if (caller_channel && switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
 		switch_channel_answer(caller_channel);
 	}
 
 	if (switch_channel_test_flag(peer_channel, CF_ANSWERED) || switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA)) {
 		switch_caller_extension_t *extension = NULL;
-		if ((extension = switch_caller_extension_new(peer_session, caller_profile->destination_number,
-													 caller_profile->destination_number)) == 0) {
+		if ((extension = switch_caller_extension_new(peer_session, conference->name, conference->name)) == 0) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "memory error!\n");
 			status = SWITCH_STATUS_MEMERR;
 			goto done;
@@ -2127,7 +2016,6 @@
 	}
 
  done:
-	free(chan_type);
 	return status;
 }
 
@@ -2171,6 +2059,7 @@
 	switch_xml_t cxml = NULL, cfg = NULL, profile = NULL, profiles = NULL;
 	char *flags_str;
 	member_flag_t uflags = MFLAG_CAN_SPEAK | MFLAG_CAN_HEAR;
+	switch_core_session_message_t msg = {0};
 	
 	channel = switch_core_session_get_channel(session);
     assert(channel != NULL);
@@ -2404,9 +2293,19 @@
 	}
 	switch_set_flag_locked((&member), MFLAG_RUNNING | uflags);
 
+	msg.from = __FILE__;
+
+	/* Tell the channel we are going to be in a bridge */
+	msg.message_id = SWITCH_MESSAGE_INDICATE_BRIDGE;
+	switch_core_session_receive_message(session, &msg);
+
 	/* Run the confernece loop */
 	conference_loop(&member);
 
+	/* Tell the channel we are no longer going to be in a bridge */
+	msg.message_id = SWITCH_MESSAGE_INDICATE_UNBRIDGE;
+	switch_core_session_receive_message(session, &msg);
+
 	/* Remove the caller from the conference */
 	conference_del_member(member.last_conference, &member);
 
@@ -2897,6 +2796,22 @@
 	/* Release the config registry handle */
 	switch_xml_free(cxml);
 
+	globals.running = 1;
 	/* indicate that the module should continue to be loaded */
 	return status;
+}
+
+
+SWITCH_MOD_DECLARE(switch_status_t) switch_module_shutdown(void)
+{
+
+
+	if (globals.running) {
+		globals.running = 0;
+		while (globals.threads) {
+			switch_yield(100000);
+		}
+	}
+
+	return SWITCH_STATUS_SUCCESS;
 }

Modified: freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.c
==============================================================================
--- freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.c	(original)
+++ freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.c	Wed Aug 16 20:59:56 2006
@@ -934,9 +934,9 @@
 
 		/* Wait for an event. */
 		if ((iaxevent = iax_get_event(0)) == NULL) {
-			switch_yield(1000);
+			switch_yield(100);
 			continue;
-		} else if (iaxevent) {
+		} else {
 			struct private_object *tech_pvt = iax_get_private(iaxevent->session);
 
 			if (globals.debug && iaxevent->etype != IAX_EVENT_VOICE) {

Modified: freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.vcproj
==============================================================================
--- freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.vcproj	(original)
+++ freeswitch/branches/james/src/mod/endpoints/mod_iax/mod_iax.vcproj	Wed Aug 16 20:59:56 2006
@@ -52,6 +52,7 @@
 				WarnAsError="true"
 				Detect64BitPortabilityProblems="true"
 				DebugInformationFormat="4"
+				DisableSpecificWarnings="4201"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"
@@ -133,6 +134,7 @@
 				WarnAsError="true"
 				Detect64BitPortabilityProblems="true"
 				DebugInformationFormat="3"
+				DisableSpecificWarnings="4201"
 			/>
 			<Tool
 				Name="VCManagedResourceCompilerTool"

Modified: freeswitch/branches/james/src/mod/event_handlers/mod_cdr/basecdr.cpp
==============================================================================
--- freeswitch/branches/james/src/mod/event_handlers/mod_cdr/basecdr.cpp	(original)
+++ freeswitch/branches/james/src/mod/event_handlers/mod_cdr/basecdr.cpp	Wed Aug 16 20:59:56 2006
@@ -82,49 +82,55 @@
 		callanswerdate = newchannel->timetable->answered;
 		callenddate = newchannel->timetable->hungup;
 	
-		if(newchannel->callerprofile->caller_id_name != 0)
-		{
-			strncpy(clid,newchannel->callerprofile->caller_id_name,strlen(newchannel->callerprofile->caller_id_name));
-			strncat(clid," <",2);
-			if(newchannel->callerprofile->caller_id_number != 0 )
-				strncat(clid,newchannel->callerprofile->caller_id_number,strlen(clid)+strlen(newchannel->callerprofile->caller_id_number));
-			strncat(clid,">",1);
-		}
+		if (newchannel->callerprofile) {
+			if(newchannel->callerprofile->caller_id_name != 0)
+			{
+				strncpy(clid,newchannel->callerprofile->caller_id_name,strlen(newchannel->callerprofile->caller_id_name));
+				strncat(clid," <",2);
+				if(newchannel->callerprofile->caller_id_number != 0 )
+					strncat(clid,newchannel->callerprofile->caller_id_number,strlen(clid)+strlen(newchannel->callerprofile->caller_id_number));
+				strncat(clid,">",1);
+			}
+			
+			// Get the ANI information if it's set
+			if(newchannel->callerprofile->ani != 0)
+				strncpy(ani,newchannel->callerprofile->ani,strlen(newchannel->callerprofile->ani));
+			if(newchannel->callerprofile->ani2 != 0)
+				strncpy(ani2,newchannel->callerprofile->ani2,strlen(newchannel->callerprofile->ani2));
 		
-		// Get the ANI information if it's set
-		if(newchannel->callerprofile->ani != 0)
-			strncpy(ani,newchannel->callerprofile->ani,strlen(newchannel->callerprofile->ani));
-		if(newchannel->callerprofile->ani2 != 0)
-			strncpy(ani2,newchannel->callerprofile->ani2,strlen(newchannel->callerprofile->ani2));
-	
-		if(newchannel->callerprofile->dialplan != 0)
-			strncpy(dialplan,newchannel->callerprofile->dialplan,strlen(newchannel->callerprofile->dialplan));
-	
-		if(newchannel->callerprofile->network_addr != 0)
-			strncpy(network_addr,newchannel->callerprofile->network_addr,strlen(newchannel->callerprofile->network_addr));
-				
+			if(newchannel->callerprofile->dialplan != 0)
+				strncpy(dialplan,newchannel->callerprofile->dialplan,strlen(newchannel->callerprofile->dialplan));
+		
+			if(newchannel->callerprofile->network_addr != 0)
+				strncpy(network_addr,newchannel->callerprofile->network_addr,strlen(newchannel->callerprofile->network_addr));
+		}
+
 		originated = newchannel->originate;
 	
-		if(newchannel->originateprofile->uuid != 0)
+		if(newchannel->originateprofile && newchannel->originateprofile->uuid != 0)
 			strncpy(destuuid,newchannel->originateprofile->uuid,strlen(newchannel->originateprofile->uuid));
 	
 		// We still need to check if this is originated or not
 		if(originated == 0)
 		{
-			if(newchannel->callerprofile->destination_number != 0)
-				strncpy(src,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
-			if(newchannel->callerprofile->caller_id_number != 0)
-				strncpy(dst,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
-			if(newchannel->originateprofile->chan_name != 0)
+			if (newchannel->callerprofile) {
+				if(newchannel->callerprofile->destination_number != 0)
+					strncpy(src,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
+				if(newchannel->callerprofile->caller_id_number != 0)
+					strncpy(dst,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
+			}
+			if(newchannel->originateprofile && newchannel->originateprofile->chan_name != 0)
 				strncpy(dstchannel,newchannel->originateprofile->chan_name,strlen(newchannel->originateprofile->chan_name));
 		}
 		else
 		{
-			if(newchannel->callerprofile->caller_id_number != 0)
-				strncpy(src,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
-			if(newchannel->callerprofile->destination_number != 0)
-				strncpy(dst,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
-			if(newchannel->originateprofile->chan_name != 0)
+			if (newchannel->callerprofile) {
+				if(newchannel->callerprofile->caller_id_number != 0)
+					strncpy(src,newchannel->callerprofile->caller_id_number,strlen(newchannel->callerprofile->caller_id_number));
+				if(newchannel->callerprofile->destination_number != 0)
+					strncpy(dst,newchannel->callerprofile->destination_number,strlen(newchannel->callerprofile->destination_number));
+			}
+			if(newchannel->originateprofile && newchannel->originateprofile->chan_name != 0)
 				strncpy(dstchannel,newchannel->originateprofile->chan_name,strlen(newchannel->originateprofile->chan_name));
 		}
 		

Modified: freeswitch/branches/james/src/mod/event_handlers/mod_cdr/csvcdr.cpp
==============================================================================
--- freeswitch/branches/james/src/mod/event_handlers/mod_cdr/csvcdr.cpp	(original)
+++ freeswitch/branches/james/src/mod/event_handlers/mod_cdr/csvcdr.cpp	Wed Aug 16 20:59:56 2006
@@ -65,7 +65,7 @@
 		
 		// Format the times
 		apr_size_t retsizecsd, retsizecad, retsizeced;  //csd == callstartdate, cad == callanswerdate, ced == callenddate, ceff == callenddate_forfile
-		char format[] = "%F %T";
+		char format[] = "%Y-%m-%d-%H-%M-%S";
 		switch_strftime(formattedcallstartdate,&retsizecsd,sizeof(formattedcallstartdate),format,&tempcallstart);
 		switch_strftime(formattedcallanswerdate,&retsizecad,sizeof(formattedcallanswerdate),format,&tempcallanswer);
 		switch_strftime(formattedcallenddate,&retsizeced,sizeof(formattedcallenddate),format,&tempcallend);
@@ -193,7 +193,7 @@
 	switch_time_exp_lt(&now_converted,now);
 		
 	apr_size_t retsize;		
-	char format[] = "%F %T";
+	char format[] = "%Y-%m-%d-%H-%M-%S";
 	char formatteddate[100];
 	memset(formatteddate,0,100);
 	switch_strftime(formatteddate,&retsize,100,format,&now_converted);

Modified: freeswitch/branches/james/src/mod/event_handlers/mod_cdr/pddcdr.cpp
==============================================================================
--- freeswitch/branches/james/src/mod/event_handlers/mod_cdr/pddcdr.cpp	(original)
+++ freeswitch/branches/james/src/mod/event_handlers/mod_cdr/pddcdr.cpp	Wed Aug 16 20:59:56 2006
@@ -60,7 +60,7 @@
 		
 		// Format the times
 		size_t retsizecsd, retsizecad, retsizeced; //csd == callstartdate, cad == callanswerdate, ced == callenddate, ceff == callenddate_forfile
-		char format[] = "%F %T";
+		char format[] = "%Y-%m-%d-%H-%M-%S";
 		switch_strftime(formattedcallstartdate,&retsizecsd,sizeof(formattedcallstartdate),format,&tempcallstart);
 		switch_strftime(formattedcallanswerdate,&retsizecad,sizeof(formattedcallanswerdate),format,&tempcallanswer);
 		switch_strftime(formattedcallenddate,&retsizeced,sizeof(formattedcallenddate),format,&tempcallend);

Modified: freeswitch/branches/james/src/switch.c
==============================================================================
--- freeswitch/branches/james/src/switch.c	(original)
+++ freeswitch/branches/james/src/switch.c	Wed Aug 16 20:59:56 2006
@@ -222,8 +222,6 @@
 	switch_core_session_hupall();
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Clean up modules.\n");
 	switch_loadable_module_shutdown();
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Tearing down environment.\n");
-	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Exiting Now.\n");
 	switch_core_destroy();
 	return 0;
 }

Modified: freeswitch/branches/james/src/switch_channel.c
==============================================================================
--- freeswitch/branches/james/src/switch_channel.c	(original)
+++ freeswitch/branches/james/src/switch_channel.c	Wed Aug 16 20:59:56 2006
@@ -762,9 +762,14 @@
 SWITCH_DECLARE(int) switch_channel_add_state_handler(switch_channel_t *channel,
 													 const switch_state_handler_table_t *state_handler)
 {
-	int index;
+	int x, index;
 
 	assert(channel != NULL);
+	for (x = 0; x < SWITCH_MAX_STATE_HANDLERS; x++) {
+		if (channel->state_handlers[x] == state_handler) {
+			return x;
+		}
+	}
 	index = channel->state_handler_index++;
 
 	if (channel->state_handler_index >= SWITCH_MAX_STATE_HANDLERS) {

Modified: freeswitch/branches/james/src/switch_core.c
==============================================================================
--- freeswitch/branches/james/src/switch_core.c	(original)
+++ freeswitch/branches/james/src/switch_core.c	Wed Aug 16 20:59:56 2006
@@ -233,7 +233,15 @@
 
 SWITCH_DECLARE(switch_status_t) switch_core_session_read_lock(switch_core_session_t *session)
 {
-	return (switch_status_t) switch_thread_rwlock_tryrdlock(session->rwlock);
+	switch_status_t status = SWITCH_STATUS_SUCCESS;
+
+	if (!switch_channel_test_flag(session->channel, CF_LOCK_THREAD)) {
+		if ((status = (switch_status_t) switch_thread_rwlock_tryrdlock(session->rwlock)) == SWITCH_STATUS_SUCCESS) {
+			switch_channel_set_flag(session->channel, CF_LOCK_THREAD);
+		}
+	}
+	
+	return status;
 }
 
 SWITCH_DECLARE(void) switch_core_session_write_lock(switch_core_session_t *session)
@@ -243,6 +251,7 @@
 
 SWITCH_DECLARE(void) switch_core_session_rwunlock(switch_core_session_t *session)
 {
+	switch_channel_clear_flag(session->channel, CF_LOCK_THREAD);
 	switch_thread_rwlock_unlock(session->rwlock);
 }
 
@@ -283,7 +292,7 @@
 	switch_mutex_unlock(runtime.session_table_mutex);
 
 	while(runtime.session_count) {
-		switch_yield(1000);
+		switch_yield(10000);
 	}
 }
 
@@ -3118,26 +3127,27 @@
 
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Closing Event Engine.\n");
 	switch_event_shutdown();
-	switch_log_shutdown();
-
+	
 	switch_queue_push(runtime.sql_queue, NULL);
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Waiting for unfinished SQL transactions\n");
 	while (switch_queue_size(runtime.sql_queue) > 0) {
-		switch_yield(1000);
+		switch_yield(10000);
 	}
 	switch_core_db_close(runtime.db);
 	switch_core_db_close(runtime.event_db);
 	switch_xml_destroy();
 
-	if (runtime.memory_pool) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Unallocating memory pool.\n");
-		apr_pool_destroy(runtime.memory_pool);
-		apr_terminate();
-	}
+	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CONSOLE, "Finalizing Shutdown.\n");
+	switch_log_shutdown();
 	
 	if(runtime.console != stdout && runtime.console != stderr) {
 		fclose(runtime.console);
 		runtime.console = NULL;
+	}
+
+	if (runtime.memory_pool) {
+		apr_pool_destroy(runtime.memory_pool);
+		apr_terminate();
 	}
 
 	return SWITCH_STATUS_SUCCESS;

Modified: freeswitch/branches/james/src/switch_event.c
==============================================================================
--- freeswitch/branches/james/src/switch_event.c	(original)
+++ freeswitch/branches/james/src/switch_event.c	Wed Aug 16 20:59:56 2006
@@ -441,12 +441,14 @@
 	char data[2048];
 
 	va_list ap;
-	va_start(ap, fmt);
-	vsnprintf(data, sizeof(data), fmt, ap);
-	va_end(ap);
+	if (fmt) {
+		va_start(ap, fmt);
+		ret = vsnprintf(data, sizeof(data), fmt, ap);
+		va_end(ap);
+	}
 
 	if (ret == -1) {
-		return SWITCH_STATUS_MEMERR;
+		return SWITCH_STATUS_GENERR;
 	} else {
 		event->body = DUP(data);
 		return SWITCH_STATUS_SUCCESS;

Modified: freeswitch/branches/james/src/switch_ivr.c
==============================================================================
--- freeswitch/branches/james/src/switch_ivr.c	(original)
+++ freeswitch/branches/james/src/switch_ivr.c	Wed Aug 16 20:59:56 2006
@@ -439,7 +439,7 @@
 					  comment,
 					  date);
 
-
+	assert(read_codec != NULL);
 	interval = read_codec->implementation->microseconds_per_frame / 1000;
 
 
@@ -1141,53 +1141,97 @@
 };
 
 
-SWITCH_DECLARE(switch_status_t) switch_ivr_multi_threaded_bridge(switch_core_session_t *session, 
-															   switch_core_session_t *peer_session,
-															   unsigned int timelimit,
-															   switch_input_callback_function_t input_callback,
-															   void *session_data,
-															   void *peer_session_data)
-															   
 
-															   
+SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *session,
+													 switch_core_session_t **bleg,
+													 char *bridgeto,
+													 const switch_state_handler_table_t *table,
+													 char *cid_name_override,
+													 char *cid_num_override)
+										  
 {
-	switch_core_thread_session_t *this_audio_thread, *other_audio_thread;
-	switch_channel_t *caller_channel, *peer_channel;
+	switch_core_session_t *peer_session;
+	switch_caller_profile_t *caller_profile, *caller_caller_profile;
+	char *chan_type, *chan_data;
+	unsigned int timelimit = 60;
+	switch_channel_t *peer_channel;
 	time_t start;
-	int stream_id = 0;
 	switch_frame_t *read_frame = NULL;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
+	switch_channel_t *caller_channel = NULL;
+
+	*bleg = NULL;
+	chan_type = strdup(bridgeto);
+		
+	if ((chan_data = strchr(chan_type, '/')) != 0) {
+		*chan_data = '\0';
+		chan_data++;
+	}
 	
+	if (session) {
+		caller_channel = switch_core_session_get_channel(session);
+		assert(caller_channel != NULL);
+		caller_caller_profile = switch_channel_get_caller_profile(caller_channel);
 
-	caller_channel = switch_core_session_get_channel(session);
-	assert(caller_channel != NULL);
+		if (!cid_name_override) {
+			cid_name_override = caller_caller_profile->caller_id_name;
+		}
+		if (!cid_num_override) {
+			cid_num_override = caller_caller_profile->caller_id_number;
+		}
 
-	switch_channel_set_flag(caller_channel, CF_ORIGINATOR);
+		caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
+												   caller_caller_profile->username,
+												   caller_caller_profile->dialplan,
+												   cid_name_override,
+												   cid_num_override,
+												   caller_caller_profile->network_addr, 
+												   NULL,
+												   NULL, 
+												   caller_caller_profile->rdnis,
+												   caller_caller_profile->source,
+												   caller_caller_profile->context,
+												   chan_data);
+	} else {
+		if (!cid_name_override) {
+			cid_name_override = "FreeSWITCH";
+		}
+		if (!cid_num_override) {
+			cid_num_override = "0000000000";
+		}
+		caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
+												   NULL,
+												   NULL,
+												   cid_name_override,
+												   cid_num_override,
+												   NULL,
+												   NULL, 
+												   NULL, 
+												   NULL,
+												   __FILE__,
+												   NULL,
+												   chan_data);
+	}
 
-	peer_channel = switch_core_session_get_channel(peer_session);
-	assert(peer_channel != NULL);
 
-	other_audio_thread = switch_core_session_alloc(peer_session, sizeof(switch_core_thread_session_t));
-	this_audio_thread = switch_core_session_alloc(peer_session, sizeof(switch_core_thread_session_t));
 
-	other_audio_thread->objs[0] = session;
-	other_audio_thread->objs[1] = peer_session;
-	other_audio_thread->objs[2] = &stream_id;
-	other_audio_thread->objs[3] = (void *) input_callback;
-	other_audio_thread->objs[4] = session_data;
-	other_audio_thread->objs[5] = this_audio_thread;
-	other_audio_thread->running = 5;
+	if (switch_core_session_outgoing_channel(session, chan_type, caller_profile, &peer_session, NULL) != SWITCH_STATUS_SUCCESS) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
+		status = SWITCH_STATUS_FALSE;
+		goto done;
+	} 
 
-	this_audio_thread->objs[0] = peer_session;
-	this_audio_thread->objs[1] = session;
-	this_audio_thread->objs[2] = &stream_id;
-	this_audio_thread->objs[3] = (void *) input_callback;
-	this_audio_thread->objs[4] = peer_session_data;
-	this_audio_thread->objs[5] = other_audio_thread;
-	this_audio_thread->running = 2;
+	switch_core_session_read_lock(peer_session);
 
-	switch_channel_add_state_handler(peer_channel, &audio_bridge_peer_state_handlers);
+	peer_channel = switch_core_session_get_channel(peer_session);
+	assert(peer_channel != NULL);
+		
+	if (!table) {
+		table = &audio_bridge_peer_state_handlers;
+	}
 
+	switch_channel_add_state_handler(peer_channel, table);
+
 	if (switch_core_session_runing(peer_session)) {
 		switch_channel_set_state(peer_channel, CS_RING);
 	} else {
@@ -1202,7 +1246,7 @@
 			break;
 		}
 		
-		if (!switch_channel_ready(caller_channel)) {
+		if (caller_channel && !switch_channel_ready(caller_channel)) {
 			break;
 		}
 		
@@ -1212,24 +1256,23 @@
 		switch_yield(1000);
 	}
 
-	switch_channel_pre_answer(caller_channel);
-	
+	if (caller_channel) {
+		switch_channel_pre_answer(caller_channel);
+	}
 
-	while (switch_channel_ready(caller_channel) &&
-		   switch_channel_ready(peer_channel) &&
+	while ((!caller_channel || switch_channel_ready(caller_channel)) &&
 		   !switch_channel_test_flag(peer_channel, CF_ANSWERED) &&
 		   !switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA) &&
 		   ((time(NULL) - start) < (time_t)timelimit)) {
-		
+
 		/* read from the channel while we wait if the audio is up on it */
-		if (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
+		if (session && (switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
 			switch_status_t status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
 			
 			if (!SWITCH_READ_ACCEPTABLE(status)) {
 				break;
 			}
 			if (read_frame) {
-				//memset(read_frame->data, 0, read_frame->datalen);
 				if (switch_core_session_write_frame(session, read_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
 					break;
 				}
@@ -1238,8 +1281,71 @@
 		} else {
 			switch_yield(1000);
 		}
+		
+	}
 
+	if (caller_channel && switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
+		switch_channel_answer(caller_channel);
 	}
+
+	if (switch_channel_test_flag(peer_channel, CF_ANSWERED) || switch_channel_test_flag(peer_channel, CF_EARLY_MEDIA)) {
+		*bleg = peer_session;
+		status = SWITCH_STATUS_SUCCESS;
+	} else {
+		switch_channel_hangup(peer_channel, SWITCH_CAUSE_NO_ANSWER);
+		status = SWITCH_STATUS_FALSE;
+	}
+
+
+ done:
+	free(chan_type);
+	return status;
+}
+
+
+SWITCH_DECLARE(switch_status_t) switch_ivr_multi_threaded_bridge(switch_core_session_t *session, 
+															   switch_core_session_t *peer_session,
+															   unsigned int timelimit,
+															   switch_input_callback_function_t input_callback,
+															   void *session_data,
+															   void *peer_session_data)
+															   
+
+															   
+{
+	switch_core_thread_session_t *this_audio_thread, *other_audio_thread;
+	switch_channel_t *caller_channel, *peer_channel;
+	int stream_id = 0;
+	switch_status_t status = SWITCH_STATUS_SUCCESS;
+	
+	caller_channel = switch_core_session_get_channel(session);
+	assert(caller_channel != NULL);
+
+	switch_channel_set_flag(caller_channel, CF_ORIGINATOR);
+
+	peer_channel = switch_core_session_get_channel(peer_session);
+	assert(peer_channel != NULL);
+
+	other_audio_thread = switch_core_session_alloc(peer_session, sizeof(switch_core_thread_session_t));
+	this_audio_thread = switch_core_session_alloc(peer_session, sizeof(switch_core_thread_session_t));
+
+	other_audio_thread->objs[0] = session;
+	other_audio_thread->objs[1] = peer_session;
+	other_audio_thread->objs[2] = &stream_id;
+	other_audio_thread->objs[3] = (void *) input_callback;
+	other_audio_thread->objs[4] = session_data;
+	other_audio_thread->objs[5] = this_audio_thread;
+	other_audio_thread->running = 5;
+
+	this_audio_thread->objs[0] = peer_session;
+	this_audio_thread->objs[1] = session;
+	this_audio_thread->objs[2] = &stream_id;
+	this_audio_thread->objs[3] = (void *) input_callback;
+	this_audio_thread->objs[4] = peer_session_data;
+	this_audio_thread->objs[5] = other_audio_thread;
+	this_audio_thread->running = 2;
+
+	switch_channel_add_state_handler(peer_channel, &audio_bridge_peer_state_handlers);
 
 	if (switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
 		switch_channel_answer(caller_channel);

Modified: freeswitch/branches/james/src/switch_log.c
==============================================================================
--- freeswitch/branches/james/src/switch_log.c	(original)
+++ freeswitch/branches/james/src/switch_log.c	Wed Aug 16 20:59:56 2006
@@ -118,7 +118,7 @@
 	assert(obj == NULL || obj != NULL);
 	THREAD_RUNNING = 1;
 
-	for(;;) {
+	while(THREAD_RUNNING == 1) {
 		void *pop = NULL;
 		switch_log_node_t *node = NULL;
 		switch_log_binding_t *binding;
@@ -222,23 +222,23 @@
 					switch_event_fire(&event);
 				}
 		} else {
-			if (level == SWITCH_LOG_CONSOLE || !THREAD_RUNNING) {
+			if (level == SWITCH_LOG_CONSOLE || !LOG_QUEUE || !THREAD_RUNNING) {
 				fprintf(handle, data);
-			} 
-
-			if (level <= MAX_LEVEL) {
-				switch_log_node_t *node = malloc(sizeof(*node));
-				node->data = data;
-				node->file = strdup(filep);
-				node->func = strdup(func);
-				node->line = line;
-				node->level = level;
-				node->content = content;
-				node->timestamp = now;
-				switch_queue_push(LOG_QUEUE, node);
-			} else {
 				free(data);
-			}
+			} else if (level <= MAX_LEVEL) {
+				switch_log_node_t *node;
+
+				if ((node = malloc(sizeof(*node)))) {
+					node->data = data;
+					node->file = strdup(filep);
+					node->func = strdup(func);
+					node->line = line;
+					node->level = level;
+					node->content = content;
+					node->timestamp = now;
+					switch_queue_push(LOG_QUEUE, node);
+				}
+			} 
 		}
 	}
 
@@ -276,7 +276,11 @@
 
 SWITCH_DECLARE(switch_status_t) switch_log_shutdown(void)
 {
+	THREAD_RUNNING = -1;
 	switch_queue_push(LOG_QUEUE, NULL);
+	while (THREAD_RUNNING) {
+		switch_yield(1000);
+	}
 	return SWITCH_STATUS_SUCCESS;
 }
 

Modified: freeswitch/branches/james/w32/Setup/Setup.vdproj
==============================================================================
--- freeswitch/branches/james/w32/Setup/Setup.vdproj	(original)
+++ freeswitch/branches/james/w32/Setup/Setup.vdproj	Wed Aug 16 20:59:56 2006
@@ -87,26 +87,26 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_413E616556854689B457A68A06830A82"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_3F927D72DFA53DCF09A9D5F6EB00333D"
+        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+        "MsmKey" = "8:_413E616556854689B457A68A06830A82"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_53150E807A66E04034BACF0B4D81105A"
-        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
+        "MsmKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_53150E807A66E04034BACF0B4D81105A"
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+        "MsmKey" = "8:_4F16AA4E02A545BEA97556AC80AAB7C0"
+        "OwnerKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
@@ -147,132 +147,108 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_87768631363249B2B301143C193612F7"
-        "OwnerKey" = "8:_UNDEFINED"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
-        "OwnerKey" = "8:_EE46A936D4054F7286909355BF2AE5D7"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
-        "OwnerKey" = "8:_6753CE9F969E43A2A50ADEC0245F58A4"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
+        "MsmKey" = "8:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
         "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
-        "OwnerKey" = "8:_1F21CF104E90499E8F6BBD2136A52884"
+        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_9A293E8A356A4959BB6E541B7DC213CD"
+        "MsmKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_9B01D8B92FE15ACCAAD5F4F4C7681FD6"
-        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
+        "MsmKey" = "8:_87768631363249B2B301143C193612F7"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_A044EB8034E3CED402BF9A7DB7CC4550"
+        "MsmKey" = "8:_95DF1AC815283888345057940530D1C0"
         "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
+        "MsmKey" = "8:_9A293E8A356A4959BB6E541B7DC213CD"
+        "OwnerKey" = "8:_UNDEFINED"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
@@ -285,6 +261,12 @@
         }
         "Entry"
         {
+        "MsmKey" = "8:_A55F680EDBCDA3F18A46EF6CFC14A1D5"
+        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
         "MsmKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
@@ -303,20 +285,26 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_C105055EE271471A999CE7022E617EB7"
-        "OwnerKey" = "8:_UNDEFINED"
+        "MsmKey" = "8:_B4DB166A7F41DC9EF58E277B90CC68AB"
+        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"
+        "MsmKey" = "8:_B4DB166A7F41DC9EF58E277B90CC68AB"
+        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"
+        "MsmSig" = "8:_UNDEFINED"
+        }
+        "Entry"
+        {
+        "MsmKey" = "8:_C105055EE271471A999CE7022E617EB7"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
         {
-        "MsmKey" = "8:_CD7DAA5960C15D1769787DCAC200919C"
-        "OwnerKey" = "8:_E72980C058C646E0A7FAF423EB57EA6E"
+        "MsmKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"
+        "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
         }
         "Entry"
@@ -345,12 +333,6 @@
         }
         "Entry"
         {
-        "MsmKey" = "8:_DDC345A5D8F3411B871108AAD163F920"
-        "OwnerKey" = "8:_8FC4214A35474C90B4FFD16CA8F225D4"
-        "MsmSig" = "8:_UNDEFINED"
-        }
-        "Entry"
-        {
         "MsmKey" = "8:_E4BCD553B2054B0F8BC67428E1A11674"
         "OwnerKey" = "8:_UNDEFINED"
         "MsmSig" = "8:_UNDEFINED"
@@ -654,12 +636,12 @@
             "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_413E616556854689B457A68A06830A82"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3F927D72DFA53DCF09A9D5F6EB00333D"
             {
-            "SourcePath" = "8:..\\..\\src\\mod\\languages\\mod_perl\\freeswitch.pm"
-            "TargetName" = "8:freeswitch.pm"
+            "SourcePath" = "8:libaprutil-1.dll"
+            "TargetName" = "8:libaprutil-1.dll"
             "Tag" = "8:"
-            "Folder" = "8:_27A96C279A6A44E8A2FDF8D51CD86E29"
+            "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
             "Condition" = "8:"
             "Transitive" = "11:FALSE"
             "Vital" = "11:TRUE"
@@ -671,15 +653,15 @@
             "PackageAs" = "3:1"
             "Register" = "3:1"
             "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_53150E807A66E04034BACF0B4D81105A"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_413E616556854689B457A68A06830A82"
             {
-            "SourcePath" = "8:libapr-1.dll"
-            "TargetName" = "8:libapr-1.dll"
+            "SourcePath" = "8:..\\..\\src\\mod\\languages\\mod_perl\\freeswitch.pm"
+            "TargetName" = "8:freeswitch.pm"
             "Tag" = "8:"
-            "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
+            "Folder" = "8:_27A96C279A6A44E8A2FDF8D51CD86E29"
             "Condition" = "8:"
             "Transitive" = "11:FALSE"
             "Vital" = "11:TRUE"
@@ -691,7 +673,7 @@
             "PackageAs" = "3:1"
             "Register" = "3:1"
             "Exclude" = "11:FALSE"
-            "IsDependency" = "11:TRUE"
+            "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_83062AA0528B40A59202BC7668F7132A"
@@ -714,10 +696,10 @@
             "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9B01D8B92FE15ACCAAD5F4F4C7681FD6"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_95DF1AC815283888345057940530D1C0"
             {
-            "SourcePath" = "8:libaprutil-1.dll"
-            "TargetName" = "8:libaprutil-1.dll"
+            "SourcePath" = "8:FreeSwitch.dll"
+            "TargetName" = "8:FreeSwitch.dll"
             "Tag" = "8:"
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
             "Condition" = "8:"
@@ -734,10 +716,10 @@
             "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A044EB8034E3CED402BF9A7DB7CC4550"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A40E3F2045F44C60A8509FDFE47E6C45"
             {
-            "SourcePath" = "8:FreeSwitch.dll"
-            "TargetName" = "8:FreeSwitch.dll"
+            "SourcePath" = "8:..\\..\\COPYING"
+            "TargetName" = "8:COPYING"
             "Tag" = "8:"
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
             "Condition" = "8:"
@@ -750,14 +732,14 @@
             "SharedLegacy" = "11:FALSE"
             "PackageAs" = "3:1"
             "Register" = "3:1"
-            "Exclude" = "11:TRUE"
-            "IsDependency" = "11:TRUE"
+            "Exclude" = "11:FALSE"
+            "IsDependency" = "11:FALSE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A40E3F2045F44C60A8509FDFE47E6C45"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A55F680EDBCDA3F18A46EF6CFC14A1D5"
             {
-            "SourcePath" = "8:..\\..\\COPYING"
-            "TargetName" = "8:COPYING"
+            "SourcePath" = "8:sqlite.dll"
+            "TargetName" = "8:sqlite.dll"
             "Tag" = "8:"
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
             "Condition" = "8:"
@@ -771,13 +753,13 @@
             "PackageAs" = "3:1"
             "Register" = "3:1"
             "Exclude" = "11:FALSE"
-            "IsDependency" = "11:FALSE"
+            "IsDependency" = "11:TRUE"
             "IsolateTo" = "8:"
             }
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CD7DAA5960C15D1769787DCAC200919C"
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_B4DB166A7F41DC9EF58E277B90CC68AB"
             {
-            "SourcePath" = "8:sqlite.dll"
-            "TargetName" = "8:sqlite.dll"
+            "SourcePath" = "8:libapr-1.dll"
+            "TargetName" = "8:libapr-1.dll"
             "Tag" = "8:"
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"
             "Condition" = "8:"
@@ -1536,30 +1518,30 @@
         }
         "MergeModule"
         {
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_8FC4214A35474C90B4FFD16CA8F225D4"
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4F16AA4E02A545BEA97556AC80AAB7C0"
             {
             "UseDynamicProperties" = "11:TRUE"
             "IsDependency" = "11:TRUE"
-            "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86.msm"
+            "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86.msm"
                 "Properties"
                 {
                 }
             "LanguageId" = "3:0"
-            "Exclude" = "11:TRUE"
+            "Exclude" = "11:FALSE"
             "Folder" = "8:"
             "Feature" = "8:"
             "IsolateTo" = "8:"
             }
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_DDC345A5D8F3411B871108AAD163F920"
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_7BE928D7D9AD4CC3A3D85B1AA764FEB0"
             {
             "UseDynamicProperties" = "11:TRUE"
             "IsDependency" = "11:TRUE"
-            "SourcePath" = "8:policy_8_0_microsoft_vc80_debugcrt_x86.msm"
+            "SourcePath" = "8:Microsoft_VC80_DebugCRT_x86.msm"
                 "Properties"
                 {
                 }
             "LanguageId" = "3:0"
-            "Exclude" = "11:TRUE"
+            "Exclude" = "11:FALSE"
             "Folder" = "8:"
             "Feature" = "8:"
             "IsolateTo" = "8:"
@@ -2437,7 +2419,7 @@
             }
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_EE46A936D4054F7286909355BF2AE5D7"
             {
-            "SourcePath" = "8:..\\vsnet\\Debug\\perl\\fs_perl.dll"
+            "SourcePath" = "8:..\\vsnet\\debug\\perl\\fs_perl.dll"
             "TargetName" = "8:"
             "Tag" = "8:"
             "Folder" = "8:_27A96C279A6A44E8A2FDF8D51CD86E29"



More information about the Freeswitch-svn mailing list