hello dear friends
i have a big problem. my inbound calls go to an agi file and then from agi i send call to dialplan by :
$agi->exec(“Dial LOCAL/8083@from-internal,g”);
but when caller hangup exactly when want to dial , status of dial become “CANCEL”
and there is no cdr event on ami and no cdr in my Master.conf and mysql cdr table :
app_dial.c: Caller hung up before dial.
res_agi.c: inbound-logger.php,096366: DialStatus: CANCEL
why asterisk dont have cdr in this case??
please help me to solve that.
Does the call ever go through as you expect and generate good CDRs ?
Is the unanswered=yes option configured in /etc/asterisk/cdr.conf ?
Can you add a call to ForkCDR() application in your AGI before the caller hangup – so, well before the Dial() ?
thanks for kind help.
i set unanswered=yes but when calls comes to agi , i answer them all by :
$agi = new AGI();
$agi->answer();
about forkcdr() if i add it before dial, in case of successfull call , it will raise 2 same cdr, that is not ok with my senario.
can i add forkcdr() after dial ? with check of dialstatus like below :
$agi->exec("DIAL LOCAL/".$queue."@from-internal,,g");
$dial_stat = $agi->get_variable("DIALSTATUS");
$dial_stat = $dial_stat['data'];
$agi->verbose("DialStatus: ".$dial_stat);
if ( $dial_stat == ‘CANCEL’) {
$agi->exec(“ForkCDR()”);
}
please help me solve that,
If the AGI has answered them the status is ANSERED. and the caller is ujnable to use CANCEL.