[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