Terrano Posté(e) le 1 octobre 2015 Posté(e) le 1 octobre 2015 Avoir ses contacts synchronisés de partout, c'est bien, pouvoir les identifier quand ils nous appellent, c'est mieux. :) Pour ce tutorial, nous allons nous baser en prérequis sur le fait que vous avez déjà réalisé celui-ci : http://www.nas-forum.com/forum/topic/48962-carddav-retrouver-ses-contacts-sur-ses-téléphones-ip/ Le but va être simple : Lors d'un appel entrant, interroger la liste des contacts pour voir si le numéro de tel appelant y est enregistré. Si c'est le cas, le nom du contact remplacera le numéro du téléphone. Installation d'un AGI : sous SSH, réaliser les commandes suivantes : cd /var/lib/asterisk/agi-bin vi cidname-recog.agi Tapez i pour passer en édition et coller le code suivant : #!/usr/bin/env python import sys import csv if len(sys.argv) <= 1: exit() cid = sys.argv[1].replace("-","").replace(" ","").strip() # accepting AGI input (but there's nothing to do with it) while 1: line = sys.stdin.readline() if not line: break if line=="\n": break fd = file("/volume1/web/carddav/book.csv") print 'VERBOSE "STATUS: Looking up %s" 2' % cid for line in csv.reader(fd): # note: comparing the number back-to-front, and only comparing 8 rightmost digits. # This helps dealing with different prefix, e.g. +44, 00, 001 etc. and still getting # an accurate match. if line[1].replace("-","").replace(" ","").strip()[::-1][:8] == cid[::-1][:8]: print 'VERBOSE "STATUS: Found %s : %s" 2' % (cid, line[0].strip()) print 'SET VARIABLE CALLERID(name) "%s"' % line[0].strip() exit() print 'VERBOSE "STATUS: %s Not Found" 2' % cid Appuyez sur Echappement, puis :wq pour sauvegarder le fichier. Rendre le fichier exécutable avec : chmod 755 cidname-recog.agi Modification des extensions : Toujours sous SSH, tapez le code suivant : vi /var/packages/Asterisk/target/etc/asterisk/extensions.conf Tapez i pour passer en édition et Insérez l'extension suivante : [cidname-lookup] exten => s,1,NoOp(looking up callerid name) exten => s,n,GotoIf($["foo${CALLERID(NAME)}" = "foo" ]?getname) exten => s,n,GotoIf($["${CALLERID(NAME)}" = "${CALLERID(NUM)}" ]?getname) exten => s,n,NoOp(caller id name exists as ${CALLERID(NAME)}) exten => s,n,Return exten => s,n(getname),AGI(cidname-recog.agi,${CALLERID(NUM)}) exten => s,n,NoOp(Caller ID Name is now ${CALLERID(NAME)}) exten => s,n,Return Insérez la ligne suivante dans les extensions où vous voulez vérifier le nom de l'appelant : exten => numtel,n,Gosub(cidname-lookup,s,1) Appuyez sur Echappement, puis :wq pour sauvegarder le fichier. Redémarrez le serveur Asterisk pour prendre en compte les modifications : /volume1/@appstore/Asterisk/sbin/asterisk -rvvvvvvvv reload core restart now Conclusion : Vous voilà avec un serveur Asterisk intelligent capable de reconnaitre vos contacts et d'afficher leur nom et le poste d'où ils appellent. :) Un pas de plus vers l'oublie des numéros de téléphone. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.