Vous souhaiteriez voir le nom de la personne qui vous appels lorsque vous recevez votre appels......
Et vous n'avez pas en interne d'annuaire inversé.....
Bon et bien voici un script qui vous permettra de récupérer les noms des personnes qui vous appels depuis la suisse.
Le script est volontairement plus large que prévus, quelques fonctionnalités lui seront ajoutée au fur et à mesure que je m'amuse avec.
Je suis de loin pas un pro des scripts alors un peu de retenue sur vos commentaires néfastes
je reste à l'écoute bien entendu des améliorations.....
On commence.......
Par de l'administratif..... allez sur le lien suivant : search.ch API Key
Inscrivez-vous, attendez votre clé, et vous pouvez continuer.
Allez hop on file faire du code
Allons dans le dossier suivant : /var/lib/asterisk/agi-bin/
créons un fichier et éditons le au moyen de la commande suivante : vim inverse.agi
et insérez y le script suivant :
Code:
#!/bin/bash #******************** #***** Variable ***** #******************** #Numero de telephone recherche NUMBER=$1 #Cle API pour utiliser les services de search.ch APIKEYSEARCHCH=METTEZ ICI LA CLE RECU DE SEARCH.CH #Chemin du fichier temporaire stockant le contact TMP=/tmp/CallerIDTempo-$(date '+%Y%m%d%H%M%S') #Fonction demandee au script 1:Callerid Uniquement FUNCT=$2 #Annuaire souhaite pour la recherche : 1 : search.ch ANNU=$3 #Variable de stockage du nom du contact NAME="Inconnu" #******************** #***** Fonction ***** #******************** function Callerid() { echo "SET CALLERID \"$NAME <$NUMBER>\"" } function Searchch() { echo "Recherche dans search.ch" #Recuperation du contact et stockage dans le fichier tempo $(wget -q -O $TMP http://tel.search.ch/api/?was=$NUMBER&key=$APIKEYSEARCHCH) #Extraction du contact depuis le fichier tempo NAME=$(cat $TMP| grep -m 1 'content type="text"' | awk -F '>' '{print $2}' | awk -F ',' '{print $1$2}') } #******************** #****** Script ****** #******************** #Traitement selon l'annuaire choisit case "$ANNU" in 1) Searchch ;; *) echo "Annuaire introuveable, Fermeture du script !!!" exit 1 ;; esac #Controle si un nom est trouve, sinon affectation Inconnu if [ "$NAME" = "" ] then NAME="Inconnu" fi #tri des fonctions case "$FUNCT" in 1) echo "CallerID Uniquement" Callerid ;; 2) echo "CallerID et SMS" Callerid ;; 3) echo "CallerID et Mail" Callerid ;; 4) echo "Callerid, Sms, Mail" Callerid ;; *) echo "Fonction Introuveable, Fermeture du script !!!" exit 1 ;; esac #Suppression du fichier Tempo $(rm -f $TMP) exit 0
voilà voilà..... un petit test :
Code:
./inverse.agi 0229300610 1 1
Code:
Recherche dans search.ch CallerID Uniquement SET CALLERID "Agencement Trosselli SA <0229300610>"
Bon on intègre cela dans son asterisk.... avec ceci comme ligne dans son extensions.conf :
Code:
[AppelEntrant] exten = _X.,1,NoOp(! ! ! Appel Entrant ! ! !) exten = _X.,n,AGI(inverse.agi,${CALLERID(num)},1,1) exten = _X.,n,Traitement...Appel
Et hop c'est parti...... profitez bien de la fonctions.....
Pour les possesseur d'un Xivo, il vous suffit de mettre le script au même endroit, que mentionné précédemment,
puis cliquer sur fichier de configuration, ajouter et nommer le fichier : inverse.conf
Insérez ensuite dedans :
Code:
[inverse] exten = s,1,NoOp(Recuperation Callerid) exten = s,n,AGI(inverse.agi,${CALLERID(num)},1,1) exten = s,n,Return()
allez ensuite dans appels entrants, et insérez dans sous routine de prétraitement le mot
Code:
inverse
Amusez-vous bien
Message vBulletin