2 votes

Asterisk - Nom de l'appelant sortant sur le client

Lorsque vous passez un appel externe sortant en utilisant le client SIP Bria. Le téléphone affiche l'identifiant de l'appelant comme étant le nom de la personne qui appelle. En regardant le journal, on voit que l'appel provient de cette ligne

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

Comment pouvons-nous configurer notre système pour qu'il interroge la CNAM ou les bases de données internes afin d'afficher le nom réel de l'entreprise ou de la personne que nous appelons ?

Toute aide serait appréciée.

0voto

Alisio Meneses Points 53

Vous pouvez le faire, mais de la manière dont je le vois, cela nécessitera quelques compétences en script asterisk, et la base de données CNAM bien sûr.

Vous pouvez remplacer la macro-dialout-trunk d'origine et la modifier pour qu'elle interroge la CNAM ou les bases de données internes. Pour remplacer un contexte de plan de numérotation existant, vous devez placer votre code dans le fichier /etc/asterisk/extensions_override_freepbx.conf . Vous devrez copier l'ensemble de la version modifiée [macro-dialout-trunk] dans ce fichier.

Exemple :

...
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})
...

Vous pourriez ajouter ou modifier les lignes de la [macro-dialout-trunk] pour interroger la base de données de votre choix, comme ceci :

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

Asterisk exécutera le script AGI iWantTheNameOfThisCompany.agi, en passant le numéro composé comme argument. Le script pourrait alors définir la variable ${awesomeCompanyName} utilisateur dans la fonction CONNECTEDLINE. Vous pouvez utiliser Perl, PHP, C, Pascal, Bourne script - pour votre requête AGI script. c'est votre choix, vraiment.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X