Adicionamos no MagnusBilling a opção de armazenar no o resultado do AMD no menu Números nas campanhas de chamadas massivas, ou torpedo de voz, como também é conhecido.
Para funcionar, é necessário, claro, executar a função AMD() do Asterisk no context [billing] localizado em extensions_magnus.conf para que analise se o numero que recebeu a mensagem foi atendido por um humano.
Lembrando que o AMD deve ser executado no contexto somente se for uma chamada massiva, para isso, voce deve verificar no context se a variável ${CAMPAIGN_ID} existe, e caso existir executar o AMD();
A função AMD do Asterisk vai gerar duas variáveis, ${AMDSTATUS} e ${AMDCAUSE} conforme a documentação do Asterisk. Ao ser finalizado a executado do AMD, o MagnusBilling vai verificar se AMDSTATUS for igual a MACHINE, e se for, vai alterar o status do numero para AMD, e em descrição vai atualizar com o valor da variável AMDCAUSE.
Veja um exemplo do contexto [billing] com a função AMD().
[billing]
exten => _[*0-9].,1,GotoIf($[${CAMPAIGN_ID}]?amd)
same => n(amd),AMD()
same => n,AGI("/var/www/html/mbilling/resources/asterisk/mbilling.php")
same => n,Hangup()
Segue o link do commit https://github.com/magnussolution/magnusbilling7/commit/bdcbf990ec3fc31f17e526b132044c3c809a338a
Aproveita que vai dar uma olhada no GitHub e deixe sua estrela.