Asterisk - Nome do chamador de saída no cliente

2

Ao colocar uma chamada externa de saída usando o cliente SIP Bria. O telefone exibe nosso identificador de chamadas como o nome de nossa parte chamadora. Olhando por cima do log, mostra que veio dessa linha

-- Executing [s@macro-dialout-trunk:21] ExecIf("SIP/100-0000004a", "1?Set(CONNECTEDLINE(name,i)=CID:2120000000)”) in new stack

Como podemos configurar nosso sistema para que ele consulte o CNAM ou bancos de dados internos para exibir o nome real da empresa ou da pessoa para quem estamos ligando?

Qualquer ajuda seria apreciada.

    
por Joe2265 01.01.2018 / 01:18

1 resposta

0

Você pode fazer isso, mas a maneira como eu vejo isso exigirá algumas habilidades de script asterisco, e o banco de dados CNAM é claro.

Você pode substituir o macro-dialout-trunk original e modificá-lo para que ele consulte o CNAM ou os bancos de dados internos. Para substituir um contexto de plano de discagem existente, você precisa colocar seu código em /etc/asterisk/extensions_override_freepbx.conf . Você precisará copiar todo o contexto [macro-dialout-trunk] modificado neste arquivo.

Exemplo:

...
exten => s,n(gocall),Macro(dialout-trunk-predial-hook,)
exten => s,n,GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1)
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER}))
;;; This is the line that puts caller ID as the name of the calling party
exten => s,n,ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"!="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)}))
exten => s,n,ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:(Hidden)${CALLERID(number)}))
exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk)
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
...

Você pode adicionar ou modificar as linhas ao [macro-dialout-trunk] para consultar o banco de dados desejado, algo assim:

...
exten => s,n,AGI(iWantTheNameOfThisCompany.agi,${OUTNUM})
exten => s,n,Set(CONNECTEDLINE(name,i)=${awesomeCompanyName})
...

O Asterisk executará o script iWantTheNameOfThisCompany.agi AGI, passando o número discado como argumento. O script poderia definir o usuário da variável $ {awesomeCompanyName} na função CONNECTEDLINE. Você pode usar Perl, PHP, C, Pascal, Bourne Shell - para sua consulta AGI script. a escolha é sua, realmente.

    
por 19.01.2018 / 15:08