A question I get a lot when talking with administrators about Lync is how to handle name changes and what effect changing a user's SIP address has on other users. In the example below we will look at the effects of changing a user's SIP address and what other user's will need to be aware of. In the screenshot below, William has Judith as a contact on his contact list. Judith's last name is changing and so will her SIP address:
After updating the user's display name and changing their SIP address, the user will be signed out of the Lync client:
If we take a look at what actually happened in the database, before making any changes, you can see that each user is assigned a unique ResourceId:
These IDs are what are used by the database to keep track of your contact list. This means that since your contacts aren't stored with the SIP address being the identifying field, when a user on your contact list has their SIP address changed, you don't need to remove and re-add them to your contact list again. The only exception to this is federated contacts. Those contacts would need to be removed and re-added since they aren't part of our Lync environment:
After changing Judith's SIP address, you can see that the ResourceId stayed the same:
Once Judith changes her sign in address in the Lync client, she will be able to sign in successfully and you can see that her updated display name is shown. Also any contacts that she had on her contact list would still be there:
However, for William Cooper, you can see that his client didn't pick up the changes:
This is because these users will need to sign out and back in before their client will pick up the changes. After signing out and back in, you can see below that William's client now displays the correct contact:
Joining a meeting that Judith scheduled before her SIP address was updated will produce the following error:
This is because the join URL is referencing her old SIP address:
The meeting information that is stored in the database is valid, but since the join URL is incorrect, Lync is unable to find the correct meeting. After changing Judith's SIP address her join URL changes to:
This means that any scheduled meetings would need to be updated so that users are able to join without issue.
Searching the address book for Judith may produce inconsistent results:
Since the Address Book service hasn't run yet to update the address book, the Lync client may be pulling some stale information. In the screenshot above, the old SIP address was still be used so a 404 was being returned to the client. After updating the address book, searching for Judith produced the expected results:
The Lync client handles SIP address changes fairly well. Just remember to have users update their meetings and let any federated contacts know that their SIP address has changed.
awesome stuff as always, Doug. Could you expand on where you see that info in the database?
Logged on Phone Editions get stuck in logging on after a SIP address change. What should be the strategy here?
@Pat Richard The information came from the rtc database, but since it's not supported to edit anything in the database directly, that's why I left out the SQL queries.
@John Was the Lync Phone Edition tethered to a PC via USB or untethered?
Doug, great post. Could you also do one for chaning the domain name. I am working in an environment where we are chaning from @parent.com to @child.parent.com.
Doug,Been doing some looking into the Lync Database. It appears that Lync is mapping a Resource ID to the AdObjectID (which is the GUID of an AD account). It would be really great if Microsoft could explain how Lync tracks users. In theory, as long as the Users AD object is not deleted, any change made to the users account would not really impact other users (albeit users would need to log out and log back in to re-subscribe to user who has had their lync account modified). Thus a SIP name change or sip domain change shouldn't be an issue at all once the backend databaes are updated (assuming the resourceID to ADobjectID information is synched amongst Lync environments). You can view this by opening the RTCab database and looking at the top 1000 rows on the dbo.resourcedirectory. Thanks,Ryan
Many thanks for the info Doug. +1 re: Ryan's request about a similar post covering SIP domain changes. We have 2 divisions that use different SIP domains and people drift between the divisions so their SIP domain get changed.
Doug first off sorry for blowing up your post with all my posts (just really need to understand how Lync tracks users as it's a great mystery). What i learned today is that it appears that the ResourceID is not how Lync tracks users. In my environment we have 2 central site with 3FE's in each pool. If you open the back end database of each of these environments and look at the resourceID field they are each different for the same user. I then started looking on the FE's as well in the RTClocal RTC database. The resourceID is different there as well. What i can say is it appears the GUID of the ad object is the identifier. It DOES look like each FE and SQL backend does use ResourceID as an identifier but that appears to be unique to that server.I could be wrong but this is just what i see. It would be really nice for Microsoft to provide this level of detail to engineers who need this information.Thanks,Ryan
@ryan15Since it's not supported to change anything in the database manually, it's unlikely that the database schema for these databases will be made available. If you need to change a user's SIP domain, you would need to use the Lync management tools to accomplish that.
HI Doug,I am not changing the users SIP domain in SQL. I am changing it within the Lync control panel. What i'm looking for is how does Lync track users. It doesn't seem to be the resourceID as each FE and each SQL backend has a different resourceID for each user. Example: Looking for the resourceID for the same objectGUID, PoolA's backend SQL database resourceID for that GUID is 11477 while POOLB's backends resourceID for the same GUID is 32468.
As a sidenote - changing SIP address is a bit of a pain - especially if a user is member of other people team call groups, response groups, etcThe old SIP address is not removed and will generate a tonne of errors in Monitoring Server reports when calls are still trying to reach that destinationSo in that case Lync dosent handle changing SIP address all that well
@Anthony MYou are correct. Lync with response groups does not like name or domain changes at all. This is one reason why we are using distribution list to grant access to Response Groups.
After chaning a SIP address, users were unable to open and/or follow Persistant Chat Rooms of which they were a member before the change. Looking at the members of such rooms, their NEW SIP address was correctly listed as being a member. We had to 'remove' and 'add' this new address, after that they could use the chatrooms again..
I have two questions related to this point :1- if a user added another user from another pool and another domain but in same forest will the user will be added with resourceid or as sip address ?1- Is that apply in multi-pool in multi-domain one forest environment ?and the change of users sip address will affect other users contact list in the other pool another domain in the same forest?