Annonce d’un numéro
17 Mai 2009
Fonctionnement
Annoncer les numéros de manière habituelle et non chiffre a chiffre. Par exemple pour 0123456789, zero, un, vingt trois, quarante cinq, … Et pour 118, cent dix huit.
Extension
Au lieu d’utiliser SayDigits(${number}), on fait un Gosub:
exten => s,n,SendText("${number}") exten => s,n,Gosub(local-say-number,s,1)
Contexte
Le contexte a pour paramètre la variable number qu’il faut remplir avec le numéro a annoncer.
local-say-number] ; in: number (number to say) exten => s,1,Set(pos=0) exten => s,n,NoOp(${LEN(${number})}) exten => s,n,GotoIf($["$[${LEN(${number})} % 2]" = "0"]?even) exten => s,n(odd),SayNumber(${number:0:3}) exten => s,n,Set(pos=$[${pos} + 3]) exten => s,n(even),While($[${pos} < ${LEN(${number})}]) exten => s,n,GotoIf($["${number:${pos}:1}" = "0"]?zero) exten => s,n,SayNumber(${number:${pos}:2}) exten => s,n,Goto(next) exten => s,n(zero),SayDigits(${number:${pos}:2}) exten => s,n(next),Set(pos=$[${pos} + 2]) exten => s,n,EndWhile() exten => s,n,Return()