unterschiedliche Caller-IDs für verschiedene parallel klingelnde Telefone

jaw

Neuer User
Mitglied seit
26 Jul 2007
Beiträge
83
Punkte für Reaktionen
0
Punkte
0
Folgendes Problem:

Bei einem eingehenden Anruf klingeln verschiedene Sip-Phones gleichzeitig. Ich möchte jetzt dass auf den Telefonen der Anrufername (nicht die Nummer - der Name kommt aus einer Datenbank) angezeigt wird.
Im Prinzip funktioniert das, in dem ich CALLERID(num) entsprechend setze. Leider scheint keins der Telefone die CALLERID(name) selber auswerten zu können, so dass ich leider den Umweg über die num gehen muß. Verwendet werden hier u.A. Giptel G100, Siptronic, Grandstream BT101, die FritzBox (7141?) als ATA, und PhonerLite.
Doch genau hier fangen die Probleme leider erst an.

Da nicht alle Telefone das komplette Alphabet darstellen können, muss ich die Namensstrings so umwandeln, dass sie angezeigt werden können. Leider muss ich sie für verschiedene Telefone unterschiedlich umwandeln.
Verbunden bzw. zum klingeln gebracht werden die Telefone mit der Applikation

Dial(sip1&sip2&sip3&...&sipN)

Ich suche also eine Möglichkeit, wie ich die die "Nummern" für jedes Telefon individuell setzen kann, aber trotzdem mehrere Telefone parallel klingeln lassen kann.
In der sip.conf kann ich pro Telefon eine Channel-Variable setzen, in der ich den Telefontyp definieren kann. Die Konvertierung des Namens abhängig vom Telefontyp würde ich am liebsten über ein Perl Script machen. Allerdings hab ich bisher nichts finden können, an welcher Stelle ich dieses Script einbinden könnte.

Hat jemand von euch irgend welche Ideen, wie das funktionieren könnte?
 
Das kannst Du mittels LOCAL Channel lösen. Einfach mal die Suche benutzen.

Wobei ich - ehrlich gesagt - Dein eigentliches Problem nicht wirklich verstanden habe. Wenn ein Telefon eine korrekt gesetzte CallerID nicht darstellen kann, wird es das wohl auch nach irgendeiner Konvertierung nicht können :noidea:
 
Danke für den Tipp mit dem local channel, da setz ich ich gleich mal dran.

Zum Problem: ich kann konvertierungen schreiben, so dass jeweils ein Telefontyp den Namen anständig anzeigen kann (ausser das BT101, das kann manche Buchstaben gar nicht - die anderen scheinen das komplette Alphabet ohne Umlaute zu beherrschen). Andere Telefone können manche Buchstaben nur entweder in Groß- oder Kleinbuchstaben darstellen. Einige der Telefone benutzen automatisch den entsprechenden Buchstaben ersatzweise als Groß bzw. Kleinbuchstabe, wenn der geforderte nicht verfügbar ist. Andere tun das leider nicht.

Kurzum: ich kann für jeden Telefontyp eine Konvertierungsfunktion schreiben, die mir ein gutes Ergebnis liefert. Aber eben bisher keine Konversion, die bei allen Telefonen funktioniert, daher die Individualisierung auf die Telefonklasse.

Wenn ich also den Anrufernamen und den Telefontyp an eine Funktion übergebe, kann ich mir damit einen String generieren, den das entsprechende Gerät anzeigen kann, oder falls es zu unleserlich werden sollte, immer noch auf die Nummer zurück greifen.

Ach so: ich glaube, der Punkt ging etwas unter:

Den Namen aus dem Sip Header scheinen alle der Geräte zu ignorieren (keine Ahnung, wieso). Wenn ich aber dafür sorge, dass der Header, der eigentlich so aussehen sollte:

Code:
From: "jaw" <12345@asterisk>

so umschreibe, dass er so aussieht:

Code:
From: "jaw" <jaw@asterisk>

dann können mir alle Telefone das 'jaw' als Anrufer anzeigen - je nach Gerät in Groß- oder Kleinschreibweise, oder einem Gemisch etc.
Dabei spielt es keinerlei Rolle, was im eigentlichen Namensfeld des Headers steht, es zählt nur der Nummernteil des Headers. Der Teil muss aber für jedes Gerät anders aussehen - das BT101 will z.B. dann ein
Code:
From: "jaw" <IAuu@asterisk>
weil es kein J, nur ein großes i, kein kleines A und kein w darstellen kann. Die anderen Geräte sind da weitaus weniger empfindlich, und haben nur Probleme mit Leerzeichen.
 
Kostenlos!

Statistik des Forums

Themen
248,905
Beiträge
2,304,600
Mitglieder
378,606
Neuestes Mitglied
molto22