AgentComplete, l’impact sur la durée de l’appel ConvDuration (corrigé)

Résolu   L’évènement AgentComplete récupéré sur AMI dans le fichier events doit être contrôlé avant de valider la durée de la conversation. En effet, cet evenementpeut être sujet à des changements sur ses paramètres. Quand il retourne tous paramètres necessaires, il ressemble à ceci :

{« event »: »AgentComplete », »privilege »: »agent,all », »destchannel »: »PJSIP\/1005-000002bf »,

« destchannelstate »: »6″, »destchannelstatedesc »: »Up »,

« destcalleridnum »: »1005″, »destcalleridname »: »1005″,

« destconnectedlinenum »: »77657881″,

« destconnectedlinename »: »77657881″, »destlanguage »: »fr »,

« destaccountcode »: » », »destcontext »: »from-internal »,

« destexten »: »1333″, »destpriority »: »1″, »destuniqueid »: »1721831817.703″,

« destlinkedid »: »1721831816.702″, »queue »: »506″,

« interface »: »PJSIP\/1005″, »membername »: »PJSIP\/1005″,

« holdtime »: »0″, »talktime »: »127″, »reason »: »caller »}

  On peut ainsi voir la clé unique de l’évènement : destuniqueid ou destlinkedid et la durée de la conversation talktime, celui qui a raccroché l’appel : reason.   Cependant, cet évènement peut être incomplet comme celui-ci :
{« event »: »AgentComplete », »privilege »: »agent,all », »queue »: »506″, « interface »: »PJSIP\/1011″, »membername »: »PJSIP\/1011″, « holdtime »: »1″, »talktime »: »149″, »reason »: »caller »}
Ici, il n’y a pas un ID unique, et il n’est pas évident de connaitre l’appel concerné.   Vu que cet évènement est utilisé pour identifier la durée du ConvDuration, il va falloir faire un check de l’existence de l’ID unique puis trouver une autre routine pour avoir la durée de l’appel.   La solution que nous avons adopté est plutôt de se verrouiler à un autre évènement Cdr qui est aussi déclenché quand l’appel est raccroché. Ainsi, on peut connaitre les date precises d’un appel et la durée de ConvDuration. Voici un exemple de l’évent
{« event »: »Cdr », »privilege »: »cdr,all », »accountcode »: » », »source »: »74105070″, « destination »: »1333″, »destinationcontext »: »from-pstn », « callerid »: »\ »74105070\ » <74105070> », « channel »: »PJSIP\/Trunk_10.15.15.65-000002c0″, « destinationchannel »: »PJSIP\/1011-000002c1″, »lastapplication »: »Queue », »lastdata »: »506″, « starttime »: »2024-07-24 16:44:01″, »answertime »: »2024-07-24 16:44:01″, »endtime »: »2024-07-24 16:46:32″, »duration »: »150″, »billableseconds »: »150″, »disposition »: »ANSWERED », « amaflags »: »DOCUMENTATION », »uniqueid »: »1721835841.704″, »userfield »: » »}