Affichage des résultats 1 à 9 sur 9

Discussion: CID lookup appel externe

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Junior
    Date d'inscription
    août 2012
    Messages
    4
    Downloads
    0
    Uploads
    0

    CID lookup appel externe

    Bonjour à tous,
    Novice dans le domaine de la VOIP,je suis en stage en mairie.Celle-ci dispose d'un serveur asterisk 1.8 et de freepbx.Tout marche correctement.
    Mon maitre de stage voudrait cependant que lors d'un appel externe(qui vient par exemple d'un portable),il n'y ait pas seulement le numéro d'affiché mais aussi un nom.Pour cela,je me suis renseigné et j'ai trouvé que cela pourrait être possible avec le CID lookup.J'ai donc créé une base MYSQL sur leur serveur et configuré comme source du CID lookup la base sql avec la bonne requête et ensuite configurer une inbound route avec mon CID lookup.Mais cela n'a pas fonctionné.J'ai donc essayé d'ajouter l'entrée directement dans le phonebook et mettre en source du CID interne mais pareil.C'est un numéro de portable que j'essaye de faire la résolution de noms et j'ai mis un 0 avant (00692******).Même sans le 0 avant ça ne marche pas...
    Pourriez-vous m'aider?
    Merci d'avance

  2. #2
    Membre Senior
    Date d'inscription
    septembre 2010
    Messages
    410
    Downloads
    1
    Uploads
    0
    Salut,
    qu'est ce qui ne marche pas : le lookup des numéros dans ta base MySQL ?
    envoie le contenu de ton fichier extensions.conf ..

    Sinon voici comment changer le Caller ID :

    http://www.voip-info.org/wiki/view/Setting+Callerid

  3. #3
    Membre Junior
    Date d'inscription
    août 2012
    Messages
    4
    Downloads
    0
    Uploads
    0
    Je n'ai jamais touché aux fichiers de conf,que en GUI,en effet que ce soit le lookup de la base mySQL ou du phonebook interne,rien ne fonctionne,j'ai déjà essayé la ligne de commande que tu m'as fourni dans la CLI du GUI,elle ne reconnait pas cette commande...
    Je voudrai par exemple traduire le numéro 00692320670 par "Nom" par exemple,du coup quand j'appelle du portable externe,c'est mon nom qui s'affiche

  4. #4
    Membre Association
    Date d'inscription
    septembre 2010
    Localisation
    Cardiff (UK)
    Messages
    49
    Downloads
    0
    Uploads
    0
    Essayes avec les AGI.
    Voici un AGI CIDLookup basé sur LDAP :

    Code:
    #!/usr/bin/php -q
    <?php
    $PhoneNumber=$argv[1] ;
    
    set_time_limit(1);
    
    ob_implicit_flush(false);
    
    error_reporting(0);
    
    if (!defined('STDIN'))
    {
            define('STDIN', fopen('php://stdin', 'r'));
    }
    if (!defined('STDOUT'))
    {
            define('STDOUT', fopen('php://stdout', 'w'));
    }
    if (!defined('STDERR'))
    {
            define('STDERR', fopen('php://stderr', 'w'));
    }
    
    while (!feof(STDIN))
    {
            $temp = trim(fgets(STDIN,4096));
            if (($temp == "") || ($temp == "\n"))
            {
                    break;
            }
            $s = split(":",$temp);
            $name = str_replace("agi_","",$s[0]);
            $agi[$name] = trim($s[1]);
    }
    
    # print all AGI variables for debugging purposes
    foreach($agi as $key=>$value)
    {
            fwrite(STDERR,"-- $key = $value\n");
            fflush(STDERR);
    }
    
    if($PhoneNumber == "asterisk") { 
    	fwrite(STDOUT,"SET CALLERID \"Inconnu <Inconnu>\"\"\n");
    	fflush(STDOUT);
    
    	die("Don't touch this CID !"); 
    }
    
    # Script Beginning
    $server = "****" ;
    $port = "389";
    $rootdn = "****";
    $rootpw = "****";
    
    $ds = ldap_connect($server);  // On suppose que le serveur LDAP est sur cet hote
    
    if (!$ds) { die("can't connect to LDAP server"); }
    
    $r = ldap_bind($ds,$rootdn,$rootpw);
    
    // Annuaire
    $dir_dn = "ou=***, dc=***, dc=***";
    
    $dir_restriction = array( "displayName", "mobile", "telephoneNumber");
    
    $PhoneNumberSearch = '0'.$PhoneNumber ;
    
    $filtre="(|(mobile=$PhoneNumberSearch)(telephoneNumber=$PhoneNumberSearch))";  
    
    $dir_sr = ldap_search($ds, $dir_dn, $filtre, $dir_restriction);
    
    $info = ldap_get_entries($ds, $dir_sr);
    
    $CallerName =  $info[0]["displayname"][0] ;
    
    if($CallerName)
    {
            fwrite(STDOUT,"SET CALLERID \"$CallerName <$PhoneNumber>\"\"\n");
            fflush(STDOUT);
    } else {
    	fwrite(STDOUT,"SET CALLERID \"$PhoneNumber <$PhoneNumber>\"\"\n");
    	fflush(STDOUT);
    }
    ?>
    Et un deuxième de test qui utilisait (dans le cadre de tests uniquement !) la base reverse Infobel

    Code:
    #!/usr/bin/php -q
    <?php
    $DirectoryURL="http://www.infobel.com/fr/france/Inverse.aspx?q=France&qPhone=" ;
    $PhoneNumber=$argv[1] ;
    set_time_limit(60);
    
    error_reporting(0);
    
    if (!defined('STDIN'))
    {
    	define('STDIN', fopen('php://stdin', 'r'));
    }
    if (!defined('STDOUT'))
    {
    	define('STDOUT', fopen('php://stdout', 'w'));
    }
    if (!defined('STDERR'))
    {
    	define('STDERR', fopen('php://stderr', 'w'));
    }
    $DirectoryPage=file_get_contents($DirectoryURL.$PhoneNumber) ;
    
    if(preg_match("/<div class=\"result-item\"><h2>1. (.*)<!--/i",$DirectoryPage,$matches))
    {
    	$currentTemp=$matches[1];
    }
    if($currentTemp)
    {
    	echo "SET CALLERID \"$currentTemp <$PhoneNumber>\"" ;
    }
    ?>
    N'hesites pas à faire des logs dans tes AGI qui contiennent le format du numéro reçu.
    Ancien pseudo : Battor77

    Wiki Asterisk-France : http://wiki.asterisk-france.org
    Linux for sysops : http://www.my-linux.fr

  5. #5
    Asterisk Fan Avatar de fastm3
    Date d'inscription
    août 2010
    Localisation
    Corbeil Essonnes (91)
    Messages
    1 302
    Downloads
    1
    Uploads
    1
    Ce que tu as fait et que tu decris pour le cid externe mysql semble correct avec freepbx. Essaie deja de diagnostiquer ce qui ne va pas avant de partir vers d'autres solutions.
    Soit ta connection ne se fait pas correctement soit le sql n'est pas correct.
    Verifie deja ca à la main avec mysql.
    Si ok, lance asterisk en cli.
    asterisk -rvvvvvvvvvddddddddd
    Et regarde les traces quand tu fais un appel entrant. N'oublie pas pour la inbound route de bien specifier le callerid mysql que tu as defini.
    Fastm3.
    PS: En vacances avec tethering...

  6. #6
    Membre Junior
    Date d'inscription
    août 2012
    Messages
    4
    Downloads
    0
    Uploads
    0
    Au niveau de la base mySQL,tout devrait être normal,j'ai essayé la requête directement sur la base,ca a marché.C'est peut-être au niveau de la inbound route qu'il pourrait avoir un problème,j'ai juste créé une inbound route en ne spécifiant que la source du CID lookup,rien d'autre,pas même le DID number ou CID number ou destination,ai-je bien fait?

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •