Для этого не нужно AMI. У команды Queue есть параметры macro и gosub, в которых указывается, соответственно, макрос и подпрограмма, вызываемые в момент соединения оператора с абонентом. Просто сохраняем время помещения клиента в очередь, а при соединении вычисляем время нахождения в очереди.
...
same => n,Set(__start=${EPOCH})
same => n,Queue(callcenter,CcRt,,,,,,queue-connected)
...
[queue-connected]
exten => s,1,Set(inQueueTime=$[${EPOCH}-${start}])
...
Затем можно вызвать скрипт через System или напрямую записать данные в базу через ODBC.