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.