Как вычислить разность двух времен из номерного плана Астериск

Asterisk PBXЧтобы вычислить разницу между двумя временами в номерном плане Астериск, сначала необходимо конвертировать время в формат Линукс эпохи. Это можно сделать с помощью функции Астериск STRFTIME. Строка в номерном плане, которая конвертирует время в формат Линукс эпохи:

Set(time=${STRFTIME(${EPOCH},,%s)})

В следующем примере мы имеем две переменные: starttime и endtime, заданные с интервалом времени 10 секунд. Далее высчитывается разница между временами и сохраняется в переменную diff. В данном примере переменная diff будет всегда равна 10:

exten => 1000,1,Set(starttime=${STRFTIME(${EPOCH},,%s)})

same => n,Wait(10)

same => n,Set(endtime=${STRFTIME(${EPOCH},,%s)})

same => n,Set(diff=$[${endtime} -${starttime}])

same => n,Hangup()