Третья часть статьи по установки и настройке OTRS на UbuntuServer в среде MS AD. Теперь поговорим об исправлениях различных косяков и прикручивании полезных плюшек. Первые две статьи более меняться не будут, а все остальны мои наработки будут дописываться в эту статью, получится такой неплохой howto.
Часть первая: подготовка системы
Часть вторая: установка и настройка OTRS
Часть третья: исправляем косяки прикручиваем плюшки
В интерфейсе кустомера есть косячёк, на кнопке выхода вместо имени пользователя красуется %c %c, тоесть как-то так «Выход из системы %с %с». Исправляется это очень легко. Открываем файл /opt/otrs/Kernel/Language/ru.pm:
Находим строку «%c %c» (обратите внимание символу русские), если не получится, то номер строки 3070, и меняем «%c %c» на «%s %s». Сохраняем и всё ок.
Думаю не стоит объяснять на сколько это полезный модуль в такой системе.
Для кустомеров сюда можно внести всяческие инструкции и ответы на часто задаваемые вопросы, а для агентов некое подобие базы знаний с напоминалками. короче всё что угодно на ваш выбор. Ставится эта плюшка прощще некуда.
Переходим на сайт OTRS в раздел публичных закачек
Выбираем Public Extensions -> OTRS 4 -> FAQ и качаем пакет с нашим модулем.
Заходим в админку OTRS -> Администрирование системы -> Управление пакетами.
Жмем кнопку «Обзор» и выбираем файл только что скачанного пакета, жмём установить.
Может выскочить ошибка:
Исправляется это правкой файла /etc/otrs/Kernel/Config.pm
находим в нем параметр SecureMode и изменяем его значение на 1, если такого нет, то дописываем вручную как на картинке
Вот собственно и всё, как добавлять статьи и раздавать на них доступ рассказывать не буду, тут вариантов нет и всё делается единственным способом информации по которому в сети валом.
Что это за зверь такой, а зверь этот позволяет прикрутить к OTRS мобильные устройства агентов и работать с системой прямо с них, получать заявки, отвечать на них и закрывать прямо в телефоне, бесценная плюшка для санатория со 100% покрытием вафлей и огромным шататом сантихников, электриков и прочих инженеров.
В документации по OTRS говориться (да и из названия это тоже понятно) что модуль этот написан для iPhone и официальный клиент есть только под iPhone.
Но как оказалось сторонние умельцы уже давно распарсили протокол и понаписали клиентов для других платформ. Да и согласитесь было бы страно если бы сантехник носил при себе iPhone в кармане спецовки. Под андроид их даже два, на выбор, это DSHelpdesk (есть платная версия этого приложения) и просто Help desk.
И так, ставим модуль.
Качаем его всё с того же места что и предыдущий (повторно ссылку давать не буду).
Выбираем на последнем этапе соответсвующий модуль, ставим его аналогичнм способом что и предыдущий модуль. Поле установки в папке /opt/otrs/bin/cgi-bin/ должен появится файл json.pl, если появислся, значит всё ок, модуль встал удачно.
Далее ставим понравившееся приложение и перечисленных выше и пробуем зацепиться к серверу OTRS иииии (если вы делали настройку по моим инструкциям) не тут-то было, сразу всё не прокатит. А всё потому что модуль json.pl не дружит ни с какой авторизацией кроме авторизаци из DB самого OTRS. Поэтому топаем в /opt/otrs/Kernel/Config.pm и сразу же после блока авторизации AD добавляем ещё один бэк-энд блок авторизации в DB.
Выглядить это должно вот так:
Что бы было понятнее, мы вставили вот такие строчки:
Попробуем зацепиться иииии, снова никак, а если вы выбрали для мобильно устройства DSHelpdesk, программа ещё и схлопнеться с ошибкой.
Трабла в том, что мобильный клиент не понимает что-такое Kerberos-авторизация, а Apache2 доблестно требует авторизоваться при попытках достпа к каталогу /opt/otrs/bin/cgi-bin и к файлу json.pl в том числе. Поэтому надо объяснить апачу что для достпа к этому файлу авторизация не обязательна, а для этого придётся подредактировать файл настроек виртуального хоста /etc/apache2/sites-enabled/otrs.conf и добавить в него ещё один маленький блок
Я добавил сразу же после первого блока Location сразу же после тега
Теперь привычные уже
И пробуем авторизоваться из мобильного клиента снова, и если вы всё сделали правильно, то авторизация пройдет успешно и мы увидим заявки отсортированные по папкам в соответствии со статусами.
Модуль отлично работает, приложение цепляется, заявки видим, но вот проблема, при попытке открыть детали заявки, приложение либо выкидывает ошибку и ничего не открывает либо вообще схлопывается. А содержание той ошибки типа такого:
«No access method 'TicketFlagSet()' from 'TicketObject'»
Долго рылся в поисках ответа, пока не прочитал внимательно описание одного из приложений прямо в Play-Market-е.
Оказалось решается это просто. Идём в админку OTRS: Администрирование системы -> Конфигурация системы -> в выпадающем меню выбираем iPhoneHandle -> API
Находим параметр
iPhone::API::Object###TicketObject
И стираем всё что там есть, жмём «Отправить» внизу страницы и вуаля, всё работает так так и должно и заявка в мобильном приложении открывается с подробностями и никаких ошибок.
Часть первая: подготовка системы
Часть вторая: установка и настройка OTRS
Часть третья: исправляем косяки прикручиваем плюшки
Исправляем косяки локализации
В интерфейсе кустомера есть косячёк, на кнопке выхода вместо имени пользователя красуется %c %c, тоесть как-то так «Выход из системы %с %с». Исправляется это очень легко. Открываем файл /opt/otrs/Kernel/Language/ru.pm:
mcedit /opt/otrs/Kernel/Language/ru.pm
Находим строку «%c %c» (обратите внимание символу русские), если не получится, то номер строки 3070, и меняем «%c %c» на «%s %s». Сохраняем и всё ок.
Приятная плюшка №1. Модуль FAQ.
Думаю не стоит объяснять на сколько это полезный модуль в такой системе.
Для кустомеров сюда можно внести всяческие инструкции и ответы на часто задаваемые вопросы, а для агентов некое подобие базы знаний с напоминалками. короче всё что угодно на ваш выбор. Ставится эта плюшка прощще некуда.
Переходим на сайт OTRS в раздел публичных закачек
Выбираем Public Extensions -> OTRS 4 -> FAQ и качаем пакет с нашим модулем.
Заходим в админку OTRS -> Администрирование системы -> Управление пакетами.
Жмем кнопку «Обзор» и выбираем файл только что скачанного пакета, жмём установить.
Может выскочить ошибка:
Исправляется это правкой файла /etc/otrs/Kernel/Config.pm
находим в нем параметр SecureMode и изменяем его значение на 1, если такого нет, то дописываем вручную как на картинке
Вот собственно и всё, как добавлять статьи и раздавать на них доступ рассказывать не буду, тут вариантов нет и всё делается единственным способом информации по которому в сети валом.
Приятная плюшка №2. Модуль iPhoneHandle.
Что это за зверь такой, а зверь этот позволяет прикрутить к OTRS мобильные устройства агентов и работать с системой прямо с них, получать заявки, отвечать на них и закрывать прямо в телефоне, бесценная плюшка для санатория со 100% покрытием вафлей и огромным шататом сантихников, электриков и прочих инженеров.
В документации по OTRS говориться (да и из названия это тоже понятно) что модуль этот написан для iPhone и официальный клиент есть только под iPhone.
Но как оказалось сторонние умельцы уже давно распарсили протокол и понаписали клиентов для других платформ. Да и согласитесь было бы страно если бы сантехник носил при себе iPhone в кармане спецовки. Под андроид их даже два, на выбор, это DSHelpdesk (есть платная версия этого приложения) и просто Help desk.
И так, ставим модуль.
Качаем его всё с того же места что и предыдущий (повторно ссылку давать не буду).
Выбираем на последнем этапе соответсвующий модуль, ставим его аналогичнм способом что и предыдущий модуль. Поле установки в папке /opt/otrs/bin/cgi-bin/ должен появится файл json.pl, если появислся, значит всё ок, модуль встал удачно.
Далее ставим понравившееся приложение и перечисленных выше и пробуем зацепиться к серверу OTRS иииии (если вы делали настройку по моим инструкциям) не тут-то было, сразу всё не прокатит. А всё потому что модуль json.pl не дружит ни с какой авторизацией кроме авторизаци из DB самого OTRS. Поэтому топаем в /opt/otrs/Kernel/Config.pm и сразу же после блока авторизации AD добавляем ещё один бэк-энд блок авторизации в DB.
Выглядить это должно вот так:
# Указываем фильтр и параметры подключения к LDAP#
$Self->{'AuthModule::LDAP::AlwaysFilter'} = '';
$Self->{'AuthModule::LDAP::Params'} = {
port => 389,
timeout => 120,
async => 0,
version => 3,
sscope => 'sub'
};
# Конец настроек LDAP аутентификации для Агентов #
# Настройка второго бек-энда для авторизации мобильных клиентов #
$Self->{'AuthModule1'}='Kernel::System::Auth::DB';
# Настройка модуля синхронизации Агентов с LDAP #
# Синхронизируем базу агентов с LDAP #
$Self->{'AuthSyncModule'} = 'Kernel::System::Auth::Sync::LDAP';
Что бы было понятнее, мы вставили вот такие строчки:
# Настройка второго бек-энда для авторизации мобильных клиентов #
$Self->{'AuthModule1'}='Kernel::System::Auth::DB';
Попробуем зацепиться иииии, снова никак, а если вы выбрали для мобильно устройства DSHelpdesk, программа ещё и схлопнеться с ошибкой.
Трабла в том, что мобильный клиент не понимает что-такое Kerberos-авторизация, а Apache2 доблестно требует авторизоваться при попытках достпа к каталогу /opt/otrs/bin/cgi-bin и к файлу json.pl в том числе. Поэтому надо объяснить апачу что для достпа к этому файлу авторизация не обязательна, а для этого придётся подредактировать файл настроек виртуального хоста /etc/apache2/sites-enabled/otrs.conf и добавить в него ещё один маленький блок
<Location /otrs/json.pl>
ErrorDocument 403 /otrs/json.pl
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
Options +ExecCGI
PerlOptions +ParseHeaders
PerlOptions +SetupEnv
Require all granted
Satisfy Any
</Location>
Я добавил сразу же после первого блока Location сразу же после тега
</Location>
Теперь привычные уже
service apache2 reload
service apache2 restart
И пробуем авторизоваться из мобильного клиента снова, и если вы всё сделали правильно, то авторизация пройдет успешно и мы увидим заявки отсортированные по папкам в соответствии со статусами.
Исправляем косяки
Модуль отлично работает, приложение цепляется, заявки видим, но вот проблема, при попытке открыть детали заявки, приложение либо выкидывает ошибку и ничего не открывает либо вообще схлопывается. А содержание той ошибки типа такого:
«No access method 'TicketFlagSet()' from 'TicketObject'»
Долго рылся в поисках ответа, пока не прочитал внимательно описание одного из приложений прямо в Play-Market-е.
Оказалось решается это просто. Идём в админку OTRS: Администрирование системы -> Конфигурация системы -> в выпадающем меню выбираем iPhoneHandle -> API
Находим параметр
iPhone::API::Object###TicketObject
И стираем всё что там есть, жмём «Отправить» внизу страницы и вуаля, всё работает так так и должно и заявка в мобильном приложении открывается с подробностями и никаких ошибок.