| | 723 | |
|---|
| | 724 | ; Text-To-Speech related macros |
|---|
| | 725 | ; These all follow common actions. First try to playback a file "tts/custom-md5" |
|---|
| | 726 | ; where "md5" is the md5() of whatever is going to be played. If that doesn't exist, |
|---|
| | 727 | ; try to playback using macro-tts-sayXXXXX (where XXXXX is text/digits/etc, same as |
|---|
| | 728 | ; the macro below). If that macro exits with MACRO_OFFSET=100, then it's done, |
|---|
| | 729 | ; therwise, fallback to the default asterisk method. |
|---|
| | 730 | ; |
|---|
| | 731 | ; say text is purely for text-to-speech, there is no fallback |
|---|
| | 732 | [macro-saytext] |
|---|
| | 733 | exten => s,1,Noop(Trying custom SayText playback for "${ARG1}") |
|---|
| | 734 | exten => s,n,Playback(tts/custom-${MD5(${ARG1})}) |
|---|
| | 735 | exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) |
|---|
| | 736 | ; call tts-saytext. This should set MACRO_OFFSET=101 if it was successful |
|---|
| | 737 | exten => s,n(tts),Macro(tts-saytext|${ARG1}|${ARG2}|${ARG3}) |
|---|
| | 738 | exten => s,n,Noop(No text-to-speech handler for SayText, cannot say "${ARG1}") |
|---|
| | 739 | exten => s,n,Goto(done) |
|---|
| | 740 | exten => s,tts+101,Noop(tts handled saytext) |
|---|
| | 741 | |
|---|
| | 742 | ; say name is for saying names typically, but fallsback to using SayAlpha |
|---|
| | 743 | ; (saying the word letter-by-letter) |
|---|
| | 744 | [macro-sayname] |
|---|
| | 745 | exten => s,1,Noop(Trying custom SayName playback for "${ARG1}") |
|---|
| | 746 | exten => s,n,Playback(tts/custom-${MD5(${ARG1})}) |
|---|
| | 747 | exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) |
|---|
| | 748 | ; call tts-sayalpha. This should set MACRO_OFFSET=101 if it was successful |
|---|
| | 749 | exten => s,n(tts),Macro(tts-sayalpha|${ARG1}|${ARG2}|${ARG3}) |
|---|
| | 750 | exten => s,n,SayAlpha(${ARG1}) |
|---|
| | 751 | exten => s,n,Goto(done) |
|---|
| | 752 | exten => s,tts+101,Noop(tts handled sayname) |
|---|
| | 753 | |
|---|
| | 754 | ; Say number is for saying numbers (eg "one thousand forty six") |
|---|
| | 755 | [macro-saynumber] |
|---|
| | 756 | exten => s,1,Noop(Trying custom SayNumber playback for "${ARG1}") |
|---|
| | 757 | exten => s,n,Playback(tts/custom-${MD5(${ARG1})}) |
|---|
| | 758 | exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) |
|---|
| | 759 | ; call tts-saynumber. This should set MACRO_OFFSET=101 if it was successful |
|---|
| | 760 | exten => s,n(tts),Macro(tts-saynumber|${ARG1}|${ARG2}|${ARG3}) |
|---|
| | 761 | exten => s,n,SayNumber(${ARG1}) |
|---|
| | 762 | exten => s,n,Goto(done) |
|---|
| | 763 | exten => s,tts+101,Noop(tts handled saynumber) |
|---|
| | 764 | |
|---|
| | 765 | ; Say digits is for saying digits one-by-one (eg, "one zero four six") |
|---|
| | 766 | [macro-saydigits] |
|---|
| | 767 | exten => s,1,Noop(Trying custom SayDigits playback for "${ARG1}") |
|---|
| | 768 | exten => s,n,Playback(tts/custom-${MD5(${ARG1})}) |
|---|
| | 769 | exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="SUCCESS"]?done) |
|---|
| | 770 | ; call tts-saydigits. This should set MACRO_OFFSET=101 if it was successful |
|---|
| | 771 | exten => s,n(tts),Macro(tts-saydigits|${ARG1}|${ARG2}|${ARG3}) |
|---|
| | 772 | exten => s,n,SayDigits(${ARG1}) |
|---|
| | 773 | exten => s,n,Goto(done) |
|---|
| | 774 | |
|---|
| | 775 | |
|---|