]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
make stub copies of mod_say_en to use as working copies for dem es, fr, it and nl.
authorMichael Jerris <mike@jerris.com>
Wed, 17 Oct 2007 20:17:00 +0000 (20:17 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 17 Oct 2007 20:17:00 +0000 (20:17 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5945 d0543943-73ff-0310-b7d9-9358b9ac24b2

15 files changed:
Freeswitch.sln
build/modules.conf.in
src/mod/say/mod_say_de/mod_say_de.c [moved from src/mod/say/mod_say_de/mod_say_en.c with 92% similarity]
src/mod/say/mod_say_de/mod_say_de.vcproj [moved from src/mod/say/mod_say_fr/mod_say_en.vcproj with 91% similarity]
src/mod/say/mod_say_es/mod_say_es.c [moved from src/mod/say/mod_say_fr/mod_say_en.c with 92% similarity]
src/mod/say/mod_say_es/mod_say_es.vcproj [moved from src/mod/say/mod_say_de/mod_say_en.vcproj with 91% similarity]
src/mod/say/mod_say_fr/mod_say_fr.c [moved from src/mod/say/mod_say_es/mod_say_en.c with 92% similarity]
src/mod/say/mod_say_fr/mod_say_fr.vcproj [moved from src/mod/say/mod_say_it/mod_say_en.vcproj with 91% similarity]
src/mod/say/mod_say_it/mod_say_it.c [moved from src/mod/say/mod_say_it/mod_say_en.c with 92% similarity]
src/mod/say/mod_say_it/mod_say_it.vcproj [moved from src/mod/say/mod_say_es/mod_say_en.vcproj with 91% similarity]
src/mod/say/mod_say_nl/mod_say_en.c [deleted file]
src/mod/say/mod_say_nl/mod_say_en.vcproj [deleted file]
src/mod/say/mod_say_nl/mod_say_nl.c [new file with mode: 0644]
src/mod/say/mod_say_nl/mod_say_nl.vcproj [new file with mode: 0644]
w32/Setup/Setup.vdproj

index fdf44f6d7b90e1e7d125af20e5b44d84c7fc07e8..be6ba3f93c765e2266b85fc315ef3b0234c91692 100644 (file)
@@ -3,20 +3,20 @@ Microsoft Visual Studio Solution File, Format Version 9.00
 # Visual Studio 2005
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchConsole", "w32\Console\FreeSwitchConsole.vcproj", "{1AF3A893-F7BE-43DD-B697-8AB2397C0D67}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"
        ProjectSection(ProjectDependencies) = postProject
-               {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761}
-               {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
-               {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
-               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
-               {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
                {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
+               {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
+               {EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+               {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
+               {8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
+               {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"
@@ -26,28 +26,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_gsm", "src\mod\codecs\mod_gsm\mod_gsm.vcproj", "{4926323F-4EA8-4B7D-A3D3-65488725988F}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {8FD2E297-4096-47E5-9258-C48FF1841523} = {8FD2E297-4096-47E5-9258-C48FF1841523}
-       EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xmpp_event", "src\mod\event_handlers\mod_xmpp_event\mod_xmpp_event.vcproj", "{F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}"
-       ProjectSection(ProjectDependencies) = postProject
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sndfile", "src\mod\formats\mod_sndfile\mod_sndfile.vcproj", "{AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4}
-       EndProjectSection
-EndProject
-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}"
-       ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g711", "src\mod\codecs\mod_g711\mod_g711.vcproj", "{B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}"
@@ -57,16 +44,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g711", "src\mod\codecs\
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_iax", "src\mod\endpoints\mod_iax\mod_iax.vcproj", "{3A5B9131-F20C-4A85-9447-6C1610941CEE}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E} = {5CC054B7-6DAA-46BF-9A08-3B33B83E8D3E}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_l16", "src\mod\codecs\mod_l16\mod_l16.vcproj", "{5844AFE1-AA3E-4BDB-A9EF-119AEF19DF88}"
@@ -76,14 +63,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_l16", "src\mod\codecs\m
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_speex", "src\mod\codecs\mod_speex\mod_speex.vcproj", "{5580D60E-0F77-4716-9CD4-B8E5986FA375}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {1C469CDD-A3AF-4A94-A592-B2CF12F2D918} = {1C469CDD-A3AF-4A94-A592-B2CF12F2D918}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_woomera", "src\mod\endpoints\mod_woomera\mod_woomera.vcproj", "{FE3540C5-3303-46E0-A69E-D92F775687F1}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}"
@@ -104,8 +91,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "docs", "docs\docs.vcproj",
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_xml", "src\mod\dialplans\mod_dialplan_xml\mod_dialplan_xml.vcproj", "{07113B25-D3AF-4E04-BA77-4CD1171F022C}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FreeSwitchSetup", "w32\Setup\Setup.vdproj", "{B17FFBE6-A942-4056-8346-B624FB5D995B}"
@@ -119,22 +106,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ldap", "src\mod\directo
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dialplan_directory", "src\mod\dialplans\mod_dialplan_directory\mod_dialplan_directory.vcproj", "{A27CCA23-1541-4337-81A4-F0A6413078A0}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_zeroconf", "src\mod\event_handlers\mod_zeroconf\mod_zeroconf.vcproj", "{C7705DC4-2088-493E-AF8D-65BC6D65C125}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {49C34584-B6DA-448F-83CF-27584DC9FC90} = {49C34584-B6DA-448F-83CF-27584DC9FC90}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {49C34584-B6DA-448F-83CF-27584DC9FC90} = {49C34584-B6DA-448F-83CF-27584DC9FC90}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_multicast", "src\mod\event_handlers\mod_event_multicast\mod_event_multicast.vcproj", "{784113EF-44D9-4949-835D-7065D3C7AD08}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libteletone", "libs\libteletone\libteletone.vcproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}"
@@ -143,10 +130,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Languages", "Languages", "{
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey", "src\mod\languages\mod_spidermonkey\mod_spidermonkey.vcproj", "{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
                {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}"
@@ -168,22 +155,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_perl", "src\mod\languag
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_ilbc", "src\mod\codecs\mod_ilbc\mod_ilbc.vcproj", "{D3EC0AFF-76FC-4210-A825-9A17410660A3}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {989BB874-7AF1-44CB-8E5C-CC8113D267E8} = {989BB874-7AF1-44CB-8E5C-CC8113D267E8}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dingaling", "src\mod\endpoints\mod_dingaling\mod_dingaling.vcproj", "{FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}"
        ProjectSection(ProjectDependencies) = postProject
-               {1906D736-08BD-4EE1-924F-B536249B9A54} = {1906D736-08BD-4EE1-924F-B536249B9A54}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {1906D736-08BD-4EE1-924F-B536249B9A54} = {1906D736-08BD-4EE1-924F-B536249B9A54}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_commands", "src\mod\applications\mod_commands\mod_commands.vcproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}"
@@ -197,42 +184,42 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "XML Interfaces", "XML Inter
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_rpc", "src\mod\xml_int\mod_xml_rpc\mod_xml_rpc.vcproj", "{CBEC7225-0C21-4DA8-978E-1F158F8AD950}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {356EC96D-4C9F-47B5-9083-FC328B87BA94} = {356EC96D-4C9F-47B5-9083-FC328B87BA94}
-               {A3FE0076-B366-429D-A238-D7304DA7D3C1} = {A3FE0076-B366-429D-A238-D7304DA7D3C1}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
                {155844C3-EC5F-407F-97A4-A2DDADED9B2F} = {155844C3-EC5F-407F-97A4-A2DDADED9B2F}
+               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {A3FE0076-B366-429D-A238-D7304DA7D3C1} = {A3FE0076-B366-429D-A238-D7304DA7D3C1}
+               {356EC96D-4C9F-47B5-9083-FC328B87BA94} = {356EC96D-4C9F-47B5-9083-FC328B87BA94}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_rss", "src\mod\applications\mod_rss\mod_rss.vcproj", "{B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_conference", "src\mod\applications\mod_conference\mod_conference.vcproj", "{C24FB505-05D7-4319-8485-7540B44C8603}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_dptools", "src\mod\applications\mod_dptools\mod_dptools.vcproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.vcproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}"
        ProjectSection(ProjectDependencies) = postProject
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr", "src\mod\event_handlers\mod_cdr\mod_cdr.vcproj", "{3D1EED36-A510-4EDB-B4D9-4E0F4A5EC2A8}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Libraries", "_Libraries", "{EB910B0D-F27D-4B62-B67B-DE834C99AC5B}"
@@ -245,8 +232,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libiax2", "libs\iax\libiax2
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}"
        ProjectSection(ProjectDependencies) = postProject
-               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
                {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3}
+               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}"
@@ -271,8 +258,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libapriconv", "libs\win32\a
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libaprutil", "libs\win32\apr-util\libaprutil.vcproj", "{F057DA7F-79E5-4B00-845C-EF446EF055E3}"
        ProjectSection(ProjectDependencies) = postProject
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Downloads", "_Downloads", "{C120A020-773F-4EA3-923F-B67AF28B750D}"
@@ -290,8 +277,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "howl static library", "libs
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mDNSResponder static library", "libs\win32\howl\libmDNSResponder.vcproj", "{49C34584-B6DA-448F-83CF-27584DC9FC90}"
        ProjectSection(ProjectDependencies) = postProject
-               {5927104D-C14C-4AC8-925C-4AB681762E75} = {5927104D-C14C-4AC8-925C-4AB681762E75}
                {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE}
+               {5927104D-C14C-4AC8-925C-4AB681762E75} = {5927104D-C14C-4AC8-925C-4AB681762E75}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.vcproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}"
@@ -311,34 +298,34 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "js", "libs\win32\js\js.vcpr
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_sofia", "src\mod\endpoints\mod_sofia\mod_sofia.vcproj", "{0DF3ABD0-DDC0-4265-B778-07C66780979B}"
        ProjectSection(ProjectDependencies) = postProject
-               {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg726", "libs\codec\g726\libg726.vcproj", "{5A6A281A-AA50-470A-8305-202BDA1CD1BF}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g726", "src\mod\codecs\mod_g726\mod_g726.vcproj", "{486369EB-F150-4B56-BCC8-77B9E18FF5F5}"
        ProjectSection(ProjectDependencies) = postProject
-               {5A6A281A-AA50-470A-8305-202BDA1CD1BF} = {5A6A281A-AA50-470A-8305-202BDA1CD1BF}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {5A6A281A-AA50-470A-8305-202BDA1CD1BF} = {5A6A281A-AA50-470A-8305-202BDA1CD1BF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libg7xx", "libs\codec\g7xx\libg7xx.vcproj", "{D71E7338-8D9C-4FE4-A15F-D5CC60202C7C}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g722", "src\mod\codecs\mod_g722\mod_g722.vcproj", "{D42518CC-7475-454D-B392-0E132C07D761}"
        ProjectSection(ProjectDependencies) = postProject
-               {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C} = {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C} = {D71E7338-8D9C-4FE4-A15F-D5CC60202C7C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsofia_sip_ua_static", "libs\win32\sofia\libsofia_sip_ua_static.vcproj", "{70A49BC2-7500-41D0-B75D-EDCC5BE987A0}"
        ProjectSection(ProjectDependencies) = postProject
-               {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
                {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}
+               {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.vcproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}"
@@ -350,85 +337,83 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pthread", "libs\win32\pthre
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g723_1", "src\mod\codecs\mod_g723_1\mod_g723_1.vcproj", "{FEA1EEF7-876F-48DE-88BF-C0E3E606D758}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_native_file", "src\mod\formats\mod_native_file\mod_native_file.vcproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FreeSwitch.NET", "src\dotnet\FreeSwitch.NET.csproj", "{251CAABC-16C3-4593-A491-603B908094E0}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey_core_db\mod_spidermonkey_core_db.vcproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}"
        ProjectSection(ProjectDependencies) = postProject
-               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey_teletone\mod_spidermonkey_teletone.vcproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}"
        ProjectSection(ProjectDependencies) = postProject
-               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.vcproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.vcproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_etpan", "src\mod\languages\mod_spidermonkey_etpan\mod_spidermonkey_etpan.vcproj", "{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}"
        ProjectSection(ProjectDependencies) = postProject
-               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
-               {BA4DED3C-E56F-4484-BFC3-9C13E461A1BE} = {BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {BA4DED3C-E56F-4484-BFC3-9C13E461A1BE} = {BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}
+               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey_odbc\mod_spidermonkey_odbc.vcproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"
        ProjectSection(ProjectDependencies) = postProject
-               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libetpan", "libs\win32\etpan\libetpan.vcproj", "{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.vcproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}"
        ProjectSection(ProjectDependencies) = postProject
-               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
        EndProjectSection
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "say", "say", "{6CD61A1D-797C-470A-BE08-8C31B68BB336}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.vcproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}"
        ProjectSection(ProjectDependencies) = postProject
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.vcproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.vcproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}"
        ProjectSection(ProjectDependencies) = postProject
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.vcproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}"
@@ -467,7 +452,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Default", "Default", "{3B08
                conf\xml_cdr.conf.xml = conf\xml_cdr.conf.xml
                conf\xml_curl.conf.xml = conf\xml_curl.conf.xml
                conf\xml_rpc.conf.xml = conf\xml_rpc.conf.xml
-               conf\xmpp_event.conf.xml = conf\xmpp_event.conf.xml
                conf\zeroconf.conf.xml = conf\zeroconf.conf.xml
        EndProjectSection
 EndProject
@@ -582,16 +566,16 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mediaframe", "libs\openmrcp
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpcore", "libs\openmrcp\mrcpcore\mrcpcore.vcproj", "{829A9309-3B94-43C0-846B-7EC9D6D35F8B}"
        ProjectSection(ProjectDependencies) = postProject
-               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
                {AA91F0AC-6562-435E-814C-5C94689FEFA2} = {AA91F0AC-6562-435E-814C-5C94689FEFA2}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rtspcore", "libs\openmrcp\rtspcore\rtspcore.vcproj", "{EB751DC4-87BD-4766-B78D-DFB64BA9F988}"
        ProjectSection(ProjectDependencies) = postProject
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
                {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
+               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpmediaframe", "libs\openmrcp\module\mrcpmediaframe\mrcpmediaframe.vcproj", "{9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}"
@@ -608,8 +592,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "openmrcp", "openmrcp", "{AC
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpsofiasip", "libs\openmrcp\module\mrcpsofiasip\mrcpsofiasip.vcproj", "{819C7242-6184-46FE-BC7B-C7E25C0581EE}"
        ProjectSection(ProjectDependencies) = postProject
-               {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
                {829A9309-3B94-43C0-846B-7EC9D6D35F8B} = {829A9309-3B94-43C0-846B-7EC9D6D35F8B}
+               {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2agent", "libs\openmrcp\module\mrcpv2agent\mrcpv2agent.vcproj", "{FB64EA08-3BC0-48AE-BE4B-74F1024B756E}"
@@ -619,27 +603,27 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mrcpv2agent", "libs\openmrc
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libopenmrcpclient", "libs\openmrcp\platform\openmrcpclient\libopenmrcpclient.vcproj", "{A407B661-D7DC-4E30-B268-FFF3296C35E6}"
        ProjectSection(ProjectDependencies) = postProject
-               {CF78E84D-8456-44F2-8197-0E0E88D30A3C} = {CF78E84D-8456-44F2-8197-0E0E88D30A3C}
-               {819C7242-6184-46FE-BC7B-C7E25C0581EE} = {819C7242-6184-46FE-BC7B-C7E25C0581EE}
-               {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6} = {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}
                {FB64EA08-3BC0-48AE-BE4B-74F1024B756E} = {FB64EA08-3BC0-48AE-BE4B-74F1024B756E}
+               {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6} = {9EA22C31-BB7E-4C40-A698-2C6792D1E0C6}
+               {819C7242-6184-46FE-BC7B-C7E25C0581EE} = {819C7242-6184-46FE-BC7B-C7E25C0581EE}
+               {CF78E84D-8456-44F2-8197-0E0E88D30A3C} = {CF78E84D-8456-44F2-8197-0E0E88D30A3C}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_openmrcp", "src\mod\asr_tts\mod_openmrcp\mod_openmrcp.vcproj", "{E7116F50-2B10-472F-92BD-C8667AA9C1AE}"
        ProjectSection(ProjectDependencies) = postProject
-               {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
-               {A407B661-D7DC-4E30-B268-FFF3296C35E6} = {A407B661-D7DC-4E30-B268-FFF3296C35E6}
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {A407B661-D7DC-4E30-B268-FFF3296C35E6} = {A407B661-D7DC-4E30-B268-FFF3296C35E6}
+               {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_socket", "src\mod\languages\mod_spidermonkey_socket\mod_spidermonkey_socket.vcproj", "{028C7278-05D7-4E18-82FE-BE231B844F41}"
        ProjectSection(ProjectDependencies) = postProject
-               {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
-               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
-               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
                {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+               {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+               {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
        EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.vcproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}"
@@ -647,6 +631,31 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voicemail", "src\mod\ap
                {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
        EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_de", "src\mod\say\mod_say_de\mod_say_de.vcproj", "{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"
+       ProjectSection(ProjectDependencies) = postProject
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_es", "src\mod\say\mod_say_es\mod_say_es.vcproj", "{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"
+       ProjectSection(ProjectDependencies) = postProject
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_fr", "src\mod\say\mod_say_fr\mod_say_fr.vcproj", "{06E3A538-AB32-44F2-B477-755FF9CB5D37}"
+       ProjectSection(ProjectDependencies) = postProject
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_it", "src\mod\say\mod_say_it\mod_say_it.vcproj", "{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"
+       ProjectSection(ProjectDependencies) = postProject
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+       EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_nl", "src\mod\say\mod_say_nl\mod_say_nl.vcproj", "{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"
+       ProjectSection(ProjectDependencies) = postProject
+               {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+       EndProjectSection
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Win32 = Debug|Win32
@@ -679,24 +688,12 @@ Global
                {4926323F-4EA8-4B7D-A3D3-65488725988F}.Release|Win32.ActiveCfg = Release|Win32
                {4926323F-4EA8-4B7D-A3D3-65488725988F}.Release|Win32.Build.0 = Release|Win32
                {4926323F-4EA8-4B7D-A3D3-65488725988F}.Release|x64.ActiveCfg = Release|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Debug|Win32.ActiveCfg = Debug|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Debug|Win32.Build.0 = Debug|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Debug|x64.ActiveCfg = Debug|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Release|Win32.ActiveCfg = Release|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Release|Win32.Build.0 = Release|Win32
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}.Release|x64.ActiveCfg = Release|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.ActiveCfg = Debug|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.ActiveCfg = Release|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|Win32.Build.0 = Release|Win32
                {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release|x64.ActiveCfg = Release|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|Win32.ActiveCfg = Debug|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|Win32.Build.0 = Debug|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Debug|x64.ActiveCfg = Debug|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Release|Win32.ActiveCfg = Release|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Release|Win32.Build.0 = Release|Win32
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}.Release|x64.ActiveCfg = Release|Win32
                {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug|Win32.ActiveCfg = Debug|Win32
                {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug|Win32.Build.0 = Debug|Win32
                {B1FE4613-3F4B-4DAF-9714-2472BF8F56AE}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1055,10 +1052,6 @@ Global
                {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.ActiveCfg = Release|Win32
                {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|Win32.Build.0 = Release|Win32
                {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release|x64.ActiveCfg = Release|Win32
-               {251CAABC-16C3-4593-A491-603B908094E0}.Debug|Win32.ActiveCfg = Debug|Any CPU
-               {251CAABC-16C3-4593-A491-603B908094E0}.Debug|x64.ActiveCfg = Debug|Any CPU
-               {251CAABC-16C3-4593-A491-603B908094E0}.Release|Win32.ActiveCfg = Release|Any CPU
-               {251CAABC-16C3-4593-A491-603B908094E0}.Release|x64.ActiveCfg = Release|Any CPU
                {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.ActiveCfg = Debug|Win32
                {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|Win32.Build.0 = Debug|Win32
                {ACFFF684-4D19-4D48-AF12-88EA1D778BDF}.Debug|x64.ActiveCfg = Debug|Win32
@@ -1215,6 +1208,36 @@ Global
                {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.ActiveCfg = Release|Win32
                {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|Win32.Build.0 = Release|Win32
                {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release|x64.ActiveCfg = Release|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.ActiveCfg = Debug|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.ActiveCfg = Release|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|Win32.Build.0 = Release|Win32
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release|x64.ActiveCfg = Release|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.ActiveCfg = Debug|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.ActiveCfg = Release|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|Win32.Build.0 = Release|Win32
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release|x64.ActiveCfg = Release|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.ActiveCfg = Debug|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.ActiveCfg = Release|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|Win32.Build.0 = Release|Win32
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release|x64.ActiveCfg = Release|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.ActiveCfg = Debug|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.ActiveCfg = Release|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|Win32.Build.0 = Release|Win32
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release|x64.ActiveCfg = Release|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.ActiveCfg = Debug|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.ActiveCfg = Release|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|Win32.Build.0 = Release|Win32
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release|x64.ActiveCfg = Release|Win32
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE
@@ -1231,8 +1254,6 @@ Global
                {FEA1EEF7-876F-48DE-88BF-C0E3E606D758} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
                {8DEB383C-4091-4F42-A56F-C9E46D552D79} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
                {2C3C2423-234B-4772-8899-D3B137E5CA35} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
-               {3A2A7795-C216-4FFF-B8EF-4D17A84BACCC} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
-               {F10BE67C-A8FF-4CB2-AF29-D46D2590DC59} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
                {C7705DC4-2088-493E-AF8D-65BC6D65C125} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
                {784113EF-44D9-4949-835D-7065D3C7AD08} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
                {05515420-16DE-4E63-BE73-85BE85BA5142} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}
@@ -1304,6 +1325,11 @@ Global
                {5927104D-C14C-4AC8-925C-4AB681762E75} = {C120A020-773F-4EA3-923F-B67AF28B750D}
                {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
                {988CACF7-3FCB-4992-BE69-77872AE67DC8} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
+               {5BC072DB-3826-48EA-AF34-FE32AA01E83B} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
+               {FA429E98-8B03-45E6-A096-A4BC5E821DE4} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
+               {06E3A538-AB32-44F2-B477-755FF9CB5D37} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
+               {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
+               {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
                {3B08FEFD-4D3D-4C16-BA94-EE83509E32A0} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
                {7BFD517E-7F8F-4A40-A78E-8D3632738227} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
                {6374D55C-FABE-4A02-9CF1-4145308A56C5} = {57D119DC-484F-420F-B9E9-8589FD9A8DF8}
index 42088191af263f3c27231b93f899390c331100a4..200a99f4250e4c4752f00c30d7d3984c770a96ca 100644 (file)
@@ -54,4 +54,9 @@ xml_int/mod_xml_rpc
 #xml_int/mod_xml_curl
 xml_int/mod_xml_cdr
 say/mod_say_en
+#say/mod_say_de
+#say/mod_say_es
+#say/mod_say_fr
+#say/mod_say_it
+#say/mod_say_nl
 
similarity index 92%
rename from src/mod/say/mod_say_de/mod_say_en.c
rename to src/mod/say/mod_say_de/mod_say_de.c
index e74b1b1026167f6f55b1631b17b15d1c92b21391..674d3b24c76c30605acdafed054b5e2b12263ba7 100644 (file)
@@ -40,7 +40,7 @@
  * Anthony Minessale II <anthmct@yahoo.com>
  * Michael B. Murdock <mike@mmurdock.org>
  *
- * mod_say_en.c -- Say for English
+ * mod_say_de.c -- Say for German
  *
  */
 
 #include <math.h>
 #include <ctype.h>
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load);
-SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_de_load);
+SWITCH_MODULE_DEFINITION(mod_say_de, mod_say_de_load, NULL, NULL);
 
 #define say_num(num, t) {                                                      \
                char tmp[80];\
                switch_status_t status;\
                snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
-       if ((status = en_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
+       if ((status = de_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
                return status;\
        }}\
 
@@ -71,7 +71,7 @@ SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
                }}\
 
 
-static switch_status_t en_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t de_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *p;
 
@@ -166,7 +166,7 @@ static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
        return ret;
 }
 
-static switch_status_t en_say_general_count(switch_core_session_t *session,
+static switch_status_t de_say_general_count(switch_core_session_t *session,
                                                                                        char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -227,7 +227,7 @@ static switch_status_t en_say_general_count(switch_core_session_t *session,
 }
 
 
-static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t de_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *a, *b, *c, *d;
        switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -270,7 +270,7 @@ static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch
 }
 
 
-static switch_status_t en_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t de_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                   switch_input_args_t *args)
 {
        int32_t t;
@@ -417,7 +417,7 @@ static switch_status_t en_say_time(switch_core_session_t *session, char *tosay,
 }
 
 
-static switch_status_t en_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t de_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                        switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -456,7 +456,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
        }
 
        /* Say dollar amount */
-       en_say_general_count(session, dollars, type, method, args);
+       de_say_general_count(session, dollars, type, method, args);
        if (atoi(dollars) == 1) {
                say_file("currency/dollar.wav");
        } else {
@@ -468,7 +468,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
        /* Say cents */
        if (cents) {
-               en_say_general_count(session, cents, type, method, args);
+               de_say_general_count(session, cents, type, method, args);
                if (atoi(cents) == 1) {
                        say_file("currency/cent.wav");
                } else {
@@ -484,7 +484,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
 
 
-static switch_status_t en_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t de_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
 
        switch_say_callback_t say_cb = NULL;
@@ -494,23 +494,23 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        case SST_ITEMS:
        case SST_PERSONS:
        case SST_MESSAGES:
-               say_cb = en_say_general_count;
+               say_cb = de_say_general_count;
                break;
        case SST_TIME_MEASUREMENT:
        case SST_CURRENT_DATE:
        case SST_CURRENT_TIME:
        case SST_CURRENT_DATE_TIME:
-               say_cb = en_say_time;
+               say_cb = de_say_time;
                break;
        case SST_IP_ADDRESS:
-               say_cb = en_ip;
+               say_cb = de_ip;
                break;
        case SST_NAME_SPELLED:
        case SST_NAME_PHONETIC:
-               say_cb = en_spell;
+               say_cb = de_spell;
                break;
        case SST_CURRENCY:
-               say_cb = en_say_money;
+               say_cb = de_say_money;
                break;
        default:
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
@@ -524,14 +524,14 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        return SWITCH_STATUS_FALSE;
 }
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load)
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_de_load)
 {
        switch_say_interface_t *say_interface;
        /* connect my internal structure to the blank pointer passed to me */
        *module_interface = switch_loadable_module_create_module_interface(pool, modname);
        say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
-       say_interface->interface_name = "en";
-       say_interface->say_function = en_say;
+       say_interface->interface_name = "de";
+       say_interface->say_function = de_say;
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
similarity index 91%
rename from src/mod/say/mod_say_fr/mod_say_en.vcproj
rename to src/mod/say/mod_say_de/mod_say_de.vcproj
index 5ca386e6bc297c2bebd609512801fe486750eebc..a84feff98af79de9d09ec6316e389c2c0d3b797b 100644 (file)
@@ -2,9 +2,9 @@
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="8.00"\r
-       Name="mod_say_en"\r
-       ProjectGUID="{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
-       RootNamespace="mod_say_en"\r
+       Name="mod_say_de"\r
+       ProjectGUID="{5BC072DB-3826-48EA-AF34-FE32AA01E83B}"\r
+       RootNamespace="mod_say_de"\r
        Keyword="Win32Proj"\r
        >\r
        <Platforms>\r
@@ -69,7 +69,7 @@
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
                                SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_de.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                                SubSystem="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_de.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\mod_say_en.c"\r
+                               RelativePath=".\mod_say_de.c"\r
                                >\r
                        </File>\r
                </Filter>\r
similarity index 92%
rename from src/mod/say/mod_say_fr/mod_say_en.c
rename to src/mod/say/mod_say_es/mod_say_es.c
index e74b1b1026167f6f55b1631b17b15d1c92b21391..4d1dcd017a8a5ce21bf146493d682ec520950ea5 100644 (file)
@@ -40,7 +40,7 @@
  * Anthony Minessale II <anthmct@yahoo.com>
  * Michael B. Murdock <mike@mmurdock.org>
  *
- * mod_say_en.c -- Say for English
+ * mod_say_es.c -- Say for English
  *
  */
 
 #include <math.h>
 #include <ctype.h>
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load);
-SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_es_load);
+SWITCH_MODULE_DEFINITION(mod_say_es, mod_say_es_load, NULL, NULL);
 
 #define say_num(num, t) {                                                      \
                char tmp[80];\
                switch_status_t status;\
                snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
-       if ((status = en_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
+       if ((status = es_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
                return status;\
        }}\
 
@@ -71,7 +71,7 @@ SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
                }}\
 
 
-static switch_status_t en_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t es_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *p;
 
@@ -166,7 +166,7 @@ static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
        return ret;
 }
 
-static switch_status_t en_say_general_count(switch_core_session_t *session,
+static switch_status_t es_say_general_count(switch_core_session_t *session,
                                                                                        char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -227,7 +227,7 @@ static switch_status_t en_say_general_count(switch_core_session_t *session,
 }
 
 
-static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t es_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *a, *b, *c, *d;
        switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -270,7 +270,7 @@ static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch
 }
 
 
-static switch_status_t en_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t es_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                   switch_input_args_t *args)
 {
        int32_t t;
@@ -417,7 +417,7 @@ static switch_status_t en_say_time(switch_core_session_t *session, char *tosay,
 }
 
 
-static switch_status_t en_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t es_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                        switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -456,7 +456,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
        }
 
        /* Say dollar amount */
-       en_say_general_count(session, dollars, type, method, args);
+       es_say_general_count(session, dollars, type, method, args);
        if (atoi(dollars) == 1) {
                say_file("currency/dollar.wav");
        } else {
@@ -468,7 +468,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
        /* Say cents */
        if (cents) {
-               en_say_general_count(session, cents, type, method, args);
+               es_say_general_count(session, cents, type, method, args);
                if (atoi(cents) == 1) {
                        say_file("currency/cent.wav");
                } else {
@@ -484,7 +484,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
 
 
-static switch_status_t en_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t es_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
 
        switch_say_callback_t say_cb = NULL;
@@ -494,23 +494,23 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        case SST_ITEMS:
        case SST_PERSONS:
        case SST_MESSAGES:
-               say_cb = en_say_general_count;
+               say_cb = es_say_general_count;
                break;
        case SST_TIME_MEASUREMENT:
        case SST_CURRENT_DATE:
        case SST_CURRENT_TIME:
        case SST_CURRENT_DATE_TIME:
-               say_cb = en_say_time;
+               say_cb = es_say_time;
                break;
        case SST_IP_ADDRESS:
-               say_cb = en_ip;
+               say_cb = es_ip;
                break;
        case SST_NAME_SPELLED:
        case SST_NAME_PHONETIC:
-               say_cb = en_spell;
+               say_cb = es_spell;
                break;
        case SST_CURRENCY:
-               say_cb = en_say_money;
+               say_cb = es_say_money;
                break;
        default:
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
@@ -524,14 +524,14 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        return SWITCH_STATUS_FALSE;
 }
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load)
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_es_load)
 {
        switch_say_interface_t *say_interface;
        /* connect my internal structure to the blank pointer passed to me */
        *module_interface = switch_loadable_module_create_module_interface(pool, modname);
        say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
-       say_interface->interface_name = "en";
-       say_interface->say_function = en_say;
+       say_interface->interface_name = "es";
+       say_interface->say_function = es_say;
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
similarity index 91%
rename from src/mod/say/mod_say_de/mod_say_en.vcproj
rename to src/mod/say/mod_say_es/mod_say_es.vcproj
index 5ca386e6bc297c2bebd609512801fe486750eebc..5872ee205ebe247f9632ab52cb9fce097e09db1a 100644 (file)
@@ -2,9 +2,9 @@
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="8.00"\r
-       Name="mod_say_en"\r
-       ProjectGUID="{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
-       RootNamespace="mod_say_en"\r
+       Name="mod_say_es"\r
+       ProjectGUID="{FA429E98-8B03-45E6-A096-A4BC5E821DE4}"\r
+       RootNamespace="mod_say_es"\r
        Keyword="Win32Proj"\r
        >\r
        <Platforms>\r
@@ -69,7 +69,7 @@
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
                                SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_es.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                                SubSystem="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_es.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\mod_say_en.c"\r
+                               RelativePath=".\mod_say_es.c"\r
                                >\r
                        </File>\r
                </Filter>\r
similarity index 92%
rename from src/mod/say/mod_say_es/mod_say_en.c
rename to src/mod/say/mod_say_fr/mod_say_fr.c
index e74b1b1026167f6f55b1631b17b15d1c92b21391..955d867ef934a34e6012d3d44e80cdfe44297af3 100644 (file)
@@ -40,7 +40,7 @@
  * Anthony Minessale II <anthmct@yahoo.com>
  * Michael B. Murdock <mike@mmurdock.org>
  *
- * mod_say_en.c -- Say for English
+ * mod_say_fr.c -- Say for English
  *
  */
 
 #include <math.h>
 #include <ctype.h>
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load);
-SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_fr_load);
+SWITCH_MODULE_DEFINITION(mod_say_fr, mod_say_fr_load, NULL, NULL);
 
 #define say_num(num, t) {                                                      \
                char tmp[80];\
                switch_status_t status;\
                snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
-       if ((status = en_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
+       if ((status = fr_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
                return status;\
        }}\
 
@@ -71,7 +71,7 @@ SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
                }}\
 
 
-static switch_status_t en_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t fr_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *p;
 
@@ -166,7 +166,7 @@ static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
        return ret;
 }
 
-static switch_status_t en_say_general_count(switch_core_session_t *session,
+static switch_status_t fr_say_general_count(switch_core_session_t *session,
                                                                                        char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -227,7 +227,7 @@ static switch_status_t en_say_general_count(switch_core_session_t *session,
 }
 
 
-static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t fr_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *a, *b, *c, *d;
        switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -270,7 +270,7 @@ static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch
 }
 
 
-static switch_status_t en_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t fr_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                   switch_input_args_t *args)
 {
        int32_t t;
@@ -417,7 +417,7 @@ static switch_status_t en_say_time(switch_core_session_t *session, char *tosay,
 }
 
 
-static switch_status_t en_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t fr_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                        switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -456,7 +456,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
        }
 
        /* Say dollar amount */
-       en_say_general_count(session, dollars, type, method, args);
+       fr_say_general_count(session, dollars, type, method, args);
        if (atoi(dollars) == 1) {
                say_file("currency/dollar.wav");
        } else {
@@ -468,7 +468,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
        /* Say cents */
        if (cents) {
-               en_say_general_count(session, cents, type, method, args);
+               fr_say_general_count(session, cents, type, method, args);
                if (atoi(cents) == 1) {
                        say_file("currency/cent.wav");
                } else {
@@ -484,7 +484,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
 
 
-static switch_status_t en_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t fr_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
 
        switch_say_callback_t say_cb = NULL;
@@ -494,23 +494,23 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        case SST_ITEMS:
        case SST_PERSONS:
        case SST_MESSAGES:
-               say_cb = en_say_general_count;
+               say_cb = fr_say_general_count;
                break;
        case SST_TIME_MEASUREMENT:
        case SST_CURRENT_DATE:
        case SST_CURRENT_TIME:
        case SST_CURRENT_DATE_TIME:
-               say_cb = en_say_time;
+               say_cb = fr_say_time;
                break;
        case SST_IP_ADDRESS:
-               say_cb = en_ip;
+               say_cb = fr_ip;
                break;
        case SST_NAME_SPELLED:
        case SST_NAME_PHONETIC:
-               say_cb = en_spell;
+               say_cb = fr_spell;
                break;
        case SST_CURRENCY:
-               say_cb = en_say_money;
+               say_cb = fr_say_money;
                break;
        default:
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
@@ -524,14 +524,14 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        return SWITCH_STATUS_FALSE;
 }
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load)
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_fr_load)
 {
        switch_say_interface_t *say_interface;
        /* connect my internal structure to the blank pointer passed to me */
        *module_interface = switch_loadable_module_create_module_interface(pool, modname);
        say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
-       say_interface->interface_name = "en";
-       say_interface->say_function = en_say;
+       say_interface->interface_name = "fr";
+       say_interface->say_function = fr_say;
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
similarity index 91%
rename from src/mod/say/mod_say_it/mod_say_en.vcproj
rename to src/mod/say/mod_say_fr/mod_say_fr.vcproj
index 5ca386e6bc297c2bebd609512801fe486750eebc..f717eadc2e035d193d45ec4b9bd26e9a98872a42 100644 (file)
@@ -2,9 +2,9 @@
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="8.00"\r
-       Name="mod_say_en"\r
-       ProjectGUID="{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
-       RootNamespace="mod_say_en"\r
+       Name="mod_say_fr"\r
+       ProjectGUID="{06E3A538-AB32-44F2-B477-755FF9CB5D37}"\r
+       RootNamespace="mod_say_fr"\r
        Keyword="Win32Proj"\r
        >\r
        <Platforms>\r
@@ -69,7 +69,7 @@
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
                                SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_fr.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                                SubSystem="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_fr.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\mod_say_en.c"\r
+                               RelativePath=".\mod_say_fr.c"\r
                                >\r
                        </File>\r
                </Filter>\r
similarity index 92%
rename from src/mod/say/mod_say_it/mod_say_en.c
rename to src/mod/say/mod_say_it/mod_say_it.c
index e74b1b1026167f6f55b1631b17b15d1c92b21391..22817521515aeb4c32448621a7c64ededb1a6f43 100644 (file)
@@ -40,7 +40,7 @@
  * Anthony Minessale II <anthmct@yahoo.com>
  * Michael B. Murdock <mike@mmurdock.org>
  *
- * mod_say_en.c -- Say for English
+ * mod_say_it.c -- Say for English
  *
  */
 
 #include <math.h>
 #include <ctype.h>
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load);
-SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_it_load);
+SWITCH_MODULE_DEFINITION(mod_say_it, mod_say_it_load, NULL, NULL);
 
 #define say_num(num, t) {                                                      \
                char tmp[80];\
                switch_status_t status;\
                snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
-       if ((status = en_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
+       if ((status = it_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
                return status;\
        }}\
 
@@ -71,7 +71,7 @@ SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
                }}\
 
 
-static switch_status_t en_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t it_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *p;
 
@@ -166,7 +166,7 @@ static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
        return ret;
 }
 
-static switch_status_t en_say_general_count(switch_core_session_t *session,
+static switch_status_t it_say_general_count(switch_core_session_t *session,
                                                                                        char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -227,7 +227,7 @@ static switch_status_t en_say_general_count(switch_core_session_t *session,
 }
 
 
-static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t it_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
        char *a, *b, *c, *d;
        switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -270,7 +270,7 @@ static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch
 }
 
 
-static switch_status_t en_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t it_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                   switch_input_args_t *args)
 {
        int32_t t;
@@ -417,7 +417,7 @@ static switch_status_t en_say_time(switch_core_session_t *session, char *tosay,
 }
 
 
-static switch_status_t en_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+static switch_status_t it_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
                                                                        switch_input_args_t *args)
 {
        switch_channel_t *channel;
@@ -456,7 +456,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
        }
 
        /* Say dollar amount */
-       en_say_general_count(session, dollars, type, method, args);
+       it_say_general_count(session, dollars, type, method, args);
        if (atoi(dollars) == 1) {
                say_file("currency/dollar.wav");
        } else {
@@ -468,7 +468,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
        /* Say cents */
        if (cents) {
-               en_say_general_count(session, cents, type, method, args);
+               it_say_general_count(session, cents, type, method, args);
                if (atoi(cents) == 1) {
                        say_file("currency/cent.wav");
                } else {
@@ -484,7 +484,7 @@ static switch_status_t en_say_money(switch_core_session_t *session, char *tosay,
 
 
 
-static switch_status_t en_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+static switch_status_t it_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
 {
 
        switch_say_callback_t say_cb = NULL;
@@ -494,23 +494,23 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        case SST_ITEMS:
        case SST_PERSONS:
        case SST_MESSAGES:
-               say_cb = en_say_general_count;
+               say_cb = it_say_general_count;
                break;
        case SST_TIME_MEASUREMENT:
        case SST_CURRENT_DATE:
        case SST_CURRENT_TIME:
        case SST_CURRENT_DATE_TIME:
-               say_cb = en_say_time;
+               say_cb = it_say_time;
                break;
        case SST_IP_ADDRESS:
-               say_cb = en_ip;
+               say_cb = it_ip;
                break;
        case SST_NAME_SPELLED:
        case SST_NAME_PHONETIC:
-               say_cb = en_spell;
+               say_cb = it_spell;
                break;
        case SST_CURRENCY:
-               say_cb = en_say_money;
+               say_cb = it_say_money;
                break;
        default:
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
@@ -524,14 +524,14 @@ static switch_status_t en_say(switch_core_session_t *session, char *tosay, switc
        return SWITCH_STATUS_FALSE;
 }
 
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load)
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_it_load)
 {
        switch_say_interface_t *say_interface;
        /* connect my internal structure to the blank pointer passed to me */
        *module_interface = switch_loadable_module_create_module_interface(pool, modname);
        say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
-       say_interface->interface_name = "en";
-       say_interface->say_function = en_say;
+       say_interface->interface_name = "it";
+       say_interface->say_function = it_say;
 
        /* indicate that the module should continue to be loaded */
        return SWITCH_STATUS_SUCCESS;
similarity index 91%
rename from src/mod/say/mod_say_es/mod_say_en.vcproj
rename to src/mod/say/mod_say_it/mod_say_it.vcproj
index 5ca386e6bc297c2bebd609512801fe486750eebc..4974cc59900b3cba07620c0349e729e260be6090 100644 (file)
@@ -2,9 +2,9 @@
 <VisualStudioProject\r
        ProjectType="Visual C++"\r
        Version="8.00"\r
-       Name="mod_say_en"\r
-       ProjectGUID="{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
-       RootNamespace="mod_say_en"\r
+       Name="mod_say_it"\r
+       ProjectGUID="{6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}"\r
+       RootNamespace="mod_say_it"\r
        Keyword="Win32Proj"\r
        >\r
        <Platforms>\r
@@ -69,7 +69,7 @@
                                GenerateDebugInformation="true"\r
                                ProgramDatabaseFile="$(OutDir)$(TargetName).pdb"\r
                                SubSystem="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_it.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                                SubSystem="2"\r
                                OptimizeReferences="2"\r
                                EnableCOMDATFolding="2"\r
-                               ImportLibrary="$(OutDir)/mod_say_en.lib"\r
+                               ImportLibrary="$(OutDir)/mod_say_it.lib"\r
                                TargetMachine="1"\r
                        />\r
                        <Tool\r
                        UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
                        >\r
                        <File\r
-                               RelativePath=".\mod_say_en.c"\r
+                               RelativePath=".\mod_say_it.c"\r
                                >\r
                        </File>\r
                </Filter>\r
diff --git a/src/mod/say/mod_say_nl/mod_say_en.c b/src/mod/say/mod_say_nl/mod_say_en.c
deleted file mode 100644 (file)
index e74b1b1..0000000
+++ /dev/null
@@ -1,538 +0,0 @@
-/*
- * Copyright (c) 2007, Anthony Minessale II
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 
- * * Neither the name of the original author; nor the names of any contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- * 
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
- * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * 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>
- * Michael B. Murdock <mike@mmurdock.org>
- *
- * mod_say_en.c -- Say for English
- *
- */
-
-#include <switch.h>
-#include <math.h>
-#include <ctype.h>
-
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load);
-SWITCH_MODULE_DEFINITION(mod_say_en, mod_say_en_load, NULL, NULL);
-
-#define say_num(num, t) {                                                      \
-               char tmp[80];\
-               switch_status_t status;\
-               snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
-       if ((status = en_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
-               return status;\
-       }}\
-
-#define say_file(...) {\
-               char tmp[80];\
-               switch_status_t status;\
-               snprintf(tmp, sizeof(tmp), __VA_ARGS__);\
-               if ((status = switch_ivr_play_file(session, NULL, tmp, args)) != SWITCH_STATUS_SUCCESS){ \
-                       return status;\
-               }\
-               if (!switch_channel_ready(switch_core_session_get_channel(session))) {\
-                       return SWITCH_STATUS_FALSE;\
-               }}\
-
-
-static switch_status_t en_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
-{
-       char *p;
-
-       for (p = tosay; p && *p; p++) {
-               int a = tolower((int) *p);
-               if (a >= 48 && a <= 57) {
-                       say_file("digits/%d.wav", a - 48);
-               } else {
-                       if (type == SST_NAME_SPELLED) {
-                               say_file("ascii/%d.wav", a);
-                       } else if (type == SST_NAME_PHONETIC) {
-                               say_file("phonetic-ascii/%d.wav", a);
-                       }
-               }
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-static switch_status_t play_group(switch_say_method_t method, int a, int b, int c, char *what, switch_core_session_t *session, switch_input_args_t *args)
-{
-
-       if (a) {
-               say_file("digits/%d.wav", a);
-               say_file("digits/hundred.wav");
-       }
-
-       if (b) {
-               if (b > 1) {
-                       say_file("digits/%d0.wav", b);
-               } else {
-                       say_file("digits/%d%d.wav", b, c);
-                       c = 0;
-               }
-       }
-
-       if (c) {
-               if (method == SSM_COUNTED) {
-                       say_file("digits/h-%d.wav", c);
-               } else {
-                       say_file("digits/%d.wav", c);
-               }
-       }
-
-       if (what && (a || b || c)) {
-               say_file(what);
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-static char *strip_commas(char *in, char *out, switch_size_t len)
-{
-       char *p = in, *q = out;
-       char *ret = out;
-       switch_size_t x = 0;
-
-       for (; p && *p; p++) {
-               if ((*p > 47 && *p < 58)) {
-                       *q++ = *p;
-               } else if (*p != ',') {
-                       ret = NULL;
-                       break;
-               }
-
-               if (++x > len) {
-                       ret = NULL;
-                       break;
-               }
-       }
-
-       return ret;
-}
-
-static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
-{
-       char *p = in, *q = out;
-       char *ret = out;
-       switch_size_t x = 0;
-       // valid are 0 - 9, period (.), minus (-), and plus (+) - remove all others
-       for (; p && *p; p++) {
-               if ((*p > 47 && *p < 58) || *p == '.' || *p == '-' || *p == '+') {
-                       *q++ = *p;
-               }
-
-               if (++x > len) {
-                       ret = NULL;
-                       break;
-               }
-       }
-
-       return ret;
-}
-
-static switch_status_t en_say_general_count(switch_core_session_t *session,
-                                                                                       char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
-{
-       switch_channel_t *channel;
-       int in;
-       int x = 0;
-       int places[9] = { 0 };
-       char sbuf[13] = "";
-       switch_status_t status;
-
-       assert(session != NULL);
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       if (!(tosay = strip_commas(tosay, sbuf, sizeof(sbuf))) || strlen(tosay) > 9) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Parse Error!\n");
-               return SWITCH_STATUS_GENERR;
-       }
-
-       in = atoi(tosay);
-
-       if (in != 0) {
-               for (x = 8; x >= 0; x--) {
-                       int num = (int) pow(10, x);
-                       if ((places[(uint32_t)x] = in / num)) {
-                               in -= places[(uint32_t)x] * num;
-                       }
-               }
-
-               switch (method) {
-               case SSM_COUNTED:
-               case SSM_PRONOUNCED:
-                       if ((status = play_group(SSM_PRONOUNCED, places[8], places[7], places[6], "digits/million.wav", session, args)) != SWITCH_STATUS_SUCCESS) {
-                               return status;
-                       }
-                       if ((status = play_group(SSM_PRONOUNCED, places[5], places[4], places[3], "digits/thousand.wav", session, args)) != SWITCH_STATUS_SUCCESS) {
-                               return status;
-                       }
-                       if ((status = play_group(method, places[2], places[1], places[0], NULL, session, args)) != SWITCH_STATUS_SUCCESS) {
-                               return status;
-                       }
-                       break;
-               case SSM_ITERATED:
-                       {
-                               char *p;
-                               for (p = tosay; p && *p; p++) {
-                                       say_file("digits/%c.wav", *p);
-                               }
-                       }
-                       break;
-               default:
-                       break;
-               }
-       } else {
-               say_file("digits/0.wav");
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-
-static switch_status_t en_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
-{
-       char *a, *b, *c, *d;
-       switch_status_t status = SWITCH_STATUS_SUCCESS;
-       if (!(a = strdup(tosay))) {
-               return SWITCH_STATUS_FALSE;
-       }
-
-       if (!(b = strchr(a, '.'))) {
-               status = SWITCH_STATUS_FALSE;
-               goto done;
-       }
-
-       *b++ = '\0';
-
-       if (!(c = strchr(b, '.'))) {
-               status = SWITCH_STATUS_FALSE;
-               goto done;
-       }
-
-       *c++ = '\0';
-
-       if (!(d = strchr(c, '.'))) {
-               status = SWITCH_STATUS_FALSE;
-               goto done;
-       }
-
-       *d++ = '\0';
-
-       say_num(atoi(a), method);
-       say_file("digits/dot.wav");
-       say_num(atoi(b), method);
-       say_file("digits/dot.wav");
-       say_num(atoi(c), method);
-       say_file("digits/dot.wav");
-       say_num(atoi(d), method);
-
-  done:
-       switch_safe_free(a);
-       return status;
-}
-
-
-static switch_status_t en_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
-                                                                  switch_input_args_t *args)
-{
-       int32_t t;
-       switch_time_t target = 0;
-       switch_time_exp_t tm;
-       uint8_t say_date = 0, say_time = 0;
-
-       if (type == SST_TIME_MEASUREMENT) {
-               int64_t hours = 0;
-               int64_t minutes = 0;
-               int64_t seconds = 0;
-               int64_t r = 0;
-
-               if (strchr(tosay, ':')) {
-                       char *tme = switch_core_session_strdup(session, tosay);
-                       char *p;
-
-                       if ((p = strrchr(tme, ':'))) {
-                               *p++ = '\0';
-                               seconds = atoi(p);
-                               if ((p = strchr(tme, ':'))) {
-                                       *p++ = '\0';
-                                       minutes = atoi(p);
-                                       if (tme) {
-                                               hours = atoi(tme);
-                                       }
-                               } else {
-                                       minutes = atoi(tme);
-                               }
-                       }
-               } else {
-                       if ((seconds = atoi(tosay)) <= 0) {
-                               seconds = (int64_t) time(NULL);
-                       }
-
-                       if (seconds >= 60) {
-                               minutes = seconds / 60;
-                               r = seconds % 60;
-                               seconds = r;
-                       }
-
-                       if (minutes >= 60) {
-                               hours = minutes / 60;
-                               r = minutes % 60;
-                               minutes = r;
-                       }
-               }
-
-               if (hours) {
-                       say_num(hours, SSM_PRONOUNCED);
-                       if (hours == 1) {
-                               say_file("time/hour.wav");
-                       } else {
-                               say_file("time/hours.wav");
-                       }
-               } else {
-                       say_file("digits/0.wav");
-                       say_file("time/hours.wav");
-               }
-
-               if (minutes) {
-                       say_num(minutes, SSM_PRONOUNCED);
-                       if (minutes == 1) {
-                               say_file("time/minute.wav");
-                       } else {
-                               say_file("time/minutes.wav");
-                       }
-               } else {
-                       say_file("digits/0.wav");
-                       say_file("time/minutes.wav");
-               }
-
-               if (seconds) {
-                       say_num(seconds, SSM_PRONOUNCED);
-                       if (seconds == 1) {
-                               say_file("time/second.wav");
-                       } else {
-                               say_file("time/seconds.wav");
-                       }
-               } else {
-                       say_file("digits/0.wav");
-                       say_file("time/seconds.wav");
-               }
-
-               return SWITCH_STATUS_SUCCESS;
-       }
-
-       if ((t = atoi(tosay)) > 0) {
-               target = switch_time_make(t, 0);
-       } else {
-               target = switch_timestamp_now();
-       }
-       switch_time_exp_lt(&tm, target);
-
-       switch (type) {
-       case SST_CURRENT_DATE_TIME:
-               say_date = say_time = 1;
-               break;
-       case SST_CURRENT_DATE:
-               say_date = 1;
-               break;
-       case SST_CURRENT_TIME:
-               say_time = 1;
-               break;
-       default:
-               break;
-       }
-
-       if (say_date) {
-               say_file("time/day-%d.wav", tm.tm_wday);
-               say_file("time/mon-%d.wav", tm.tm_mon);
-               say_num(tm.tm_mday, SSM_COUNTED);
-               say_num(tm.tm_year + 1900, SSM_PRONOUNCED);
-       }
-
-       if (say_time) {
-               int32_t hour = tm.tm_hour, pm = 0;
-
-               if (hour > 12) {
-                       hour -= 12;
-                       pm = 1;
-               } else if (hour == 12) {
-                       pm = 1;
-               } else if (hour == 0) {
-                       hour = 12;
-                       pm = 0;
-               }
-
-               say_num(hour, SSM_PRONOUNCED);
-
-               if (tm.tm_min > 9) {
-                       say_num(tm.tm_min, SSM_PRONOUNCED);
-               } else if (tm.tm_min) {
-                       say_file("time/oh.wav");
-                       say_num(tm.tm_min, SSM_PRONOUNCED);
-               } else {
-                       say_file("time/oclock.wav");
-               }
-
-               say_file("time/%s.wav", pm ? "p-m" : "a-m");
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-
-static switch_status_t en_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
-                                                                       switch_input_args_t *args)
-{
-       switch_channel_t *channel;
-
-       char sbuf[16] = "";                     /* enough for 999,999,999,999.99 (w/o the commas or leading $) */
-       char *dollars = NULL;
-       char *cents = NULL;
-
-       assert(session != NULL);
-       channel = switch_core_session_get_channel(session);
-       assert(channel != NULL);
-
-       if (strlen(tosay) > 15 || !(tosay = strip_nonnumerics(tosay, sbuf, sizeof(sbuf)))) {
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Parse Error!\n");
-               return SWITCH_STATUS_GENERR;
-       }
-
-       dollars = sbuf;
-
-       if ((cents = strchr(sbuf, '.'))) {
-               *cents++ = '\0';
-               if (strlen(cents) > 2) {
-                       cents[2] = '\0';
-               }
-       }
-
-       /* If positive sign - skip over" */
-       if (sbuf[0] == '+') {
-               dollars++;
-       }
-
-       /* If negative say "negative" */
-       if (sbuf[0] == '-') {
-               say_file("currency/negative.wav");
-               dollars++;
-       }
-
-       /* Say dollar amount */
-       en_say_general_count(session, dollars, type, method, args);
-       if (atoi(dollars) == 1) {
-               say_file("currency/dollar.wav");
-       } else {
-               say_file("currency/dollars.wav");
-       }
-
-       /* Say "and" */
-       say_file("currency/and.wav");
-
-       /* Say cents */
-       if (cents) {
-               en_say_general_count(session, cents, type, method, args);
-               if (atoi(cents) == 1) {
-                       say_file("currency/cent.wav");
-               } else {
-                       say_file("currency/cents.wav");
-               }
-       } else {
-               say_file("digits/0.wav");
-               say_file("currency/cents.wav");
-       }
-
-       return SWITCH_STATUS_SUCCESS;
-}
-
-
-
-static switch_status_t en_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
-{
-
-       switch_say_callback_t say_cb = NULL;
-
-       switch (type) {
-       case SST_NUMBER:
-       case SST_ITEMS:
-       case SST_PERSONS:
-       case SST_MESSAGES:
-               say_cb = en_say_general_count;
-               break;
-       case SST_TIME_MEASUREMENT:
-       case SST_CURRENT_DATE:
-       case SST_CURRENT_TIME:
-       case SST_CURRENT_DATE_TIME:
-               say_cb = en_say_time;
-               break;
-       case SST_IP_ADDRESS:
-               say_cb = en_ip;
-               break;
-       case SST_NAME_SPELLED:
-       case SST_NAME_PHONETIC:
-               say_cb = en_spell;
-               break;
-       case SST_CURRENCY:
-               say_cb = en_say_money;
-               break;
-       default:
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
-               break;
-       }
-
-       if (say_cb) {
-               return say_cb(session, tosay, type, method, args);
-       }
-
-       return SWITCH_STATUS_FALSE;
-}
-
-SWITCH_MODULE_LOAD_FUNCTION(mod_say_en_load)
-{
-       switch_say_interface_t *say_interface;
-       /* connect my internal structure to the blank pointer passed to me */
-       *module_interface = switch_loadable_module_create_module_interface(pool, modname);
-       say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
-       say_interface->interface_name = "en";
-       say_interface->say_function = en_say;
-
-       /* indicate that the module should continue to be loaded */
-       return SWITCH_STATUS_SUCCESS;
-}
diff --git a/src/mod/say/mod_say_nl/mod_say_en.vcproj b/src/mod/say/mod_say_nl/mod_say_en.vcproj
deleted file mode 100644 (file)
index 5ca386e..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_say_en"\r
-       ProjectGUID="{988CACF7-3FCB-4992-BE69-77872AE67DC8}"\r
-       RootNamespace="mod_say_en"\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_say_en.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_say_en.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_say_en.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/say/mod_say_nl/mod_say_nl.c b/src/mod/say/mod_say_nl/mod_say_nl.c
new file mode 100644 (file)
index 0000000..82c5d49
--- /dev/null
@@ -0,0 +1,538 @@
+/*
+ * Copyright (c) 2007, Anthony Minessale II
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 
+ * * Neither the name of the original author; nor the names of any contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ * 
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER
+ * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * 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>
+ * Michael B. Murdock <mike@mmurdock.org>
+ *
+ * mod_say_nl.c -- Say for English
+ *
+ */
+
+#include <switch.h>
+#include <math.h>
+#include <ctype.h>
+
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_nl_load);
+SWITCH_MODULE_DEFINITION(mod_say_nl, mod_say_nl_load, NULL, NULL);
+
+#define say_num(num, t) {                                                      \
+               char tmp[80];\
+               switch_status_t status;\
+               snprintf(tmp, sizeof(tmp), "%u", (unsigned)num);                                \
+       if ((status = nl_say_general_count(session, tmp, SST_ITEMS, t, args)) != SWITCH_STATUS_SUCCESS) {\
+               return status;\
+       }}\
+
+#define say_file(...) {\
+               char tmp[80];\
+               switch_status_t status;\
+               snprintf(tmp, sizeof(tmp), __VA_ARGS__);\
+               if ((status = switch_ivr_play_file(session, NULL, tmp, args)) != SWITCH_STATUS_SUCCESS){ \
+                       return status;\
+               }\
+               if (!switch_channel_ready(switch_core_session_get_channel(session))) {\
+                       return SWITCH_STATUS_FALSE;\
+               }}\
+
+
+static switch_status_t nl_spell(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+{
+       char *p;
+
+       for (p = tosay; p && *p; p++) {
+               int a = tolower((int) *p);
+               if (a >= 48 && a <= 57) {
+                       say_file("digits/%d.wav", a - 48);
+               } else {
+                       if (type == SST_NAME_SPELLED) {
+                               say_file("ascii/%d.wav", a);
+                       } else if (type == SST_NAME_PHONETIC) {
+                               say_file("phonetic-ascii/%d.wav", a);
+                       }
+               }
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+static switch_status_t play_group(switch_say_method_t method, int a, int b, int c, char *what, switch_core_session_t *session, switch_input_args_t *args)
+{
+
+       if (a) {
+               say_file("digits/%d.wav", a);
+               say_file("digits/hundred.wav");
+       }
+
+       if (b) {
+               if (b > 1) {
+                       say_file("digits/%d0.wav", b);
+               } else {
+                       say_file("digits/%d%d.wav", b, c);
+                       c = 0;
+               }
+       }
+
+       if (c) {
+               if (method == SSM_COUNTED) {
+                       say_file("digits/h-%d.wav", c);
+               } else {
+                       say_file("digits/%d.wav", c);
+               }
+       }
+
+       if (what && (a || b || c)) {
+               say_file(what);
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+static char *strip_commas(char *in, char *out, switch_size_t len)
+{
+       char *p = in, *q = out;
+       char *ret = out;
+       switch_size_t x = 0;
+
+       for (; p && *p; p++) {
+               if ((*p > 47 && *p < 58)) {
+                       *q++ = *p;
+               } else if (*p != ',') {
+                       ret = NULL;
+                       break;
+               }
+
+               if (++x > len) {
+                       ret = NULL;
+                       break;
+               }
+       }
+
+       return ret;
+}
+
+static char *strip_nonnumerics(char *in, char *out, switch_size_t len)
+{
+       char *p = in, *q = out;
+       char *ret = out;
+       switch_size_t x = 0;
+       // valid are 0 - 9, period (.), minus (-), and plus (+) - remove all others
+       for (; p && *p; p++) {
+               if ((*p > 47 && *p < 58) || *p == '.' || *p == '-' || *p == '+') {
+                       *q++ = *p;
+               }
+
+               if (++x > len) {
+                       ret = NULL;
+                       break;
+               }
+       }
+
+       return ret;
+}
+
+static switch_status_t nl_say_general_count(switch_core_session_t *session,
+                                                                                       char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+{
+       switch_channel_t *channel;
+       int in;
+       int x = 0;
+       int places[9] = { 0 };
+       char sbuf[13] = "";
+       switch_status_t status;
+
+       assert(session != NULL);
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       if (!(tosay = strip_commas(tosay, sbuf, sizeof(sbuf))) || strlen(tosay) > 9) {
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Parse Error!\n");
+               return SWITCH_STATUS_GENERR;
+       }
+
+       in = atoi(tosay);
+
+       if (in != 0) {
+               for (x = 8; x >= 0; x--) {
+                       int num = (int) pow(10, x);
+                       if ((places[(uint32_t)x] = in / num)) {
+                               in -= places[(uint32_t)x] * num;
+                       }
+               }
+
+               switch (method) {
+               case SSM_COUNTED:
+               case SSM_PRONOUNCED:
+                       if ((status = play_group(SSM_PRONOUNCED, places[8], places[7], places[6], "digits/million.wav", session, args)) != SWITCH_STATUS_SUCCESS) {
+                               return status;
+                       }
+                       if ((status = play_group(SSM_PRONOUNCED, places[5], places[4], places[3], "digits/thousand.wav", session, args)) != SWITCH_STATUS_SUCCESS) {
+                               return status;
+                       }
+                       if ((status = play_group(method, places[2], places[1], places[0], NULL, session, args)) != SWITCH_STATUS_SUCCESS) {
+                               return status;
+                       }
+                       break;
+               case SSM_ITERATED:
+                       {
+                               char *p;
+                               for (p = tosay; p && *p; p++) {
+                                       say_file("digits/%c.wav", *p);
+                               }
+                       }
+                       break;
+               default:
+                       break;
+               }
+       } else {
+               say_file("digits/0.wav");
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+
+static switch_status_t nl_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+{
+       char *a, *b, *c, *d;
+       switch_status_t status = SWITCH_STATUS_SUCCESS;
+       if (!(a = strdup(tosay))) {
+               return SWITCH_STATUS_FALSE;
+       }
+
+       if (!(b = strchr(a, '.'))) {
+               status = SWITCH_STATUS_FALSE;
+               goto done;
+       }
+
+       *b++ = '\0';
+
+       if (!(c = strchr(b, '.'))) {
+               status = SWITCH_STATUS_FALSE;
+               goto done;
+       }
+
+       *c++ = '\0';
+
+       if (!(d = strchr(c, '.'))) {
+               status = SWITCH_STATUS_FALSE;
+               goto done;
+       }
+
+       *d++ = '\0';
+
+       say_num(atoi(a), method);
+       say_file("digits/dot.wav");
+       say_num(atoi(b), method);
+       say_file("digits/dot.wav");
+       say_num(atoi(c), method);
+       say_file("digits/dot.wav");
+       say_num(atoi(d), method);
+
+  done:
+       switch_safe_free(a);
+       return status;
+}
+
+
+static switch_status_t nl_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+                                                                  switch_input_args_t *args)
+{
+       int32_t t;
+       switch_time_t target = 0;
+       switch_time_exp_t tm;
+       uint8_t say_date = 0, say_time = 0;
+
+       if (type == SST_TIME_MEASUREMENT) {
+               int64_t hours = 0;
+               int64_t minutes = 0;
+               int64_t seconds = 0;
+               int64_t r = 0;
+
+               if (strchr(tosay, ':')) {
+                       char *tme = switch_core_session_strdup(session, tosay);
+                       char *p;
+
+                       if ((p = strrchr(tme, ':'))) {
+                               *p++ = '\0';
+                               seconds = atoi(p);
+                               if ((p = strchr(tme, ':'))) {
+                                       *p++ = '\0';
+                                       minutes = atoi(p);
+                                       if (tme) {
+                                               hours = atoi(tme);
+                                       }
+                               } else {
+                                       minutes = atoi(tme);
+                               }
+                       }
+               } else {
+                       if ((seconds = atoi(tosay)) <= 0) {
+                               seconds = (int64_t) time(NULL);
+                       }
+
+                       if (seconds >= 60) {
+                               minutes = seconds / 60;
+                               r = seconds % 60;
+                               seconds = r;
+                       }
+
+                       if (minutes >= 60) {
+                               hours = minutes / 60;
+                               r = minutes % 60;
+                               minutes = r;
+                       }
+               }
+
+               if (hours) {
+                       say_num(hours, SSM_PRONOUNCED);
+                       if (hours == 1) {
+                               say_file("time/hour.wav");
+                       } else {
+                               say_file("time/hours.wav");
+                       }
+               } else {
+                       say_file("digits/0.wav");
+                       say_file("time/hours.wav");
+               }
+
+               if (minutes) {
+                       say_num(minutes, SSM_PRONOUNCED);
+                       if (minutes == 1) {
+                               say_file("time/minute.wav");
+                       } else {
+                               say_file("time/minutes.wav");
+                       }
+               } else {
+                       say_file("digits/0.wav");
+                       say_file("time/minutes.wav");
+               }
+
+               if (seconds) {
+                       say_num(seconds, SSM_PRONOUNCED);
+                       if (seconds == 1) {
+                               say_file("time/second.wav");
+                       } else {
+                               say_file("time/seconds.wav");
+                       }
+               } else {
+                       say_file("digits/0.wav");
+                       say_file("time/seconds.wav");
+               }
+
+               return SWITCH_STATUS_SUCCESS;
+       }
+
+       if ((t = atoi(tosay)) > 0) {
+               target = switch_time_make(t, 0);
+       } else {
+               target = switch_timestamp_now();
+       }
+       switch_time_exp_lt(&tm, target);
+
+       switch (type) {
+       case SST_CURRENT_DATE_TIME:
+               say_date = say_time = 1;
+               break;
+       case SST_CURRENT_DATE:
+               say_date = 1;
+               break;
+       case SST_CURRENT_TIME:
+               say_time = 1;
+               break;
+       default:
+               break;
+       }
+
+       if (say_date) {
+               say_file("time/day-%d.wav", tm.tm_wday);
+               say_file("time/mon-%d.wav", tm.tm_mon);
+               say_num(tm.tm_mday, SSM_COUNTED);
+               say_num(tm.tm_year + 1900, SSM_PRONOUNCED);
+       }
+
+       if (say_time) {
+               int32_t hour = tm.tm_hour, pm = 0;
+
+               if (hour > 12) {
+                       hour -= 12;
+                       pm = 1;
+               } else if (hour == 12) {
+                       pm = 1;
+               } else if (hour == 0) {
+                       hour = 12;
+                       pm = 0;
+               }
+
+               say_num(hour, SSM_PRONOUNCED);
+
+               if (tm.tm_min > 9) {
+                       say_num(tm.tm_min, SSM_PRONOUNCED);
+               } else if (tm.tm_min) {
+                       say_file("time/oh.wav");
+                       say_num(tm.tm_min, SSM_PRONOUNCED);
+               } else {
+                       say_file("time/oclock.wav");
+               }
+
+               say_file("time/%s.wav", pm ? "p-m" : "a-m");
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+
+static switch_status_t nl_say_money(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method,
+                                                                       switch_input_args_t *args)
+{
+       switch_channel_t *channel;
+
+       char sbuf[16] = "";                     /* enough for 999,999,999,999.99 (w/o the commas or leading $) */
+       char *dollars = NULL;
+       char *cents = NULL;
+
+       assert(session != NULL);
+       channel = switch_core_session_get_channel(session);
+       assert(channel != NULL);
+
+       if (strlen(tosay) > 15 || !(tosay = strip_nonnumerics(tosay, sbuf, sizeof(sbuf)))) {
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Parse Error!\n");
+               return SWITCH_STATUS_GENERR;
+       }
+
+       dollars = sbuf;
+
+       if ((cents = strchr(sbuf, '.'))) {
+               *cents++ = '\0';
+               if (strlen(cents) > 2) {
+                       cents[2] = '\0';
+               }
+       }
+
+       /* If positive sign - skip over" */
+       if (sbuf[0] == '+') {
+               dollars++;
+       }
+
+       /* If negative say "negative" */
+       if (sbuf[0] == '-') {
+               say_file("currency/negative.wav");
+               dollars++;
+       }
+
+       /* Say dollar amount */
+       nl_say_general_count(session, dollars, type, method, args);
+       if (atoi(dollars) == 1) {
+               say_file("currency/dollar.wav");
+       } else {
+               say_file("currency/dollars.wav");
+       }
+
+       /* Say "and" */
+       say_file("currency/and.wav");
+
+       /* Say cents */
+       if (cents) {
+               nl_say_general_count(session, cents, type, method, args);
+               if (atoi(cents) == 1) {
+                       say_file("currency/cent.wav");
+               } else {
+                       say_file("currency/cents.wav");
+               }
+       } else {
+               say_file("digits/0.wav");
+               say_file("currency/cents.wav");
+       }
+
+       return SWITCH_STATUS_SUCCESS;
+}
+
+
+
+static switch_status_t nl_say(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args)
+{
+
+       switch_say_callback_t say_cb = NULL;
+
+       switch (type) {
+       case SST_NUMBER:
+       case SST_ITEMS:
+       case SST_PERSONS:
+       case SST_MESSAGES:
+               say_cb = nl_say_general_count;
+               break;
+       case SST_TIME_MEASUREMENT:
+       case SST_CURRENT_DATE:
+       case SST_CURRENT_TIME:
+       case SST_CURRENT_DATE_TIME:
+               say_cb = nl_say_time;
+               break;
+       case SST_IP_ADDRESS:
+               say_cb = nl_ip;
+               break;
+       case SST_NAME_SPELLED:
+       case SST_NAME_PHONETIC:
+               say_cb = nl_spell;
+               break;
+       case SST_CURRENCY:
+               say_cb = nl_say_money;
+               break;
+       default:
+               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Unknown Say type=[%d]\n", type);
+               break;
+       }
+
+       if (say_cb) {
+               return say_cb(session, tosay, type, method, args);
+       }
+
+       return SWITCH_STATUS_FALSE;
+}
+
+SWITCH_MODULE_LOAD_FUNCTION(mod_say_nl_load)
+{
+       switch_say_interface_t *say_interface;
+       /* connect my internal structure to the blank pointer passed to me */
+       *module_interface = switch_loadable_module_create_module_interface(pool, modname);
+       say_interface = switch_loadable_module_create_interface(*module_interface, SWITCH_SAY_INTERFACE);
+       say_interface->interface_name = "nl";
+       say_interface->say_function = nl_say;
+
+       /* indicate that the module should continue to be loaded */
+       return SWITCH_STATUS_SUCCESS;
+}
diff --git a/src/mod/say/mod_say_nl/mod_say_nl.vcproj b/src/mod/say/mod_say_nl/mod_say_nl.vcproj
new file mode 100644 (file)
index 0000000..49d5afd
--- /dev/null
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="mod_say_nl"\r
+       ProjectGUID="{A4B122CF-5196-476B-8C0E-D8BD59AC3C14}"\r
+       RootNamespace="mod_say_nl"\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_say_nl.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_say_nl.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_say_nl.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 353e23b2b621e0f98ffe236085f895030146f217..4fb1ebdac2406ea3d04cdeb08ebcbc90899c259e 100644 (file)
         }\r
         "Entry"\r
         {\r
+        "MsmKey" = "8:_2F84F5A8D457407E885F25791D218785"\r
+        "OwnerKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\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:_59CFED0C4EC0492C945E4EBC04FE965F"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_684D96FA2BDD46909367E651099D8C4E"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_6A4CAD73F43678BF7C05E8FB41042F74"\r
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_87768631363249B2B301143C193612F7"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
-        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_D6F0F5845FAD4707975CE012A33CD607"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
         "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"\r
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_A164EF86C4B57E41C8CE77B48F39DAC7"\r
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_D0BB09AFB8D94B76918F0EE85BCCAD0A"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_A3936A2727E73289F5804D5DA006FD0A"\r
-        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
-        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
-        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
-        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_87768631363249B2B301143C193612F7"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_B7F6D0EDAE0C462A8F0EB1FD68D49399"\r
-        "OwnerKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_684D96FA2BDD46909367E651099D8C4E"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_BB649A2C1ABE4895859025B09A240323"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_F84240319757424DB1C58AD0AD420127"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_F0B800E719294692A02518CFD8CBAEFF"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_EF14CB99F3414BB689D0CB0E6D6B8AB8"\r
+        "MsmKey" = "8:_4EA9DF31ED2848AE86E809D40FC906C3"\r
+        "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_E763C699DF0948B6984DDEB96A2DFD06"\r
+        "MsmKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_D7EC5795A9C645AC8E129C2EE6D461ED"\r
+        "MsmKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_D6F0F5845FAD4707975CE012A33CD607"\r
+        "MsmKey" = "8:_684D96FA2BDD46909367E651099D8C4E"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
+        "MsmKey" = "8:_6A4CAD73F43678BF7C05E8FB41042F74"\r
         "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_D1269F1E49D442CF8EAC96C23E60325D"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_D0BB09AFB8D94B76918F0EE85BCCAD0A"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"\r
+        "MsmKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
+        "MsmKey" = "8:_83062AA0528B40A59202BC7668F7132A"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"\r
+        "MsmKey" = "8:_87768631363249B2B301143C193612F7"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
+        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"\r
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"\r
+        "MsmKey" = "8:_879085EF680EFDF6242DCB77439EC825"\r
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_87768631363249B2B301143C193612F7"\r
+        "MsmKey" = "8:_91BA2668F87764F53188E93BC8D363D7"\r
+        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_83C1B93AD71B4F8F9E074F9607B60DF1"\r
+        "MsmKey" = "8:_A0D5F714A0F94250A1C39603B699AB82"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_6E5C001E7A314DCEA0A4BF52BF74BCAD"\r
+        "MsmKey" = "8:_A164EF86C4B57E41C8CE77B48F39DAC7"\r
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_684D96FA2BDD46909367E651099D8C4E"\r
+        "MsmKey" = "8:_A3936A2727E73289F5804D5DA006FD0A"\r
+        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_5A636BB90F7F4B86ACB8839EA2C899AA"\r
+        "MsmKey" = "8:_A944ADCEDF884574A23F7BA5420A6BA1"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_59CFED0C4EC0492C945E4EBC04FE965F"\r
+        "MsmKey" = "8:_AD2EB44FE6D548F2A8DA4F9F2CE817AC"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_4A285D260C3748A4BEFA6E5A9004D128"\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_1CFB1AB04E024FC993E0EB4859DF8408"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_3FBEFE0119944C6781F81104ECEF37CA"\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_FBB0E565B1DE49CE9C827ACAC337AC5B"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_3E37631016BC45B2B672FE23257D542B"\r
+        "MsmKey" = "8:_ADA22D44BCDEBA509E09A5D4C155AA41"\r
+        "OwnerKey" = "8:_D2EF447106B24E67907DAED3D39CFBB1"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_318FCC99E8D143D6B4F9F534E63009B3"\r
+        "MsmKey" = "8:_B0A2E9B4C45D4098AFD734D0C4E3EAFB"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_2F2FEC549F02436EB87961BD1B9E5783"\r
+        "MsmKey" = "8:_B20769E090034897B32E3EA4EC1BA8A0"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_2D09AB81AB8D45FF97E9DFA4DAC3465D"\r
+        "MsmKey" = "8:_BB649A2C1ABE4895859025B09A240323"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_28FBC5A60B44423B8A2CC378347483CE"\r
+        "MsmKey" = "8:_C105055EE271471A999CE7022E617EB7"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
-        "OwnerKey" = "8:_2814E641538B42EFA83525986A9D5AC1"\r
+        "MsmKey" = "8:_C81AC700C1BC4A55B98DF12C0CBAFD6F"\r
+        "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "Entry"\r
         }\r
         "Entry"\r
         {\r
-        "MsmKey" = "8:_F84240319757424DB1C58AD0AD420127"\r
-        "OwnerKey" = "8:_UNDEFINED"\r
-        "MsmSig" = "8:_UNDEFINED"\r
-        }\r
-        "Entry"\r
-        {\r
         "MsmKey" = "8:_FB1B9FBDC3294F1C96DAC4246C013C22"\r
         "OwnerKey" = "8:_UNDEFINED"\r
         "MsmSig" = "8:_UNDEFINED"\r
         }\r
         "MergeModule"\r
         {\r
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_B7F6D0EDAE0C462A8F0EB1FD68D49399"\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_2F84F5A8D457407E885F25791D218785"\r
             {\r
             "UseDynamicProperties" = "11:TRUE"\r
             "IsDependency" = "11:TRUE"\r
             "Feature" = "8:"\r
             "IsolateTo" = "8:"\r
             }\r
-            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_CD65BEBE0A4C413BB03F57CB6F50CFBB"\r
+            "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_4EA9DF31ED2848AE86E809D40FC906C3"\r
             {\r
             "UseDynamicProperties" = "11:TRUE"\r
             "IsDependency" = "11:TRUE"\r
                 {\r
                 }\r
             }\r
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_83C1B93AD71B4F8F9E074F9607B60DF1"\r
-            {\r
-            "SourcePath" = "8:..\\..\\debug\\mod\\mod_xmpp_event.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:{F10BE67C-A8FF-4CB2-AF29-D46D2590DC59}"\r
-            "ShowKeyOutput" = "11:TRUE"\r
-                "ExcludeFilters"\r
-                {\r
-                }\r
-            }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_87768631363249B2B301143C193612F7"\r
             {\r
             "SourcePath" = "8:..\\..\\debug\\mod\\mod_g711.dll"\r
                 {\r
                 }\r
             }\r
-            "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_F84240319757424DB1C58AD0AD420127"\r
-            {\r
-            "SourcePath" = "8:..\\..\\debug\\mod\\mod_event_test.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:{3A2A7795-C216-4FFF-B8EF-4D17A84BACCC}"\r
-            "ShowKeyOutput" = "11:TRUE"\r
-                "ExcludeFilters"\r
-                {\r
-                }\r
-            }\r
             "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FB1B9FBDC3294F1C96DAC4246C013C22"\r
             {\r
             "SourcePath" = "8:..\\..\\debug\\mod\\mod_woomera.dll"\r