Closed trclamar closed 5 years ago
vou dar mais informações, debugando o código php a chamada vai no mbilling.php que checa se é did, de lá vai para o didagi que verifica o modo e seta o type para queue e o queueagi simplesmente desliga a ligação em seu último comando quando o modo é queue.
if ($type == 'queue') {
$MAGNUS->hangup($agi);
exit;
} else {
return;
}
isso ocorre quando o agente está em uma fila de espera, e o did destination está setado para a fila. um dos agentes da fila atende, e ao fazer o blindtransfer (xfer) para outro sip ele cai nesse fluxo.
se no issue anterior foi informado que não é bug porque aí funciona, então é para ser assim mesmo o funcionamento?
resolvi aqui fazendo as seguintes alterações no código:
resources/asterisk/QueueAgi.php linha 152 a 157 alterei para:
$agi->verbose("lamar: type queue then hungup, why?"); //if ($type == 'queue') { if ($type == 'queue' && $siptransfer['data'] != 'yes') { $MAGNUS->hangup($agi); exit; } else { return; }
resources/asterisk/mbilling.php linha 197 e 198 alterei para:
SipTransferAgi::billing($MAGNUS, $agi, $CalcAgi); $agi->verbose("lamar: why hangup call if agent is trying to transfer?", 15); $siptransfer = $agi->get_variable("SIPTRANSFER"); if ($siptransfer['data'] != 'yes') { $MAGNUS->hangup($agi); }
a princípio foram apenas estas duas alterações para o meu propósito, fiz apenas para ter certeza de que era o comportamento padrão do magnusbilling e que não era confusão minha. não sei o impacto que isso acarreta nas outras funções do magnusbilling pois não testei todas elas, sou iniciante no uso da ferramenta.
No MagnusBilling a trasferencia é desativada por padrao.
Case desejar usar, deve configurar o features.conf para transferir com *2 e somente transferencia assistida.
atxfer => *2
blindxfer nunca foi analisado no desenvolvimento, principalmente por complicaçoes na tarifaçao.
Hi, I know this is old but I would like to know is there a chance now that new versions or developments of Magnusbilling will include blindxfer proper billing ? I had made some tests, and CDR does not show properly when blindtransfers are done in the system. Thanks.
feita a instalação miníma do centos 7 feita a atualização com yum -y update feita a instalação com os comandos conforme site magnusbilling.org menu INSTALLATION feita a configuração para ip local (com firewall e nat) conforme vídeo "How to Install MagnusBilling on Google Cloud using CentOS 7" do site magnusbilling.org menu DOCUMENTATION feita a configuração do tronco e did de entrada did de entrada atendendo como chamada sip e transfere normalmente did de entrada colocado como agente de fila, destino do did alterado para a fila, ao atender não consegue transferir, no cli do asterisk aparece: -- Caller hung up before dial.
anexando arquivo com a saída do asterisk-cli
mbilling-test-transfer-call.txt