Hi there,This is my "pie-in-the-sky" idea, and I'm hoping someone else will see it and go "Oh! I know how to do that!"I'd love to be able to collect as much information as possible from customers' users without them having to manually enter it.What I'm considering is having the login script dynamically generate a "Computer Helpdesk.url" file on their desktop. (FYI, I've already gotten this part written and tested.)Within this URL file, the actual url would look like http://www./helpdesk/customapi.php?un=jack.webb&cn=wscoljwebb, for example.On the actual "ticket open" form (open.php), the computer name field would be there but hidden. This tells me where Jack was sitting when he put a completely ambiguous ticket in that says "My browser won't load" or "The key beteen q and e doesn't ork" and I have to trace down where he was when he put that ticket in.A query would be run that locates jack.webb and his office's static IP address, stored in an internal note we set on Jack's user record, ie "un=jack.webb|email2=jack.webb@gmail.com|workip=1.2.3.4|"So when Jack Webb in Columbus goes to open a ticket, he clicks the ticket link on his desktop that was created dynamically when he logged in. looks at his IP address and his username and runs a quick query, like this:SELECT user.id, user.name, user_email.address FROM user INNER JOIN user_email ON user.default_email_id=user_email.id WHERE user.id=(SELECT object_id FROM form_entry WHERE id=(SELECT entry_id FROM form_entry_values WHERE field_id=4 AND value LIKE '%un=" . trim(str_replace(";", "", strtolower($_REQUEST))) . "|%' AND value LIKE '%workip=''" . str_replace(";", "", trim($_SERVER)) . "|%' ORDER BY entry_id DESC LIMIT 1));If it gets a match, it sets a few SESSION variables like:$_SESSION = user.name;$_SESSION = user_email.address;$_SESSION = trim(strtolower($_REQUEST));Then it silently redirects the user to index.php. If they decide to open a new ticket, it has basic user information already.If they decide to check the status of a ticket, we know their email address and they just need to supply the ticket number or log in.Either way, we know who they are.Is there an easier way to accomplish this? Did I miss the forest for all the trees?Thanks, in advance!

4 days later

Wow, that's an interesting task. Unfortunately I can't really help you but some thoughts on that:

- Don't you have a central directory (e.g. MS Active Directory) to lookup that info? We currently use a self made script to fill user info in the osTicket database from ldap and our internal it asset database, so we always can easily access the user and machine info (note: Nearly Every user in our environment has its own computer, so the user computer relationship does not change that often) If your interested, take a look at the script here: https://github.com/Chefkeks/osTicket-Addons

- OsTicket records the initial IP address when a ticket is opened via the web form (but not when the ticket is opened via email) and the IP is visible in the ticket view (so when you have a it asset management database it shall be easy to get then more about the computer maybe). Beside, there is a currently unused database column for the IP address of every update / reply from the end user and the developers plan to use that in the future as far as I know, so that would also maybe be helpful.

Cheers,

Michael

Write a Reply...