Viele Telefonanlagen können mit callto- oder tel-Links umgehen. So kann der Agent bequem den Kunden anrufen ohne die Nummer selbst zu wählen. Aus diesem Grund kann man in den Kundeninformationen einen Link anzeigen lassen:
Soweit so gut. Wenn man bei Kundeninformationen einen Link hinterlegt ist vielen wahrscheinlich bekannt. Man kann im Mapping der Kundeninformationen in der Kernel/Config.pm
die URL zusammenbauen. Das einfachste wäre einen Link zur URL anzuzeigen:
$Self->{CustomerUser}->{Map} = [
# note: Login, Email and CustomerID needed!
# var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target, link class(es)
[ 'UserTitle', 'Title', 'title', 1, 0, 'var', '', 0 ],
[ 'UserFirstname', 'Firstname', 'first_name', 1, 1, 'var', '', 0 ],
# ... noch mehr Eigenschaften ...
[ 'UserURL', 'URL', 'url', 1, 0, 'var', '[% Data.UserURL | html %]', 0 ],
];
In der Spalte nach dem 'var'
wird die URL zusammen gebaut. In diesem Fall ist das einfach die URL, die bei dem Kunden gespeichert ist. Als Daten stehen hier die Kundeninformationen zur Verfügung und in Ticketansichten auch Ticketinformationen. So ist es möglich, z.B. bei der E-Mailadresse einen Link zu hinterlegen, bei dem eine Antwort auf das aktuelle Ticket erstellt wird. Das Beispiel dazu ist in der Kernel/Config/Defaults.pm
zu finden.
Zurück zum Telefonlink. Der einfachste callto
Link würde so aussehen:
'callto:[% Data.UserPhone %]'
Aber da Telefonanlagen meist die Telefonnummer im internationalen Format brauchen und keine Sonderzeichen vertragen, muss die Telefonnummer aufbereitet werden. Die Telefonnummer kann ja in unterschiedlichster Weise eingetragen sein:
Jetzt kommt uns zugute, dass die Template-Engine mit OTRS4 ausgetauscht wurde. Seitdem ist man sehr flexibel was man so alles machen kann. Template::Toolkit - die neue Template-Engine - bietet viele Filter schon von Haus aus. Dazu gehört auch der replace
-Filter. Den nutzen wir hier, um zuerst alles was nicht Zahl oder +
ist rauszulöschen. Das nächste replace
ersetzt zwei führende 0en durch +
und wenn dann noch eine führende Null vorhanden ist, wird diese mit +49
ersetzt. Daraus ergibt sich folgendes Konstrukt für die Config.pm:
[ 'UserPhone', 'Phone', 'phone', 1, 0, 'var',
q~callto:[% Data.UserPhone | replace('[^0-9+]','') | replace('\A00','+') | replace('\A0','+49') %]~,
0 ],
Damit wird aus allen Beispielen oben genau eine Darstellung der Telefonnummer: +49123391312
Noch mehr Filter sind hier dokumentiert: Template-Dokumentation für OTRS und Template::Toolkit Seite
Permalink: /2017-03-23-callto-tel-link-in-kundendaten