say.conf [RU]
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
вроде все сходится там.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
1) Что тестировали (дата, числительное, дата)
2) Значение произносимой величины
3) Что было произнесено, как должно произноситься
Настройки делались на основе английского произношения
Вот настройки в say.conf:
| Код: |
| [ru-base](!) _[n]um:0. => num:${SAY:1} _[n]um:X => digits/${SAY} ; Tens _[n]um:1X => digits/${SAY} _[n]um:[2-9]0 => digits/${SAY} _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} ; Hundreds _[n]um:[1-9]00 => digits/${SAY} _[n]um:XXX => num:${SAY:0:1}00, num:${SAY:1} ; Thousands _[n]um:1XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} _[n]um:[2-4]XXX => num:${SAY:0:1}, digits/thousands-i, num:${SAY:1} _[n]um:[5-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1} _[n]um:X1XXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} _[n]um:X[2-4]XXX => num:${SAY:0:2}, digits/thousands-i, num:${SAY:2} _[n]um:X[5-9]XXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2} _[n]um:XX1XXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} _[n]um:XX[2-4]XXX => num:${SAY:0:3}, digits/thousands-i, num:${SAY:3} _[n]um:XX[5-9]XXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3} ; Millions _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} _[n]um:[2-4]XXXXXX => num:${SAY:0:1}, digits/millions-i, num:${SAY:1} _[n]um:[5-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1} _[n]um:X1XXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} _[n]um:X[2-4]XXXXXX => num:${SAY:0:2}, digits/millions-i, num:${SAY:2} _[n]um:X[5-9]XXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} _[n]um:XX1XXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} _[n]um:XX[2-4]XXXXXX => num:${SAY:0:3}, digits/millions-i, num:${SAY:3} _[n]um:XX[5-9]XXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} ; Billions _[n]um:1XXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} _[n]um:[2-4]XXXXXXXXX => num:${SAY:0:1}, digits/billions-i, num:${SAY:1} _[n]um:[5-9]XXXXXXXXX => num:${SAY:0:1}, digits/billions, num:${SAY:1} _[n]um:X1XXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} _[n]um:X[2-4]XXXXXXXXX => num:${SAY:0:2}, digits/billions-i, num:${SAY:2} _[n]um:X[5-9]XXXXXXXXX => num:${SAY:0:2}, digits/billions, num:${SAY:2} _[n]um:XX1XXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} _[n]um:XX[2-4]XXXXXXXXX => num:${SAY:0:3}, digits/billions-i, num:${SAY:3} _[n]um:XX[5-9]XXXXXXXXX => num:${SAY:0:3}, digits/billions, num:${SAY:3} ; enumeration _e[n]um:X => digits/h-${SAY} _e[n]um:1X => digits/h-${SAY} _e[n]um:[2-9]0 => digits/h-${SAY} _e[n]um:[2-9][1-9] => num:${SAY:0:1}0, digits/h-${SAY:1} _e[n]um:[1-9]XX => num:${SAY:0:1}, digits/hundred, enum:${SAY:1} [ru](ru-base,date-base,digit-base) _datetime::. => date:AdBY 'digits/at' IMp:${SAY} _date::. => date:AdBY:${SAY} _time::. => date:IMp:${SAY} |
Вот кусок диалплана для тестирования:
[config:1:36451aa2c8]
[globals]
SAY_NUMBER_BEGIN=10
SAY_NUMBER_STEP= 1
SAY_DATE_BEGIN=10000 ; Unixtime
SAY_DATE_STEP=500 ; Unixtime
[say]
; Russian
exten => 787,1,Answer
exten => 787,n,Wait(1)
exten => 787,n,Set(SAY_NUMBER=${SAY_NUMBER_BEGIN})
exten => 787,n,Set(CHANNEL(language)=ru)
exten => 787,n,SayNumber(${SAY_NUMBER})
exten => 787,n,Wait(1)
exten => 787,n,Set(SAY_NUMBER=$[${SAY_NUMBER} + ${SAY_NUMBER_STEP}])
exten => 787,n,GoTo(787,4)
exten => 788,1,Answer
exten => 788,n,Wait(1)
exten => 788,n,Set(SAY_DATE=${SAY_DATE_BEGIN})
exten => 788,n,Set(CHANNEL(language)=ru)
exten => 788,n,SayUnixtime(${SAY_DATE})
exten => 788,n,Wait(1)
exten => 788,n,Set(SAY_DATE=$[${SAY_DATE} + ${SAY_DATE_STEP}])
exten => 788,n,GoTo(788,4)
[/config:1:36451aa2c8]
P.S. Все накидано в спешке, работоспособность не гарантирую. Как будет подтверждено что, что-то из этого вообще работает, то вынесем в первый пост.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Последний раз редактировалось: IgorG (Пн Янв 15, 2007 05:35)
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Use Set(LANGUAGE()=ru)
*-1.4: LANGUAGE() is deprecated; use CHANNEL(language) instead.
tip:
тепреь это будет выглядеть так
exten => 787,n,Set(CHANNEL(language)=ru)
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| Код: |
| [ru-base](!) _[n]um:0. => num:${SAY:1} _[n]um:X => digits/${SAY} ; Tens _[n]um:1X => digits/${SAY} _[n]um:[2-9]0 => digits/${SAY} _[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1} ; Hundreds _[n]um:[1-9]00 => digits/${SAY} _[n]um:XXX => num:${SAY:0:1}00, num:${SAY:1} ; Thousands _[n]um:1XXX => num:${SAY:0:1}, digits/thousand, num:${SAY:1} _[n]um:[2-4]XXX => num:${SAY:0:1}, digits/thousands-i, num:${SAY:1} _[n]um:[5-9]XXX => num:${SAY:0:1}, digits/thousands, num:${SAY:1} _[n]um:X1XXX => num:${SAY:0:2}, digits/thousand, num:${SAY:2} _[n]um:X[2-4]XXX => num:${SAY:0:2}, digits/thousands-i, num:${SAY:2} _[n]um:X[5-9]XXX => num:${SAY:0:2}, digits/thousands, num:${SAY:2} _[n]um:XX1XXX => num:${SAY:0:3}, digits/thousand, num:${SAY:3} _[n]um:XX[2-4]XXX => num:${SAY:0:3}, digits/thousands-i, num:${SAY:3} _[n]um:XX[5-9]XXX => num:${SAY:0:3}, digits/thousands, num:${SAY:3} ; Millions _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million, num:${SAY:1} _[n]um:[2-4]XXXXXX => num:${SAY:0:1}, digits/millions-i, num:${SAY:1} _[n]um:[5-9]XXXXXX => num:${SAY:0:1}, digits/millions, num:${SAY:1} _[n]um:X1XXXXXX => num:${SAY:0:2}, digits/million, num:${SAY:2} _[n]um:X[2-4]XXXXXX => num:${SAY:0:2}, digits/millions-i, num:${SAY:2} _[n]um:X[5-9]XXXXXX => num:${SAY:0:2}, digits/millions, num:${SAY:2} _[n]um:XX1XXXXXX => num:${SAY:0:3}, digits/million, num:${SAY:3} _[n]um:XX[2-4]XXXXXX => num:${SAY:0:3}, digits/millions-i, num:${SAY:3} _[n]um:XX[5-9]XXXXXX => num:${SAY:0:3}, digits/millions, num:${SAY:3} ; Billions _[n]um:1XXXXXXXXX => num:${SAY:0:1}, digits/billion, num:${SAY:1} _[n]um:[2-4]XXXXXXXXX => num:${SAY:0:1}, digits/billions-i, num:${SAY:1} _[n]um:[5-9]XXXXXXXXX => num:${SAY:0:1}, digits/billions, num:${SAY:1} _[n]um:X1XXXXXXXXX => num:${SAY:0:2}, digits/billion, num:${SAY:2} _[n]um:X[2-4]XXXXXXXXX => num:${SAY:0:2}, digits/billions-i, num:${SAY:2} _[n]um:X[5-9]XXXXXXXXX => num:${SAY:0:2}, digits/billions, num:${SAY:2} _[n]um:XX1XXXXXXXXX => num:${SAY:0:3}, digits/billion, num:${SAY:3} _[n]um:XX[2-4]XXXXXXXXX => num:${SAY:0:3}, digits/billions-i, num:${SAY:3} _[n]um:XX[5-9]XXXXXXXXX => num:${SAY:0:3}, digits/billions, num:${SAY:3} ; enumeration _e[n]um:X[mfn] => digits/h-${SAY} _e[n]um:1X[mfn] => digits/h-${SAY} _e[n]um:[2-9]0[mfn] => digits/h-${SAY} _e[n]um:[2-9][1-9][mfn] => num:${SAY:0:1}0, digits/h-${SAY:1} _e[n]um:[1-9]XX[mfn] => num:${SAY:0:1}, digits/hundred, enum:${SAY:1} [ru](ru-base,digit-base) _date:[Y]:. => enum:${SAY:0:4}m ; year, [12]xxx _date:[Bb]:. => digits/mon-$[${SAY:4:2}-1] ; month name, 0..11 _date:[Aa]:. => digits/day-${SAY:16:1} ; day of week _date:[de]:. => enum:${SAY:6:2}n ; day of month _date:[hH]:. => num:${SAY:8:2} ; hour _date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12 _date:[M]:. => num:${SAY:10:2} ; minute _date:[pP]:. => digits/p-m ; am pm _date:[S]:. => num:${SAY:13:2} ; seconds _datetime::. => date:AdBY 'digits/at' IM:${SAY} _date::. => date:AdBY:${SAY} _time::. => date:IM:${SAY} |
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Вот это дело!
Для разминки - попробуй поднять MS Live Communication Server и зарегистрировать там Астериск.
рубль, рубля, рублей произносится в зависимости от последней цифры.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| Код: |
| [macro-saycountru] exten => s,1,NoOp(Say Word In Russian) exten => s,n,GotoIf($[${ARG4}%10 = 1]:one) exten => s,n,GotoIf($[${ARG4}%10 = 2]:two) exten => s,n,GotoIf($[${ARG4}%10 = 3]:two) exten => s,n,GotoIf($[${ARG4}%10 = 4]:two) exten => s,n,Goto(three) exten => s,n(one),Playback(${ARG1}) exten => s,n(two),Playback(${ARG2}) exten => s,n(three),Playback(${ARG3}) |
Не тестировал, но как-то так. Использовать так:
| Код: |
| exten => _X.,1,Macro(saycountru,rubl,rublya,rubley,145) |
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| Код: |
| ldap.conf - config file for LDAPget [section-name] host = ; default: localhost port = ; default: 389 user = ; default: anonymous bind pass = base = scope = ; default: sub filter = ; default: (&(objectClass=person)(telephoneNumber=%s)) attribute = ; default: commonName convert = , |
Example
| Код: |
| [cidname] host = samplehost user = cn=root,ou=People,o=sampledomain pass = secret base = ou=Addressbooks,o=sampledomain filter = (&(objectClass=person)(|(telephoneNumber=%s)(mobile=%s)(fax=%s))) attribute = displayName convert = UTF-8, ISO-8859-1 corresponding part in extensions.conf: exten => 1234,1,LDAPget(CIDNAME=cidname/${CALLERIDNUM},${CALLERIDNUM},${CALLERIDNUM}) ; for telefon, mobile and fax exten => 1234,2,SetCIDName(${CIDNAME}) exten => 1234,3,Dial(Zap/11/${EXTEN},15) |
Но это только подстановка Имени юзера из базы данных LDAP, тебе несколько другое нужно.
http://www.voip-info.org/wiki/view/Authenticate_LDAP
| IgorG писал(а): |
| PS. Обнаружил что в консоли есть команда say load new, возможно она нужна для подключения нового стиля произношения. |
Ahtung! Опасная команды, вводит в заблуждение. Она хоть и перечитывает конф, но пеосле этого читает тишину.
_mi[n]uta:0 => num:${SAY}, digits/minuts
_mi[n]uta:1 => digits/odna, digits/minuta
_mi[n]uta:2 => digits/dve, digits/minuty
_mi[n]uta:[3-4] => num:${SAY}, digits/minuty
_mi[n]uta:[5-9] => num:${SAY}, digits/minuts
_mi[n]uta:0X => minuta:${SAY:1}
_mi[n]uta:1X => num:${SAY}, digits/minuts
_mi[n]uta:[2-5]0 => num:${SAY}, digits/minuts
_mi[n]uta:[2-5][1-9] => num:${SAY:0:1}0, minuta:${SAY:1}
астер не реагирует на них никак, пытаюсь проговаривать время ожидания в очереди.
Немогу сообразить что в диалплане нужно дописать.
asterisk Asterisk 11.1.0
debian 6.0
Тема достаточно старая, но.... Пару лет назад все работало на 1.8.5 как часы, причем брал пример именно отсюда.
За это время надобность отпала и я не следил особо за этим. А тут ВДРУГ срочно понадобилась и я обнаружил что в моей 1.8.16 не работает вызов exten => s,n,Playback(currency:3812,say) !!!! Просто ничего не происходит.
Причем сам файл say.conf я использовал старый.
Что могла съехать - есть идеи?
ФУ! Совсем из головы вылетело что так просто конфигурация для этого не меняется в он-лайне - только перестартом сервера
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
Делаю там изменения, чтобы услышать эти изменения делаю say load new.
После этого либо глохнет
-- Executing [23@say:4] Set("SIP/202-09bcb0d0", "CHANNEL(language)=de") in new stack
-- Executing [23@say:5] Goto("SIP/202-09bcb0d0", "23|3") in new stack
-- Goto (say,23,3)
-- Executing [23@say:3] SayNumber("SIP/202-09bcb0d0", "23") in new stack ; вот тут тишина
== Spawn extension (say, 23, 3) exited non-zero on 'SIP/202-09bcb0d0'
Пока что вопросов больше, чем ответов. Не понимаю, почему не принимаются изменения в say.conf.
Ded, в общем предлагай как должно работать, я в понедельник покручу.
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| Код: |
| [ru-base](!) _[n]um:0. => num:${SAY:1} _[n]um:X => digits/${SAY} _[n]um:[1-2]f => digits/${SAY:0:1}f _[n]um:[3-9]f => digits/${SAY:0:1} ; Tens _[n]um:1X => digits/${SAY:0:2} _[n]um:1Xf => digits/${SAY:0:2} _[n]um:[2-9]0 => digits/${SAY:0:2} _[n]um:[2-9]0f => digits/${SAY:0:2} _[n]um:[2-9][1-2] => digits/${SAY:0:1}0, num:${SAY:1} _[n]um:[2-9][1-2]f => digits/${SAY:0:1}0, num:${SAY:1} _[n]um:[2-9][3-9] => digits/${SAY:0:1}0, num:${SAY:1} _[n]um:[2-9][3-9]f => digits/${SAY:0:1}0, num:${SAY:1} ; Hundreds _[n]um:[1-9]00 => digits/${SAY:0:1}00 _[n]um:[1-9]00f => digits/${SAY:0:1}00 _[n]um:XXX => num:${SAY:0:1}00, num:${SAY:1} _[n]um:XXXf => num:${SAY:0:1}00, num:${SAY:1} ; Thousands _[n]um:1XXX => num:${SAY:0:1}f, digits/thousand1, num:${SAY:1} _[n]um:1XXXf => num:${SAY:0:1}f, digits/thousand1, num:${SAY:1} _[n]um:[2-4]XXX => num:${SAY:0:1}f, digits/thousand2, num:${SAY:1} _[n]um:[2-4]XXXf => num:${SAY:0:1}f, digits/thousand2, num:${SAY:1} _[n]um:[5-9]XXX => num:${SAY:0:1}, digits/thousand5, num:${SAY:1} _[n]um:[5-9]XXXf => num:${SAY:0:1}, digits/thousand5, num:${SAY:1} _[n]um:1XXXX => num:${SAY:0:2}, digits/thousand5, num:${SAY:2} _[n]um:1XXXXf => num:${SAY:0:2}, digits/thousand5, num:${SAY:2} _[n]um:[2-9]1XXX => num:${SAY:0:2}f, digits/thousand1, num:${SAY:2} _[n]um:[2-9]1XXXf => num:${SAY:0:2}f, digits/thousand1, num:${SAY:2} _[n]um:[2-9][2-4]XXX => num:${SAY:0:2}f, digits/thousand2, num:${SAY:2} _[n]um:[2-9][2-4]XXXf => num:${SAY:0:2}f, digits/thousand2, num:${SAY:2} _[n]um:[2-9][5-9]XXX => num:${SAY:0:2}, digits/thousand5, num:${SAY:2} _[n]um:[2-9][5-9]XXXf => num:${SAY:0:2}, digits/thousand5, num:${SAY:2} _[n]um:X1XXXX => num:${SAY:0:3}, digits/thousand5, num:${SAY:3} _[n]um:X1XXXXf => num:${SAY:0:3}, digits/thousand5, num:${SAY:3} _[n]um:X[2-9]1XXX => num:${SAY:0:3}f, digits/thousand1, num:${SAY:3} _[n]um:X[2-9]1XXXf => num:${SAY:0:3}f, digits/thousand1, num:${SAY:3} _[n]um:X[2-9][2-4]XXX => num:${SAY:0:3}f, digits/thousand2, num:${SAY:3} _[n]um:X[2-9][2-4]XXXf => num:${SAY:0:3}f, digits/thousand2, num:${SAY:3} _[n]um:X[2-9][5-9]XXX => num:${SAY:0:3}, digits/thousand5, num:${SAY:3} _[n]um:X[2-9][5-9]XXXf => num:${SAY:0:3}, digits/thousand5, num:${SAY:3} ;my millions _[n]um:1XXXXXX => num:${SAY:0:1}, digits/million1, num:${SAY:1} _[n]um:1XXXXXXf => num:${SAY:0:1}, digits/million1, num:${SAY:1} _[n]um:[2-4]XXXXXX => num:${SAY:0:1}, digits/million2, num:${SAY:1} _[n]um:[2-4]XXXXXXf => num:${SAY:0:1}, digits/million2, num:${SAY:1} _[n]um:[5-9]XXXXXX => num:${SAY:0:1}, digits/million5, num:${SAY:1} _[n]um:[5-9]XXXXXXf => num:${SAY:0:1}, digits/million5, num:${SAY:1} _[n]um:1XXXXXXX => num:${SAY:0:2}, digits/million5, num:${SAY:2} _[n]um:1XXXXXXXf => num:${SAY:0:2}, digits/million5, num:${SAY:2} _[n]um:[2-9]1XXXXXX => num:${SAY:0:2}, digits/million1, num:${SAY:2} _[n]um:[2-9]1XXXXXXf => num:${SAY:0:2}, digits/million1, num:${SAY:2} _[n]um:[2-9][2-4]XXXXXX => num:${SAY:0:2}, digits/million2, num:${SAY:2} _[n]um:[2-9][2-4]XXXXXXf => num:${SAY:0:2}, digits/million2, num:${SAY:2} _[n]um:[2-9][5-9]XXXXXX => num:${SAY:0:2}, digits/million5, num:${SAY:2} _[n]um:[2-9][5-9]XXXXXXf => num:${SAY:0:2}, digits/million5, num:${SAY:2} _[n]um:X1XXXXXXX => num:${SAY:0:3}, digits/million5, num:${SAY:3} _[n]um:X1XXXXXXXf => num:${SAY:0:3}, digits/million5, num:${SAY:3} _[n]um:X[2-9]1XXX XXX => num:${SAY:0:3}, digits/million1, num:${SAY:3} _[n]um:X[2-9]1XXXXXXf => num:${SAY:0:3}, digits/million1, num:${SAY:3} _[n]um:X[2-9][2-4]XXXXXX => num:${SAY:0:3}, digits/million2, num:${SAY:3} _[n]um:X[2-9][2-4]XXXXXXf => num:${SAY:0:3}, digits/million2, num:${SAY:3} _[n]um:X[2-9][5-9]XXXXXX => num:${SAY:0:3}, digits/million5, num:${SAY:3} _[n]um:X[2-9][5-9]XXXXXXf => num:${SAY:0:3}, digits/million5, num:${SAY:3} |
Особенности названия файлов:
1f одна
2f две
thousand1 тысяча
thousand2 тысячи
thousand5 тысяч
million1 миллион
million2 миллиона
million5 миллионов
Использование:
Playback(num:1356|say) - одна тысяча триста пятьдесят шесть
Playback(num:421f|say) - четыреста двадцать одна
_________________
Everything over IP & IP over Everything
Последний раз редактировалось: Braams (Вт Апр 01, 2008 13:49)
| Цитата: |
| Playback(num:421f|say) - четыреста двадцать одна |
Если 421 копейка - то семантически верно, а если 421 рубль - то не верно.
_________________
Everything over IP & IP over Everything
_________________
Everything over IP & IP over Everything
Ни как не победил минус и дробные числа - ну чтоб зарядить ему currency:-12,34, а оно само и минус и рубли и копейки сказало - надо патчи писать, тока там всё доходит до главного анализа всего dial-плана - а вот это что-то не хочеться поганить
| Код: |
| exten => s,n,GotoIf($[${Downloaded} > 1024]?MByte) exten => s,n,Playback(kilobyte:${Downloaded},say) exten => s,n,Goto(s,next) exten => s,n(MByte),GotoIf($[$[${Downloaded}/1024] > 1024]?GByte) exten => s,n,Playback(megabyte:$[ROUND(${Downloaded}/1024})],say) exten => s,n,Goto(s,next) exten => s,n(GByte),Playback(gigabyte:$[ROUND(${Downloaded}/(1024*1024))],say) exten => s,n(next),... |
говорилка времени тут пока не сделана
хотелось бы это всё доделать и внести в транк, но времени как всегда не хватает
Последний раз редактировалось: Mike_A (Вс Мар 09, 2008 19:49)
_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
| Код: | |||||||
| _rub:. => num:${SAY}, rub${IF($[$[$[${SAY}%10]=1] & $[$[${SAY}%100]!=11]]?1:${IF($[$[$[$[${SAY}%10]>=2] & $[$[${SAY}%10] num:${SAY}f, kop${IF($[$[$[${SAY}%10]=1] & $[$[${SAY}%100]!=11]]?1:${IF($[$[$[$[${SAY}%10]>=2] & $[$[${SAY}%10] | |||||||
Я еще вот так добавил:
И, соответственно, здесь:
Теперь время по-человечески говорит. | |||||||
| народ! помогите, пожалуйста, ни как не могу разобраться: с самого начала после установки астериск правильно произносит руские числа, от меня требовалось только добавить соответсвующие звуки, но я ни как не могу найти, где он берет русскую конфигурацию, даже после того как я переименовал say.conf и перезапустил астериск, он все равно все произносит правильно.. Может быть я что то не учел, подскажите, если знаете в чем может быть дело. P.s. у меня установлен asterisk-1.4.21.2_4 и asterisk-addons-1.4.6_2 | |||||||
| Очевидно он берёт её в say.c _________________ OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i http://igorg.ru | |||||||
| а где он находиться, не скажешь? найти его поиском не получается..
| |||||||
| Да ну? find / -name say.c | |||||||
| к сожалению и так не находит
| |||||||
| - Ну тогда вам к доктору надо! - А вы кто? - А мы маляры, мы здесь красим. | |||||||
| скажите где say.c лежит по умолчанию? может в freebsd это say.h?
| |||||||
| say.c это часть исходных кодов астериска, он компилируется внутрь комманды asterisk. Если астериск поставлен не из исходных текстов, то скорее всего нет такого файла. _________________ OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i http://igorg.ru | |||||||
| спасибо за разъясненние | |||||||
Дарю (perl, utf8): http://voip.spb.edu/say.txt | |||||||
| спасибо
| |||||||
| _[n]um:1XX => digits/ein, digits/hundred, num:${SAY:1} _[n]um:[2-9]XX => digits/${SAY:0:1}, digits/hundred, num:${SAY:1} С трех значным числом например 380 проговаривает только 80. Что не правильно ? | |||||||
| Использую say.conf от Mike_A не давно проапдейтил * с 1.4.19 до 1.4.25.1 до этого проговор работал
после апдейте какие-то странности. для проверки сделал
он выдает
почему-то по английски пытается воспроизвести. однако, если сунуть файлы не в /digits/ru ,а в /ru/digits , то работает. это у меня что-то мутное или в 1.4.25.1 структура изменилась ? | |||||||
| Изменилась.
| |||||||
| наконецто поменяли. имхо так идеологически более правильно. _________________ Мои рекомендации: Asterisk-1.8 + G.722 кодек = лучший выбор! Успехов! | |||||||
| Эмм.. Она вообще давно изменилась, поведение регулируется в asterisk.conf. Просто в этой версии старое поведение опять сломали. Лучше пользоваться новым вариантом расположения файлов всегда. _________________ OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i http://igorg.ru | |||||||
| А никто не делал чтоб говорило минус? _________________ Ubuntu-Server 6.06 /Gentoo /Asterisk 1.4.21.1/app_fax(t38) /spandsp-0.0.5pre4 Digium TDM400/Polycom IP301 SP /Snom 360/ Seiros ТИ24/Linksys 9X/ Kirk 600IPv3 | |||||||
скопировал себе в say.conf
но такое ощущение что у меня астериск вообще не читает этот файл Проблема в другом с этим say.conf астериск говорит что не может найти файл digits/h-1 хотя указано что надо букву "n" подставлять если это день месяца, но почему-то не подставляет С номером месяца тоже самое, следуя этим правилам месяцы считаются с 0 до 11, а у меня 1 - 12, исправил _date:[Bb]:. => digits/mon-${SAY:4:2} результатов недало, так же и продолжает считать их с 0 в чем проблемма подскажите? | |||||||
| Asterisk 1.6.1.12: если в say.conf в разделе [general] выставить mode=new то после этого в диалплане просто пишем exten => s,1,SayUnixTime() и астер начинает проговаривать те и только те правила которые указанные в say.conf, в частности _datetime - это побороли, этого я и хотел, но он не парсит строку _date:[de]:. => enum:${SAY:6:2}n , т.е. не подставляет букву n и как следствие пишет что файл не найдет Asterisk 1.4.27.1: Все наоборот, проделываем тоже самое что и с Asterisk 1.6 - строчки _date:[de]:. => enum:${SAY:6:2}n и им подобные парсятся, а вот exten => s,1,SayUnixTime() проговаривает дефолтную дату и нивкакую не хочет проговаривать то что указано в _datetime | |||||||
| В 1.4 режим работы приложений нужно устанавливать из CLI: say mode new (если правильно помню) _________________ OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i http://igorg.ru | |||||||
| почему у меня на работают конструкции Playback(num:421f|say) - четыреста двадцать одна почему то пытается проиграть этот файл с таким названием и естественно не находит его
Added after 31 minutes: усе разобрался! У меня версия астера 1.6 поэтому и ни работало, надо писать Playback(enum:22f,say) - двадцать вторая подсказал c0rn в jabber конференции asterisk@conference.jabber.ru за это ему спасибо | |||||||
| Что-то туплю на ровном месте ни чего не получилось, что бы не было лишних грабель скачал с этой ветке say.conf, дал права для астера, но вместо хотя бы чего-нибудь тупо тишина, после say load new, хорошо, что в гугле old нашёл, а то не мог заставить обратно хоть как-то заговорить. Вот такой астериск Connected to Asterisk 1.4.22-4 RPM by vc-rpms@voipconsulting.nl currently running on trixbox1 Вот так пытаюсь заставить говорить:
А в выводе ни чего противоправного:
Поясните плиз, что не так? А то тупо не знаю даже куда смотреть. Смотрю давным давно у Ded такая же муть была, а ответа что сделали, не написали, а жаль Added after 8 minutes: В том say.conf, что я скачал, нет секции [general], нет указания new и прочее..... как оно должно быть, должно быть указано new, просто в ступор вообще вогнало вот это http://svnview.digium.com/svn/asterisk/t ... hrev=76216 Added after 2 minutes: Добавил один фиг молчит, что и логично в общем....
Added after 5 minutes: Чутка прояснилось, астериск из say.conf не смог наверное по шаблону разобрать это exten => s,n,SayUnixTime(,EST5EDT,kMdBYA) , а это смог exten => s,n,SayUnixTime() Вот и хорошо, моно дальше думать =). | |||||||
| Что-то я совсем запутался. Ни как не реагирует на say.conf, что что я даю съедение SayUnixTime. Понял, что по умолчанию отдаются вот так "ABdY 'digits/at' IMp", по этому не слышу секунд ни каких, если я решаю, передать вот так exten => s,n,SayUnixTime(,,ABdYHMS), то тишина, понял, что нечем отработать. Попробовал вот так _datetime:ABdYHMS:XXXXXXXXXXXX.XX-X-XXX (или так _datetime:ABdYHMS:XXXXXXXXXXXX.XX ) => digits/p-m, не ловит в общем. Может кто поделиться рабочим примером, хоть чего нибудь, мне что бы время говорило, причём не в дефолте, а секундами. Что бы понятно было, что бы я мог добавить "час", "минут" и прочего такого. Да и вообще хочется до конца понять. Поделитесь доками и примером, а то ну слабовато в гугле об этом или я не так спрашиваю | |||||||
| НАчало говорить секунды, после втыкания конфига, из форума, прописывания дженерал, и указания вот так _datetime::. => date:AdBY 'digits/at' HMS:${SAY}, но не тут-то было, я удалил S, сделал say load old, потом say load new и так несколько раз, послушал, что говориться и услышал, что говоряться всё равно секунды!!! Это как называется такое??? Added after 9 minutes: Эм вот так вот... Ест он конфиг say.conf один раз после перегрузки модуля app_playback.so, и кстати если не сделать say load new, астер вылетает, перезапускается в моём случае, вот в чём затыка | |||||||
| Кто-нибудь знает как настроить SayUnixTime , чтобы при звонке на определенный номер было два варианта проигрывания времени (русский и английский). Заранее спасибо!!
| |||||||
| При попытке проговорить SayNumber(12345) говорит: двенадцать тысячи триста сорок пять. Это же качается и и прочих подобных числе(13345,12345678). Также при чтении SayNumber(12000) читает двенадцать тысячи ноль _________________ Slackware 13.37 - Asterisk 1.8 | |||||||
Думаю по простому, у вас два типа клиентов у кого язык стоит англ и русский, ну достаточно брать язык из БД астериска, если это трикс бокс, если нет самому расфасовать пользователей или посмотреть переменную канала ${LANGUAGE}, но в последнем не уверен, выставиться ли она если в пользователе написано, что-то отличное от англ. Ну вот и всё пожалуй, выставляете exten => s,1,Set(CHANNEL(language)=ru) что бы получить переменную из Бд, читать это http://www.voip-info.org/wiki/view/Asterisk+cmd+DBget И ещё есть наверное 5 методов более луче есть. | |||||||
| Пробовал не получается. Можешь мне еще другие способы показать??(Заранее спасибо) | |||||||