On Dec 4, 2007, at 9:59 PM, Peder @ NetworkOblivion wrote:
Am I to assume that voicemail requires Cepstral? I setup a dialplan to test and I get the following debug when the call rolls to voicemail:
There seems to be some confusion about what is going on, so I will try to explain on the list for everyone. :)
The phrase subsystem allows you to define whether or not you will use sound files, TTS or whatever. This is defined in freeswitch.xml in the section 'phrases'. You can define the language, which can be changed via a channel variable for a particular call, you can define what the prompts actually are, etc. This offers a great deal of flexibility, and allows proper usage of different languages since not all will say things the same way. Examples are dates/times (Dutch will use a 24 hour clock, and 'half elf' means 11:30a in English/American for example). Other things can be done properly, for example "You have 2 messages" in Japnaese cannot use 'ni' for 2 since that would be like saying 'two-cycle' in English so you can have proper language sensitive prompts for different languages and define what is said via a combination of a module (which provides the logic for how to say numbers, counts, currency, dates etc) and XML which defines the actual phrases to be used. You are free to use any sound files that you want, subject to the licensing terms of those sound files. They can be in any format that FS understands (based on a format module that provides the capability to read and understand a given file format). There are a couple of different modules that provide native (no transcoding), various common formats and mp3. In addition other formats can be supported by adding new modules, since the playback parts are abstracted it would require no code changes to any other modules or to the core to add new formats for playback. The abstraction layer exists so that you can have different TTS engines, although currently cepstral is the only one that exists - all without the things that are going to use it knowing anything specific about them, different file formats, again without different parts knowing anything specific, etc. A tip - if you use mod_xml_curl (the configuration stuff is abstracted too :) you can fetch the phrases xml data from a web server as its requested so you could make decisions on which one to return based on the specific call. So you could allow for people to have more selection in which voice they get (either set of recordings or TTS) whether they use TTS or recordings, what the actual content would be, etc. This allows for a very high level of customization that is generally not available in other telephony products (commercial or otherwise). Another tip - xml_curl isnt the only way to get config data, a module can be written that will pull it from anywhere, any source, and generate the XML data which then gets fed into FS. xml_curl is a good example of how to do this, and can be used as a reference work for obtaining the data from any number of sources.
I uncommented the cepstral line in modules.conf.xml and I get the following:
2007-12-04 21:52:08 [CRIT] switch_loadable_module.c:726 switch_loadable_module_load_file() Error Loading module /usr/local/freeswitch/mod/mod_cepstral.so **/usr/local/freeswitch/mod/mod_cepstral.so: cannot open shared object file: No such file or directory**
In addition to uncommenting it in modules.conf.xml it must be built, that error 'no such file or directory' means that it was not installed (modules.conf in the main src directory). In order for it to be built, you have to have libswift.so/dll which is installed as part of a voice from cepstral.
If you get a voice without a license you can use it for testing, it will add a 'nag phrase' saying that it is not registered, but it lets you test and play with it, without actually spending anything. I *think* a single channel license is $20 which will remove the nag message. -- Trixter http://www.0xdecafbad.com Bret McDanel Belfast +44 28 9099 6461 US +1 516 687 5200 http://www.trxtel.com the phone company that pays you!