When using
exten = 9997,n,Set(CHANNEL(language)=en_GB)
exten = 9997,n,Wait(0.5)
exten = 9997,n,SayNumber(19876)
asterisk correctly wants to say nineteen thousand eight hundred AND seventy six
but it is looking for the sound file in the wrong place as shown in the log
[Jan 5 11:26:53] – Executing [9997@outgoing:10] SayNumber(“PJSIP/PortablePete-00000008”, “19876”) in new stack
[Jan 5 11:26:53] – <PJSIP/PortablePete-00000008> Playing ‘digits/19.alaw’ (language ‘en_GB’)
[Jan 5 11:26:55] – <PJSIP/PortablePete-00000008> Playing ‘digits/thousand.alaw’ (language ‘en_GB’)
[Jan 5 11:26:56] – <PJSIP/PortablePete-00000008> Playing ‘digits/8.alaw’ (language ‘en_GB’)
[Jan 5 11:26:56] – <PJSIP/PortablePete-00000008> Playing ‘digits/hundred.alaw’ (language ‘en_GB’)
[Jan 5 11:26:57] WARNING[17902][C-00000006]: file.c:774 ast_openstream_full: File digits/and does not exist in any format
[Jan 5 11:26:57] WARNING[17902][C-00000006]: file.c:1247 ast_streamfile: Unable to open digits/and (format (alaw|ulaw|gsm)): No such file or directory
[Jan 5 11:26:57] – <PJSIP/PortablePete-00000008> Playing ‘digits/70.alaw’ (language ‘en_GB’)
[Jan 5 11:26:58] – <PJSIP/PortablePete-00000008> Playing ‘digits/6.alaw’ (language ‘en_GB’)
the and sound file isn’t in digits it is in the next level up
pete@KFONE-calcul:/var/lib/asterisk/sounds/en_GB$ ls -l and.*
-rw-r–r-- 1 root root 4321 janv. 19 2016 and.alaw
-rw-r–r-- 1 root root 4321 janv. 19 2016 and.g722
-r–r--r-- 1 root root 540 janv. 19 2016 and.g729
-rw-r–r-- 1 root root 924 janv. 19 2016 and.gsm
-rw-r–r-- 1 root root 4321 janv. 19 2016 and.ulaw
-rw-r–r-- 1 root root 8686 janv. 19 2016 and.wav
I suppose it would be simpler to just copy the and files to digits.
Perhaps this could be fixed in a future release.