We have a requirement to show persons location/work location in the last week and show him on the website when webpage is opened. We have a process mandate that every employee should visit this website and mark the attendance of last week. To get this information, can we pull the last synchronisation date time and location/IP Address or an individual from exchange server or Lync server?
It depends how your users are actually connecting if they are using Outlook Anywhere or OWA then you should be able to use the Logs on Exchange to grab the Client IpAddress being used which you should then be able to derive their location. I would start by looking at the Log Parser Studio which has a lot of precanned reports http://blogs.technet.com/b/exchange/archive/2012/03/07/introducing-log-parser-studio.aspx and then look at customising your own solution.
Another alternative method that would rely on them having sent a messages in the last week is you could use EWS to derive it from their sent email eg http://gsexdev.blogspot.com.au/2012/10/geolocating-users-last-send-location.html
Cheers
Glen
Related
Does anyone know how to get the information about user device that access the bot deployed in S4B channel and built using MS Bot Framework (C#).
I need to know about the options to detect the user device (Device type and OS) accessing the Skype For Business Bot. If there's a way to know whether user device is desktop or mobile. In bot framework the User-Agent header formatted similar to the string below:
SFBUserAgent (Microsoft-BotFramework/3.1+https://botframework.com/ua)
(The user agent from Connector returns the following:
fxversion/4.7.2563.0 osname/windowsserver2016datacenter osversion/6.3.14393 microsoft.bot.connector.connectorclient/3.14.1.1)
I want to know if UCWA can be used to detect the device type accessing Skype For Business bot.
UCWA is not able to do so, actually no client or client-facing api can provide such information. It's because User-Agent information is not part of the presence so the client doesn't publish it to other clients. The main purpose of this User-Agent information is for monitoring reporting purpose.
However there is still some space from server side to allow us to do something. If you have access to the Skype for Business server, you have several workarounds.
Get-CsConnections.ps1 is a well-known script to pull current logged in user from Lync server side. It was written in 2011 while we only had Lync 2010, but good news is it works fine with new version of Lync like Lync Server 2013, Skype for Business server 2015. This script needs to be run in Lync/Skype management shell or a Powershell session with Lync/Skype modules imported. It needs to run by using an Lync/Skype admin account.
To retrieve user agent for a particular user by using sip uri.
$UserHomePool = (Get-CsUser -Identity [sip address]).RegistrarPool
Get-CsConnections.ps1 -SipAddress [sip address] -Pool $UserHomePool
Connections.ps1 is the prototype script of the above Get-CsConnections.ps1, it's simpler but doesn't provide advanced features. You can look at it and decide which one you need.
Do it yourself. If you don't want to use 3rd party script or just want to do it in a simplest and pure way, it's possible to do it by querying it from server database. Lync/Skype server stores this user agent information in the dynamic database in Front End server. It's in the table dbo.RegistrarEndpoint of the database rtcdyn of the instance rtclocal.
Please notice that there is no public document about the database schema so you need to do a little guess and hacking yourself. Good news is all data in the database is strored in readable format so it shouldn't be a big issue.
In a very rare chance that you are not wanting this information in real-time, the monitoring report and database can be the best approach. It's not real-time data, the data is generated within 10 mins after a conversation is ended.
If you want to get it from monitoring database, you should look at SessionDetails view for P2P conversation and ConferenceSessionDetails for conference conversation. There are straighforward fields in the views called something like UserClientType to point out the user agent information for the certain session.
At last one thing I would like to remind is Skype allows user to logged in multiple clients simultaneously, so no matter how you make it work you still need to face the question which logged in client really matters to you if the user has multiple clients logged in.
We are trying to integrate our app with MS Exchange. One of possible features of that integration is to let other apps know if our app user currently performing some important work, so other users should see him as busy.
All APIs I found allow to get user free/busy status, but not set. Is there public api for a writing side?
The free/busy time option on Microsoft Exchange is generated from the Outlook/Exchange Calendar entries from the users. These infos are fetched from the users calendar by the Availability service as written by Microsoft here. So if you wish to "SET" something, you need to create an calendar entry for the user. If you try to add something to the backend environment which is managed by Microsoft Exchange you might cause issues for the users as they do not see that in there calendars. That is also the reason why you are unable to find a "free/busy time writing API". So please create a calendar entry for your purpose and let the MS Exchange Availability service do the rest.
A good starting point to understand the construct is:
Availability service in Exchange 2013
I'm looking to mirror contacts added to exchange in a separate system. I'd like to do this as contacts are added if possible.
I've seen some listeners available in the API I can use, but those look like they're on a user basis. To use them I think I'd have to have an instance open for every user and I believe they also only remain open for 30 minutes.
Is there anyway to get a notification whenever any user adds a contact to exchange?
No there is no such thing as global events in Exchange (not since 2007 anyway) the closest would be Transport agents but these are only useful for items that are traversing the Transport Pipeline. The application your developing will need to deal with things on a Mailbox by Mailbox basis.
Cheers
Glen
I'm using Basecamp as a trial and Highrise as a trial and both offer the ability to cc emails from clients into the system. I'm a web developer and usually my team is myself and one or two IC's, plus the client(s). All of my email is very highly organized into client specific folders --- so at this point I'm trying to figure out what the advantage would be to have many of these email conversations (Between me and the client/between me and the ICs) online? Whether it's a prospect in Highrise, or an ongoing project in Basecamp, what's the advantage of having the email in two places -- HR/BR and filed in my email folders?
Thank you for any insight!
At OpenCRM we encourage the forwarding of all mail in and outbound to be polled by the CRM. Essentially this allows quick access to the complete history from the lead, contact, company, or other associated record such as a sales order, or helpdesk ticket, related to the originator or recipient of the message.
It's a good idea to work with CRM Software that allows this level of integration, affording you to pick up and respond to messages while you're actively working on that particular record in your data. We feel this saves time and duplication of effort.
Anyone know how to do this without using a third party program? If there no way to do it with a add-on someone can recommend one?
EDIT: I need to add this in the server so all users have the same signature.
Thanks
You need to create your own exchange message sink to do this. Here's a classic VB example from MS KB:
http://support.microsoft.com/kb/317327
and a VB Script one:
http://support.microsoft.com/kb/317680
And lots of goodness from MSDN about Exchange 2003 Transport Event Sinks:
http://msdn.microsoft.com/en-us/library/ms526223(EXCHG.10).aspx
If you're running Exchange 2007 then you can use Transport Rules:
http://msexchangeteam.com/archive/2006/12/12/431879.aspx
http://www.msexchange.org/tutorials/Using-Transport-Rules-Creating-Disclaimers-Exchange-Server-2007.html
We used CodeTwo-s Exchange rules for a while on Exchange 2003.
However there is a known problem with it: if the messages stay in the queue for 2-3 minutes, the Exchange itself sends out the message without the footer. Most of the times it's not a problem, but we have something like 700 people in our organization. If there are a lot of emails and some of them contains attachments, then the virus scanner stops them for a while (MS Antigen).
Otherwise it's a perfect solution if you have a smaller group of users to manage.
From other point of view: our users like to have some kind of control over the signature. We generated them and put it to their Outlooks. They like it that they know and see that the signature is there and how it looks like.