Funções do Dialplan do Asterisk 21
Comando:
CDR()
Sinopse:
Obtém ou define uma variável de CDR.
Descrição:
Todos os nomes de campos de CDR são somente leitura, exceto 'accountcode', 'userfield' e 'amaflags'. No entanto, você pode fornecer um nome que não esteja na lista acima e criar sua própria variável, cujo valor pode ser alterado com esta função, e essa variável será armazenada no CDR.
Observação: Os CDRs só podem ser modificados antes que a ponte entre dois canais seja encerrada. Por exemplo, os CDRs não podem ser modificados após o retorno da aplicação 'Dial'.
Exemplo: Define o campo 'userfield': exten => 1,1,Set(CDR(userfield)=test)
CDR(name[,options])
name - Nome do campo CDR:
clid - Caller ID.
lastdata - Últimos argumentos da aplicação.
disposition - O estado final do CDR. (0 - NO ANSWER, 1 - NO ANSWER (NULL record), 2 - FAILED, 4 - BUSY, 8 - ANSWERED, 16 - CONGESTION).
src - Origem.
start - Hora em que a chamada começou.
amaflags - Leitura/Escrita dos flags de Contabilização Automática de Mensagens (AMA) no canal. Ao ler de um canal, o valor inteiro será sempre retornado. Ao escrever em um canal, tanto o formato de string quanto o valor inteiro são aceitos. (1 - OMIT, 2 - BILLING, 3 - DOCUMENTATION). Atenção: O acesso a esta configuração está obsoleto em CDR. Utilize a função CHANNEL em vez disso.
dst - Destino.
answer - Hora em que a chamada foi atendida.
accountcode - O código da conta do canal. Atenção: O acesso a esta configuração está obsoleto em CDR. Utilize a função CHANNEL em vez disso.
dcontext - Contexto de destino.
end - Hora em que a chamada terminou.
uniqueid - O ID único do canal.
dstchannel - Canal de destino.
duration - Duração da chamada.
userfield - O campo especificado pelo usuário do canal.
lastapp - Última aplicação.
billsec - Duração da chamada uma vez que foi atendida.
channel - Nome do canal.
sequence - Número de sequência do CDR.
options
f - Retorna os campos 'billsec' ou 'duration' como valores de ponto flutuante.
u - Recupera o valor bruto, não processado. Por exemplo, 'start', 'answer' e 'end' serão recuperados como valores epoch quando a opção 'u' for passada, mas formatados como AAAA-MM-DD HH:MM:SS caso contrário. Da mesma forma, 'disposition' e 'amaflags' retornarão seus valores integrais brutos.
Sintaxe:
exten => 1,1,Set(CDR(userfield)=test)
CDR(name[,options])
Fonte: Asterisk Wiki