IP-Adresse des Kunden unter Ticket-Informationen anzeigen

Hilfe zu Znuny Problemen aller Art
Locked
paddew
Znuny newbie
Posts: 21
Joined: 16 Dec 2011, 12:37
Znuny Version: 3

IP-Adresse des Kunden unter Ticket-Informationen anzeigen

Post by paddew »

Hallo zusammen,

ich würde gerne unter OTRS 3.1 bei der Betrachtung von Tickets im rechten Feld/Kasten "Ticket-Informationen" einen neuen Punkt mit der IP-Adresse des Kunden haben. Damit wäre gleich ersichtlich, mit welchem Rechner der Kunde ein Ticket aufgemacht hat.

Früher unter OTRS 3.0 hatte ich dafür unter Sysconfig - Core::TicketFreeText zwei Felder:
TicketFreeKey1= HostIP
TicketFreeText1::Link = dwrcc://$LQData{"TicketFreeText1"}

Nach der Umstellung auf dynamic fields funktioniert das nicht mehr. Weiss jemand, wie das jetzt zu realisieren ist?



Danke & Gruß
paddew
paddew
Znuny newbie
Posts: 21
Joined: 16 Dec 2011, 12:37
Znuny Version: 3

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by paddew »

OK, habe jetzt schon mal soviel rausgefunden:
Im alten System hatten wir unter Kernel/Output/HTML/<Customized>/CustomerTicketMessage.dtl folgenden Eintrag für TicketFreeText1:

<input type="hidden" name="TicketFreeKey1" value="HostIP"/>
<input type="hidden" name="TicketFreeText1" value="$Env{"HTTP_X_FORWARDED_FOR"}"/>

Wenn ich das also richtig sehe, liefert das "HTTP_X_FORWARDED_FOR" die IP-Adresse.
Nur weiss ich leider immer noch nicht, wie ich das jetzt mit dynamic fields mache, dass es im Kasten Ticket-Informationen auftaucht.
DavidLambauer
Znuny expert
Posts: 257
Joined: 25 Apr 2012, 07:28
Znuny Version: 3.1.6
Real Name: David Lambauer
Contact:

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by DavidLambauer »

Also wir lassen und auch die IP des Kunden anzeigen, allerdings lesen wir diese schon viel früher mit PHP aus und senden die mit dem Ticket zusammen an OTRS (X-Header).

Ich wüsste keine Möglichkeit den Wert automatisch ohne Interaktion des Agenten zu setzen, bzw. zu speichern. Ich glaube das ist so nicht möglich. Vielleicht schilderst du ein wenig mehr vom Prozessablauf, dann finden wir vielleicht eine Möglichkeit in einer geeigneten Stelle einzuspringen.
Woher kommen die Tickets, aus dem Serivcedesk, per Mail? Werden sie Manuell eingetragen.

Wenn sie aus dem Servicedesk kommen, könnte man deinen Perl Befehl (sofern er funktioniert) in das Value des entsprechenden DynamicFields eintragen. Diesen Codeschnipsle könntest du auch vielleicht als Standardwert für dieses Feld eintragen.

Sorry, sind alles nur Vermututngen....


Gruß
Bitte keine PM's schreiben. Bitte kontaktiert mich über mail@davidlambauer.de

In meinem Blog: http://www.davidlambauer.de findet ihr Artikel über OTRS. In der How To Area des Forums findet ihr auch oft Hilfe...!
paddew
Znuny newbie
Posts: 21
Joined: 16 Dec 2011, 12:37
Znuny Version: 3

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by paddew »

OK also die Kunden machen Tickets über das Frontend auf https://blablub/otrs/customer.pl und dann eben über "Neues Ticket".
Jetzt hat mein Vorgänger, der das OTRS hier (natürlich undokumentiert) verbrochen hat eine customized "CustomerTicketMessage.dtl" für die "Neues Ticket"-Maske erstellt.
Dort gibt's folgende Passage am Anfang der Datei:

Code: Select all

<div id="MainBox" class="TicketCompose ARIARoleMain">
    <div class="Content">
        <form action="$Env{"CGIHandle"}" method="post" name="compose" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
            <input type="hidden" name="Action" value="$Env{"Action"}" />
            <input type="hidden" name="Subaction" value="StoreNew" />
            <input type="hidden" name="Expand" id="Expand" value="" />
            <input type="hidden" name="FormID" value="$QData{"FormID"}" />
# Versteckter Freetext = IP
#           <dtl if ($Env{"REMOTE_ADDR"} ne "") { $Env{"HostIP"} = "$Env{"REMOTE_ADDR"}"; }>
#           <dtl if ($Env{"HTTP_X_FORWARDED_FOR"} ne "") { $Env{"HostIP"} = "$Env{"HTTP_X_FORWARDED_FOR"}"; }>
            <input type="hidden" name="TicketFreeKey1" value="HostIP"/>
            <input type="hidden" name="TicketFreeText1" value="$Env{"HTTP_X_FORWARDED_FOR"}"/>
            <input type="hidden" name="TicketFreeKey3" value="Location"/>
            <input type="hidden" name="TicketFreeText3" value="" />
            <input type="hidden" name="Dest" value="2||User Helpdesk"/>
            <input type="hidden" name="TypeID" value="1"/>

# ENDE YOUR IP
            <fieldset>
Ich hab das so verstanden, dass er die IP dort über HTTP_X_FORWARDED_FOR" ausliest und in "TicketFreeText1 abspeichert. Korrigiere mich, wenn ich blödsinn rede.

Dann soll bzw. wurde die IP-Adresse in Version 3.0.x im Backend Info-Feld "Ticket-Informationen" angezeigt. Diese Feld wird wenn ich das richtig sehe hier konfiguriert: /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketZoom.dtl
Mein "Rumprobieren" hat mir gezeigt, dass in dieser Datei folgende Passage für das Anzeigen der IP-Adresse verantwortlich ist:

Code: Select all

                    <fieldset class="TableLike FixedLabelSmall">
<!-- dtl:block:TicketFreeText -->
                        <label>$QData{"TicketFreeKey","25"}:</label>
                        <p class="Value">
<!-- dtl:block:TicketFreeTextPlain -->
                            <span title="$QData{"TicketFreeText"}">$QData{"TicketFreeText","25"}</span>
<!-- dtl:block:TicketFreeTextPlain -->
<!-- dtl:block:TicketFreeTextLink -->
                            <span title="$QData{"TicketFreeText"}"><a href="$Data{"TicketFreeTextLink"}" target="_blank">$QData{"TicketFreeText","25"}</a></span>
<!-- dtl:block:TicketFreeTextLink -->
                        </p>
                        <div class="Clear"></div>
<!-- dtl:block:TicketFreeText -->
Wenn ich das richtige sehe, wird hier die Variable TicketFreeText1 ausgegeben?
Desweiteren ist unter Sysconfig dafür unter Core::TicketFreeText noch eingestellt:
TicketFreeKey1 -> Schlüssel=HostIP / Inhalt=Host IP
TicketFreeText1::Link -> dwrcc://$LQData{"TicketFreeText1"}


Jetzt muss man ja dieses ganze TicketFreeField-Konstrukt auf das DynamicField-Konstrukt umbiegen. Ich hab noch kein Plan wie.
Brauchst du sonst noch Infos?


thx alot
paddew
DavidLambauer
Znuny expert
Posts: 257
Joined: 25 Apr 2012, 07:28
Znuny Version: 3.1.6
Real Name: David Lambauer
Contact:

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by DavidLambauer »

Hmm, ich weiß gerade mal auch nicht weiter. Ich bin gerade an etwas ähnlichem dran. Grundsätzlich ist es glaub ich notwendig ein eigenes Modul zu schreiben. Aber keine Angst, OTRS bechreibt das recht simple. Sollte also wenig Arbeit sein.

Hier mal der Link:
http://doc.otrs.org/developer/3.1/en/ht ... l#id483092

Gruß
Bitte keine PM's schreiben. Bitte kontaktiert mich über mail@davidlambauer.de

In meinem Blog: http://www.davidlambauer.de findet ihr Artikel über OTRS. In der How To Area des Forums findet ihr auch oft Hilfe...!
paddew
Znuny newbie
Posts: 21
Joined: 16 Dec 2011, 12:37
Znuny Version: 3

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by paddew »

Ich versteh einfach nicht, wo ich unter Sysconfig diesen Kasten/Rahmen "Ticket-Informationen" anpassen kann.

Irgendwer eine Idee?
paddew
Znuny newbie
Posts: 21
Joined: 16 Dec 2011, 12:37
Znuny Version: 3

Re: IP-Adresse des Kunden unter Ticket-Informationen anzeige

Post by paddew »

OK, ich habe es gefunden und hingekriegt.

Der Kasten "Ticket-Informationen" wird hier angepasst: Frontend::Agent::Ticket::ViewZoom
Dort habe ich das DynamicField "HostIP" reingenommen und aktiviert.

Die IP-Adresse lese ich in meiner customized Datei "Kernel/Output/HTML/<Customized>/CustomerTicketMessage.dtl" wie folgt ein:

Code: Select all

<script type="text/javascript">
$(function() {
            var ip = '$Env{"HTTP_X_FORWARDED_FOR"}' ? '$Env{"HTTP_X_FORWARDED_FOR"}' : '$Env{"REMOTE_ADDR"}';
            $('.Row_DynamicField_HostIP').hide();
            $('#DynamicField_HostIP').val(ip);
});
</script>
Ist allerdings totale Bastelei mit dem JavaScript. Die Experten von Entwicklern von OTRS haben vergessen, eine hidden field Option für dynamic fields zu coden, deshalb muss ich das DynamicField_HostIP auf diesem Wege verstecken, dass es der Kunde nicht sieht.
Pfusch - aber tut ;-)
Locked