Manuais

Aplicativos de plano de discagem do Asterisk 11
Comando:

ForkCDR()


Descrição:
Faz com que o registro de dados da chamada bifurque um registro cdr adicional a partir do momento da chamada da bifurcação. Esse novo registro cdr será vinculado ao final da lista de registros cdr anexados ao canal. O CDR original possui um conjunto de sinalizadores LOCKED, o que força a maioria das operações de cdr a ignorá-lo, exceto pelas funções que definem o horário de resposta e o término, que ignoram o sinalizador LOCKED. Isso permite que todos os registros cdr no canal sejam 'finalizados' juntos quando o canal é fechado. A função CDR () (ao definir valores de CDR) normalmente ignora também o sinalizador LOCKED, mas tem opções para variar seu comportamento. A opção 'T' (descrita abaixo) pode substituir esse comportamento, mas tome cuidado com os riscos. Primeiro, este aplicativo encontra o último registro de cdr na lista e faz uma cópia dele. Essa nova cópia será o registro cdr recém-bifurcado. Em seguida, esse novo registro é vinculado ao final da lista de registros de cdr. Em seguida, o novo registro cdr é RESET (a menos que você use uma opção para evitar isso). Isso significa que: 1. Todos os sinalizadores não estão definidos no registro cdr2. os tempos de início, fim e resposta estão todos definidos como zero. Os campos Bill e Duração são definidos como zero. a hora de início é definida como a hora atual. a disposição é definida como NULL. Em seguida, a menos que você tenha especificado a opção v, todas as variáveis ​​serão removidas do registro cdr original. Portanto, a opção v permite que quaisquer variáveis ​​CDR sejam replicadas para todos os novos registros cdr bifurcados. Sem a opção v, as variáveis ​​no original são efetivamente movidas para o novo registro cdr bifurcado. Em seguida, se a opção s estiver configurada, a variável e o valor fornecidos serão definidos no registro cdr original. Em seguida, se a opção for fornecida , e o registro cdr original tem um tempo de resposta definido, então o novo registro cdr bifurcado terá seu tempo de resposta definido no horário de início. Se o tempo de resposta antigo fosse transportado, o tempo de resposta seria anterior ao horário de início, fornecendo uma duração e tempos de faturamento estranhos. Se a opção d foi especificada, a disposição é copiada do registro cdr original para o novo cdr bifurcado. Se a opção D foi especificada, o campo do canal de destino no novo CDR bifurcado é apagado. Se a opção e foi especificada, o horário 'final' do registro cdr original é definido como o horário atual. Os eventos de desligamento ou término futuros não substituirão esse carimbo de data / hora. Se a opção A for especificada, o registro cdr original terá o sinalizador ANS_LOCKED definido, o que impede que futuros eventos de resposta atualizem a disposição do registro cdr original. Normalmente, um evento RESPONDIDO marcaria todos os registros cdr na cadeia como RESPONDIDO. Se a opção T for especificada, o registro cdr original terá seu sinalizador DONT_TOUCH definido, o que forçará as funções cdr_answer, cdr_end e cdr_setvar a deixar esse registro cdr sozinho. E, por último, mas não menos importante, o registro cdr original tem seu LOCKED conjunto de sinalizador. Quase todas as funções internas do CDR (exceto as funções que definem o fim e os tempos de resposta e definem uma variável) respeitarão esse sinalizador e deixarão um registro cdr LOCKED sozinho. Isso significa que o registro cdr bifurcado recém-criado será afetado por eventos que ocorrem no Asterisk, com as exceções observadas anteriormente.
Sintaxe:
ForkCDR([options])
Argumentos:
a - Atualize o tempo de resposta no NOVO CDR logo após ter sido iniciado. O novo CDR pode já ter sido respondido. A redefinição feita pelo forkcdr apagará o tempo de resposta. Isso o trará de volta, mas o tempo de resposta será uma cópia da bifurcação / hora de início. Só o fará se o cdr inicial já tiver sido respondido.
A - Bloqueie o CDR original contra o tempo de resposta que está sendo atualizado. Isso permitirá que a disposição no CDR original permaneça a mesma.
d - Copie a disposição para a frente do cdr antigo, após o init.
D - Limpe o dstchannel no novo CDR após a redefinição.
e - Termine o CDR original. Faça isso depois que todos os dados necessários forem copiados do CDR original para o novo CDR bifurcado.
r - NÃO redefina o novo cdr.
s(name=val) - Defina o nome da var CDR na CDR original, com o valor val.
T - Marque o CDR original com um sinalizador DONT_TOUCH. setvar, answer e end cdr funcs obedecerão a este sinalizador; normalmente eles não respeitam o sinalizador LOCKED definido no registro CDR original.
v - Quando o novo CDR é bifurcado, ele obtém uma cópia dos vars anexados ao CDR atual. Os vars anexados ao CDR original são removidos, a menos que esta opção seja especificada.
Fonte: Asterisk Wiki

ENTRE EM CONTATO COM A LOJAMUNDI.

Assine nossa Newsletter! É gratuito!

Cadastre seu nome e email para receber novidades e materiais gratuitos da Lojamundi.