[AsteriskBrasil] PJSIP e Queue gerando CDRs adicionais

mike em tesliuk.com mike em tesliuk.com
Sexta Abril 16 09:08:47 -03 2021


Olá pessoal, como vai ? 

Estou com uma situação aqui onde estamos usando o PJSIP para o sistema , quando os ramais estão em fila nós criamos um contexto separado chamado queuemember para fazer as ligações utilizando o canal Local e então realizar a chamada usando o ${PJSIP_DIAL_CONTACTS} (segue abaixo o contexto) 

[queuemember] 
;exten => _X.,1,Set(NDN=${CUT(EXTEN,-,2)}) 
exten => _X.,1,Set(NDN=${EXTEN}) 
same => n,Set(CDR(tipo)=IN) 
same => n,Set(__TRANSFER_CONTEXT=ramais) 
same => n,Set(CDR(did)=${MAPDID}) 
same => n,Dial(${PJSIP_DIAL_CONTACTS(${NDN})},,t) 
same => n,Hangup() 


O meu problema é que no momento que a fila chama o agente isso está gerando um CDR, eu tentei utilizar o NOCDR() e CDR_PROP mas sem sucesso, alguém tem uma ideia de como contornar esta situação e não gerar o CDR a menos que a chamada seja efetivamente atendida ? 

Outro detalhe que isso está gerando (não testei exatamente mas creio ser por isso) é que o MIX_MONITOR está sempre gerando o arquvo de audio para cada tentativa , mesmo usando o b (apenas quando em bridge), acredito que isso se de devido ao fato de o canal Local considerar a bridge montada, abaixo a macro em questão 

[macro-gravacoes-queues] 
; ARG1 -> accountcode 
; ARG2 -> CALLERID 
; ARG3 -> QUEUENUMBER 

exten => s,1,ExecIf($["${MIXMONITOR_INUSE}" = "1"]?StopMixMonitor()) 
exten => s,n,Set(TIPO=IN) 
exten => s,n,NoOp(Preparando gravacao de chamada) 
exten => s,n,Set(ANO=${STRFTIME(${EPOCH},GMT-3,%G)}) 
exten => s,n,Set(MES=${STRFTIME(${EPOCH},GMT-3,%m)}) 
exten => s,n,Set(DIA=${STRFTIME(${EPOCH},GMT-3,%d)}) 
exten => s,n,ExecIf($["${master}" != ""]?Set(CHANNEL(accountcode)=${master})) 
exten => s,n,Set(MONITOR_FILENAME=/var/spool/asterisk/monitor/${CHANNEL(accountcode)}/${ANO}/${MES}/${DIA}/queue-${THEQUEUE}-src-${ORIGINADOR}-dst-${CALLERID(num)}-${UNIQUEID}) 
exten => s,n,Set(CDR(userfield)=${MONITOR_FILENAME}) 
exten => s,n,ExecIf($["${ODBC_QRECORD(${THEQUEUE})}" == "1"]?Set(doRecord=1):Set(doRecord=0)) 
exten => s,n,ExecIf($["${doRecord}" == "1"]?MixMonitor(${MONITOR_FILENAME}.WAV,b)) 
exten => s,n,ExecIf($["${doRecord}" == "1"]?Set(__MIXMONITOR_INUSE=1):Set(__MIXMONITOR_INUSE=0)) 
exten => s,n,MacroExit() 


Alguma ideia sobre estes problemas ? 

Obrigado. 


-- 
[ https://brdvoz.com.br/ | BRDVOZ ] 
Soluções de Numeração , PABX em Núvem e muito mais... 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20210416/0caeadd8/attachment.html>


Mais detalhes sobre a lista de discussão AsteriskBrasil