With regards to the digits there are different formats around the world,<br><br>1,000,000 &lt;- million<br><br>10,00,000&nbsp; &lt;- 10 Lakhs in india<br><br>So a generic format for the number will be good, so in future if any new additions comes to the numbering system it will be easy to accomodate.
<br><br>[1] - unit<br>[2] - tens<br>[3] - hundreds<br>[4-6] - thousands<br><br>for india,<br><br>[4-5] - Thousands<br>[6-7] - Lakhs<br><br>system will be good.<br><br>A good analysis internationally will serve easier to expand the software internationally with less ease.
<br><br>If this flexibility is not sorted in the initial stage then user need to write own module to use in their country which I'm right now doing for asterisk, which is utter useless with the design of the application.<br>
<br>Thanks.<br><br>Regards,<br>Kannaiyan<br><br><div><span class="gmail_quote">On 12/17/06, <b class="gmail_sendername">Kannaiyan Natesan</b> &lt;<a href="mailto:gbpnkans@gmail.com">gbpnkans@gmail.com</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><span class="q" id="q_10f907d52a897cd0_0"><span class="gmail_quote"></span>vset = LoadVoiceSet(&quot;antony&quot;,&quot;en&quot;);
<br><br>do the operationg based upon this voiceset<br><br>FreeVoiceSet(vset);<br><br>This will be handy to handle mutliple language, multiple user customised voice prompts.
<br>I'm sure this is lacking in the existing pbx structures.<br><br>The sound directory looks like,<br><br>sound<br>&nbsp;|<br>&nbsp;|---&gt; sequence<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |----&gt; language<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-----&gt; en
<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |----&gt; voicemail.txt<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-----&gt; tamil<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |----&gt; voicemail.txt<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;|-&gt;default<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; <br>&nbsp;|&nbsp; |--&gt;language
<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |---&gt; en<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |----&gt; digits<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------&gt; 0 ... 9 .(format)<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |----&gt; Words<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |-------&gt; 
you.format (you.wav, you.mp3)<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; |-------&gt; have.format<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ......... all possibles<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |<br>&nbsp;|&nbsp; |&nbsp;&nbsp;&nbsp; |---&gt; tamil<br>&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (same structure as above)<br>&nbsp;|&nbsp; 
<br>
&nbsp;|-&gt;antony<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (same as above)<br><br><br>Sequence Directory:<br><br>It explains you what is the framing sequence of the file you want for the application. Sequence of the voice file is not same for all languages that will vary, so there is a definite need of this sequence(name it with a right word) so that it will be generic to all applications.
<br><br>eg.,<br><br>[voicemail.txt]&nbsp; (forvoicemail app)<br>welcome=welcome to freeswitch voicemail system<br><br>in case if I use tamil language<br>eg.,<br>[voicemail.txt]<br>welcome=freeswitch kuralanjal amaippirkku varaverkirathu
<br><br>I'm talking about this on each call basis, I mean it can take english call, tamil call, french call .... simultaneously.<br><br>Just my 2 cents.<br><br>Thanks.<br><br>Regards,<br>Kannaiyan<div><span>
<br><br><br>On 12/17/06, Nikolay Kolev &lt;
<a href="mailto:me@nikolay.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">me@nikolay.com</a>&gt; wrote:<br>&gt;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; The idea is great! <br>&gt; <br>&gt;&nbsp;&nbsp; <br>

&gt; <br>&gt; OpenPBX seems to have one something similar, but it's unfortunately GPL. 
<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt; <br>&gt; BTW, SSM_ITTERATED is misspelled. What would be the difference between<br>&gt; SSM_ITERATED and SSM_PRONOUNCED? <br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt; <br>&gt; Nikolay Kolev <br>&gt;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;________________________________
<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; From: Anthony Minessale [mailto:<a href="mailto:anthmct@yahoo.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">anthmct@yahoo.com</a>] <br>&gt;&nbsp;&nbsp;Sent: Friday, December 15, 2006 3:09 PM
<br>&gt;&nbsp;&nbsp;To: <a href="mailto:freeswitch-dev@lists.freeswitch.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
freeswitch-dev@lists.freeswitch.org</a>;<br>&gt; <a href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">freeswitch-users@lists.freeswitch.org</a><br>

&gt;&nbsp;&nbsp;Subject: [Freeswitch-dev] C SAY API <br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;
<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; Hi, <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; I'm working on a muiti-lingual say api for ivr programmers to be able <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; to generate audio for saying numbers, counting items or expressing amounts
<br>&gt; of things such as currency.&nbsp;&nbsp;I'd like some input from anyone who has some<br>&gt; ideas <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; on how to make sure we cover all bases. <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; The basic idea is that we will have an api where each new
<br>&gt; language/implementation would provide it's own version of this function. <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; switch_status_t say(char *tosay,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_say_gender_t gender,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_say_type_t type,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_say_method_t method,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch_input_callback_function_t<br>&gt; dtmf_callback,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void *buf,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32_t buflen); <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; The enums are described in<br>&gt; <a href="http://www.freeswitch.org/eg/say_api.c" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://www.freeswitch.org/eg/say_api.c</a> <br>&gt;&nbsp;&nbsp;<br>&gt; 
<br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; the idea would be something like <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; switch_say_handle_t *en; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; en = switch_say_load(&quot;en&quot;); 
<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; switch_ivr_play_file(session, NULL, &quot;/sounds/youhave.wav&quot;, NULL, NULL, NULL,<br>&gt; 0); <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; en-&gt;say(&quot;1000&quot;, SSG_ANY, SSM_PRONOUNCED, SST_MESSAGES, NULL, NULL, 0); 
<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; switch_ivr_play_file(session, NULL, &quot;/sounds/msgs.wav&quot;, NULL, NULL, NULL,<br>&gt; 0); <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; <br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; Thoughts? <br>&gt;&nbsp;&nbsp;<br>&gt; 
<br>&gt;&nbsp;&nbsp; <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; Anthony Minessale II<br>&gt;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.freeswitch.org/
</a><br>&gt;&nbsp;&nbsp;ClueCon <a href="http://www.cluecon.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.cluecon.com/
</a><br>&gt;&nbsp;&nbsp;<br>&gt;&nbsp;&nbsp;AIM: anthm<br>&gt;&nbsp;&nbsp;<a href="mailto:MSN:anthony_minessale@hotmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">MSN:anthony_minessale@hotmail.com</a><br>&gt;&nbsp;&nbsp;JABBER:
<a href="mailto:anthony.minessale@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">anthony.minessale@gmail.com
</a><br>&gt;&nbsp;&nbsp;IRC: <a href="http://irc.freenode.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">irc.freenode.net</a> #freeswitch <br>&gt;&nbsp;&nbsp;<br>&gt; <br>&gt; <br>&gt;&nbsp;&nbsp;FreeSWITCH Developer Conference
<br>&gt;&nbsp;&nbsp;<a href="mailto:sip:888@66.250.68.194" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">sip:888@66.250.68.194
</a><br>&gt;&nbsp;&nbsp;iax:guest@66.250.68.194/888<br>&gt;&nbsp;&nbsp;<a href="mailto:googletalk:freeswitch@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">googletalk:freeswitch@gmail.com</a><br>&gt;&nbsp;&nbsp;pstn:213-799-1400 
<br>&gt; <br>&gt; <br>&gt;&nbsp;&nbsp;__________________________________________________
<br>&gt;&nbsp;&nbsp;Do You Yahoo!?<br>&gt;&nbsp;&nbsp;Tired of spam? Yahoo! Mail has the best spam protection around <br>&gt;&nbsp;&nbsp;<a href="http://mail.yahoo.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://mail.yahoo.com
</a> <br></span></div>&gt; _______________________________________________
<br>&gt; Freeswitch-users mailing list<br>&gt; <a href="mailto:Freeswitch-users@lists.freeswitch.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Freeswitch-users@lists.freeswitch.org</a><br>&gt; 
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>&gt; UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

http://lists.freeswitch.org/mailman/options/freeswitch-users</a>
<br>&gt; <a href="http://www.freeswitch.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.freeswitch.org</a><br>&gt; <br>&gt; <br>&gt; <br>


</span></div></blockquote></div><br>