Name statt Nummer im Display anzeigen

DD_10

Neuer User
Mitglied seit
16 Okt 2007
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo!

Wir haben einen Asterisk-Server, und als VoIP Telefone das IP290 von Elmeg.

Nun wollte ich mal wissen, ob es eine Möglichkeit gibt, bei einem ankommenden Anruf den Namen des Anrufers (gespeichert in externer Datenbank o.ä.) anstatt der Nummer auf dem Display anzeigen zu lassen.

Ich weiß nicht genau, ob das ehr eine Telefon- oder eine Asterisk-Problematik ist. Im Notfall bitte verschieben.

Vielen Dank im Voraus für eure Antworten.
 
Servus,

du bist hier im falschen Bereich, Grundsätzlich.

Nun wollte ich mal wissen, ob es eine Möglichkeit gibt, bei einem ankommenden Anruf den Namen des Anrufers (gespeichert in externer Datenbank o.ä.) anstatt der Nummer auf dem Display anzeigen zu lassen.

Was du brauchst ist in der extensions.conf, und sieht folgendermaßen aus:

Code:
exten => querydb,1,mysql(Connect connid [SERVERNAME] [USER] [PASSWD])
exten => querydb,2,mysql(Query resultid ${connid} SELECT\ name\,vorname\ from\ telefonbuch\ where\ telnr=\"${CALLERID}\")
exten => querydb,3,mysql(Fetch fetchid ${resultid} anrufer_n anrufer_v)
exten => querydb,4,MYSQL(Clear ${resultid})
exten => querydb,5,MYSQL(Disconnect ${connid})
exten => querydb,6,Set(CALLERID(name)=${anrufer_n} ${anrufer_v})
exten => querydb,7,Set(CALLERID(number)=0${CALLERID(number)})
exten => querydb,8,Return

Dies holt mir den Anrufername aus meiner Telefonbuch-Tabelle meiner MySQL-Datenbank von meinem lokalen Server.
Klappt auch ganz gut, wenn der MySQL-Server halbwegs flott ist, merkt man die Verzögerung gar nicht.

Bei meinem GXP2000 (Grandstream) werden beide Zeilen CALLERID(name) und CALLERID(number) untereinander angezeigt, was den Charm bekommt, das ich die Nummer und den Namen gleichzeitig sehe. Mein Telefon schneidet nach gut 20 Zeichen ab, was ich als nicht so schlimm empfinde.

Viel Glück beim Implementieren
Stefan

EDIT: Achtung, ich setze eine "Amts-Null" vor die Nummer, beachte die "NULL" im Scriptbaustein in Zeile sieben!
 
Zuletzt bearbeitet:
Hi,

an solch einer Lösung bin ich auch interessiert... Allerdings komme ich mit dem Code nicht so ganz klar:

1) neben Server, Benutzername und Passwort muss doch auch irgendwo noch die Datenbank definiert werden, oder?

2) Ich habe den Code in extensions.conf direkt in [default] eingetragen (andere Rubriken gibt es noch nicht - der Einfachheit halber). Sehe ich das richtig, dass der Code dann bei jedem eingehenden Anruf aufgerufen wird? Wenn ja, wieso ist das so - verstehe da nicht die Logik, wieso das aufgerufen werden sollte?

Vielen Dank für eure Unterstützung

Stefan
 
Hi,

habe nun geforscht und in Google gesucht und bin jetzt ein ganzes Stück schlauer :) Ich vermute, der Fehler war da zu suchen, dass ich die aktuellste 1.6er Version drauf habe und daher der Code nicht so klappte, wie er sollte. Hier nun einer, der bei mir klappt:

Code:
exten => TelNummer,1,MySQL(Connect connid DbServer DbUser DbPasswort Datenbank)
exten => TelNummer,2,MySQL(Query resultid ${connid} SELECT vorname, name from telefonbuch where telnr=${CALLERID(number)})
exten => TelNummer,3,MySQL(Fetch fetchid ${resultid} vorname nachname)
exten => TelNummer,4,MySQL(Clear ${resultid})
exten => TelNummer,5,MySQL(Disconnect ${connid})
exten => TelNummer,6,Set(CALLERID(name)=${vorname} ${nachname})
exten => TelNummer,7,Set(CALLERID(number)=0${CALLERID(number)})
exten => TelNummer,8,Dial(SIP/2000)

Vielleicht hilft es ja einem mal weiter...

Bis dahin

Stefan
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,284
Beiträge
2,249,439
Mitglieder
373,877
Neuestes Mitglied
Bbj
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.