From 861660360d677c5b0ad45edc5c402617f821f8e6 Mon Sep 17 00:00:00 2001 From: Michael Jerris Date: Tue, 14 Jul 2009 16:15:50 +0000 Subject: [PATCH] add mod_say_ru to windows build git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@14246 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- Freeswitch.2005.unsupported.sln | 148 +-- Freeswitch.2008.express.sln | 16 + Freeswitch.2008.sln | 18 + src/mod/say/mod_say_ru/mod_say_ru.2008.vcproj | 283 +++++ src/mod/say/mod_say_ru/mod_say_ru.c | 1004 ++++++++--------- src/mod/say/mod_say_ru/mod_say_ru.vcproj | 153 +++ 6 files changed, 1030 insertions(+), 592 deletions(-) create mode 100644 src/mod/say/mod_say_ru/mod_say_ru.2008.vcproj create mode 100644 src/mod/say/mod_say_ru/mod_say_ru.vcproj diff --git a/Freeswitch.2005.unsupported.sln b/Freeswitch.2005.unsupported.sln index b9743f7c8a..6d954f3918 100644 --- a/Freeswitch.2005.unsupported.sln +++ b/Freeswitch.2005.unsupported.sln @@ -3,19 +3,19 @@ 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 - {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}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}" ProjectSection(ProjectDependencies) = postProject - {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} - {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} {E42FDC95-7243-4219-9EA4-ACCE4AB97197} = {E42FDC95-7243-4219-9EA4-ACCE4AB97197} + {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} + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}" @@ -25,29 +25,29 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\ 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 - {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4} - {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} + {3D0370CA-BED2-4657-A475-32375CBCB6E4} = {3D0370CA-BED2-4657-A475-32375CBCB6E4} EndProjectSection 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 - {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_PortAudio", "src\mod\endpoints\mod_portaudio\mod_PortAudio.vcproj", "{5FD31A25-5D83-4794-8BEE-904DAD84CE71}" ProjectSection(ProjectDependencies) = postProject - {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} + {0A18A071-125E-442F-AFF7-A3F68ABECF99} = {0A18A071-125E-442F-AFF7-A3F68ABECF99} + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF} EndProjectSection 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 - {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {E42FDC95-7243-4219-9EA4-ACCE4AB97197} = {E42FDC95-7243-4219-9EA4-ACCE4AB97197} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {E972C52F-9E85-4D65-B19C-031E511E9DB4} = {E972C52F-9E85-4D65-B19C-031E511E9DB4} EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Codecs", "Codecs", "{F881ADA2-2F1A-4046-9FEB-191D9422D781}" @@ -68,8 +68,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 - {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("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "FreeSwitchSetup", "w32\Setup\Setup.vdproj", "{B17FFBE6-A942-4056-8346-B624FB5D995B}" @@ -83,22 +83,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 - {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_zeroconf", "src\mod\event_handlers\mod_zeroconf\mod_zeroconf.vcproj", "{C7705DC4-2088-493E-AF8D-65BC6D65C125}" ProjectSection(ProjectDependencies) = postProject - {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} + {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} 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 - {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}") = "libteletone", "libs\libteletone\libteletone.vcproj", "{89385C74-5860-4174-9CAF-A39E7C48909C}" @@ -107,10 +107,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 - {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} + {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} EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ASR-TTS", "ASR-TTS", "{4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}" @@ -122,22 +122,22 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cepstral", "src\mod\asr 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} {7C43DBD8-6893-4CD2-B7C0-D2E51F8B1FD3} = {7C43DBD8-6893-4CD2-B7C0-D2E51F8B1FD3} + {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 - {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} + {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_commands", "src\mod\applications\mod_commands\mod_commands.vcproj", "{30A5B29C-983E-4580-9FD0-D647CCDCC7EB}" 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("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Loggers", "Loggers", "{A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}" @@ -151,44 +151,44 @@ 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 - {B535402E-38D2-4D54-8360-423ACBD17192} = {B535402E-38D2-4D54-8360-423ACBD17192} - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} - {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} - {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} - {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647} {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} = {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9} + {0D108721-EAE8-4BAF-8102-D8960EC93647} = {0D108721-EAE8-4BAF-8102-D8960EC93647} + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} = {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA} + {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {B535402E-38D2-4D54-8360-423ACBD17192} = {B535402E-38D2-4D54-8360-423ACBD17192} 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 - {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_conference", "src\mod\applications\mod_conference\mod_conference.vcproj", "{C24FB505-05D7-4319-8485-7540B44C8603}" 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_dptools", "src\mod\applications\mod_dptools\mod_dptools.vcproj", "{B5881A85-FE70-4F64-8607-2CAAE52669C6}" 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_event_socket", "src\mod\event_handlers\mod_event_socket\mod_event_socket.vcproj", "{05515420-16DE-4E63-BE73-85BE85BA5142}" 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}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libdingaling", "libs\libdingaling\libdingaling.vcproj", "{1906D736-08BD-4EE1-924F-B536249B9A54}" ProjectSection(ProjectDependencies) = postProject - {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3} {F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3} + {E727E8F6-935D-46FE-8B0E-37834748A0E3} = {E727E8F6-935D-46FE-8B0E-37834748A0E3} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsrtp", "libs\srtp\libsrtp.vcproj", "{EEF031CB-FED8-451E-A471-91EC8D4F6750}" @@ -222,8 +222,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 - {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} {5927104D-C14C-4AC8-925C-4AB681762E75} = {5927104D-C14C-4AC8-925C-4AB681762E75} + {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} = {0D826AF5-0506-4C50-BB8B-7DB019AC21AE} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libsndfile", "libs\win32\libsndfile\libsndfile.vcproj", "{3D0370CA-BED2-4657-A475-32375CBCB6E4}" @@ -236,16 +236,16 @@ 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 - {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} + {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} 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 - {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PTHREAD", "libs\win32\Download PTHREAD.vcproj", "{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}" @@ -257,70 +257,70 @@ 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 - {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_native_file", "src\mod\formats\mod_native_file\mod_native_file.vcproj", "{9254C4B0-6F60-42B6-BB3A-36D63FC001C7}" 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_spidermonkey_core_db", "src\mod\languages\mod_spidermonkey_core_db\mod_spidermonkey_core_db.vcproj", "{ACFFF684-4D19-4D48-AF12-88EA1D778BDF}" 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_spidermonkey_teletone", "src\mod\languages\mod_spidermonkey_teletone\mod_spidermonkey_teletone.vcproj", "{8F992C49-6C51-412F-B2A3-34EAB708EB65}" ProjectSection(ProjectDependencies) = postProject - {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} + {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} 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 - {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8} {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8} 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 - {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_xml_curl", "src\mod\xml_int\mod_xml_curl\mod_xml_curl.vcproj", "{AB91A099-7690-4ECF-8994-E458F4EA1ED4}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} 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 - {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}") = "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 - {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} + {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.vcproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}" @@ -391,9 +391,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_local_stream", "src\mod 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 - {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D} + {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_voicemail", "src\mod\applications\mod_voicemail\mod_voicemail.vcproj", "{D7F1E3F2-A3F4-474C-8555-15122571AF52}" @@ -758,24 +758,24 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_cdr_csv", "src\mod\even EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_tone_stream", "src\mod\formats\mod_tone_stream\mod_tone_stream.vcproj", "{1A789A98-71EF-4EBD-8007-FC9ED585D32E}" ProjectSection(ProjectDependencies) = postProject - {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C} {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libvoipcodecs", "libs\voipcodecs\libvoipcodecs.vcproj", "{CF70F278-3364-4395-A2E1-23501C9B8AD2}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_voipcodecs", "src\mod\codecs\mod_voipcodecs\mod_voipcodecs.vcproj", "{9EED03C8-8315-4214-8D13-8FF5FA46D93C}" ProjectSection(ProjectDependencies) = postProject - {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2} {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + {CF70F278-3364-4395-A2E1-23501C9B8AD2} = {CF70F278-3364-4395-A2E1-23501C9B8AD2} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_curl", "src\mod\languages\mod_spidermonkey_curl\mod_spidermonkey_curl.vcproj", "{2CCED6DC-26FF-40F2-9585-E9E1049A4599}" ProjectSection(ProjectDependencies) = postProject - {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D} - {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} - {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} + {87EE9DA4-DE1E-4448-8324-183C98DCA588} = {87EE9DA4-DE1E-4448-8324-183C98DCA588} + {204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applications\mod_fsv\mod_fsv.vcproj", "{4AE157CF-F2DD-4B5D-A1EE-4AC173B4F9AC}" @@ -785,8 +785,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_fsv", "src\mod\applicat EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_lua", "src\mod\languages\mod_lua\mod_lua.vcproj", "{7B077E7F-1BE7-4291-AB86-55E527B25CAC}" ProjectSection(ProjectDependencies) = postProject - {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} {D0B36172-CD76-454A-9B89-990025266C2A} = {D0B36172-CD76-454A-9B89-990025266C2A} + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abyss", "libs\xmlrpc-c\Windows\abyss.vcproj", "{D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}" @@ -807,6 +807,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libilbc", "libs\ilbc\libilb EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lua51", "src\mod\languages\mod_lua\lua\lua.2005.vcproj", "{D0B36172-CD76-454A-9B89-990025266C2A}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.vcproj", "{AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}" + ProjectSection(ProjectDependencies) = postProject + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -1339,6 +1344,12 @@ Global {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.ActiveCfg = Release|Win32 {D0B36172-CD76-454A-9B89-990025266C2A}.Release|Win32.Build.0 = Release|Win32 {D0B36172-CD76-454A-9B89-990025266C2A}.Release|x64.ActiveCfg = Release|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Debug|Win32.Build.0 = Debug|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Debug|x64.ActiveCfg = Debug|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Release|Win32.ActiveCfg = Release|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Release|Win32.Build.0 = Release|Win32 + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE}.Release|x64.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1429,6 +1440,7 @@ Global {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} + {AEE5D1F8-3386-4CB2-A336-0125C4C7EAEE} = {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} diff --git a/Freeswitch.2008.express.sln b/Freeswitch.2008.express.sln index 4ca725f751..767788dcfb 100644 --- a/Freeswitch.2008.express.sln +++ b/Freeswitch.2008.express.sln @@ -626,6 +626,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "32khz music", "libs\win32\S {1F0A8A77-E661-418F-BB92-82172AE43803} = {1F0A8A77-E661-418F-BB92-82172AE43803} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2008.vcproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}" + ProjectSection(ProjectDependencies) = postProject + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -2051,6 +2056,17 @@ Global {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|Win32.ActiveCfg = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release|x64.ActiveCfg = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Freeswitch.2008.sln b/Freeswitch.2008.sln index 59116c483d..8777e6e7d0 100644 --- a/Freeswitch.2008.sln +++ b/Freeswitch.2008.sln @@ -1023,6 +1023,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_nibblebill", "src\mod\a {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_ru", "src\mod\say\mod_say_ru\mod_say_ru.2008.vcproj", "{0382E8FD-CFDC-41C0-8B03-792C7C84FC31}" + ProjectSection(ProjectDependencies) = postProject + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 @@ -2490,6 +2495,18 @@ Global {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|Win32.Build.0 = Release|Win32 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.ActiveCfg = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.ActiveCfg = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.ActiveCfg = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|Win32.Build.0 = Release|Win32 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2624,6 +2641,7 @@ Global {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} {A4B122CF-5196-476B-8C0E-D8BD59AC3C14} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E} = {6CD61A1D-797C-470A-BE08-8C31B68BB336} + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {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} diff --git a/src/mod/say/mod_say_ru/mod_say_ru.2008.vcproj b/src/mod/say/mod_say_ru/mod_say_ru.2008.vcproj new file mode 100644 index 0000000000..0f325787bf --- /dev/null +++ b/src/mod/say/mod_say_ru/mod_say_ru.2008.vcproj @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mod/say/mod_say_ru/mod_say_ru.c b/src/mod/say/mod_say_ru/mod_say_ru.c index f4b6cccc7f..f82592e6cf 100644 --- a/src/mod/say/mod_say_ru/mod_say_ru.c +++ b/src/mod/say/mod_say_ru/mod_say_ru.c @@ -46,22 +46,16 @@ */ #include -#include -#include #include "mod_say_ru.h" -//инициализируем массив вариантов произношения цифр описано в define mod_say_ru.h -struct say_t matrix[7][8]= {{m_00,m_01,m_02,m_03,m_04,m_05,m_06,m_07}, - {m_10,m_11,m_12,m_13,m_14,m_15,m_16,m_17}, - {m_20,m_21,m_22,m_23,m_24,m_25,m_26,m_27}, - {m_30,m_31,m_32,m_33,m_34,m_35,m_36,m_37}, - {m_40,m_41,m_42,m_43,m_44,m_45,m_46,m_47}, - {m_50,m_51,m_52,m_53,m_54,m_55,m_56,m_57}, - {m_60,m_61,m_62,m_63,m_64,m_65,m_66,m_67}}; - - - - +/* инициализируем массив вариантов произношения цифр описано в define mod_say_ru.h */ +struct say_t matrix[7][8]= {{m_00, m_01, m_02, m_03, m_04, m_05, m_06, m_07}, + {m_10, m_11, m_12, m_13, m_14, m_15, m_16, m_17}, + {m_20, m_21, m_22, m_23, m_24, m_25, m_26, m_27}, + {m_30, m_31, m_32, m_33, m_34, m_35, m_36, m_37}, + {m_40, m_41, m_42, m_43, m_44, m_45, m_46, m_47}, + {m_50, m_51, m_52, m_53, m_54, m_55, m_56, m_57}, + {m_60, m_61, m_62, m_63, m_64, m_65, m_66, m_67}}; SWITCH_MODULE_LOAD_FUNCTION(mod_say_ru_load); SWITCH_MODULE_DEFINITION(mod_say_ru, mod_say_ru_load, NULL, NULL); @@ -75,196 +69,166 @@ SWITCH_MODULE_DEFINITION(mod_say_ru, mod_say_ru_load, NULL, NULL); }\ if (!switch_channel_ready(switch_core_session_get_channel(session))) {\ return SWITCH_STATUS_FALSE;\ - }}\ - - + }} 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; -} + 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; -} - - + 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 ru_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); - } + 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; + return SWITCH_STATUS_SUCCESS; } - - static switch_status_t play_group(say_type_t say_type, casus_t casus, int a, int b, int c, - unit_t what, switch_core_session_t *session, switch_input_args_t *args) + unit_t what, switch_core_session_t *session, switch_input_args_t *args) { -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "a= %d b=%d c=%d what=%d!\n", a, b, c,what); + if (a) { + if (((b==0)&&(c==0))||(matrix[casus][say_type].all==1)) { //если b и с равны 0 то сказать шестьсот, сестисотый, шестисотая + if (what==million) { //префикс число окончание + say_file("digits/%s%d00%s.wav", matrix[casus][say_type].million[12], a, matrix[casus][say_type].million[13]); + say_file("digits/%s.wav", matrix[casus][say_type].million[11]); + } else if (what==thousand) { + say_file("digits/%s%d00%s.wav", matrix[casus][say_type].thousand[12], a, matrix[casus][say_type].thousand[13]); + say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); + } else { + say_file("digits/%s%d00%s.wav", matrix[casus][say_type].num[6], a, matrix[casus][say_type].num[7]); + } + } else { //если дальше есть цифры то тысячи и миллионы не прозносить пока + say_file("digits/%d00.wav",a); + } + } - if (a) { - if (((b==0)&&(c==0))||(matrix[casus][say_type].all==1)) { //если b и с равны 0 то сказать шестьсот, сестисотый, шестисотая - if (what==million) { //префикс число окончание - say_file("digits/%s%d00%s.wav",matrix[casus][say_type].million[12], a, matrix[casus][say_type].million[13]); - say_file("digits/%s.wav", matrix[casus][say_type].million[11]); - } - else if (what==thousand){ - say_file("digits/%s%d00%s.wav",matrix[casus][say_type].thousand[12], a, matrix[casus][say_type].thousand[13]); - say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); - } - else { - say_file("digits/%s%d00%s.wav",matrix[casus][say_type].num[6], a, matrix[casus][say_type].num[7]); - } + if (b) { + if (b>1) { //если 20 и больше + if ((c==0)||(matrix[casus][say_type].all==1)) { //если с равны 0 то сказать 20, двадцати, двадцатая + if (what==million) { //префикс число окончание + say_file("digits/%s%d0%s.wav", matrix[casus][say_type].million[12], b, matrix[casus][say_type].million[13]); + say_file("digits/%s.wav", matrix[casus][say_type].million[11]); + } else if (what==thousand) { + say_file("digits/%s%d0%s.wav", matrix[casus][say_type].thousand[12], b, matrix[casus][say_type].thousand[13]); + say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); + } else { + say_file("digits/%s%d0%s.wav", matrix[casus][say_type].num[6], b, matrix[casus][say_type].num[7]); + } + } else { //если есть дальше цифры + say_file("digits/%d0.wav",b); + } + } else { //от 10 до 19 + if (what==million) { + say_file("digits/%s%d%d%s.wav", matrix[casus][say_type].million[12], b, c, matrix[casus][say_type].million[13]); + say_file("digits/%s.wav", matrix[casus][say_type].million[11]); + } else if (what==thousand) { + say_file("digits/%s%d%d%s.wav", matrix[casus][say_type].thousand[12], b, c, matrix[casus][say_type].thousand[13]); + say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); + } else { //просто произнести цифры с префиксом и окончанием + say_file("digits/%s%d%d%s.wav", matrix[casus][say_type].num[6], b, c, matrix[casus][say_type].num[7]); + } + c=0; + } } - else { //если дальше есть цифры то тысячи и миллионы не прозносить пока - say_file("digits/%d00.wav",a); -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "%d - круглые цифры\n",a); - } -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "выходим из a"); - } -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play b\n"); - - if (b) { - if (b>1) { //если 20 и больше - if ((c==0)||(matrix[casus][say_type].all==1)) { //если с равны 0 то сказать 20, двадцати, двадцатая - if (what==million) { //префикс число окончание - say_file("digits/%s%d0%s.wav",matrix[casus][say_type].million[12], b, matrix[casus][say_type].million[13]); - say_file("digits/%s.wav", matrix[casus][say_type].million[11]); + if (c||what==zero) { + if (c<=5) { + if (what==million) { + if ((strlen(matrix[casus][say_type].million[c*2])) > 0) { // не произносить если не заданно например 1 миллион а просто миллион + say_file("digits/%s.wav", matrix[casus][say_type].million[c*2]) + } + say_file("digits/%s.wav", matrix[casus][say_type].million[c*2+1]); + } else if (what==thousand) { + if ((strlen(matrix[casus][say_type].thousand[c*2])) > 0) { // не произносить если не заданно например одна тысячас а просто тысяча + say_file("digits/%s.wav", matrix[casus][say_type].thousand[c*2]) + } + say_file("digits/%s.wav", matrix[casus][say_type].thousand[c*2+1]); + } else { //просто произнести цифры с префиксом и окончанием + say_file("digits/%s.wav", matrix[casus][say_type].num[c]); + } + } else /* больше 5 */ { + if (what==million) { + say_file("digits/%s%d%s.wav", matrix[casus][say_type].million[12], c, matrix[casus][say_type].million[13]); + say_file("digits/%s.wav", matrix[casus][say_type].million[11]); + } else if (what==thousand) { + say_file("digits/%s%d%s.wav", matrix[casus][say_type].thousand[12], c, matrix[casus][say_type].thousand[13]); + say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); + } else { //просто произнести цифры с префиксом и окончанием + say_file("digits/%s%d%s.wav", matrix[casus][say_type].num[6], c, matrix[casus][say_type].num[7]); + } } - else if (what==thousand){ - say_file("digits/%s%d0%s.wav",matrix[casus][say_type].thousand[12], b, matrix[casus][say_type].thousand[13]); - say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); - } - else { - say_file("digits/%s%d0%s.wav",matrix[casus][say_type].num[6], b, matrix[casus][say_type].num[7]); - } - } - else { //если есть дальше цифры - say_file("digits/%d0.wav",b); - } } - else { //от 10 до 19 - if (what==million) { - say_file("digits/%s%d%d%s.wav",matrix[casus][say_type].million[12], b, c, matrix[casus][say_type].million[13]); - say_file("digits/%s.wav", matrix[casus][say_type].million[11]); - } - else if (what==thousand) { - say_file("digits/%s%d%d%s.wav",matrix[casus][say_type].thousand[12], b, c, matrix[casus][say_type].thousand[13]); - say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); - } - else { //просто произнести цифры с префиксом и окончанием - say_file("digits/%s%d%d%s.wav",matrix[casus][say_type].num[6], b, c, matrix[casus][say_type].num[7]); - } - c=0; - } - } -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play c\n"); - if (c||what==zero) { -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play c= %d in matrix=%s what=%d say_type=%d casus=%d\n", c,matrix[casus][say_type].num[c],what,say_type,casus); - if (c<=5) { -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "c=%d c<=5\n",c); - if (what==million) { - if ((strlen(matrix[casus][say_type].million[c*2])) > 0) { // не произносить если не заданно например 1 миллион а просто миллион - say_file("digits/%s.wav", matrix[casus][say_type].million[c*2]) - } - say_file("digits/%s.wav", matrix[casus][say_type].million[c*2+1]); - } - else if (what==thousand) { - if ((strlen(matrix[casus][say_type].thousand[c*2])) > 0) {// // не произносить если не заданно например одна тысячас а просто тысяча - say_file("digits/%s.wav",matrix[casus][say_type].thousand[c*2]) - } - say_file("digits/%s.wav", matrix[casus][say_type].thousand[c*2+1]); - } - else { //просто произнести цифры с префиксом и окончанием -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play c= %d in matrix=%s!\n", c,matrix[casus][say_type].num[c]); - say_file("digits/%s.wav",matrix[casus][say_type].num[c]); - } - } - else //больше 5 - { -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "c=%d c>5\n",c); - if (what==million) { - say_file("digits/%s%d%s.wav",matrix[casus][say_type].million[12], c, matrix[casus][say_type].million[13]); - say_file("digits/%s.wav", matrix[casus][say_type].million[11]); - } - else if (what==thousand) { - say_file("digits/%s%d%s.wav",matrix[casus][say_type].thousand[12], c, matrix[casus][say_type].thousand[13]); - say_file("digits/%s.wav", matrix[casus][say_type].thousand[11]); - } - else { //просто произнести цифры с префиксом и окончанием - say_file("digits/%s%d%s.wav",matrix[casus][say_type].num[6], c, matrix[casus][say_type].num[7]); - } - } - } - return SWITCH_STATUS_SUCCESS; + return SWITCH_STATUS_SUCCESS; } static switch_status_t ru_say_count(switch_core_session_t *session, - char *tosay, say_type_t say_type, casus_t casus, switch_input_args_t *args) + char *tosay, say_type_t say_type, casus_t casus, switch_input_args_t *args) { - int in; + int in; int x = 0; int places[9] = { 0 }; char sbuf[13] = ""; - + int in_; + switch_status_t status; - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "ru_say_count %s!\n", tosay); - + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "ru_say_count %s!\n", tosay); + 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); - int in_ = in; -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "int in=%d!\n", in); + in_ = in; + if (in != 0) { for (x = 8; x >= 0; x--) { int num = (int) pow(10, x); @@ -272,49 +236,45 @@ static switch_status_t ru_say_count(switch_core_session_t *session, in -= places[(uint32_t) x] * num; } } -// switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "a=%d b=%d c=%d\n", places[8],places[7],places[6]); -//миллионы - if (places[8]||places[7]||places[6]) { - if ((in_%1000000>0)&&(matrix[casus][say_type].all!=1)) {// если поле миллионов есть цифры поизнести как числительое именительного падежа - if ((status = play_group(male_c,nominativus, places[8], places[7], places[6],million, session, args)) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d million! status=%d\n", places[8], places[7], places[6],status); - return status; + + //миллионы + if (places[8] || places[7] || places[6]) { + if ((in_%1000000>0)&&(matrix[casus][say_type].all != 1)) {// если поле миллионов есть цифры поизнести как числительое именительного падежа + if ((status = play_group(male_c, nominativus, places[8], places[7], places[6], million, session, args)) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d million! status=%d\n", places[8], places[7], places[6],status); + return status; } - } - else {// иначе произнести в нужном падеже + } else {// иначе произнести в нужном падеже if ((status = play_group(say_type,casus, places[8], places[7], places[6],million, session, args)) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d million! status=%d\n", places[8], places[7], places[6],status); - return status; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d million! status=%d\n", places[8], places[7], places[6],status); + return status; } - } } -//тысячи - if (places[5]||places[4]||places[3]) { - if ((in_%1000>0)&&(matrix[casus][say_type].all!=1)) {// если поле миллионов есть цифры поизнести как числительое именительного падежа - if ((status = play_group(male_c,nominativus, places[5], places[4], places[3],thousand, session, args)) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); - return status; + } + //тысячи + if (places[5]||places[4]||places[3]) { + if ((in_%1000>0)&&(matrix[casus][say_type].all != 1)) {// если поле миллионов есть цифры поизнести как числительое именительного падежа + if ((status = play_group(male_c, nominativus, places[5], places[4], places[3],thousand, session, args)) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); + return status; } - } - else {// иначе произнести в нужном падеже - if ((status = play_group(say_type,casus, places[5], places[4], places[3], thousand,session, args)) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); - return status; + } else {// иначе произнести в нужном падеже + if ((status = play_group(say_type, casus, places[5], places[4], places[3], thousand,session, args)) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); + return status; } - } } -// сотни - if ((status = play_group(say_type,casus, places[2], places[1], places[0], empty, session, args)) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); - return status; - } - } - else { - if ((status = play_group(say_type, casus, places[2], places[1], places[0], zero, session, args)) != SWITCH_STATUS_SUCCESS) - { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d other!\n", places[2], places[1], places[0]); - return status; - } + } + // сотни + if ((status = play_group(say_type, casus, places[2], places[1], places[0], empty, session, args)) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d thousand! status=%d\n", places[5], places[4], places[3],status); + return status; + } + } else { + if ((status = play_group(say_type, casus, places[2], places[1], places[0], zero, session, args)) != SWITCH_STATUS_SUCCESS) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "play group %d %d %d other!\n", places[2], places[1], places[0]); + return status; + } } return SWITCH_STATUS_SUCCESS; @@ -322,378 +282,374 @@ static switch_status_t ru_say_count(switch_core_session_t *session, //дописать static switch_status_t ru_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) + char *tosay, switch_say_type_t type, switch_say_method_t method, switch_input_args_t *args) { switch_status_t status; casus_t casus; //падеж say_type_t say_type;//тип произношения - + switch (type) { - case SST_MESSAGES: - say_type=it_c; - casus=nominativus; - break; - default: - say_type=male_c; - casus=nominativus; - break; + case SST_MESSAGES: + say_type=it_c; + casus=nominativus; + break; + default: + say_type=male_c; + casus=nominativus; + break; }; - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " type=%d casus=%d\n", say_type,casus); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " type=%d casus=%d\n", say_type,casus); status=ru_say_count(session,tosay,say_type,casus,args); return status; -// return SWITCH_STATUS_SUCCESS; } - - static switch_status_t ru_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_say_method_t method,switch_input_args_t *args) { - char sbuf[16] = ""; - char *rubles = NULL; - char *kopecks = NULL; - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " ru_say_money %s\n",tosay ); - 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; - } - rubles = sbuf; - if ((kopecks = strchr(sbuf, '.'))) { - *kopecks++ = '\0'; - if (strlen(kopecks) > 2) { - kopecks[2] = '\0'; - } - } - if (sbuf[0] == '+') { - rubles++; - } - if (sbuf[0] == '-') { - say_file("currency/minus.wav"); - rubles++; - } - - ru_say_count(session,rubles ,male_c,nominativus ,args); - int irubles = atoi(rubles)%100; - int iruble = atoi(rubles)%10; - if (irubles == 1 || (irubles > 20 && iruble == 1)) {/* рубль */ - say_file("currency/ruble.wav"); - } - else if ((irubles > 1 && irubles < 5) || (irubles > 20 && iruble > 1 && iruble < 5)) { /*рубля */ - say_file("currency/ruble-a.wav"); - } - else { /*рублей */ - say_file("currency/rubles.wav"); - } + char sbuf[16] = ""; + char *rubles = NULL; + char *kopecks = NULL; + int irubles = 0; + int iruble = 0; + int ikopecks = 0; + int ikopeck = 0; - /* Say kopecks */ - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " %s\n",kopecks ); - ru_say_count(session,kopecks ,female_c,nominativus ,args); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " ru_say_money %s\n",tosay ); - int ikopecks = atoi(kopecks)%100; - int ikopeck = atoi(kopecks)%10; - if (ikopecks == 1 || (ikopecks > 20 && ikopeck == 1)) - { - /* копейка */ - say_file("currency/kopeck.wav"); - } - else if ((ikopecks > 1 && ikopecks < 5) || (ikopecks > 20 && ikopeck > 1 && ikopeck < 5)) - { - /* копейки */ - say_file("currency/kopeck-i.wav"); - } - else - { - /* копеек */ - say_file("currency/kopecks.wav"); - } - return SWITCH_STATUS_SUCCESS; + 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; + } + + rubles = sbuf; + if ((kopecks = strchr(sbuf, '.'))) { + *kopecks++ = '\0'; + if (strlen(kopecks) > 2) { + kopecks[2] = '\0'; + } + } + + if (sbuf[0] == '+') { + rubles++; + } + + if (sbuf[0] == '-') { + say_file("currency/minus.wav"); + rubles++; + } + + ru_say_count(session,rubles ,male_c,nominativus ,args); + + if (rubles) { + irubles = atoi(rubles)%100; + iruble = atoi(rubles)%10; + } + + if (irubles == 1 || (irubles > 20 && iruble == 1)) {/* рубль */ + say_file("currency/ruble.wav"); + } else if ((irubles > 1 && irubles < 5) || (irubles > 20 && iruble > 1 && iruble < 5)) { /*рубля */ + say_file("currency/ruble-a.wav"); + } else { /*рублей */ + say_file("currency/rubles.wav"); + } + + /* Say kopecks */ + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " %s\n",kopecks ); + ru_say_count(session, kopecks ,female_c, nominativus, args); + + if (kopecks) { + ikopecks = atoi(kopecks) % 100; + ikopeck = atoi(kopecks) % 10; + } + + if (ikopecks == 1 || (ikopecks > 20 && ikopeck == 1)) { + /* копейка */ + say_file("currency/kopeck.wav"); + } else if ((ikopecks > 1 && ikopecks < 5) || (ikopecks > 20 && ikopeck > 1 && ikopeck < 5)) { + /* копейки */ + say_file("currency/kopeck-i.wav"); + } else { + /* копеек */ + say_file("currency/kopecks.wav"); + } + return SWITCH_STATUS_SUCCESS; } - - static switch_status_t ru_say_time(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, - switch_input_args_t *args) + switch_input_args_t *args) { - int32_t t; - char tmp[80]; - switch_time_t target = 0, target_now = 0; - switch_time_exp_t tm, tm_now; - uint8_t say_date = 0, say_time = 0, say_year = 0, say_month = 0, say_dow = 0, say_day = 0, say_yesterday = 0, say_today = 0; - switch_channel_t *channel = switch_core_session_get_channel(session); - const char *tz = switch_channel_get_variable(channel, "timezone"); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " ru_say_time %s type=%d method=%d\n",tosay, type,method ); + int32_t t; + char buf[80]; + switch_time_t target = 0, target_now = 0; + switch_time_exp_t tm, tm_now; + uint8_t say_date = 0, say_time = 0, say_year = 0, say_month = 0, say_dow = 0, say_day = 0, say_yesterday = 0, say_today = 0; + switch_channel_t *channel = switch_core_session_get_channel(session); + const char *tz = switch_channel_get_variable(channel, "timezone"); - if (type == SST_TIME_MEASUREMENT) { - int64_t hours = 0; - int64_t minutes = 0; - int64_t seconds = 0; - int64_t r = 0; + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, " ru_say_time %s type=%d method=%d\n",tosay, type,method ); - if (strchr(tosay, ':')) { - char *tme = switch_core_session_strdup(session, tosay); - char *p; + if (type == SST_TIME_MEASUREMENT) { + int64_t hours = 0; + int64_t minutes = 0; + int64_t seconds = 0; + int64_t r = 0; - 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 = atol(tosay)) <= 0) { - seconds = (int64_t) switch_epoch_time_now(NULL); - } + if (strchr(tosay, ':')) { + char *tme = switch_core_session_strdup(session, tosay); + char *p; - if (seconds >= 60) { - minutes = seconds / 60; - r = seconds % 60; - } + 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 = atol(tosay)) <= 0) { + seconds = (int64_t) switch_epoch_time_now(NULL); + } - if (minutes >= 60) { - hours = minutes / 60; - r = minutes % 60; - minutes = r; - } - } + if (seconds >= 60) { + minutes = seconds / 60; + r = seconds % 60; + } - switch_snprintf(tmp, sizeof(tmp), "%u", (unsigned)hours); - ru_say_count(session,tmp ,male_c,nominativus,args); - if (((hours%10) == 1) && (hours!=11)) { - /* час */ - say_file("time/hour.wav"); - } - else if (((hours%10>1)&&(hours%10<5)) &&((hours<12)||(hours>14))) { - say_file("time/hours-a.wav"); /* часа */ - } - else { - say_file("time/hours.wav"); /* часов*/ - } + if (minutes >= 60) { + hours = minutes / 60; + r = minutes % 60; + minutes = r; + } + } - switch_snprintf(tmp, sizeof(tmp), "%u", (unsigned)minutes); //перевести минуты в *char - ru_say_count(session,tmp ,female_c,nominativus,args); - if (((minutes%10) == 1) && (minutes!=11)) { - say_file("time/minute.wav"); //минута - } - else if (((minutes%10>1)&&(minutes%10<5))&&((minutes<12)||(minutes>14))){ - say_file("time/minutes-i.wav"); // минуты - } - else { - say_file("time/minutes.wav"); //минут - } + switch_snprintf(buf, sizeof(buf), "%u", (unsigned)hours); + ru_say_count(session,buf ,male_c,nominativus,args); - if (seconds!=0) { - switch_snprintf(tmp, sizeof(tmp), "%u", (unsigned)seconds); - ru_say_count(session,tmp ,female_c,nominativus,args); - if (((seconds%10) == 1) && (seconds!=11)) { - say_file("time/second.wav"); // секунда - } - else if (((seconds%10>1)&&(seconds%10<5))&&((seconds<12)||(seconds>14))) { - say_file("time/seconds-i.wav"); // секуны - } - else { - say_file("time/seconds.wav"); //секунд - } - } + if (((hours%10) == 1) && (hours!=11)) { + /* час */ + say_file("time/hour.wav"); + } else if (((hours%10>1)&&(hours%10<5)) &&((hours<12)||(hours>14))) { + say_file("time/hours-a.wav"); /* часа */ + } else { + say_file("time/hours.wav"); /* часов*/ + } - return SWITCH_STATUS_SUCCESS; - } + switch_snprintf(buf, sizeof(buf), "%u", (unsigned)minutes); //перевести минуты в *char + ru_say_count(session,buf ,female_c,nominativus,args); - if ((t = atol(tosay)) > 0) { - target = switch_time_make(t, 0); - target_now = switch_micro_time_now(); - } else { - target = switch_micro_time_now(); - target_now = switch_micro_time_now(); - } + if (((minutes%10) == 1) && (minutes!=11)) { + say_file("time/minute.wav"); //минута + } else if (((minutes%10>1)&&(minutes%10<5))&&((minutes<12)||(minutes>14))){ + say_file("time/minutes-i.wav"); // минуты + } else { + say_file("time/minutes.wav"); //минут + } - if (tz) { - int check = atoi(tz); - if (check) { - switch_time_exp_tz(&tm, target, check); - switch_time_exp_tz(&tm_now, target_now, check); - } else { - switch_time_exp_tz_name(tz, &tm, target); - switch_time_exp_tz_name(tz, &tm_now, target_now); - } - } else { - switch_time_exp_lt(&tm, target); - switch_time_exp_lt(&tm_now, target_now); - } - 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; - case SST_SHORT_DATE_TIME: - say_time = 1; - if (tm.tm_year != tm_now.tm_year) { - say_date = 1; - break; - } - if (tm.tm_yday == tm_now.tm_yday) { - say_today = 1; - break; - } - if (tm.tm_yday == tm_now.tm_yday - 1) { - say_yesterday = 1; - break; - } - if (tm.tm_yday >= tm_now.tm_yday - 5) { - say_dow = 1; - break; - } - if (tm.tm_mon != tm_now.tm_mon) { - say_month = say_day = say_dow = 1; - break; - } + if (seconds!=0) { + switch_snprintf(buf, sizeof(buf), "%u", (unsigned)seconds); + ru_say_count(session,buf ,female_c,nominativus,args); + if (((seconds%10) == 1) && (seconds!=11)) { + say_file("time/second.wav"); // секунда + } else if (((seconds%10>1)&&(seconds%10<5))&&((seconds<12)||(seconds>14))) { + say_file("time/seconds-i.wav"); // секуны + } else { + say_file("time/seconds.wav"); //секунд + } + } + return SWITCH_STATUS_SUCCESS; + } - say_month = say_day = say_dow = 1; + if ((t = atol(tosay)) > 0) { + target = switch_time_make(t, 0); + target_now = switch_micro_time_now(); + } else { + target = switch_micro_time_now(); + target_now = switch_micro_time_now(); + } - break; - default: - break; - } + if (tz) { + int check = atoi(tz); + if (check) { + switch_time_exp_tz(&tm, target, check); + switch_time_exp_tz(&tm_now, target_now, check); + } else { + switch_time_exp_tz_name(tz, &tm, target); + switch_time_exp_tz_name(tz, &tm_now, target_now); + } + } else { + switch_time_exp_lt(&tm, target); + switch_time_exp_lt(&tm_now, target_now); + } - if (say_today) { - say_file("time/today.wav"); - } - if (say_yesterday) { - say_file("time/yesterday.wav"); - } - if (say_dow) { - say_file("time/day-%d.wav", tm.tm_wday); - } - if (say_date) { - say_year = say_month = say_day = say_dow = 1; - say_today = say_yesterday = 0; - } - if (say_day) { - switch_snprintf(tmp, sizeof(tmp), "%u", (unsigned)tm.tm_mday); - ru_say_count(session,tmp ,male_h,genitivus,args); - } - if (say_month) { - say_file("time/mon-%d.wav", tm.tm_mon); - } - if (say_year) { - switch_snprintf(tmp, sizeof(tmp), "%u", (unsigned)(tm.tm_year + 1900)); - ru_say_count(session,tmp ,male_h,genitivus,args); - say_file("time/h-year.wav"); - } - if (say_month||say_year||say_date||say_dow) - { - say_file("time/at.wav"); - } - if (say_time) { - switch_snprintf(tmp, sizeof(tmp), "%d:%d:%d",tm.tm_hour+1,tm.tm_min,tm.tm_sec); - ru_say_time(session, tmp, SST_TIME_MEASUREMENT, method, args); - } - return SWITCH_STATUS_SUCCESS; + 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; + case SST_SHORT_DATE_TIME: + say_time = 1; + if (tm.tm_year != tm_now.tm_year) { + say_date = 1; + break; + } + if (tm.tm_yday == tm_now.tm_yday) { + say_today = 1; + break; + } + if (tm.tm_yday == tm_now.tm_yday - 1) { + say_yesterday = 1; + break; + } + if (tm.tm_yday >= tm_now.tm_yday - 5) { + say_dow = 1; + break; + } + if (tm.tm_mon != tm_now.tm_mon) { + say_month = say_day = say_dow = 1; + break; + } + + say_month = say_day = say_dow = 1; + + break; + default: + break; + } + + if (say_today) { + say_file("time/today.wav"); + } + if (say_yesterday) { + say_file("time/yesterday.wav"); + } + if (say_dow) { + say_file("time/day-%d.wav", tm.tm_wday); + } + if (say_date) { + say_year = say_month = say_day = say_dow = 1; + say_today = say_yesterday = 0; + } + if (say_day) { + switch_snprintf(buf, sizeof(buf), "%u", (unsigned)tm.tm_mday); + ru_say_count(session,buf ,male_h,genitivus,args); + } + if (say_month) { + say_file("time/mon-%d.wav", tm.tm_mon); + } + if (say_year) { + switch_snprintf(buf, sizeof(buf), "%u", (unsigned)(tm.tm_year + 1900)); + ru_say_count(session,buf ,male_h,genitivus,args); + say_file("time/h-year.wav"); + } + if (say_month||say_year||say_date||say_dow) + { + say_file("time/at.wav"); + } + if (say_time) { + switch_snprintf(buf, sizeof(buf), "%d:%d:%d",tm.tm_hour+1,tm.tm_min,tm.tm_sec); + ru_say_time(session, buf, SST_TIME_MEASUREMENT, method, args); + } + return SWITCH_STATUS_SUCCESS; } - - - static switch_status_t ru_ip(switch_core_session_t *session, char *tosay, switch_say_type_t type, switch_say_method_t method, - switch_input_args_t *args) + switch_input_args_t *args) { - char *a, *b, *c, *d; - if (!(a = switch_core_session_strdup(session, tosay))) { - return SWITCH_STATUS_FALSE; - } + char *a, *b, *c, *d; + if (!(a = switch_core_session_strdup(session, tosay))) { + return SWITCH_STATUS_FALSE; + } - if (!(b = strchr(a, '.'))) { - return SWITCH_STATUS_FALSE; - } + if (!(b = strchr(a, '.'))) { + return SWITCH_STATUS_FALSE; + } - *b++ = '\0'; + *b++ = '\0'; - if (!(c = strchr(b, '.'))) { - return SWITCH_STATUS_FALSE; - } + if (!(c = strchr(b, '.'))) { + return SWITCH_STATUS_FALSE; + } - *c++ = '\0'; + *c++ = '\0'; - if (!(d = strchr(c, '.'))) { - return SWITCH_STATUS_FALSE; - } + if (!(d = strchr(c, '.'))) { + return SWITCH_STATUS_FALSE; + } - *d++ = '\0'; + *d++ = '\0'; - ru_say_count(session,a ,male_c,nominativus,args); - say_file("digits/dot.wav"); + ru_say_count(session,a ,male_c,nominativus,args); + say_file("digits/dot.wav"); - ru_say_count(session,b ,male_c,nominativus,args); - say_file("digits/dot.wav"); + ru_say_count(session,b ,male_c,nominativus,args); + say_file("digits/dot.wav"); - ru_say_count(session,c ,male_c,nominativus,args); - say_file("digits/dot.wav"); + ru_say_count(session,c ,male_c,nominativus,args); + say_file("digits/dot.wav"); - ru_say_count(session,d ,male_c,nominativus,args); - return SWITCH_STATUS_SUCCESS; + ru_say_count(session,d ,male_c,nominativus,args); + return SWITCH_STATUS_SUCCESS; } - - static switch_status_t ru_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 = ru_say_general_count; - break; - case SST_TIME_MEASUREMENT: - say_cb = ru_say_time; - break; + switch_say_callback_t say_cb = NULL; - case SST_CURRENT_DATE: - say_cb = ru_say_time; - break; + switch (type) { + case SST_NUMBER: + case SST_ITEMS: + case SST_PERSONS: + case SST_MESSAGES: + say_cb = ru_say_general_count; + break; + case SST_TIME_MEASUREMENT: + say_cb = ru_say_time; + break; - case SST_CURRENT_TIME: - say_cb = ru_say_time; - break; + case SST_CURRENT_DATE: + say_cb = ru_say_time; + break; - case SST_CURRENT_DATE_TIME: - say_cb = ru_say_time; - break; - case SST_IP_ADDRESS: - say_cb = ru_ip; - break; - case SST_NAME_SPELLED: - case SST_NAME_PHONETIC: - say_cb = ru_spell; - break; - case SST_CURRENCY: - say_cb = ru_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; + case SST_CURRENT_TIME: + say_cb = ru_say_time; + break; + + case SST_CURRENT_DATE_TIME: + say_cb = ru_say_time; + break; + case SST_IP_ADDRESS: + say_cb = ru_ip; + break; + case SST_NAME_SPELLED: + case SST_NAME_PHONETIC: + say_cb = ru_spell; + break; + case SST_CURRENCY: + say_cb = ru_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_ru_load) { switch_say_interface_t *say_interface; diff --git a/src/mod/say/mod_say_ru/mod_say_ru.vcproj b/src/mod/say/mod_say_ru/mod_say_ru.vcproj new file mode 100644 index 0000000000..00e7e0a11c --- /dev/null +++ b/src/mod/say/mod_say_ru/mod_say_ru.vcproj @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +