locked
Changing Sign-in Address & Contacts RRS feed

  • Question

  • Hello,

     

    If I change user's sign in address (primary URI), user's existing contacts in communicator are getting deleted. Is there a way to change user's sign in address and keep user's contacts?

     

    Is dbimpexp.exe only way to achieve this? When users change their SMTP address, I want to change their sign in address...

     

    1. When I change user's sign in address, user's record gets deleted from the database.

    2. After UR runs, user is added to back the database with a new ResourceID

    3. With dbimpexp.exe, user's contacts can be recovered.

    4. But the people who added this user's old URI to their contact list need to re-add this user's new URI to their contact lists. Is there a way to change the sign in address and keep the same ResourceID for this user?

     

    Thank you very much in advance,

     

    BT

     

     

     

    Wednesday, July 9, 2008 3:42 AM

All replies

  • No way to automate what you are trying to do.  The only way to get the user's contacts back is with DBIMPEXP.  Once the SIP URI changes, there is not way to roll this out to anyone who has the old SIP URI in their contacts.  Might be possbile, if you use DBIMPEXP and export everything to an XML file, scan the XML file for the old SIP URI, change it and import the xml back into the datbase.  You may get a duplicate of the changed user (one contact with the old sip uri and one contact with the new sip uri).

     

    Wednesday, July 9, 2008 1:01 PM
  • Hi Mark,

     

    Thank you for your response. I was under the impression as you suggested that the only way is to use DBIMPEXP.

     

    However, I was actually be able to change the user's sign-in address and keep the existing contacts. I created a script that changes user's msRTCSIP-PrimaryUserAddress and proxyAddresses (sip) when there is change in proxyAddresses(SMTP) in real time. I verified that after the change, user's record is still tied to the same ResourceId. (Since UR runs evry 60 sec to find changes in AD, I would recommend using some kind of a script to test this. Otherwise, if UR catches partial changes, it drops this user from DB. At this point, I dont know what attributes it is trying to match to conclude that the user needs to be dropped from DB). Anyway;

     

    USER1: is the user whose attr is being changed:

    USER2 added USER1 as a contact/buddy.

     

    When I change the attributes mentioned above:

     

    USER1

    • Within 60 sec User1's communicator session gets dropped because UR found the change and updated user1's record in DB.
    • User1 signs in with updated sign-in address, no change in contacts , user1 is able to communicate with them too.

    USER2

    • User1's presence is "unknown"
    • Signs-out and signs back in, User1 is not in the contact list anymore. Address book search brings up two records for User1

                      -- USER1 "available" (link in contact card not working)
                      -- USER1 "presence unknown" (link in contact card working)

    • Exits and signs back in to Communicator. Still two records for USER1
    • Run abserver -regenUR
    • Run abserver -syncnow
    • Signs-out and signs back in. Still two records for USER1
    • Signs-out, deletes GalContacts.db, and then signs back in. Still two records for USER1
    • Exits from Communicator, deletes GalContacts.db, and then signs back in. Now search only returns 1 record for User1. I think within 24 hours the new user would be updated in Communicator but not sure whether they still need to exit from Communicator and sign back in to refresh the cache. Do you know where Communcaitor caches this information? I have already checked registry: GroupStateCacheU > ~~ > but nothing in there.

    Any thoughts?

     

    Thank you...

     

     

    Tuesday, July 22, 2008 6:17 PM