[Home]

Summary:ASTERISK-29696: say.conf: wrong logic when converting 24 hour time to 12 hour am/pm
Reporter:Benjamin Keith Ford (bford)Labels:
Date Opened:2021-10-19 13:19:34Date Closed:2021-10-19 13:19:56
Priority:MinorRegression?
Status:Closed/CompleteComponents:Applications/app_voicemail
Versions:16.16.0 Frequency of
Occurrence
Constant
Related
Issues:
is the original version of this clone:ASTERISK-29695 SAY.CONF wrong logic when converting 24hour time to say 12 hour am/pm
Environment:Doesn't matter, and from what I can see all version are affectedAttachments:
Description:in SAY.CONF there is 2 big logic errors:
{noformat}
_date:[I]:. => num:$[${SAY:8:2} % 12] ; hour 0-12
{noformat}

Modulo 12 will never return 12, but will return 0 at noon.
Should be something like:
{noformat}
_date:[I]:. => num:${IF($[${SAY:8:2} > 12]?$[${SAY:8:2}-12]:${SAY:8:2})}
{noformat}

also:
{noformat}
_date:[pP]:. => digits/$[ ${SAY:8:2} > 12 ? "p-m" :: "a-m" ] ; am pm
{noformat}
this is wrong: midnight is 00, and noon is 12, and noon should be pm, so it should be
{noformat}
_date:[pP]:. => digits/$[ ${SAY:8:2} >= 12 ? "p-m" :: "a-m" ] ; am pm
{noformat}

I guess not many people are using this, because those error have been there for a very long time, I also have a super old 1.8.7 and it was already in it.
Comments: