We just did a migration to the current 2.8 version of Trixbox, we have run into may issues with compatability with our old call center queues, etc and have been struggling. Our big issue right now is with outbound calls. Right now, the outdial is making the call, but if the agent terminates the call, the queuelog does not get updated with the call termination. If the called party ends the call it will update the queuelog. I have played with the dial line in the agi script and the actual dialplan code to see what is happening, but no luck so far with getting it to work.
From what I can tell, when the agent hangs up first, the call thread terminates right away, sends a HUP signal to the AGI script and the AGI script seems to loose it handles to STDIN/STDOUT and can no longer get the needed variables back from the AGI interface. I tried to set the SIG{HUP} = "INGORE" and the script does continue past the cmd, but when it tries to get back the variables from the AGI interface, the script just terminates and does not update the queuelog, thus the calls seem to never end.
NOTE: I had to change the | to , in the CMD line, asterisk kept complaining that | are no longer supported.
We are running Asterisk 1.6.0.26-FONCORE-r78 which is an updated verson of asterisk within the 2.8 Trixbox release.
Dialplan Code
exten => _8[3-8]XX.,n,Set(CALLERID(all)="--------" <800------->)
exten => _8[3-8]XX.,n,NoOp(Before queueDial)
exten => _8[3-8]XX.,n(dial),AGI(queueDial.agi,${MY_NUM},SIP/NYCAST02/ldpbx-89001-${MY_NUM},q-${MY_QUE},Agent/${MY_AGENTID})
exten => _8[3-8]XX.,n,NoOp(After queueDial)
queueDial.agi
my $DialCMD = "\"$CHANNEL,300,g\"";
LogEvent( 0, "Start Dial: ($DialCMD)" );
$whoHung = cmd( "EXEC dial $DialCMD" );
LogEvent( 0, "End Dial: ($DialCMD)" );