Часто, при получении заявки, агенту необходима дополнительная информация о клиенте: ip адрес и/или hostname компьютера. Это особенно актуально, при осуществлении удаленной технической поддержки, когда решить проблему можно подключившись к компьютеру пользователя.
По умолчанию в OTRS4 такой возможности нет, но это довольно легко исправить. Понятно, что речь идет только о заявках созданных через веб интерфейс пользователя и не относится к заявкам созданным при помощи email или самим агентом.
Для начала нам надо создать два динамических поля — одно для ip адреса
а одно для hostname
Здесь самое важно в полях «значения по умолчанию» $Env{«REMOTE_HOST»} и $Env{«REMOTE_ADDR»}
Затем активировать отображения этих поле в «Редактировать настройки конфигурации in Ticket → Frontend::Customer::Ticket::ViewNew»
и в настройки конфигурации in Ticket → Frontend::Agent::Ticket::ViewZoom — поставить — 1.
Далее правим файл Kernal/Output/HTML/Templates/Custom/Customer.Ticket.Message.tt
Дописываем сразу после [% RenderBlockEnd(«DynamicField») %]: кусок кода для отображения IP:
[% WRAPPER JSOnDocumentComplete %] <script type="text/javascript"> $(function() { var ip = '[% Env("REMOTE_ADDR") | html %]'; $('#DynamicField_IPADDR').parent().addClass( 'Hidden' ); $('#LabelDynamicField_IPADDR').parent().addClass( 'Hidden' ); $('#DynamicField_IPADDR').val(ip); }); </script> [% END %]
И сразу после него для отображения Hostname:
[% WRAPPER JSOnDocumentComplete %] <script type="text/javascript"> $(function() { var host = '[% Env("REMOTE_HOST") | html %]'; $('#DynamicField_hostname').parent().addClass( 'Hidden' ); $('#LabelDynamicField_hostname').parent().addClass( 'Hidden' ); $('#DynamicField_hostname').val(host); }); </script> [% END %]
Выглядит это так:
Для того, чтобы отображалась Env(«REMOTE_HOST») необходимо включить такую возможность у вебсервера :
Для веб сервера Apache2 необходимо включить опцию HostnameLookups. По умолчанию она отключена для снижения нагрузки на DNS сервер.
Меняем в файле /etc/apache2/apache2.conf опцию «HostnameLookups Off» на «HostnameLookups On». Перезагружаем вебсервер:
apache2ctl restart
После проделанного у меня вот такой результат: