CTI - Telefontickets mit vorbelegter Email und CustomerID

Howto's zu OTRS Themen. Keine neuen Topics mit Fragen in diesem Forum!
Post Reply
Andre Bauer
Znuny guru
Posts: 2189
Joined: 08 Dec 2005, 17:01
Znuny Version: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

CTI - Telefontickets mit vorbelegter Email und CustomerID

Post by Andre Bauer »

Mit folgender kleinen Anpassung werden Telefontickets beim öffnen bereits mit Email, CustomerID und Kundendaten vorbelegt, wenn diese aus der Telefonummer des anrufenden Kunden ermittelt werden konnten.

Ihr erreicht damit also eine CTI (Computer Telephony Integration) Funktionalität im OTRS, ohne dass Ihr einen CTI Client auf dem Rechner des Agenten laufen haben müsst.

Vorraussetzung: Eure Telfonanlage legt ein Callfile an, welches die Daten enthällt.

Die Daten müssen in folgender Form im Callfile abgelegt werden:

Code: Select all

TimeOfCall;;CallerNumber;;CalledNumber;;CustomerEmail
Das Callfile kann dann, beim Aufruf von "AgentTicketPhone", per HTTP oder FTP eingelesen werden.

Es gibt dafür 3 neue Sysconfig Optionen, die über die Datei Callfile.xml bereit gestellt werden.

Code: Select all

<?xml version="1.0" encoding="iso-8859-1" ?>
<otrs_config version="1.0" init="phone">
    <CVS>$Id: Callfile.xml,v 1.00 2010/03/14 10:00:00 abauer Exp $</CVS>
    <ConfigItem Name="Ticket::Callfile::Use" Required="1" Valid="1">
        <Description Lang="en">If enabled, OTRS will use data from callfile in AgentTicketPhone. Content of callfile have to be "TimeOfCall;;CallerNumber;;CalledNumber;;CustomerID;;CustomerEmail".</Description>
        <Description Lang="de">Wird diese Option aktiviert, nutzt OTRS Daten aus einem Callfile in AgentTicketPhone. Der Inhalt des Callfiles muss "TimeOfCall;;CallerNumber;;CalledNumber;;CustomerID;;CustomerEmail" sein.</Description>
        <Group>Ticket</Group>
        <SubGroup>Callfile</SubGroup>
        <Setting>
            <Option SelectedID="0">
                <Item Key="0">No</Item>
                <Item Key="1">Yes</Item>
            </Option>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Callfile::Directory" Required="1" Valid="1">
        <Description Lang="en">HTTP or FTP Link to the callfiles directory. The name of the callfile (phonenumber of agent) have to be stored in field UserComment of Agent.</Description>
        <Description Lang="de">HTTP oder FTP Link zum Callfiles Verzeichnis. Der Name des Callfiles (Telefonnummer des Agenten) muss im Feld UserComment des Agenten gespeichert werden.</Description>
        <Group>Ticket</Group>
        <SubGroup>Callfile</SubGroup>
        <Setting>
            <String Regex="^(http|ftp):\/\/.*/$">http://localhost/callfiles/</String>
        </Setting>
    </ConfigItem>
    <ConfigItem Name="Ticket::Callfile::ValidTime" Required="1" Valid="1">
        <Description Lang="en">Time in seconds which content of callfile is valid.</Description>
        <Description Lang="de">Zeit in Sekunden, die das Callfile gültig ist.</Description>
        <Group>Ticket</Group>
        <SubGroup>Callfile</SubGroup>
        <Setting>
            <String Regex="[0-9]*">60</String>
        </Setting>
    </ConfigItem>
</otrs_config>
Die erste Option aktiviert die Verwendung des Callfiles.

Die zweite Option gibt den HTTP oder FTP Pfad zum Callfile Verzeichnis an.

Die dritte Option gibt an, wie lange das Callfile gültig ist.
Das ganze wird anhand des Datums im Callfile geprüft. Wenn Asterisk und OTRS auf verschiedenen Servern installiert sind, sollte also unbedingt ein NTP Daemon die Uhren aktuell halten.
Das Datumsformat für "TimeOfCall" muss sein "dd.mm.yyyy HH:MM:SS" also z.B. "20.05.2010 13:42:32".
Ist das Callfile älter als der Wert aus Ticket::Callfile::ValidTime, wird ein leeres Telfonticket erstellt.

Der Name des Callfiles wird wie schon beim Click2Dial im Adminbereich über "Users" im Feld "Comment" des Agenten gespeichert. Es ist also die Telfonnummer des Agenten anzugeben.


Damit das ganze funktioniert muss die Datei AgentTicketPhone.pm gepatch werden. Der folgende Patch ist für OTRS 2.4.7:

Code: Select all

81a82,105
>     # get customer data from callfile
>     if ( $Self->{ConfigObject}->Get('Ticket::Callfile::Use') ) {
>       use LWP::Simple;
>       use Time::Local;
>         my @CallfileContent = split(/;;/, get($Self->{ConfigObject}->Get('Ticket::Callfile::Directory').$Self->{UserComment}));
>         if (@CallfileContent != "") {
>           my $CallTime = timegm(substr($CallfileContent[0], 17, 2), substr($CallfileContent[0], 14, 2), substr($CallfileContent[0], 11, 2),
>               substr($CallfileContent[0], 0, 2), substr($CallfileContent[0], 3, 2)-1,  substr($CallfileContent[0], 8, 2));
>           my $CurrentTime = timegm(localtime);
>           my $ValidTime = $Self->{ConfigObject}->Get('Ticket::Callfile::ValidTime');
>           if ($CallTime+$ValidTime > $CurrentTime){
>               my $CTI = $Self->{ParamObject}->GetParam( Param => 'CTI' );
>               my $CTI_Body = "$CallfileContent[0] - Caller: $CallfileContent[1] - Called: $CallfileContent[2]";
>               my $CTI_From = $CallfileContent[3];
>               if ( $CTI != 1 ) {
>               # redirect to AgentTicketPhone with parameters
>                   return $Self->{LayoutObject}->Redirect(
>                       OP => "Action=AgentTicketPhone&Subaction=StoreNew&ExpandCustomerName=1&From=$CTI_From&CTI=1&Body=$CTI_Body"
>                   );
>               }
>           }
>         }
>     }
>
Ihr müsste jetzt nur noch das Callfile von der Telefonanlage erstellen lassen, wenn ein Agent einen Anruf annimmt.
Dieses Callfile muss bei jedem neuen angenommenen Anruf überschrieben werden.
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org
Marcofan76
Znuny newbie
Posts: 4
Joined: 03 Mar 2011, 12:52
Znuny Version: 3.0.6

Re: CTI - Telefontickets mit vorbelegter Email und CustomerI

Post by Marcofan76 »

Hi monotek!, i can use this configuration whit Otrs 3.0.6?
Maikl
Znuny newbie
Posts: 8
Joined: 18 Jan 2011, 11:29
Znuny Version: 3.0.9

Re: CTI - Telefontickets mit vorbelegter Email und CustomerI

Post by Maikl »

Hallo!
Mich würde auch interessieren, ob dies mit 3.0.6 so funktioniert.
Müssen noch weitere Einstellungen am "Standard-System" vorgenommen werden?
OTRS 3.0.9 - MySQL 5.1.49 - Apache 2.2.13 - SUSE Linux 11.2
Andre Bauer
Znuny guru
Posts: 2189
Joined: 08 Dec 2005, 17:01
Znuny Version: 5.0.x
Real Name: André Bauer
Company: Magix Software GmbH
Location: Dresden
Contact:

Re: CTI - Telefontickets mit vorbelegter Email und CustomerI

Post by Andre Bauer »

Nein, zumindest der Teil mit dem Link müsste angepasst werden, da sich da in 3.0auf jeden Fall was geändert hat.

Ansonsten kann ichs nicht sagen, da ich noch 2.4.10 verwende.
Prod: Ubuntu Server 16.04 / Zammad 1.2

DO NOT PM ME WITH OTRS RELATED QUESTIONS! ASK IN THE FORUMS!

OtterHub.org
Alfonso
Znuny newbie
Posts: 1
Joined: 31 May 2012, 18:18
Znuny Version: 12345

Re: CTI - Telefontickets mit vorbelegter Email und CustomerI

Post by Alfonso »

Are there changes yet? Is it working with v306?

If I have to change something, it would be no problem.

Greets

Alfonso
Hard to believe
Post Reply