Database Elenco Telefonico

Moderatore: phpBB Moderatori

Messaggioda maisx » ven ott 09, 2009 6:31 am

io ho provato CallerID Superfecta 2.2  su trixbox elastix e pbxinaflash
e funziona perfettamente e si integra con freepbx.
Per gli altri mi hanno funzionato anque quelli ma sicuramnete c'e' da perderci
un po' di tempo per capire il meccanismo
Ciao maisx 
Avatar utente
maisx
Expert
Expert
 
Messaggi: 577
Iscritto il: ven set 30, 2005 6:39 pm
Località: Vicensa
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda darkbasic » ven ott 09, 2009 9:44 am

Continuo a non capire se funziona anche su asterisk.. se sì non ho capito come si fa ad installarlo...
darkbasic
Advanced
Advanced
 
Messaggi: 134
Iscritto il: ven lug 18, 2008 9:17 am
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda maisx » ven ott 09, 2009 3:05 pm

se installi freepbx probabilmente funziona
con asterisk nudo devi leggerti su questo forum qualcuno mi sembra ha fatto qualche script che funziona
Ultima modifica di mipaneb il sab ott 15, 2011 8:40 am, modificato 1 volta in totale.
Motivazione: rimozione quote integrale
Avatar utente
maisx
Expert
Expert
 
Messaggi: 577
Iscritto il: ven set 30, 2005 6:39 pm
Località: Vicensa
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda darkbasic » sab ott 10, 2009 9:52 am

maisx ha scritto:con asterisk nudo devi leggerti sul questo forum qualcuno mi sembra ha fatto qualche script che funziona


Se intendi in questo thread l'ho già letto, ma siccome ci sono più di uno script ed è passato diverso tempo volevo sapere pareri da chi li ha provati, se i siti citati funzionano ancora, come si comportano in caso di down di internet, i ritardi medi, etc..
darkbasic
Advanced
Advanced
 
Messaggi: 134
Iscritto il: ven lug 18, 2008 9:17 am
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda crimson » lun ott 12, 2009 7:50 am

su infobel come tempi di acesso e di recupero dati siamo intorno agli 0.8 secondi di media.
per quanto riguarda il time out quello lo decidi tu a livello di programmazione. io ho impostato 3 secondi. confermo che infobel funziona ancora perfettamente.

Il tuo in php come funziona? È semrpe uno script agi? Potrei usarlo anch'io?


l'ho script che ho relaizzato io è in php e ha funzioni aggiuntive come la correzione degli accenti e collegamenti ad una rubrica centralizzata. Diciamo che per ragioni lavorative nn mi è permesso postare lo sript ma posso aiutarti a realizzarne uno in php se butti giu qualcosa...senza problemi.
Ultima modifica di crimson il lun ott 12, 2009 5:19 pm, modificato 1 volta in totale.
Avatar utente
crimson
Expert
Expert
 
Messaggi: 463
Iscritto il: mer dic 21, 2005 4:12 pm
Località: Oristano
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda linuxmafia » ven ott 23, 2009 2:55 pm

Usando asterisk 1.6 puro non riesco ad implementare la funzione, uso questo script:
Codice: Seleziona tutto
#!/usr/bin/perl -w

#Ultimate CNAM v1.0
#Date:  12/28/07
#Author: Jonathan Rudenberg <jon335@gmail.com>

#Copyright 2007-2008 Jonathan Rudenberg
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>

#Please note that if you do not have the XML::Simple and AppConfig Perl modules installed, this script will fail!!!
#They are NOT part of a default PBX-in-a-Flash installation.
#Please see the installation instrucations at http://nerdvittles.com/forum/showthread.php?t=65

# Do not edit anything beyond this point unless you know what you are doing!!
####################################################################

use strict;
use warnings;

use DBI;
use AppConfig;
use XML::Simple;
use LWP::UserAgent;
use HTML::TokeParser;

my $xml = new XML::Simple;

my $config = AppConfig->new();

$config->define("configFile",
        {ARGCOUNT => 1, DEFAULT => 'cnam.cfg', ALIAS => 'c'});

my $configFile = $config->configFile;

$config->define("Asteridex",   {DEFAULT => 1});
$config->define("Infobel",   {DEFAULT => 1});

$config->define("WCU_name",      {ARGCOUNT => 1});
$config->define("WCU_pass",      {ARGCOUNT => 1});
$config->define("WCU_threshold", {ARGCOUNT => 1});
$config->define("WCU_CNAM",      {ARGCOUNT => 1});

$config->define("debug", {DEFAULT => 0,});

$config->define("number", {ARGCOUNT => 1});

if (-e $configFile) {
        $config->file($configFile);
}
$config->cgi();
$config->args();

my $Asteridex   = $config->Asteridex;
my $Infobel   = $config->Infobel;

my $WCU_name      = $config->WCU_name;
my $WCU_pass      = $config->WCU_pass;
my $WCU_threshold = $config->WCU_threshold;
my $WCU_CNAM      = $config->WCU_CNAM;

my $debug = $config->debug;

my $callerid = $config->number;

if (! $callerid) {
        die "Number undefined\n";
}

print "Content-type: text/html\n\n";

$callerid =~ s/\ //g;

if (substr($callerid, 0, 1) eq '1') {
        $callerid = substr($callerid, 1);
}

if (substr($callerid, 0, 2) eq '+1') {
        $callerid = substr($callerid, 2);
}
    my $numero = $callerid;
    my $seconda = substr ($numero, 1, 1);
    my $terza = substr ($numero, 2, 1);

    my $prefisso = "";
    my $num = "";
    my $pre_cell = "";

    if ( substr ($numero, 0, 1) eq '3' ) {
        $pre_cell = 3;
        $prefisso = substr ($numero, 0, 3);
        $num = substr ($numero, 3);
       print  "E' un cellulare!!! (Prefisso=$prefisso Numero=$num)\n";
    } else {
        if (($seconda == 2) || ($seconda == 6)) {
            $prefisso = substr ($numero, 0, 2);
            $num = substr ($numero, 2);
        } elsif (($terza == 0) || ($terza == 1) || ($terza == 5) || ($terza == 9)) {
            $prefisso = substr ($numero, 0, 3);
            $num = substr ($numero, 3);
        } elsif (($terza == 2) || ($terza == 3) || ($terza == 4) || ($terza == 6) || ($terza == 7) ||($terza == 8)) {
            $prefisso = substr ($numero, 0, 4);
            $num = substr ($numero, 4);
        } else {
            print "Numero non valido\n";
            exit(0);
        }
    }

my $name;

if ($Asteridex == 1) {
        if ($debug == 1) {print "Ready for AsteriDex lookup...\n";}
        if ($name = &asteridex_lookup($prefisso, $num)) {
                print "$name\n";
                if ($debug == 1) {
                        print "AsteriDex match. New CallerIDName = $name\n";
                }
                exit(0);
        } elsif ($debug == 1) {
                print "Unable to find an AsteriDex match.\n";
        }
} elsif ($debug == 1) {
        print "Asteridex lookup disabled.\n";
}

if (( $Infobel > '0' ) && ( !$pre_cell )) {
        if ($debug == 1) {print "Ready for Infobel lookup...\n";}
        if ( $name = &infobel_lookup ($prefisso, $num) ) {
            print "$name\n";
           if ($debug == 1) {print "InfoBel match. New CallerIDName = $name\n";}
            &asteridex_insert ($prefisso, $num, $name);
         exit(0);
        } else {
           if ($debug == 1) {print "Unable to find an InfoBel lookup.\n";}
}}

exit(0);

sub asteridex_lookup {
        my ($prefisso, $num) = @_;
        my $dbh = DBI->connect("dbi:mysql:asteridex", "root", "masterix")
          or die("Connect failed");
        my $sth =
          $dbh->prepare("select * from user1 where `out` = '$prefisso$num'")
          or die("Prepare failed.");
        $sth->execute;
        if ($sth->rows == 0) {
                return '';
        } else {
                my $resptr   = $sth->fetchrow_hashref();
                my $clidname = $resptr->{"name"};
                return $clidname;
        }

        $dbh->disconnect;
        return '';
}

sub infobel_lookup {
    my ($prefisso, $num) = @_;
    my $ua = new LWP::UserAgent;
    $ua->agent("AgentName/0.1 " . $ua->agent);
    my $URL = 'http://www.infobel.com/it/italy/inverse.aspx';
    my $req = new HTTP::Request POST => $URL;
    $req->content_type('application/x-www-form-urlencoded');
    $req->content('qPhone=' . $prefisso . $num . '&SubmitREV=Ricerca&inphCoordType=EPSG');
    my $res = $ua->request($req);
    my $cidname = "";
    if ( $res->is_success() ) {
        if ( $res->content =~ /QName=(.*)&QNum/ ) {
            $cidname = $1;
            $cidname=~ s![-\\|_/]!!g;
            $cidname=~ s/[ ]+/ /gsi;
            $cidname=~ s/\'//g;
        }
        my $newcallerid = "\"$cidname <$prefisso$num>\"";
        return $cidname;
    } else {
        return "";
    }
}

sub asteridex_insert {
    my ($prefisso, $num, $name) = @_;
    my $dbh = DBI->connect("dbi:mysql:asteridex","root","masterix") or die("Connect failed");
    my $sth = $dbh->prepare("INSERT INTO user1 VALUES (null, '$name', '*', '$prefisso$num','')");
    $sth->execute;
    $dbh->disconnect;
}

Da shell funziona ma da asterisk no, in extensions.conf cosa devo inserire ?
linuxmafia
Advanced
Advanced
 
Messaggi: 114
Iscritto il: mer mag 21, 2008 8:06 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda crimson » lun ott 26, 2009 8:16 am

beh intanto apri la console di asterisk e prova a fare una chiamata...devi controllare per lo meno che asterisk legga lo script. quando sei sicura si può pensare alla soluzione
Avatar utente
crimson
Expert
Expert
 
Messaggi: 463
Iscritto il: mer dic 21, 2005 4:12 pm
Località: Oristano
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda linuxmafia » lun ott 26, 2009 11:27 am

Il problema è il set di caratteri, dopo vari tentativi ho scritto una pagina in php che funziona, i problemi riscontrati erano legati ai caratteri ' " _ che a quanto pare debian non digerisce come le altre distro.

Nel file extensions.conf ho inserito una sola riga
Codice: Seleziona tutto
exten => _X.,1,Set(CALLERID(name)=${CURL(http://127.0.0.1:80/cid.php?cid=${CALLERID(num)})})


con questa soluzione fino ad ora sembra tutto ok.
Se a qualcuno serve lo script in php lo posso postare tranquillamente.
linuxmafia
Advanced
Advanced
 
Messaggi: 114
Iscritto il: mer mag 21, 2008 8:06 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda crimson » lun ott 26, 2009 3:40 pm

exten => _X.,1,Set(CALLERID(name)=${CURL(http://127.0.0.1:80/cid.php?cid=${CALLERID(num)})})


puoi sovrascrivere il CALLERID(name) direttamente nello script di php. fai prima.
Avatar utente
crimson
Expert
Expert
 
Messaggi: 463
Iscritto il: mer dic 21, 2005 4:12 pm
Località: Oristano
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda mitico1969 » sab feb 13, 2010 9:00 am

maisx ha scritto:Io lo ho testato sul PBX In A Flash 1.4  e ha funzionato tutto al primo colpo
adesso lo sto testando su elastix  che mi sembra piu' snello anche se ha piu cose
e anche li funziona

Ciao Maisx



Ciao maisx, io ho provato a installarlo su elastix, tutto bene si integra perfettamente con freepbx, unico problema è che non mi transita le chiamate, praticamente rimangono nele code e non mi trillano i telefoni, sai se oltre a installare il tutto, c'è da configurare qualcosa ?

grazie mille
Mitico1969
Avatar utente
mitico1969
Beginner
Beginner
 
Messaggi: 23
Iscritto il: dom feb 25, 2007 10:38 am
Località: Treviglio
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda celerig » sab mag 08, 2010 2:19 pm

Qualcuno potrebbe gentilmente dirmi qual'è lo script giusto da usare per asterisk senza gui senza moduli freepbx ecc.. ?

Grazie mille,
Eugenio.




EDIT:
Ho finalmente trovato uno script funzionante con paginebianche, non serve nulla di più di asterisk e perl. vi segnalo il link con la guida, si installa in 3 secondi.

Penso che però sia necessario asterisk 1.6 perchè le stringhe del dialplan includono la funzione GoSub che se non sbaglio c'è solo dall 1.6.

http://pastebin.com/iQAMBHcv

Ciao,
Eugenio.
Ultima modifica di mipaneb il sab ott 15, 2011 8:41 am, modificato 2 volte in totale.
Motivazione: unione messaggi consecutivi
Avatar utente
celerig
Advanced
Advanced
 
Messaggi: 253
Iscritto il: gio mar 08, 2007 7:50 pm
Località: Venezia
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda gunny » lun mag 31, 2010 7:44 pm

Carissimo Eugenio la pagina porta allo script, ma non ho trovato le istruzioni per configurarlo. grazie Gunny
gunny
Beginner
Beginner
 
Messaggi: 78
Iscritto il: ven ago 04, 2006 1:03 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda TheBus » mar giu 01, 2010 1:13 pm

SEMI OT

--------------------------
Dal 1° gennaio 2011 sarà di nuovo possibile risalire al nominativo di un abbonato sulla base del suo numero telefonico, a meno  che l'interessato non abbia espresso una volontà contraria al proprio operatore.
La possibilità di "ricerca inversa" riguarda i "vecchi" abbonati, i cui dati erano già inseriti in un elenco pubblico alla data del 1° febbraio 2005, e i nuovi abbonati che hanno espresso un esplicito consenso su questo punto. Il Garante privacy, su richiesta di alcune società che offrono servizi di informazione sull'elenco abbonati, ha chiarito alcuni aspetti della normativa sugli elenchi telefonici. L'intervento del Garante (relatore Mauro Paissan) permette di sanare quello che da molti utenti era percepito come un disservizio. I fornitori, infatti, non offrivano più al pubblico la possibilità della "ricerca inversa" ritenendo di non essere legittimati ad effettuarla senza consenso. Interpretazione corretta, secondo il Garante, solamente riguardo ai nuovi abbonati. Per questi ultimi, infatti, la normativa sugli elenchi telefonici prevede l'acquisizione di uno specifico consenso all'uso dei dati attraverso il questionario che ciascun operatore sottopone ai propri clienti. Discorso diverso per i "vecchi" abbonati per i quali - ha spiegato il Garante - la ricerca inversa è ammessa, anche senza consenso, sulla base della direttiva europea sulle comunicazioni elettroniche (2002/58/Ce), nel punto in cui prevede che i dati personali degli abbonati già presenti in un elenco telefonico al 1 febbraio 2005 possano restare inseriti anche in elenchi cartacei e elettronici che offrono questa funzione. A seguito dell'intervento del Garante gli operatori telefonici che abbiano clienti i cui dati erano già inseriti in un elenco pubblico, dovranno però informare questi ultimi dell'attivazione della funzione di ricerca inversa nei loro confronti e consentire in tal modo di esprimere un'eventuale opposizione. L'informativa alla clientela dovrà essere inserita nella bolletta e pubblicata sui siti web dei gestori.
fonte: http://www.newslinet.it/notizie/privacy ... -risalire-
Avatar utente
TheBus
Advanced
Advanced
 
Messaggi: 237
Iscritto il: lun lug 24, 2006 7:29 am
Ha ringraziato: 0 volta
Hai ringraziamenti: 2 volte

Messaggioda Omega » mar giu 01, 2010 3:55 pm

Scusate signori se mi intrometto in questa discussione, ma vorrei evitare di aprire l'ennesimo topic.

Ho una distro "AsteriskNOW", come già detto, e vorrei fare il lookup del numero utilizzando il database "MySQL" di "Asteridex" (penso di non aver sbagliato posto, dato che se ne è parlato anche qui).

Ho seguito le varie guide e credo di non aver tralasciato niente. "Asteridex" funzione benissimo e utlizzando "FreePBX", "Caller ID Superfecta" fa quel che deve, restituendo il giusto risultato.
Quando però ricevo una chiamata, la query non viene risolta, o almeno così pare.
Anzi a dire il vero, probabilmente, non viene nemmeno richiamata.

Ecco il log:
Codice: Seleziona tutto
    -- Registered IAX2 '150' (AUTHENTICATED) at 127.0.0.1:43441
    -- Registered IAX2 '150' (AUTHENTICATED) at 127.0.0.1:4570
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:1] Set("SIP/1001-0938df50", "__FROM_DID=[b]Numero di telefono del trunk[/b]") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:2] Gosub("SIP/1001-0938df50", "app-blacklist-check|s|1") in new stack
    -- Executing [s@app-blacklist-check:1] LookupBlacklist("SIP/1001-0938df50", "") in new stack
    -- Executing [s@app-blacklist-check:2] GotoIf("SIP/1001-0938df50", "0?blacklisted") in new stack
    -- Executing [s@app-blacklist-check:3] Set("SIP/1001-0938df50", "CALLED_BLACKLIST=1") in new stack
    -- Executing [s@app-blacklist-check:4] Return("SIP/1001-0938df50", "") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:3] Gosub("SIP/1001-0938df50", "cidlookup|cidlookup_1|1") in new stack
    -- Executing [cidlookup_1@cidlookup:1] Set("SIP/1001-0938df50", "CALLERID(name)=[b]Questo è proprio vuoto, non mi sono dimenticato di scrivere[/b]") in new stack
    -- Executing [cidlookup_1@cidlookup:2] Return("SIP/1001-0938df50", "") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:4] ExecIf("SIP/1001-0938df50", "1 |Set|CALLERID(name)=[b]Numero di telefono del chiamante[/b]") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:5] Set("SIP/1001-0938df50", "__CALLINGPRES_SV=allowed_not_screened") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:6] SetCallerPres("SIP/1001-0938df50", "allowed_not_screened") in new stack
    -- Executing [[b]Numero di telefono del trunk[/b]@from-pstn:7] Goto("SIP/1001-0938df50", "ivr-2|s|1") in new stack
    -- Goto (ivr-2,s,1)
    -- Executing [s@ivr-2:1] Set("SIP/1001-0938df50", "MSG=custom/intro") in new stack
    -- Executing [s@ivr-2:2] Set("SIP/1001-0938df50", "LOOPCOUNT=0") in new stack
    -- Executing [s@ivr-2:3] Set("SIP/1001-0938df50", "__DIR-CONTEXT=default") in new stack
    -- Executing [s@ivr-2:4] Set("SIP/1001-0938df50", "_IVR_CONTEXT_ivr-2=") in new stack
    -- Executing [s@ivr-2:5] Set("SIP/1001-0938df50", "_IVR_CONTEXT=ivr-2") in new stack
    -- Executing [s@ivr-2:6] GotoIf("SIP/1001-0938df50", "0?begin") in new stack
    -- Executing [s@ivr-2:7] Answer("SIP/1001-0938df50", "") in new stack
    -- Executing [s@ivr-2:8] Wait("SIP/1001-0938df50", "1") in new stack
    -- Executing [s@ivr-2:9] Set("SIP/1001-0938df50", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [s@ivr-2:10] Set("SIP/1001-0938df50", "TIMEOUT(response)=0") in new stack
    -- Response timeout set to 0
    -- Executing [s@ivr-2:11] Set("SIP/1001-0938df50", "__IVR_RETVM=") in new stack
    -- Executing [s@ivr-2:12] ExecIf("SIP/1001-0938df50", "1|Background|custom/intro") in new stack
    -- <SIP/1001-0938df50> Playing 'custom/intro' (language 'en')
  == Spawn extension (ivr-2, s, 12) exited non-zero on 'SIP/1001-0938df50'
    -- Executing [h@ivr-2:1] Hangup("SIP/1001-0938df50", "") in new stack
  == Spawn extension (ivr-2, h, 1) exited non-zero on 'SIP/1001-0938df50'


Mi piacerebbe sapere cosa ne pensate, visto che mi avete già salvato molte volte.




Vorrei inoltre porre un paio di domande:

1) Posso condividere la rubrica di Asteridex direttamente su telefono (in modo che sia sempre aggiornata)? Se sì quali sono i prerequisiti del telefono necessari, e qual è il modo per farlo?
2) Per usare il CID Lookup, il telefono deve avere qualche caratteristica/configurazione particolare?

Grazie mille ancora una volta.
Ciao.
Ultima modifica di Omega il mar giu 01, 2010 4:02 pm, modificato 1 volta in totale.
Omega
Beginner
Beginner
 
Messaggi: 55
Iscritto il: lun apr 12, 2010 1:58 pm
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

Messaggioda celerig » mer giu 02, 2010 5:19 pm

gunny ha scritto:Carissimo Eugenio la pagina porta allo script, ma non ho trovato le istruzioni per configurarlo. grazie Gunny


appena ho un po di tempo pubblico un mini howto qui....

davvero adesso non ho tempo..
Avatar utente
celerig
Advanced
Advanced
 
Messaggi: 253
Iscritto il: gio mar 08, 2007 7:50 pm
Località: Venezia
Ha ringraziato: 0 volta
Hai ringraziamenti: 0 volta

PrecedenteProssimo

  • Argomento simile
    Risposte
    Visite
    Autore

Torna a Asterisk

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron