Проблема с озвучкой баланса
Добавлено: 17 июл 2020, 13:57
Добрый день, пытаюсь сделать озвучивание баланса клиента через playback,но возникла следующая проблема: Если ввести любое число больше 999, то астериск произносит только валюту ( гривна, к примеру). Конфиг say.conf и extensions_custom для вызова озвучивания добавлю ниже.
Вызываю через Playback(grn:999|say) , в логах при числе больше 999 ошибок нет, просто проигрывает файл гривны:
Может есть у кого рабочий конфиг для русского/украинского, не важно, чтобы сумма хотя бы до миллиона проговаривалась? Или может кто понимает синтаксис последних строк (там где gr[n]), которые отвечают за валюту. Подскажите, пожалуйста куда смотреть. Спасибо за помощь
Код: Выделить всё
[ua-base](!)
_[n]um:0 => num:${SAY}
_[n]um:0f => digits/${SAY:0:1}
_[n]um:0. => num:${SAY:1}
_[n]um:X => digits/${SAY}
_[n]um:1f => digits/odna
_[n]um:2f => digits/dvi
_[n]um:Xf => num:${SAY:0:1}
; Tens
_[n]um:1Xf => num:${SAY:0:2}
_[n]um:1X => digits/${SAY}
_[n]um:[2-9]0 => digits/${SAY}
_[n]um:[2-9]0f => digits/${SAY:0:2}
_[n]um:[2-9][1-9] => digits/${SAY:0:1}0, num:${SAY:1}
_[n]um:[2-9][1-9]f => digits/${SAY:0:1}0, num:${SAY:1}
; Hundreds
_[n]um:[1-9]00 => digits/${SAY}
_[n]um:[1-9]00f => num:${SAY}
_[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}, 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}
[ua](ua-base,digit-base)
;CHAS
_godu[n]:0 => num:${SAY}, digits/godun
_godu[n]:1 => digits/odna, digits/goduna
_godu[n]:2 => digits/dvi, digits/godunu
_godu[n]:[3-4] => num:${SAY}, digits/godunu
_godu[n]:[5-9] => num:${SAY}, digits/godun
_godu[n]:0X => godun:${SAY:1}
_godu[n]:1X => num:${SAY}, digits/godun
_godu[n]:20 => num:${SAY}, digits/godun
_godu[n]:2[1-4] => num:${SAY:0:1}0, godun:${SAY:1}
_hvulu[n]:0 => num:${SAY}, digits/hvulun
_hvulu[n]:1 => digits/odna, digits/hvuluna
_hvulu[n]:2 => digits/dvi, digits/hvulunu
_hvulu[n]:[3-4] => num:${SAY}, digits/hvulunu
_hvulu[n]:[5-9] => num:${SAY}, digits/hvulun
_hvulu[n]:0X => hvulun:${SAY:1}
_hvulu[n]:1X => num:${SAY}, digits/hvulun
_hvulu[n]:[2-5]0 => num:${SAY}, digits/hvulun
_hvulu[n]:[2-5][1-9] => num:${SAY:0:1}0, hvulun:${SAY:1}
_seku[n]d:0 => num:${SAY}, digits/secund
_seku[n]d:1 => digits/odna, digits/secunda
_seku[n]d:2 => digits/dvi, digits/secundu
_seku[n]d:[3-4] => num:${SAY}, digits/secundu
_seku[n]d:[5-9] => num:${SAY}, digits/secund
_seku[n]d:0X => sekund:${SAY:1}
_seku[n]d:1X => num:${SAY}, digits/secund
_seku[n]d:[2-5]0 => num:${SAY}, digits/secund
_seku[n]d:[2-5][1-9] => num:${SAY:0:1}0, sekund:${SAY:1}
;zagalnij chas
_date:[hH]:. => godun:${SAY:8:2} ; hour
_date:[M]:. => hvulun:${SAY:10:2} ; minute
_date:[S]:. => sekund:${SAY:13:2} ; seconds
_datetime::. => date:AdBY HMS:${SAY}
;GROSHI
_gr[n]:. => num:${SAY}f, digits/grn${IF($[$[$[${SAY}%10]=1] & $[$[${SAY}%100]!=11]]?1:${IF($[$[$[$[${SAY}%10]>=2] & $[$[${SAY}%10]<=4]] & $[$[$[${SAY}%100]<10] | $[$[${SAY}%100]>=20]]]?2:5)})}
_kop:. => num:${SAY}f, digits/kop${IF($[$[$[${SAY}%10]=1] & $[$[${SAY}%100]!=11]]?1:${IF($[$[$[$[${SAY}%10]>=2] & $[$[${SAY}%10]<=4]] & $[$[$[${SAY}%100]<10] | $[$[${SAY}%100]>=20]]]?2:5)})}
Код: Выделить всё
[2020-07-16 15:17:40] VERBOSE[121011][C-000008c9] pbx.c: Executing [s@balance:4] Playback("SIP/535121-0000004a", "grn:1345,say") in new stack
[2020-07-16 15:17:40] VERBOSE[121011][C-000008c9] file.c: <SIP/535121-0000004a> Playing 'digits/grn5.alaw' (language 'ua')