One of the big changes in Lync 2013 was merging the Lync client and Group Chat (now called Persistent Chat) into a single client. The back end of Persistent Chat is also now an integrated component or role compared to the bolted on third party feeling of Group Chat. I hadn’t seen any companies deploy and use Group Chat until my last project which was to migrate all OCS 2007 R2 workloads to Lync 2013, including Group Chat.

Old Lync 2010 Process

The old OCS to Lync 2010 Group Chat migration was a bit of a big bang approach which used the old Group Chat database by backing up the SQL database, restoring it to the new server, adding user accounts and manual deletion of tables from SQL best summarised here by Justin Morris.

Lync 2013 Process

Luckily the process has been greatly improved with Lync 2013. The TechNet documentation covers in more detail but the basic overview is:

  • Define a Persistent Chat pool or server in the topology. A pool is recommended even if only one server is intended to be used as it allows additional servers to be easily added later if necessary. The same SQL instance and file store as the pool can be used if Group Chat will not be very heavily used
    • Note: New databases will be created instead of using the old OCS database
  • Install Lync on the server and create the certificate
  • Stop the OCS Group Chat lookup and channel services and disable them
  • Export data from Group Chat
    • Specific category using the scope
Export-CsPersistentChatData -Level All -Scope OCStest -DBInstance\RTC -dbname OCSChat -FileName ‘C:\PCexport\’
  • All categories
Export-CsPersistentChatData -DBInstance\RTC -dbname OCSChat -FileName ‘C:\PCexport\’
  • Stop Lync 2013 Persistent Chat service
  • Import chat room information
    • Specific category
Import-CsPersistentChatData -DBInstance ‘AUMELLYNCDB.DOMAIN.NET’ -FileName C:\PCexport\
  • All categories (importing over the test category or running more than once will not create duplicate entries)
Import-CsPersistentChatData -DBInstance ‘AUMELLYNCDB.DOMAIN.NET’ -FileName C:\PCexport\
  • If required – copy files from the Group Chat file store. Lync 2013 Persistent Chat cannot view or upload files to chat rooms so this is only needed if OCS 2007 R2 Group Chat clients will still be used after the migration
xcopy \\aumelocs01\c$\OCSChatWebService \\\lyncfs\1-PersistentChatService-2\PersistentChat /E /H /Y
  • Start the Lync 2013 Persistent Chat service
  • At this point users with the Lync 2013 client can access Persistent Chat however users with the old 2007 R2 Group Chat client cannot. If the Lync 2013 client has not been rolled out to all users a new endpoint must be created for the old Group Chat clients. Either a brand new endpoint URI can be created in which case the clients must modify the connection details, or the OCS default chat namespace must be deleted and recreated on Lync
    • New endpoint
New-CsPersistentChatEndpoint -SipAddress sip:[email protected] -PersistentChatPoolFqdn
  • OCS endpoint
    • Delete the OCS Group Chat AD object ‘[email protected]
    • Create a new endpoint with the ocschat URI
New-CsPersistentChatEndpoint -SipAddress sip:[email protected] -PersistentChatPoolFqdn

It sounds pretty easy – and it is, but assumes the most basic requirement which is where I was caught out. Not having used OCS Group Chat I assumed it was updated by the ‘ServerUpdateInstaller.exe’ but it is not and Group Chat has a separate updater. Complicating things is that this client was running a single OCS Standard Edition Server with Group Chat installed on the same server using the SQL Express instance which is not supported. The OCS Front End services were patched so I had not looked at the Group Chat side.

Export Group Chat data problem

When attempting to run the Export-CsPersistentChatData command it exported some information into the ZIP, but I got an error stating the following when it hit the ‘Export Add-ins’ part:

The text from the error is copied below as I could not find any mention of Exp_Siops on any searches I did and hopefully now nobody else will have to spend lots of time searching for the reason.

Database has legacy schema.WARNING: Export-CsPersistentChatData failed.WARNING: Detailed results can be found at


Export-CsPersistentChatData : Command execution failed: Could not find stored procedure ‘Exp_Siops’.


The requirement I was missing was a patch and database schema update that I think was first introduced in July 2010 updates. The stored procedure did not exist in the OCS database which is why the export failed. To resolve this, the latest September 2012 update for Group Chat was installed

Note: this update needs the database schema and stored procedures upgraded using ‘ServerConfigTool.exe’ as described in the KB article.

After that the export worked and I could import data into Persistent Chat.