]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
merge mod_bridgecall, mod_echo, mod_park, and mod_playback all into mod_dptools....
authorMichael Jerris <mike@jerris.com>
Wed, 13 Jun 2007 16:00:14 +0000 (16:00 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 13 Jun 2007 16:00:14 +0000 (16:00 +0000)
move some applications to use the new module interface macros.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5342 d0543943-73ff-0310-b7d9-9358b9ac24b2

18 files changed:
Freeswitch.sln
build/modules.conf.in
conf/modules.conf.xml
src/mod/applications/mod_bridgecall/mod_bridgecall.c [deleted file]
src/mod/applications/mod_bridgecall/mod_bridgecall.vcproj [deleted file]
src/mod/applications/mod_commands/mod_commands.c
src/mod/applications/mod_conference/mod_conference.c
src/mod/applications/mod_dptools/mod_dptools.c
src/mod/applications/mod_echo/mod_echo.c [deleted file]
src/mod/applications/mod_echo/mod_echo.vcproj [deleted file]
src/mod/applications/mod_enum/mod_enum.c
src/mod/applications/mod_esf/mod_esf.c
src/mod/applications/mod_park/mod_park.c [deleted file]
src/mod/applications/mod_park/mod_park.vcproj [deleted file]
src/mod/applications/mod_playback/mod_playback.c [deleted file]
src/mod/applications/mod_playback/mod_playback.vcproj [deleted file]
src/mod/applications/mod_rss/mod_rss.c
w32/Setup/Setup.vdproj

index 2ae5dcb25c64979f3b78f25cea29d2289dc8a3bb..79b7d1c4428f54354b80d19dd76bf09092d99d09 100644 (file)
@@ -44,12 +44,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\form
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bridgecall", "src\mod\applications\mod_bridgecall\mod_bridgecall.vcproj", "{E1794405-29D4-466D-9BE3-DD2344C2A663}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
-       EndProjectSection\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_test", "src\mod\event_handlers\mod_event_test\mod_event_test.vcproj", "{3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
@@ -68,12 +62,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iax", "src\mod\endpoint
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_playback", "src\mod\applications\mod_playback\mod_playback.vcproj", "{78100236-7CEA-4948-96CC-E8ED3160329C}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
-       EndProjectSection\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
@@ -128,12 +116,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ivrtest", "src\mod\applications\mod_ivrtest\mod_ivrtest.vcproj", "{419AA391-5F3F-4BFE-A869-9D154D62A792}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
-       EndProjectSection\r
-EndProject\r
 Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FreeSwitchSetup", "w32\Setup\Setup.vdproj", "{B17FFBE6-A942-4056-8346-B624FB5D995B}"\r
 EndProject\r
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Directories", "Directories", "{B8F5B47B-8568-46EB-B320-64C17D2A98BC}"\r
@@ -192,12 +174,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_perl", "src\mod\languag
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_echo", "src\mod\applications\mod_echo\mod_echo.vcproj", "{0E2C6395-13B9-46E5-9264-8859D346018D}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
-       EndProjectSection\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.vcproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {989BB874-7AF1-44CB-8E5C-CC8113D267E8}\r
@@ -367,12 +343,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g722", "src\mod\codecs\
                {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C} = {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C}\r
        EndProjectSection\r
 EndProject\r
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_park", "src\mod\applications\mod_park\mod_park.vcproj", "{2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}"\r
-       ProjectSection(ProjectDependencies) = postProject\r
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}\r
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}\r
-       EndProjectSection\r
-EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.vcproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}\r
@@ -584,6 +554,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Build System", "_Build Sys
                configure.in = configure.in\r
                Makefile.am = Makefile.am\r
                build\modmake.sh = build\modmake.sh\r
+               build\modules.conf.in = build\modules.conf.in\r
                libs\win32\util.vbs = libs\win32\util.vbs\r
        EndProjectSection\r
 EndProject\r
@@ -652,12 +623,6 @@ Global
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32\r
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32\r
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug|Win32.Build.0 = Debug|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Debug|x64.ActiveCfg = Debug|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Release|Win32.ActiveCfg = Release|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Release|Win32.Build.0 = Release|Win32\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663}.Release|x64.ActiveCfg = Release|Win32\r
                {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|Win32.Build.0 = Debug|Win32\r
                {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|x64.ActiveCfg = Debug|Win32\r
@@ -676,12 +641,6 @@ Global
                {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release|Win32.ActiveCfg = Release|Win32\r
                {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release|Win32.Build.0 = Release|Win32\r
                {3A5B9131-F20C-4A85-9447-6C1610941CEE}.Release|x64.ActiveCfg = Release|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Debug|Win32.Build.0 = Debug|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Debug|x64.ActiveCfg = Debug|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Release|Win32.ActiveCfg = Release|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Release|Win32.Build.0 = Release|Win32\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C}.Release|x64.ActiveCfg = Release|Win32\r
                {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32\r
                {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|Win32\r
@@ -722,12 +681,6 @@ Global
                {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.ActiveCfg = Release|Win32\r
                {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|Win32.Build.0 = Release|Win32\r
                {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release|x64.ActiveCfg = Release|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Debug|Win32.Build.0 = Debug|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Debug|x64.ActiveCfg = Debug|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Release|Win32.ActiveCfg = Release|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Release|Win32.Build.0 = Release|Win32\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792}.Release|x64.ActiveCfg = Release|Win32\r
                {B17FFBE6-A942-4056-8346-B624FB5D995B}.Debug|Win32.ActiveCfg = Debug\r
                {B17FFBE6-A942-4056-8346-B624FB5D995B}.Debug|x64.ActiveCfg = Debug with MySql\r
                {B17FFBE6-A942-4056-8346-B624FB5D995B}.Debug|x64.Build.0 = Debug with MySql\r
@@ -782,12 +735,6 @@ Global
                {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|Win32\r
                {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|Win32.ActiveCfg = Release|Win32\r
                {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release|x64.ActiveCfg = Release|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Debug|Win32.Build.0 = Debug|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Debug|x64.ActiveCfg = Debug|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Release|Win32.ActiveCfg = Release|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Release|Win32.Build.0 = Release|Win32\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D}.Release|x64.ActiveCfg = Release|Win32\r
                {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32\r
                {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|Win32\r
@@ -1016,12 +963,6 @@ Global
                {D42518CC-7475-454D-B392-0E132C07D761}.Release|Win32.ActiveCfg = Release|Win32\r
                {D42518CC-7475-454D-B392-0E132C07D761}.Release|Win32.Build.0 = Release|Win32\r
                {D42518CC-7475-454D-B392-0E132C07D761}.Release|x64.ActiveCfg = Release|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Debug|Win32.ActiveCfg = Debug|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Debug|Win32.Build.0 = Debug|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Debug|x64.ActiveCfg = Debug|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Release|Win32.ActiveCfg = Release|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Release|Win32.Build.0 = Release|Win32\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}.Release|x64.ActiveCfg = Release|Win32\r
                {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32\r
                {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|Win32\r
@@ -1166,15 +1107,10 @@ Global
                {3D1EED36-A510-4EDB-B4D9-4E0F4A5EC2A8} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
                {9254C4B0-6F60-42B6-BB3A-36D63FC001C7} = {A5A27244-AD24-46E5-B01B-840CD296C91D}\r
-               {78100236-7CEA-4948-96CC-E8ED3160329C} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
-               {E1794405-29D4-466D-9BE3-DD2344C2A663} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
-               {419AA391-5F3F-4BFE-A869-9D154D62A792} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
-               {0E2C6395-13B9-46E5-9264-8859D346018D} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {30A5B29C-983E-4580-9FD0-D647CCDCC7EB} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
-               {2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {3850D93A-5F24-4922-BC1C-74D08C37C256} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}\r
                {5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}\r
index 5062529a60d7d0725d665fed0682ad6cb60a7a9a..d7f3de961a8f88962ed3e03856c495707995a778 100644 (file)
@@ -1,17 +1,12 @@
 loggers/mod_console
 loggers/mod_syslog
-applications/mod_bridgecall
 applications/mod_commands
 applications/mod_conference
 applications/mod_dptools
-applications/mod_echo
 applications/mod_enum
 #applications/mod_ivrtest
-#applications/mod_park
 #applications/mod_soundtouch
-applications/mod_playback
 #applications/mod_rss
-#applications/mod_skel
 #asr_tts/mod_cepstral
 #codecs/mod_amr
 codecs/mod_g711
index 67b8e1f08b9d1f6c7e014c7a3e34573bb85a5c8d..e7e2cfcc0f74fd33eda18c931595cc53803ae8ce 100644 (file)
     <!-- <load module="mod_woomera"/> -->
 
     <!-- Applications -->
-    <load module="mod_bridgecall"/>
     <load module="mod_commands"/>
     <load module="mod_conference"/>
     <load module="mod_dptools"/>
-    <load module="mod_echo"/>
-    <!--<load module="mod_park"/>-->
-    <load module="mod_playback"/>
 
     <!-- Dialplan Interfaces -->
     <!-- <load module="mod_dialplan_directory"/> -->
diff --git a/src/mod/applications/mod_bridgecall/mod_bridgecall.c b/src/mod/applications/mod_bridgecall/mod_bridgecall.c
deleted file mode 100644 (file)
index 884bbb7..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/* 
- * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- * Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
- *
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- *
- * The Initial Developer of the Original Code is
- * Anthony Minessale II <anthmct@yahoo.com>
- * Portions created by the Initial Developer are Copyright (C)
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * 
- * Anthony Minessale II <anthmct@yahoo.com>
- *
- *
- * mod_bridgecall.c -- Channel Bridge Application Module
- *
- */
-#include <switch.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-static const char modname[] = "mod_bridgecall";
-
-static void audio_bridge_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *caller_channel;
-       switch_core_session_t *peer_session = NULL;
-       unsigned int timelimit = 60;
-       char *var;
-       uint8_t no_media_bridge = 0;
-       switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
-       uint8_t do_continue = 0;
-
-       if (switch_strlen_zero(data)) {
-               return;
-       }
-
-       caller_channel = switch_core_session_get_channel(session);
-       assert(caller_channel != NULL);
-
-       if ((var = switch_channel_get_variable(caller_channel, "call_timeout"))) {
-               timelimit = atoi(var);
-       }
-
-       if ((var = switch_channel_get_variable(caller_channel, "continue_on_fail"))) {
-               do_continue = switch_true(var);
-       }
-
-       if (switch_channel_test_flag(caller_channel, CF_BYPASS_MEDIA)
-               || ((var = switch_channel_get_variable(caller_channel, SWITCH_BYPASS_MEDIA_VARIABLE)) && switch_true(var))) {
-               if (!switch_channel_test_flag(caller_channel, CF_ANSWERED)
-                       && !switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
-                       switch_channel_set_flag(caller_channel, CF_BYPASS_MEDIA);
-               } else {
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already up, delaying point-to-point mode 'till both legs are up.\n");
-                       no_media_bridge = 1;
-               }
-       }
-
-       if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Originate Failed.  Cause: %s\n", switch_channel_cause2str(cause));
-               if (!do_continue && cause != SWITCH_CAUSE_NO_ANSWER) {
-                       /* All Causes besides NO_ANSWER terminate the originating session unless continue_on_fail is set.
-                          We will pass the fail cause on when we hangup. */
-                       switch_channel_hangup(caller_channel, cause);
-               }
-               /* Otherwise.. nobody answered.  Go back to the dialplan instructions in case there was more to do. */
-               return;
-       } else {
-               if (no_media_bridge) {
-                       switch_channel_t *peer_channel = switch_core_session_get_channel(peer_session);
-                       switch_frame_t *read_frame;
-                       /* SIP won't let us redir media until the call has been answered #$^#%& so we will proxy any early media until they do */
-                       while (switch_channel_ready(caller_channel) && switch_channel_ready(peer_channel)
-                                  && !switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
-                               switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, -1, 0);
-                               uint8_t bad = 1;
-
-                               if (SWITCH_READ_ACCEPTABLE(status)
-                                       && switch_core_session_write_frame(session, read_frame, -1, 0) == SWITCH_STATUS_SUCCESS) {
-                                       bad = 0;
-                               }
-                               if (bad) {
-                                       switch_channel_hangup(caller_channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-                                       switch_channel_hangup(peer_channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-                                       goto end;
-                               }
-                       }
-
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Redirecting media to point-to-point mode.\n");
-                       switch_ivr_nomedia(switch_core_session_get_uuid(session), SMF_FORCE);
-                       switch_ivr_nomedia(switch_core_session_get_uuid(peer_session), SMF_FORCE);
-                       switch_ivr_signal_bridge(session, peer_session);
-               } else {
-                       if (switch_channel_test_flag(caller_channel, CF_BYPASS_MEDIA)) {
-                               switch_ivr_signal_bridge(session, peer_session);
-                       } else {
-                               switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
-                       }
-               }
-       end:
-               if (peer_session) {
-                       switch_core_session_rwunlock(peer_session);
-               }
-       }
-}
-
-static const switch_application_interface_t bridge_application_interface = {
-       /*.interface_name */ "bridge",
-       /*.application_function */ audio_bridge_function,
-       /* long_desc */ "Bridge the audio between two sessions",
-       /* short_desc */ "Bridge Audio",
-       /* syntax */ "<channel_url>",
-       /* flags */ SAF_SUPPORT_NOMEDIA
-};
-
-static const switch_loadable_module_interface_t mod_bridgecall_module_interface = {
-       /*.module_name = */ modname,
-       /*.endpoint_interface = */ NULL,
-       /*.timer_interface = */ NULL,
-       /*.dialplan_interface = */ NULL,
-       /*.codec_interface = */ NULL,
-       /*.application_interface */ &bridge_application_interface
-};
-
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
-{
-
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &mod_bridgecall_module_interface;
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
- */
diff --git a/src/mod/applications/mod_bridgecall/mod_bridgecall.vcproj b/src/mod/applications/mod_bridgecall/mod_bridgecall.vcproj
deleted file mode 100644 (file)
index 71b1fae..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="8.00"\r
-       Name="mod_bridgecall"\r
-       ProjectGUID="{E1794405-29D4-466D-9BE3-DD2344C2A663}"\r
-       RootNamespace="mod_bridgecall"\r
-       Keyword="Win32Proj"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_bridgecall.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_bridgecall.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath=".\mod_bridgecall.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
index 892473f52bb360e7faa24216f2ff93d0ae18032d..4019fcbba9fadd0d53e3ed05784f6e208e8beeae 100644 (file)
@@ -36,8 +36,9 @@
 #include <switch.h>
 #include <switch_version.h>
 
+SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load);
+SWITCH_MODULE_DEFINITION(mod_commands, mod_commands_load, NULL, NULL);
 
-static const char modname[] = "mod_commands";
 static switch_api_interface_t ctl_api_interface;
 static switch_api_interface_t uuid_bridge_api_interface;
 static switch_api_interface_t session_record_api_interface;
@@ -1318,7 +1319,7 @@ static switch_api_interface_t originate_api_interface = {
        /*.next */ &kill_api_interface
 };
 
-static const switch_loadable_module_interface_t mod_commands_module_interface = {
+static const switch_loadable_module_interface_t commands_module_interface = {
        /*.module_name */ modname,
        /*.endpoint_interface */ NULL,
        /*.timer_interface */ NULL,
@@ -1328,10 +1329,10 @@ static const switch_loadable_module_interface_t mod_commands_module_interface =
        /*.api_interface */ &originate_api_interface
 };
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load)
 {
        /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &mod_commands_module_interface;
+       *module_interface = &commands_module_interface;
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_NOUNLOAD;
index 017336b444a5a0316c3d929d76b0769e6266e343..22140e20dfab53c4a55bdbc700a9084539ecc5c8 100644 (file)
  */
 #include <switch.h>
 
-static const char modname[] = "mod_conference";
+SWITCH_MODULE_LOAD_FUNCTION(mod_conference_load);
+SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_conference_shutdown);
+SWITCH_MODULE_DEFINITION(mod_conference, mod_conference_load, mod_conference_shutdown, NULL);
+
 static const char global_app_name[] = "conference";
 static char *global_cf_name = "conference.conf";
 static switch_api_interface_t conf_api_interface;
@@ -4909,7 +4912,7 @@ static void send_presence(switch_event_types_t id)
 }
 
 /* Called by FreeSWITCH when the module loads */
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_conference_load)
 {
        uint32_t i;
        size_t nl, ol = 0;
@@ -4974,7 +4977,7 @@ SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_mod
        return status;
 }
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_shutdown(void)
+SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_conference_shutdown)
 {
        if (globals.running) {
 
index cc37516c9c13301514faf67bf33b2f38ecdb24c0..f8f9ed2775914f2cacad9d55b9bf84e1b78926ba 100644 (file)
@@ -34,7 +34,8 @@
  */
 #include <switch.h>
 
-static const char modname[] = "mod_dptools";
+SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load);
+SWITCH_MODULE_DEFINITION(mod_dptools, mod_dptools_load, NULL, NULL);
 
 static const switch_application_interface_t detect_speech_application_interface;
 static const switch_application_interface_t exe_application_interface;
@@ -673,6 +674,274 @@ static void stop_fax_detect_session_function(switch_core_session_t *session, cha
        switch_ivr_stop_fax_detect_session(session);
 }
 
+static void echo_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       switch_channel_answer(channel);
+
+       switch_channel_set_state(channel, CS_LOOPBACK);
+}
+
+static void park_function(switch_core_session_t *session, char *data)
+{
+       switch_ivr_park(session, NULL);
+
+}
+
+/********************************************************************************/
+/*                                             Playback/Record Functions                                                               */
+/********************************************************************************/
+
+/*
+  dtmf handler function you can hook up to be executed when a digit is dialed during playback 
+   if you return anything but SWITCH_STATUS_SUCCESS the playback will stop.
+*/
+static switch_status_t on_dtmf(switch_core_session_t *session, void *input, switch_input_type_t itype, void *buf, unsigned int buflen)
+{
+
+
+       switch (itype) {
+       case SWITCH_INPUT_TYPE_DTMF:{
+                       char *dtmf = (char *) input;
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Digits %s\n", dtmf);
+
+                       if (*dtmf == '*') {
+                               return SWITCH_STATUS_BREAK;
+                       }
+               }
+               break;
+       default:
+               break;
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+
+static void speak_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+       char buf[10];
+       char *argv[4] = { 0 };
+       int argc;
+       char *engine = NULL;
+       char *voice = NULL;
+       char *text = NULL;
+       char *mydata = NULL;
+       switch_codec_t *codec;
+       switch_input_args_t args = { 0 };
+
+       codec = switch_core_session_get_read_codec(session);
+       assert(codec != NULL);
+
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       mydata = switch_core_session_strdup(session, data);
+       argc = switch_separate_string(mydata, '|', argv, sizeof(argv) / sizeof(argv[0]));
+
+       engine = argv[0];
+       voice = argv[1];
+       text = argv[2];
+
+       if (!(engine && voice && text)) {
+               if (!engine) {
+                       engine = "NULL";
+               }
+               if (!voice) {
+                       voice = "NULL";
+               }
+               if (!text) {
+                       text = "NULL";
+               }
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Params! [%s][%s][%s]\n", engine, voice, text);
+               switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+       }
+
+       switch_channel_pre_answer(channel);
+
+       args.input_callback = on_dtmf;
+       args.buf = buf;
+       args.buflen = sizeof(buf);
+       switch_ivr_speak_text(session, engine, voice, codec->implementation->samples_per_second, text, &args);
+
+}
+
+static void playback_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+       char *file_name = NULL;
+       switch_input_args_t args = { 0 };
+
+       file_name = switch_core_session_strdup(session, data);
+
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       switch_channel_pre_answer(channel);
+
+       args.input_callback = on_dtmf;
+       switch_ivr_play_file(session, NULL, file_name, &args);
+
+}
+
+
+static void record_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+       switch_status_t status;
+       uint32_t limit = 0;
+       char *path;
+       char *p;
+       switch_input_args_t args = { 0 };
+
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       path = switch_core_session_strdup(session, data);
+       if ((p = strchr(path, '+'))) {
+               char *q = p - 1;
+               while(q && *q == ' ') {
+                       *q = '\0';
+                       q--;
+               }
+               *p++ = '\0';
+               limit = atoi(p);
+       }
+
+       args.input_callback = on_dtmf;
+       status = switch_ivr_record_file(session, NULL, path, &args, limit);
+
+       if (!switch_channel_ready(channel) || (status != SWITCH_STATUS_SUCCESS && !SWITCH_STATUS_IS_BREAK(status))) {
+               switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+       }
+}
+
+
+static void record_session_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+       char *p, *path = NULL;
+       uint32_t limit = 0;
+
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       path = switch_core_session_strdup(session, data);
+       if ((p = strchr(path, '+'))) {
+               char *q = p - 1;
+               while(q && *q == ' ') {
+                       *q = '\0';
+                       q--;
+               }
+               *p++ = '\0';
+               limit = atoi(p);
+       }
+       
+       switch_ivr_record_session(session, path, limit, NULL);
+}
+
+
+static void stop_record_session_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *channel;
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       switch_ivr_stop_record_session(session, data);
+}
+
+/********************************************************************************/
+/*                                                             Bridge Functions                                                                */
+/********************************************************************************/
+
+static void audio_bridge_function(switch_core_session_t *session, char *data)
+{
+       switch_channel_t *caller_channel;
+       switch_core_session_t *peer_session = NULL;
+       unsigned int timelimit = 60;
+       char *var;
+       uint8_t no_media_bridge = 0;
+       switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
+       uint8_t do_continue = 0;
+
+       if (switch_strlen_zero(data)) {
+               return;
+       }
+
+       caller_channel = switch_core_session_get_channel(session);
+       assert(caller_channel != NULL);
+
+       if ((var = switch_channel_get_variable(caller_channel, "call_timeout"))) {
+               timelimit = atoi(var);
+       }
+
+       if ((var = switch_channel_get_variable(caller_channel, "continue_on_fail"))) {
+               do_continue = switch_true(var);
+       }
+
+       if (switch_channel_test_flag(caller_channel, CF_BYPASS_MEDIA)
+               || ((var = switch_channel_get_variable(caller_channel, SWITCH_BYPASS_MEDIA_VARIABLE)) && switch_true(var))) {
+               if (!switch_channel_test_flag(caller_channel, CF_ANSWERED)
+                       && !switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
+                       switch_channel_set_flag(caller_channel, CF_BYPASS_MEDIA);
+               } else {
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already up, delaying point-to-point mode 'till both legs are up.\n");
+                       no_media_bridge = 1;
+               }
+       }
+
+       if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Originate Failed.  Cause: %s\n", switch_channel_cause2str(cause));
+               if (!do_continue && cause != SWITCH_CAUSE_NO_ANSWER) {
+                       /* All Causes besides NO_ANSWER terminate the originating session unless continue_on_fail is set.
+                          We will pass the fail cause on when we hangup. */
+                       switch_channel_hangup(caller_channel, cause);
+               }
+               /* Otherwise.. nobody answered.  Go back to the dialplan instructions in case there was more to do. */
+               return;
+       } else {
+               if (no_media_bridge) {
+                       switch_channel_t *peer_channel = switch_core_session_get_channel(peer_session);
+                       switch_frame_t *read_frame;
+                       /* SIP won't let us redir media until the call has been answered #$^#%& so we will proxy any early media until they do */
+                       while (switch_channel_ready(caller_channel) && switch_channel_ready(peer_channel)
+                                  && !switch_channel_test_flag(peer_channel, CF_ANSWERED)) {
+                               switch_status_t status = switch_core_session_read_frame(peer_session, &read_frame, -1, 0);
+                               uint8_t bad = 1;
+
+                               if (SWITCH_READ_ACCEPTABLE(status)
+                                       && switch_core_session_write_frame(session, read_frame, -1, 0) == SWITCH_STATUS_SUCCESS) {
+                                       bad = 0;
+                               }
+                               if (bad) {
+                                       switch_channel_hangup(caller_channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+                                       switch_channel_hangup(peer_channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+                                       goto end;
+                               }
+                       }
+
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Redirecting media to point-to-point mode.\n");
+                       switch_ivr_nomedia(switch_core_session_get_uuid(session), SMF_FORCE);
+                       switch_ivr_nomedia(switch_core_session_get_uuid(peer_session), SMF_FORCE);
+                       switch_ivr_signal_bridge(session, peer_session);
+               } else {
+                       if (switch_channel_test_flag(caller_channel, CF_BYPASS_MEDIA)) {
+                               switch_ivr_signal_bridge(session, peer_session);
+                       } else {
+                               switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+                       }
+               }
+       end:
+               if (peer_session) {
+                       switch_core_session_rwunlock(peer_session);
+               }
+       }
+}
 
 static const switch_api_interface_t strepoch_api_interface = {
        /*.interface_name */ "strepoch",
@@ -707,6 +976,86 @@ static const switch_api_interface_t presence_api_interface = {
 };
 
 
+static const switch_application_interface_t bridge_application_interface = {
+       /*.interface_name */ "bridge",
+       /*.application_function */ audio_bridge_function,
+       /* long_desc */ "Bridge the audio between two sessions",
+       /* short_desc */ "Bridge Audio",
+       /* syntax */ "<channel_url>",
+       /* flags */ SAF_SUPPORT_NOMEDIA
+};
+
+static const switch_application_interface_t speak_application_interface = {
+       /*.interface_name */ "speak",
+       /*.application_function */ speak_function,
+       /* long_desc */ "Speak text to a channel via the tts interface",
+       /* short_desc */ "Speak text",
+       /* syntax */ "<engine>|<voice>|<text>",
+       /* flags */ SAF_NONE,
+       &bridge_application_interface
+};
+
+static const switch_application_interface_t record_application_interface = {
+       /*.interface_name */ "record",
+       /*.application_function */ record_function,
+       /* long_desc */ "Record a file from the channels input",
+       /* short_desc */ "Record File",
+       /* syntax */ "<path> [+time_limit_ms]",
+       /* flags */ SAF_NONE,
+       &speak_application_interface
+};
+
+
+static const switch_application_interface_t record_session_application_interface = {
+       /*.interface_name */ "record_session",
+       /*.application_function */ record_session_function,
+       /* long_desc */ "Starts a background recording of the entire session",
+       /* short_desc */ "Record Session",
+       /* syntax */ "<path>",
+       /* flags */ SAF_NONE,
+       &record_application_interface
+};
+
+
+static const switch_application_interface_t stop_record_session_application_interface = {
+       /*.interface_name */ "stop_record_session",
+       /*.application_function */ stop_record_session_function,
+       /* long_desc */ "Stops a background recording of the entire session",
+       /* short_desc */ "Stop Record Session",
+       /* syntax */ "<path>",
+       /* flags */ SAF_NONE,
+       &record_session_application_interface
+};
+
+static const switch_application_interface_t playback_application_interface = {
+       /*.interface_name */ "playback",
+       /*.application_function */ playback_function,
+       /* long_desc */ "Playback a file to the channel",
+       /* short_desc */ "Playback File",
+       /* syntax */ "<path>",
+       /* flags */ SAF_NONE,
+       /*.next */ &stop_record_session_application_interface
+};
+static const switch_application_interface_t park_application_interface = {
+       /*.interface_name */ "park",
+       /*.application_function */ park_function,
+       /* long_desc */ NULL,
+       /* short_desc */ NULL,
+       /* syntax */ NULL,
+       /* flags */ SAF_NONE,
+       /*.next */ &playback_application_interface
+};
+
+static const switch_application_interface_t echo_application_interface = {
+       /*.interface_name */ "echo",
+       /*.application_function */ echo_function,
+       /* long_desc */ "Perform an echo test against the calling channel",
+       /* short_desc */ "Echo",
+       /* syntax */ "",
+       /* flags */ SAF_NONE,
+       /*.next */ &park_application_interface
+};
+
 static const switch_application_interface_t fax_detect_application_interface = {
        /*.interface_name */ "fax_detect",
        /*.application_function */ fax_detect_session_function,
@@ -714,7 +1063,7 @@ static const switch_application_interface_t fax_detect_application_interface = {
        /* short_desc */ "Detect faxes",
        /* syntax */ "",
        /* flags */ SAF_NONE,
-       /*.next */ NULL
+       /*.next */ &echo_application_interface
 };
 
 static const switch_application_interface_t stop_fax_detect_application_interface = {
@@ -990,7 +1339,7 @@ static const switch_application_interface_t privacy_application_interface = {
        /*.next */ &transfer_application_interface
 };
 
-static const switch_loadable_module_interface_t mod_dptools_module_interface = {
+static const switch_loadable_module_interface_t dptools_module_interface = {
        /*.module_name = */ modname,
        /*.endpoint_interface = */ NULL,
        /*.timer_interface = */ NULL,
@@ -1000,23 +1349,17 @@ static const switch_loadable_module_interface_t mod_dptools_module_interface = {
        /*.api_interface */ &presence_api_interface
 };
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_dptools_load)
 {
 
        /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &mod_dptools_module_interface;
+       *module_interface = &dptools_module_interface;
 
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
 }
 
-/* 'switch_module_runtime' will start up in a thread by itself just by having it exist 
-if it returns anything but SWITCH_STATUS_TERM it will be called again automaticly
-*/
-
-
-//switch_status_t switch_module_runtime(void)
 
 /* For Emacs:
  * Local Variables:
diff --git a/src/mod/applications/mod_echo/mod_echo.c b/src/mod/applications/mod_echo/mod_echo.c
deleted file mode 100644 (file)
index 894f82d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* 
- * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- * Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
- *
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- *
- * The Initial Developer of the Original Code is
- * Anthony Minessale II <anthmct@yahoo.com>
- * Portions created by the Initial Developer are Copyright (C)
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * 
- * Anthony Minessale II <anthmct@yahoo.com>
- * Brian K. West <brian.west@mac.com>
- *
- * mod_echo.c -- Echo application
- *
- */
-#include <switch.h>
-
-static const char modname[] = "mod_echo";
-
-static void echo_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       switch_channel_answer(channel);
-
-       switch_channel_set_state(channel, CS_LOOPBACK);
-}
-
-static const switch_application_interface_t echo_application_interface = {
-       /*.interface_name */ "echo",
-       /*.application_function */ echo_function,
-       /* long_desc */ "Perform an echo test against the calling channel",
-       /* short_desc */ "Echo",
-       /* syntax */ "",
-       /* flags */ SAF_NONE,
-};
-
-static switch_loadable_module_interface_t echo_module_interface = {
-       /*.module_name */ modname,
-       /*.endpoint_interface */ NULL,
-       /*.timer_interface */ NULL,
-       /*.dialplan_interface */ NULL,
-       /*.codec_interface */ NULL,
-       /*.application_interface */ &echo_application_interface,
-       /*.api_interface */ NULL,
-       /*.file_interface */ NULL,
-       /*.speech_interface */ NULL,
-       /*.directory_interface */ NULL
-};
-
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
-{
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &echo_module_interface;
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
- */
diff --git a/src/mod/applications/mod_echo/mod_echo.vcproj b/src/mod/applications/mod_echo/mod_echo.vcproj
deleted file mode 100644 (file)
index 51d3c26..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="8.00"\r
-       Name="mod_echo"\r
-       ProjectGUID="{0E2C6395-13B9-46E5-9264-8859D346018D}"\r
-       RootNamespace="mod_echo"\r
-       Keyword="Win32Proj"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_echo.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_echo.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath=".\mod_echo.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
index f64ddf7bbc93bf10f81a47bfd4edd279e2d7ce8d..25c0f054da108e5435473daeb38af37aafe3f882 100644 (file)
@@ -36,7 +36,8 @@
 #define closesocket close
 #endif
 
-static const char modname[] = "mod_enum";
+SWITCH_MODULE_LOAD_FUNCTION(mod_enum_load);
+SWITCH_MODULE_DEFINITION(mod_enum, mod_enum_load, NULL, NULL);
 
 struct enum_record {
        int order;
@@ -721,7 +722,7 @@ static switch_loadable_module_interface_t enum_module_interface = {
        /*.directory_interface */ NULL
 };
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_enum_load)
 {
 
        if (dns_init(0) < 0) {
index 7483b6a349b8c84dd6eca92b7be8ad9fbb7697c8..ac64b8d179e7c66441b4611802e785f108c7ede2 100644 (file)
@@ -31,7 +31,8 @@
  */
 #include <switch.h>
 
-static const char modname[] = "mod_esf";
+SWITCH_MODULE_LOAD_FUNCTION(mod_esf_load);
+SWITCH_MODULE_DEFINITION(mod_esf, mod_esf_load, NULL, NULL);
 
 struct ls_control_packet {
        uint32_t unique_id;
@@ -244,7 +245,7 @@ static const switch_loadable_module_interface_t mod_ivrtest_module_interface = {
        /*.application_interface */ &bcast_application_interface
 };
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_esf_load)
 {
 
        /* connect my internal structure to the blank pointer passed to me */
diff --git a/src/mod/applications/mod_park/mod_park.c b/src/mod/applications/mod_park/mod_park.c
deleted file mode 100644 (file)
index 19e29c0..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* 
- * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- * Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
- *
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- *
- * The Initial Developer of the Original Code is
- * Anthony Minessale II <anthmct@yahoo.com>
- * Portions created by the Initial Developer are Copyright (C)
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * 
- * Anthony Minessale II <anthmct@yahoo.com>
- *
- * mod_park.c -- Park application
- *
- */
-#include <switch.h>
-
-static const char modname[] = "mod_park";
-
-static void park_function(switch_core_session_t *session, char *data)
-{
-       switch_ivr_park(session, NULL);
-
-}
-
-static const switch_application_interface_t park_application_interface = {
-       /*.interface_name */ "park",
-       /*.application_function */ park_function,
-       NULL, NULL, NULL,
-       /* flags */ SAF_NONE,
-       NULL
-};
-
-static switch_loadable_module_interface_t park_module_interface = {
-       /*.module_name */ modname,
-       /*.endpoint_interface */ NULL,
-       /*.timer_interface */ NULL,
-       /*.dialplan_interface */ NULL,
-       /*.codec_interface */ NULL,
-       /*.application_interface */ &park_application_interface,
-       /*.api_interface */ NULL,
-       /*.file_interface */ NULL,
-       /*.speech_interface */ NULL,
-       /*.directory_interface */ NULL
-};
-
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
-{
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &park_module_interface;
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
- */
diff --git a/src/mod/applications/mod_park/mod_park.vcproj b/src/mod/applications/mod_park/mod_park.vcproj
deleted file mode 100644 (file)
index 03d5657..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="8.00"\r
-       Name="mod_park"\r
-       ProjectGUID="{2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B}"\r
-       RootNamespace="mod_park"\r
-       Keyword="Win32Proj"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_park.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_park.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath=".\mod_park.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
diff --git a/src/mod/applications/mod_playback/mod_playback.c b/src/mod/applications/mod_playback/mod_playback.c
deleted file mode 100644 (file)
index 5382114..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/* 
- * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- * Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>
- *
- * Version: MPL 1.1
- *
- * The contents of this file are subject to the Mozilla Public License Version
- * 1.1 (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
- *
- * The Initial Developer of the Original Code is
- * Anthony Minessale II <anthmct@yahoo.com>
- * Portions created by the Initial Developer are Copyright (C)
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- * 
- * Anthony Minessale II <anthmct@yahoo.com>
- * Neal Horman <neal at wanlink dot com>
- *
- *
- * mod_playback.c -- Raw Audio File Streaming Application Module
- *
- */
-#include <switch.h>
-
-static const char modname[] = "mod_playback";
-
-/*
-  dtmf handler function you can hook up to be executed when a digit is dialed during playback 
-   if you return anything but SWITCH_STATUS_SUCCESS the playback will stop.
-*/
-static switch_status_t on_dtmf(switch_core_session_t *session, void *input, switch_input_type_t itype, void *buf, unsigned int buflen)
-{
-
-
-       switch (itype) {
-       case SWITCH_INPUT_TYPE_DTMF:{
-                       char *dtmf = (char *) input;
-                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Digits %s\n", dtmf);
-
-                       if (*dtmf == '*') {
-                               return SWITCH_STATUS_BREAK;
-                       }
-               }
-               break;
-       default:
-               break;
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-
-static void speak_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-       char buf[10];
-       char *argv[4] = { 0 };
-       int argc;
-       char *engine = NULL;
-       char *voice = NULL;
-       char *text = NULL;
-       char *mydata = NULL;
-       switch_codec_t *codec;
-       switch_input_args_t args = { 0 };
-
-       codec = switch_core_session_get_read_codec(session);
-       assert(codec != NULL);
-
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       mydata = switch_core_session_strdup(session, data);
-       argc = switch_separate_string(mydata, '|', argv, sizeof(argv) / sizeof(argv[0]));
-
-       engine = argv[0];
-       voice = argv[1];
-       text = argv[2];
-
-       if (!(engine && voice && text)) {
-               if (!engine) {
-                       engine = "NULL";
-               }
-               if (!voice) {
-                       voice = "NULL";
-               }
-               if (!text) {
-                       text = "NULL";
-               }
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Params! [%s][%s][%s]\n", engine, voice, text);
-               switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-       }
-
-       switch_channel_pre_answer(channel);
-
-       args.input_callback = on_dtmf;
-       args.buf = buf;
-       args.buflen = sizeof(buf);
-       switch_ivr_speak_text(session, engine, voice, codec->implementation->samples_per_second, text, &args);
-
-}
-
-static void playback_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-       char *file_name = NULL;
-       switch_input_args_t args = { 0 };
-
-       file_name = switch_core_session_strdup(session, data);
-
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       switch_channel_pre_answer(channel);
-
-       args.input_callback = on_dtmf;
-       switch_ivr_play_file(session, NULL, file_name, &args);
-
-}
-
-
-static void record_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-       switch_status_t status;
-       uint32_t limit = 0;
-       char *path;
-       char *p;
-       switch_input_args_t args = { 0 };
-
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       path = switch_core_session_strdup(session, data);
-       if ((p = strchr(path, '+'))) {
-               char *q = p - 1;
-               while(q && *q == ' ') {
-                       *q = '\0';
-                       q--;
-               }
-               *p++ = '\0';
-               limit = atoi(p);
-       }
-
-       args.input_callback = on_dtmf;
-       status = switch_ivr_record_file(session, NULL, path, &args, limit);
-
-       if (!switch_channel_ready(channel) || (status != SWITCH_STATUS_SUCCESS && !SWITCH_STATUS_IS_BREAK(status))) {
-               switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
-       }
-}
-
-
-static void record_session_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-       char *p, *path = NULL;
-       uint32_t limit = 0;
-
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       path = switch_core_session_strdup(session, data);
-       if ((p = strchr(path, '+'))) {
-               char *q = p - 1;
-               while(q && *q == ' ') {
-                       *q = '\0';
-                       q--;
-               }
-               *p++ = '\0';
-               limit = atoi(p);
-       }
-       
-       switch_ivr_record_session(session, path, limit, NULL);
-}
-
-
-static void stop_record_session_function(switch_core_session_t *session, char *data)
-{
-       switch_channel_t *channel;
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       switch_ivr_stop_record_session(session, data);
-}
-
-
-static const switch_application_interface_t speak_application_interface = {
-       /*.interface_name */ "speak",
-       /*.application_function */ speak_function,
-       /* long_desc */ "Speak text to a channel via the tts interface",
-       /* short_desc */ "Speak text",
-       /* syntax */ "<engine>|<voice>|<text>",
-       /* flags */ SAF_NONE,
-};
-
-static const switch_application_interface_t record_application_interface = {
-       /*.interface_name */ "record",
-       /*.application_function */ record_function,
-       /* long_desc */ "Record a file from the channels input",
-       /* short_desc */ "Record File",
-       /* syntax */ "<path> [+time_limit_ms]",
-       /* flags */ SAF_NONE,
-       &speak_application_interface
-};
-
-
-static const switch_application_interface_t record_session_application_interface = {
-       /*.interface_name */ "record_session",
-       /*.application_function */ record_session_function,
-       /* long_desc */ "Starts a background recording of the entire session",
-       /* short_desc */ "Record Session",
-       /* syntax */ "<path>",
-       /* flags */ SAF_NONE,
-       &record_application_interface
-};
-
-
-static const switch_application_interface_t stop_record_session_application_interface = {
-       /*.interface_name */ "stop_record_session",
-       /*.application_function */ stop_record_session_function,
-       /* long_desc */ "Stops a background recording of the entire session",
-       /* short_desc */ "Stop Record Session",
-       /* syntax */ "<path>",
-       /* flags */ SAF_NONE,
-       &record_session_application_interface
-};
-
-static const switch_application_interface_t playback_application_interface = {
-       /*.interface_name */ "playback",
-       /*.application_function */ playback_function,
-       /* long_desc */ "Playback a file to the channel",
-       /* short_desc */ "Playback File",
-       /* syntax */ "<path>",
-       /* flags */ SAF_NONE,
-       /*.next */ &stop_record_session_application_interface
-};
-
-static const switch_loadable_module_interface_t mod_playback_module_interface = {
-       /*.module_name = */ modname,
-       /*.endpoint_interface = */ NULL,
-       /*.timer_interface = */ NULL,
-       /*.dialplan_interface = */ NULL,
-       /*.codec_interface = */ NULL,
-       /*.application_interface */ &playback_application_interface
-};
-
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
-{
-
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = &mod_playback_module_interface;
-
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
-
-/* 'switch_module_runtime' will start up in a thread by itself just by having it exist 
-if it returns anything but SWITCH_STATUS_TERM it will be called again automaticly
-*/
-
-
-//switch_status_t switch_module_runtime(void)
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
- */
diff --git a/src/mod/applications/mod_playback/mod_playback.vcproj b/src/mod/applications/mod_playback/mod_playback.vcproj
deleted file mode 100644 (file)
index d4e1302..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>\r
-<VisualStudioProject\r
-       ProjectType="Visual C++"\r
-       Version="8.00"\r
-       Name="mod_playback"\r
-       ProjectGUID="{78100236-7CEA-4948-96CC-E8ED3160329C}"\r
-       RootNamespace="mod_playback"\r
-       Keyword="Win32Proj"\r
-       >\r
-       <Platforms>\r
-               <Platform\r
-                       Name="Win32"\r
-               />\r
-       </Platforms>\r
-       <ToolFiles>\r
-       </ToolFiles>\r
-       <Configurations>\r
-               <Configuration\r
-                       Name="Debug|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               Optimization="0"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               MinimalRebuild="true"\r
-                               BasicRuntimeChecks="3"\r
-                               RuntimeLibrary="3"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_playback.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-               <Configuration\r
-                       Name="Release|Win32"\r
-                       OutputDirectory="$(ConfigurationName)"\r
-                       IntermediateDirectory="$(ConfigurationName)"\r
-                       ConfigurationType="2"\r
-                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
-                       CharacterSet="2"\r
-                       >\r
-                       <Tool\r
-                               Name="VCPreBuildEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCustomBuildTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXMLDataGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebServiceProxyGeneratorTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCMIDLTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCCLCompilerTool"\r
-                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;"\r
-                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
-                               RuntimeLibrary="2"\r
-                               UsePrecompiledHeader="0"\r
-                               WarningLevel="4"\r
-                               WarnAsError="true"\r
-                               Detect64BitPortabilityProblems="true"\r
-                               DebugInformationFormat="3"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManagedResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCResourceCompilerTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPreLinkEventTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCLinkerTool"\r
-                               OutputFile="$(SolutionDir)$(OutDir)/mod/$(InputName).dll"\r
-                               LinkIncremental="1"\r
-                               AdditionalLibraryDirectories="..\..\..\..\w32\vsnet\$(OutDir)"\r
-                               GenerateDebugInformation="true"\r
-                               ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
-                               SubSystem="2"\r
-                               OptimizeReferences="2"\r
-                               EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_playback.lib"\r
-                               TargetMachine="1"\r
-                       />\r
-                       <Tool\r
-                               Name="VCALinkTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCManifestTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCXDCMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCBscMakeTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCFxCopTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCAppVerifierTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCWebDeploymentTool"\r
-                       />\r
-                       <Tool\r
-                               Name="VCPostBuildEventTool"\r
-                       />\r
-               </Configuration>\r
-       </Configurations>\r
-       <References>\r
-       </References>\r
-       <Files>\r
-               <Filter\r
-                       Name="Source Files"\r
-                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
-                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
-                       >\r
-                       <File\r
-                               RelativePath=".\mod_playback.c"\r
-                               >\r
-                       </File>\r
-               </Filter>\r
-               <Filter\r
-                       Name="Header Files"\r
-                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
-                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
-                       >\r
-               </Filter>\r
-               <Filter\r
-                       Name="Resource Files"\r
-                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
-                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
-                       >\r
-               </Filter>\r
-       </Files>\r
-       <Globals>\r
-       </Globals>\r
-</VisualStudioProject>\r
index 23fde4b161d6e3ec3ee7bf1fa700434234842ed2..c694f08bd6d0924aecc2b2f7747bdf0207712813 100644 (file)
@@ -31,7 +31,8 @@
  */
 #include <switch.h>
 
-static const char modname[] = "mod_rss";
+SWITCH_MODULE_LOAD_FUNCTION(mod_rss_load);
+SWITCH_MODULE_DEFINITION(mod_rss, mod_rss_load, NULL, NULL);
 
 typedef enum {
        SFLAG_INSTRUCT = (1 << 0),
@@ -635,7 +636,7 @@ static switch_loadable_module_interface_t rss_module_interface = {
 };
 
 
-SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_module_interface_t **module_interface, char *filename)
+SWITCH_MODULE_LOAD_FUNCTION(mod_rss_load)
 {
        /* connect my internal structure to the blank pointer passed to me */
        *module_interface = &rss_module_interface;
index e063348fd254c733d8832808a823fd10e6221493..6e23f1b1e7a55d484a94e27b90f5533189225abe 100644 (file)
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_0F091427EEA0245FBA87474748D35ABD"\r
+        "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_1273F63008CF585CA0E063E436B4646F"\r
         "OwnerKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_1273F63008CF585CA0E063E436B4646F"\r
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_2814E641538B42EFA83525986A9D5AC1"\r
+        "MsmKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_F84240319757424DB1C58AD0AD420127"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_D6F0F5845FAD4707975CE012A33CD607"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_BB649A2C1ABE4895859025B09A240323"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_D0BB09AFB8D94B76918F0EE85BCCAD0A"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
-        "OwnerKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_87768631363249B2B301143C193612F7"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_7358123D2D064AD1BC517911A8B23D1B"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_684D96FA2BDD46909367E651099D8C4E"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "OwnerKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
         "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_2814E641538B42EFA83525986A9D5AC1"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_329D8DAE6C01FCF026E9DFB48B932203"\r
         "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_35FACDFFDDB943568B7588D14D0513A7"\r
+        "OwnerKey" = "8:_27200676A75147D0BB7FA5500BB31A6D"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_3E37631016BC45B2B672FE23257D542B"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_525E8ED430D44113995AB8FBF1945569"\r
+        "OwnerKey" = "8:_548996CD77304E3598846F122E79431A"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_548996CD77304E3598846F122E79431A"\r
+        "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_69EB1A147CC2428435BDCA35014C96E1"\r
+        "MsmKey" = "8:_6A4CAD73F43678BF7C05E8FB41042F74"\r
         "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_72A8732C0C0C4D0EAAE89DBB82073335"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
         "MsmKey" = "8:_7358123D2D064AD1BC517911A8B23D1B"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         "Entry"\r
         {\r
         "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
         "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"\r
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_98CF7609810C41BABC219DFBA0A6075D"\r
-        "OwnerKey" = "8:_327123955D614480BF2995F2C39195DD"\r
+        "MsmKey" = "8:_8BDB1C76D7153C0CC909D697582518E3"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_9A293E8A356A4959BB6E541B7DC213CD"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"\r
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_BB7F62033A5B7A961202771F5A4E4995"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
+        "MsmSig" = "8:_UNDEFINED"\r
+        }\r
+        "Entry"\r
+        {\r
         "MsmKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_E4BCD553B2054B0F8BC67428E1A11674"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
         "MsmKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
             "IsDependency" = "11:FALSE"\r
             "IsolateTo" = "8:"\r
             }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_0F091427EEA0245FBA87474748D35ABD"\r
+            {\r
+            "SourcePath" = "8:js32.dll"\r
+            "TargetName" = "8:js32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_1273F63008CF585CA0E063E436B4646F"\r
             {\r
             "SourcePath" = "8:iphlpapi.dll"\r
             "IsDependency" = "11:TRUE"\r
             "IsolateTo" = "8:"\r
             }\r
-            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_69EB1A147CC2428435BDCA35014C96E1"\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_6A4CAD73F43678BF7C05E8FB41042F74"\r
             {\r
-            "SourcePath" = "8:libsqlite.dll"\r
-            "TargetName" = "8:libsqlite.dll"\r
+            "SourcePath" = "8:libteletone.dll"\r
+            "TargetName" = "8:libteletone.dll"\r
             "Tag" = "8:"\r
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"\r
             "Condition" = "8:"\r
             "SharedLegacy" = "11:FALSE"\r
             "PackageAs" = "3:1"\r
             "Register" = "3:1"\r
-            "Exclude" = "11:TRUE"\r
+            "Exclude" = "11:FALSE"\r
             "IsDependency" = "11:TRUE"\r
             "IsolateTo" = "8:"\r
             }\r
             "SharedLegacy" = "11:FALSE"\r
             "PackageAs" = "3:1"\r
             "Register" = "3:1"\r
-            "Exclude" = "11:TRUE"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8BDB1C76D7153C0CC909D697582518E3"\r
+            {\r
+            "SourcePath" = "8:libapr.dll"\r
+            "TargetName" = "8:libapr.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
             "IsDependency" = "11:TRUE"\r
             "IsolateTo" = "8:"\r
             }\r
             "SharedLegacy" = "11:FALSE"\r
             "PackageAs" = "3:1"\r
             "Register" = "3:1"\r
-            "Exclude" = "11:TRUE"\r
+            "Exclude" = "11:FALSE"\r
             "IsDependency" = "11:TRUE"\r
             "IsolateTo" = "8:"\r
             }\r
             "IsDependency" = "11:FALSE"\r
             "IsolateTo" = "8:"\r
             }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+            {\r
+            "SourcePath" = "8:ODBC32.dll"\r
+            "TargetName" = "8:ODBC32.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_BB7F62033A5B7A961202771F5A4E4995"\r
+            {\r
+            "SourcePath" = "8:libaprutil.dll"\r
+            "TargetName" = "8:libaprutil.dll"\r
+            "Tag" = "8:"\r
+            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
+            "Condition" = "8:"\r
+            "Transitive" = "11:FALSE"\r
+            "Vital" = "11:TRUE"\r
+            "ReadOnly" = "11:FALSE"\r
+            "Hidden" = "11:FALSE"\r
+            "System" = "11:FALSE"\r
+            "Permanent" = "11:FALSE"\r
+            "SharedLegacy" = "11:FALSE"\r
+            "PackageAs" = "3:1"\r
+            "Register" = "3:1"\r
+            "Exclude" = "11:FALSE"\r
+            "IsDependency" = "11:TRUE"\r
+            "IsolateTo" = "8:"\r
+            }\r
             "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_D7E82DD20D5B47395F635480C8E3A1D3"\r
             {\r
             "SourcePath" = "8:FreeSwitch.dll"\r
         }\r
         "MergeModule"\r
         {\r
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_327123955D614480BF2995F2C39195DD"\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_27200676A75147D0BB7FA5500BB31A6D"\r
             {\r
             "UseDynamicProperties" = "11:TRUE"\r
             "IsDependency" = "11:TRUE"\r
             "Feature" = "8:"\r
             "IsolateTo" = "8:"\r
             }\r
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_98CF7609810C41BABC219DFBA0A6075D"\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_35FACDFFDDB943568B7588D14D0513A7"\r
             {\r
             "UseDynamicProperties" = "11:TRUE"\r
             "IsDependency" = "11:TRUE"\r
             "Feature" = "8:"\r
             "IsolateTo" = "8:"\r
             }\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_525E8ED430D44113995AB8FBF1945569"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_548996CD77304E3598846F122E79431A"\r
+            {\r
+            "UseDynamicProperties" = "11:TRUE"\r
+            "IsDependency" = "11:TRUE"\r
+            "SourcePath" = "8:Microsoft_VC80_CRT_x86.msm"\r
+                "Properties"\r
+                {\r
+                }\r
+            "LanguageId" = "3:0"\r
+            "Exclude" = "11:FALSE"\r
+            "Folder" = "8:"\r
+            "Feature" = "8:"\r
+            "IsolateTo" = "8:"\r
+            }\r
         }\r
         "ProjectOutput"\r
         {\r
                 {\r
                 }\r
             }\r
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_72A8732C0C0C4D0EAAE89DBB82073335"\r
-            {\r
-            "SourcePath" = "8:..\\..\\debug\\mod\\mod_playback.dll"\r
-            "TargetName" = "8:"\r
-            "Tag" = "8:"\r
-            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
-            "Condition" = "8:"\r
-            "Transitive" = "11:FALSE"\r
-            "Vital" = "11:TRUE"\r
-            "ReadOnly" = "11:FALSE"\r
-            "Hidden" = "11:FALSE"\r
-            "System" = "11:FALSE"\r
-            "Permanent" = "11:FALSE"\r
-            "SharedLegacy" = "11:FALSE"\r
-            "PackageAs" = "3:1"\r
-            "Register" = "3:1"\r
-            "Exclude" = "11:FALSE"\r
-            "IsDependency" = "11:FALSE"\r
-            "IsolateTo" = "8:"\r
-            "ProjectOutputGroupRegister" = "3:1"\r
-            "OutputConfiguration" = "8:"\r
-            "OutputGroupCanonicalName" = "8:Built"\r
-            "OutputProjectGuid" = "8:{78100236-7CEA-4948-96CC-E8ED3160329C}"\r
-            "ShowKeyOutput" = "11:TRUE"\r
-                "ExcludeFilters"\r
-                {\r
-                }\r
-            }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7358123D2D064AD1BC517911A8B23D1B"\r
             {\r
             "SourcePath" = "8:..\\..\\debug\\mod\\mod_softtimer.dll"\r
                 {\r
                 }\r
             }\r
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_9A293E8A356A4959BB6E541B7DC213CD"\r
-            {\r
-            "SourcePath" = "8:..\\..\\debug\\mod\\mod_bridgecall.dll"\r
-            "TargetName" = "8:"\r
-            "Tag" = "8:"\r
-            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
-            "Condition" = "8:"\r
-            "Transitive" = "11:FALSE"\r
-            "Vital" = "11:TRUE"\r
-            "ReadOnly" = "11:FALSE"\r
-            "Hidden" = "11:FALSE"\r
-            "System" = "11:FALSE"\r
-            "Permanent" = "11:FALSE"\r
-            "SharedLegacy" = "11:FALSE"\r
-            "PackageAs" = "3:1"\r
-            "Register" = "3:1"\r
-            "Exclude" = "11:FALSE"\r
-            "IsDependency" = "11:FALSE"\r
-            "IsolateTo" = "8:"\r
-            "ProjectOutputGroupRegister" = "3:1"\r
-            "OutputConfiguration" = "8:"\r
-            "OutputGroupCanonicalName" = "8:Built"\r
-            "OutputProjectGuid" = "8:{E1794405-29D4-466D-9BE3-DD2344C2A663}"\r
-            "ShowKeyOutput" = "11:TRUE"\r
-                "ExcludeFilters"\r
-                {\r
-                }\r
-            }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A0D5F714A0F94250A1C39603B699AB82"\r
             {\r
-            "SourcePath" = "8:..\\..\\libs\\libteletone\\Debug\\libteletone.dll"\r
+            "SourcePath" = "8:..\\..\\debug\\libteletone.dll"\r
             "TargetName" = "8:"\r
             "Tag" = "8:"\r
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"\r
             }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_A944ADCEDF884574A23F7BA5420A6BA1"\r
             {\r
-            "SourcePath" = "8:..\\..\\debug\\libsqlite.dll"\r
+            "SourcePath" = "8:..\\..\\libs\\win32\\sqlite\\Debug\\libsqlite.lib"\r
             "TargetName" = "8:"\r
             "Tag" = "8:"\r
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"\r
             }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_BB649A2C1ABE4895859025B09A240323"\r
             {\r
-            "SourcePath" = "8:..\\..\\debug\\libpcre.dll"\r
+            "SourcePath" = "8:..\\..\\libs\\win32\\pcre\\Debug\\libpcre.lib"\r
             "TargetName" = "8:"\r
             "Tag" = "8:"\r
             "Folder" = "8:_04AC783F1C9F41AEB4E947C46CE9C9FF"\r
                 {\r
                 }\r
             }\r
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E4BCD553B2054B0F8BC67428E1A11674"\r
-            {\r
-            "SourcePath" = "8:..\\..\\debug\\mod\\mod_echo.dll"\r
-            "TargetName" = "8:"\r
-            "Tag" = "8:"\r
-            "Folder" = "8:_B6E020422C78490D96F78DB0E1A3F521"\r
-            "Condition" = "8:"\r
-            "Transitive" = "11:FALSE"\r
-            "Vital" = "11:TRUE"\r
-            "ReadOnly" = "11:FALSE"\r
-            "Hidden" = "11:FALSE"\r
-            "System" = "11:FALSE"\r
-            "Permanent" = "11:FALSE"\r
-            "SharedLegacy" = "11:FALSE"\r
-            "PackageAs" = "3:1"\r
-            "Register" = "3:1"\r
-            "Exclude" = "11:FALSE"\r
-            "IsDependency" = "11:FALSE"\r
-            "IsolateTo" = "8:"\r
-            "ProjectOutputGroupRegister" = "3:1"\r
-            "OutputConfiguration" = "8:"\r
-            "OutputGroupCanonicalName" = "8:Built"\r
-            "OutputProjectGuid" = "8:{0E2C6395-13B9-46E5-9264-8859D346018D}"\r
-            "ShowKeyOutput" = "11:TRUE"\r
-                "ExcludeFilters"\r
-                {\r
-                }\r
-            }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_E763C699DF0948B6984DDEB96A2DFD06"\r
             {\r
             "SourcePath" = "8:..\\..\\debug\\mod\\mod_PortAudio.dll"\r