Monday, October 21, 2013

Swedish Spellcheck in Lync 2013

Since we now have spellcheck in Lync from version "CU2 September 2013"
(that is Lync 15.0.4535.1002 and MSO 15.0.4517.1504) the natural question arises:
How do I get Lync spellcheck in my mother tongue?

Well, to start with, make sure you have the minimum updates for the Lync client. If not, you can download them here: Lync 2013 update 15.0.4535.1510.
This is an updated update of the client "Cumulative Update 2" which will take the client to version Lync 15.0.4535.1507 / MSO 15.0.4517.1504. (Which is kind of weird considering the name of the update, but anyway...)

First install the updates for MSO (KB2727096), MSORES (KB2817624) and IDCRL (KB2817626) which basically are Office 2013 updates and finally install the actual Lync client update lyncloc2013 (KB2825630)

Lync 2013 is a part of Office 2013 and will use the spellcheck feature from Office so you need to find and download an Office 2013 Language Pack for your language. In my case I downloaded "Office 2013 Single Language Pack (x86 and x64) - DVD (Swedish)" and clicked through the setup.exe program.

Next you will find the Office 2013 Language Preferences tool in the start menu, and this is the tool you use to configure languages for Office 2013.

Set the language you want to use in Lync 2013 spellcheck as the <default> language.

And look! It works!

Friday, July 26, 2013

Lync Storage Service (LYSS)

Lync Storage Service (LYSS) is a storage framework in Lync Server 2013 intended to be used by different Lync Storage Service consumers for accessing storage platforms in a Lync Server 2013 system. To support high availability, LYSS accepts and saves copies of the data on multiple Front End servers in the pool temporarily, and removes that data once it has been delivered to its final long-term storage location (SQL or Exchange). LYSS reports to the event viewer Lync log as "LS Storage Service" and it is possible to use the Lync Server 2013 Logging tool to log events from "Lyss". LYSS is using a database named lyss which resides in the lynclocal instance of the SQL Server express on the Front End server.

 

LYSS is also used for the Archiving integration and Unified Contact Store. Currently the design allows for using Exchange Web Services (EWS) and SQL Server as the two storage platforms. LYSS uses the Exchange 2013 Autodiscover service to locate the Exchange 2013 Client Access server and uses the server-to-server authentication configuration to read and write from Exchange 2013. If a Lync user is enabled for Unified Contact Store, LYSS will move the contacts for the user to Exchange 2013. In Lync 2010 MSMQ was used by the Archiving components, but MSMQ is not required by Archiving in Lync 2013 due to LYSS (Persistent Chat Front End Servers still uses MSMQ.) With Lync no longer utilizing MSMQ the archiving functionality is now handled by unified data collection agents (archiving agents) who are installed on every Front End server or Standard edition server. Even though these agents are installed automatically they are not activated until archiving is enabled.

LYSS uses Windows Fabric for replication between the Front End servers in the pool. If data is deleted on a primary Front End Server, but the deletion on a secondary Front End Server fails, perhaps if there is an unexpected shutdown or error on the receiving Front End server data can be left behind and "orphaned." This orphaned data can cause performance to degrade and waste drive space. This condition will generate the events LYSS_DB_SPACE_USED_ERROR (Id=32058) and LYSS_DB_SPACE_USED_CRITICAL (Id=32059) in the event log on the Front End server in question. You could then check the performance counter on the Front End server under “LS:LYSS - Storage Service API” with the name "LYSS - Current number of Storage Service stale queue items." If this performance counter has a high value, for example greater than 50,000, then you should run the CleanuUpStorageServiceData.exe tool from the Lync Server 2013 Resource Kit which will delete all orphaned data from the pool.

Tuesday, July 16, 2013

Lync 2013 Cumulative Update 2

On July 1 Cumulative Update 2 for Lync 2013 became available from Microsoft. This is how I did an upgrade of my Enterprise pool sort of following the process outlined in KB2809243 and in the Technet article, Upgrade or Update Front End Servers

First I issued the command
Get-CsPoolUpgradeReadinessState
to see if all my front-ends reported True on the IsReadyForUpgrade parameter.

Then I used services.msc to stop all Lync services on my first front-end before running LyncServerUpdateInstaller.exe on this server, and when done I rebooted this server. Once the front-end service on my first front-end came back to a running state again after the reboot I switched over to front-end number 2, and did the same, and finally completed front-end number 3. It is important that the upgraded server comes to a running state again before moving on to the next one, this to maintain quorum of the pool.

Next I wanted to verify the versions of my databases with the command

Test-CsDatabase -ConfiguredDatabases -SqlServerFqdn sql.kressmark.com

Now some of the databases had different numbers for ExpectedVersion and InstalledVersion, so I issued the databse upgrade command

Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn sql.kressmark.com -Verbose

and naturally I wanted to verify that all the expected and installed versions now matched. To do that I added the following to my original test command

Test-CsDatabase -ConfiguredDatabases -SqlServerFqdn sql.kressmark.com | Select DatabaseName, ExpectedVersion, InstalledVersion

This gave a somewhat easier-to-read output for comparing versions.

Next, I continued with my Edge Servers, Mediation servers and Persistent chat servers in that order, and finally I issued the command

Enable-CsTopology

Here is an overview of what database versions are expected with each version of Lync for all the databases - happy patching!

Saturday, July 13, 2013

Microsoft Sommarkollo 2013 - Lync Enterprise Voice

Microsoft in sweden arranged an event this summer called "Sommarkollo", which sort of translates to "Summercamp". It is simply seminars around Microsoft technology on various technical and non-technical levels. And this year I had the opportunity to present something around Microsoft Lync. I named my session "Lync Enterprise Voice – a call from the future"


During the 3 hour session which was quite laid back we received a lot of questions and had some great discussions on features in Lync enterprise voice. We also had a lab environment on stage with a Snom One PBX and Snom telephones present in addition to the Aastra and HP Lync telephones as well.

Here are some of the questions we discussed during the session with links to more information on the different topics. I had a great time presenting - thanks for Sommarkollo Microsoft - and hope to see you again next year!


Which PSTN connection method is the most expensive – IP-PBX, gateway or an operator based SIP Trunk?

Most organizations already have a telecom solution in place before looking at Lync Enterprise Voice, hence it might be the most cost effective to set up a SIP Trunk to an existing IP-PBX. If the organization does not have any infrastructure already an operator based SIP Trunk is probably the lowest cost alternative. If ISDN is available and already considered a committed cost an ISDN gateway is not a very costly hardware device in comparison with other network equipment.

Which protocols and codecs are used by the Lync telephones, Lync phone edition and 3PIP phones?

TLS, SIP and RTAudio

Can Lync telephones work without an internal CA, but rather use certificates from and external internet CA?

Yes.

How often are Lync Cumulative update packages released?

“Quite” often :-)
Lync 2010 Server
CU1 January 2011 (Version: 4.0.7577.108)
CU2 April 2011 (Version: 4.0.7577.137)
CU3 July 2011 (Version: 4.0.7577.166)
CU4 November 2011 (Version: 4.0.7577.183)
CU5 February 2012 (Version: 4.0.7577.190)
CU6 June 2012 (Version: 4.0.7577.199)
CU7 October 2012 (Version: 4.0.7577.203)
CU8 March 2013 (Version: 4.0.7577.216)

Lync 2013 Server
CU1 February 2013 (Version: 5.0.8308.291)
CU2 July 2013 (Version: 5.0.8308.420)


How many concurrent calls can a Lync 2013 Mediation Server handle?

A Mediation Server Collocated on a Front End Server (with 6600 Lync users homed on it) can handle around 150 concurrent calls, this is not an exact figure because we cannot say what the 6600 users will be up to at any given moment.

If you use a standalone Mediation Server following the hardware requirements of a 64-bit dual processor, hex-core, 2.26 GHz hyper-threaded and 32 GB of Memory such a mediation server can handle 1500 concurrent calls.


Is it possible to filter Lync debugging logs?

Yes, you can use the Edit Filters options to define filtering for log files so that only traffic to and from the addresses you specify is traced.


For a good description of the new centralized logging in Lync look here:


Could you configure “general” rules in the dial plan?

Yes, the "Catch All" rule "^(\d*)$" that people often put as the last normalization rule in a dial plan to catch any other number to pass it on, could be seen as a "general rule".

Also, UC Ken Lasko (aka. Hasselhof) have put a lot of work into the Lync optimizer page / tool. This is a tool that automagically will create dial plans for you in a sort of "wizard style" by asking you questions about the dialing habits of your users and your location.

Where do we configure the range of numbers used to park a call?

You can use the Lync Server Control Panel or the New-CSCallParkOrbit cmdlet to create the orbit ranges.


How do we configure private numbers for users?

With the Set-CsUser command.


What happens when you are busy on a call in Lync and receives yet another call?

Lync does not deliver a busy tone "out of the box". Rather a new incoming call is presented even if the user is on another call. IF you would like to change this behavior there are many third party products that can give Lync the option of actually sending a busy tone back to a caller, some are free others licensed.


Can we change the call forwarding setting using the outlook calendar?

Yes, and no, in outlook we have a concept of “working hours” which we can use to apply call forwarding during work hours or not. If you look at the call forwarding settings in Lync you will notice a setting that is named “These settings will apply”.

Using Exchange UM we can also configure “Find me” rules which can help to get the calls forwarded where we want them.


Is it possible to configure additional presence states in the Lync client?

Yes, to define custom presence states in Lync 2013, create an XML custom presence configuration file, and then specify its location by using the Lync Server Management Shell cmdlets New-CSClientPolicy or Set-CSClientPolicy with the parameter CustomStateURL.


Can we tie a voice policy to a group of users?

Yes, the "Voice policy scope" determines the hierarchical level at which the policy can be applied. In Lync Server, you can configure voice policies with the following scope levels (listed from the most specific to the most general) User, Site, Global.


Can we set up local access numbers to dial in to a Lync conference?

Yes, it is possible to set up several local numbers as a dial-in conferencing access number; any user from any location can call any dial-in access number to join a conference.


Can we monitor Lync peer-to-peer conversations to block files and URLs?

Yes, Lync contains an "IM filter" which can block URLs and files. There are also some interesting 3rd party software around that can enhance Lync IM with "Auto reply" and other features.


What are the options available for displaying and changing location in the Lync client?

This can be controlled in a number of ways depending on server settings, see this link for a good run through of the Lync 2010 options.


Also, please note that...


Is it possible to hide the Caller ID for outgoing Lync calls?

Configuring Lync 2013 to block private numbers is a simple task if you want it to be global, using the Suppress Caller ID option on the route. However, if you want to single out certain users to be hidden and others not, this is also possible but will require different sets of Voice policies, PSTN usages and Routes to be created. Also, you need a receiving end that understands the P-Asserted-Identity property in SIP correctly according to RFC3325, i.e. this will not work on any type of gateway, IP-PBX, SBC, etc.

Unfortunately there is no way of simply hiding my number for a single call like in GSM with a *31* code in front of the dialed number. (but could even this be implemented in Lync with some intelligent number conversion tricks? - let me know!)


We had more questions coming up during the event, but we did not manage catch all of them in this blog post. Please send in a comment to this post if I forgot to answer your question, and thanks for participating in "Sommarkollo" this year!

Saturday, July 6, 2013

Running Lync 2010 Server on Windows 2012

It is now possible to install and run Lync 2010 Server on Windows Server 2012, but there are a few things to keep in mind. First, the Lync 2010 system needs to be patched with at minimum Cumulative Update number 7 (of October 2012), but as always I would recommend you to use the very latest update available.

Upgrading the operating system of an existing installation of Lync Server 2010, or running Lync Server 2010 Group Chat Server are not supported with Windows Server 2012.

After publishing your topology, installing Lync and trying to login to the Lync control panel for the first time you will see the following message.

 A 404.17 - Not Found error message.

This is because the IIS Application Pools are using the .NET Framework Version v4.0 by default. This is displayed in the Application Pools configuration in Internet Information Services Manager.

Application Pools using .NET Framework Version v4.0

So, to fix the issue simply set all application pools named "Cs"-something to use .NET Framework Version v2.0 instead and then open a command prompt to issue an iisreset command.

Application Pools for Lync 2010 should use .NET Framework Version v2.0

If you now have your Lync Control Panel window still open, just hit refresh and the Control Panel will display fine.

For more info:
Supportability statement
404.17 - Not Found error message

Saturday, June 29, 2013

Lync 2013 DHCPUtil.exe on Win 2012 missing dlls

If you are running your Lync 2013 system on Windows 2012 Servers and want to provision your Windows 2012 DHCP server with the required DHCP options 43 and 120 for Lync Phone Edition you might run into this issue.

From your Lync standard or front-end server you copy the files
DHCPUtil.exe
DHCPConfigScript.bat

from the folder "C:\Program Files\Common Files\Microsoft Lync Server 2013" to your Windows 2012 DHCP Server, but trying to start DHCPUtil.exe the following message shows up


DHCPUtil.exe needs two .dll files to start up
msvcp110.dll
msvcr110.dll

To fix this, go to "C:\Windows\System32" on your standard or front-end server and you will find the files there. Next, simply copy them to "C:\Windows\System32" on the DHCP Server and DHCPUtil.exe will now run.

For more info on DHCPUtil.exe.

Monday, March 4, 2013

Lync 2013 February 2013 Cumulative Update 1

In February of 2013 updates to the Lync server, database and client were released.

LyncServerUpdateInstaller.exe will update your server software.


Unfortunately Get-CsServerVersion only returns the base version level, so it would show "Microsoft Lync Server 2013 (5.0.8308.0)" even after the upgrade. Simply run the LyncServerUpdateInstaller.exe again if you would like to see the current version numbers of the software running on your server. Alternatively use "Programs & Features" from the Control Panel, or alternatively use the command

Get-WmiObject –query ‘select * from win32_product’ | where {$_.name –like “Microsoft Lync Server*”} | ft Name, Version –AutoSize

After the upgrade you should see many of the components at version level 5.0.8308.291.

Besides bug fixes this Lync 2013 server update contains some quite interesting changes such as:
Please see the updated Microsoft Lync Server 2013 Documentation Help File for additional info on the Location-Based Routing functionality and the Group Call Pickup feature.

Lync 2013 database update

Do not forget to update the database after the installation!
After you install the update for the Core Components server role on a Lync Server 2013 Standard Edition server, the updated SQL databases on the
server are dropped. To apply the database changes, run the following cmdlet.

Install-CsDatabase -ConfiguredDatabases -SqlServerFqdn standard.kressmark.com -Verbose -Update

and do not forget the -Update switch either!

Lync 2013 Client

Since the client is a part of Office 2013 two updates are needed - one for Office components and one for the actual Lync client software. Your client will go from version 15.0.4420.1017 to 15.0.4454.1506 if you check in Help / About, before and after the update.

This client update also contains some interesting changes such as: 
  • A new dynamic "Away and Offline Contacts" group
    Found under Contact List,
    "Show contacts with away, offline and unknown presences in a separate group"

  • Receive contact invites from untrusted networks (available under Alerts in Lync Options)
  • Default client for meetings - The Lync 2013 desktop client or the Lync app from the Windows App Store. 

  • Dial out from an online meeting even if the meeting is scheduled by a non-audio-enabled (non-Enterprise-Voice-enabled?) Lync user.
  • Improvements for devices that have both a front-facing and rear-facing camera.

Also some additional nice things were released for Lync 2013 in February.
Lync 2013 Resource Kit
Lync 2013 Planning Tool

Friday, February 22, 2013

The great Lync Conference of 2013

I had the privilege to attend the Microsoft Lync Conference 2013 held at beautiful hotel del Coronado in San Diego!

The conference started with a keynote showing some great past and coming features of Lync and especially Lync 2013 of course. Lync and Skype will soon federate. Skype is a platform that currently connects some 280 million users who spends 300 billion minutes on the phone per year, it will be a great benefit being able to reach all those persons straight from your Lync client. The federation is scheduled for June of this year.

It was good to learn that the product group sees Mobility as important as well as Reliability; if your first call with Lync fails chances are you will not try again, so work is definitely ongoing in these areas. It was also reassuring to hear that Lync is committed to multi-platforms. We saw demos of Lync VoIP and video on iOS and Android next to windows 8 and Windows Phone. These mobile clients will be available next month through the various "App Stores", so it seems as I can hang on to my Apple products for yet some time.
The Lync room based system / concept were also demonstrated on big touch sensitive screens to be used as whiteboards - looks really neat. The Lync room based system will be available through 4 vendors by this summer. The new Lync 2013 Meeting Gallery view with 4 simultaneous video feeds on a Windows 8 device were demoed as well as video in the Lync 2013 web app running on a Mac.
We also learnt that Enterprise voice will be coming in Office365 within 18 months from now and that the next Lync server version will be released in the second quarter of 2014. It seems as Microsoft is stepping up the pace of improvements and new features for Lync.
After the keynote, the different break-out sessions started, and we got the chance to check out the expo area and mingle with some nice people.

Matt Landis is checking out a Surface device which Tommy Clarke equipped with åäö.

We also took several "deep dives" into stuff like Lync Resiliency, Voice Routing, Interoperability and related subjects.

It was good to meet several of my old students at the conference - here is Lars Ernerdahl - a Lync Enterprise Voice expert from Sigma in Sweden.

Some stuff I picked up which seemed new to me:
  • A virtualization whitepaper for Lync 2013 is on its way.
  • Announcements around Reverse Proxy planning / recommendations are coming on the UCOIP page.
  • Better Boss/Secretary functionality with Lync 2013 and SNOM phones.
  • SNOM phones can register towards two SIP registrars at the same time (like Lync 2013 / MX-ONE 5.0)
  • Virtualizing SBA's will be possible in Lync 2013.
  • SQL mirroring is supported in Lync 2013 - with or without a witness.
  • SQL clustering is NOT supported in Lync 2013.
  • Encrypted traffic might be an issue for QoS over WiFi - Aruba Networks has solutions for this.
  • In Exchange 2013 all backend servers are UM servers.
  • Call Admission Control is mutually exclusive to Media Bypass.
  • Lync 2013 will detect gateway down and try another gateway much quicker than Lync 2010.

Cumulative Update 1 for Lync 2013 is coming now in February and seems to be a big thing. New features will be added to Lync along with updates as well and we got to hear about these three nice addons:
Location based routing for non-emergency calls
This means routing based on where a user is located in the network, and not only depending on what the user dials. Location-based routing will use the existing sites and regions already configured in CSCP, together with a new policy. All other configuration of this feature will be done with powershell commands.
Server support for Mobile clients
This is the needed backend changes to get voice and video going in the Mobile Clients.
Group call pickup
Roy Kuntz talked about the Group Call Pickup feature in his excellent “Deploying Voice” session. Group Call Pickup means that when you hear another phone ring (can be a drawback with the Lync client software and ring tones not being loud like regular phones) you simply dial the call pickup number assigned to that extension to pick it up.
And besides the technical stuff - we had a lot of fun!
Microsoft Sweden got all the Swedes together before the event even started – thanks guys!
We went on a boat trip with Audiocodes and Plantronics – thanks guys!
The UC Architects arranged a Great Giveaway - and I won a beautiful headset - thanks guys!

And we got the best seats at the Sea World attendee party!

Magnus Algard and Ulf Trolle tried the hands-on-labs available for all delegates.

I tweeted a lot during the entire conference and was real happy to see two of my tweets promoted during the second keynote. 

Matt Landis did a little "Takeaways" Interview video with me, and I had to take the chance to clown off a bit. Around 600 persons from 40 countries attended the conference, 300 partners, 40+ Swedish delegates (and we consumed 2000+ drinks in 2 hours during the welcome reception.) I really think that #lyncconf13 was the best event I attended so far! I loved the content, the people and the party! and I really hope this will become a recurring event.

Wednesday, February 6, 2013

Localized Lync 2010 Training Material

Through this Microsoft Lync 2010 Training link, you can download Lync 2010 end-user training in a Power Point format.

If your end-users does not speak or read English you can download this material in any of the following 33 languages:

Arabic, Bulgarian, Chinese, Croatian, Czech, Danish, Dutch, Estonian, Finnish, French, German, Greek, Hebrew, Hindi, Hungarian, Italian, Japanese, Kazakh, Korean, Latvian, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Thai, Turkish, Ukrainian

Another good end-user resource is the Lync how-to webpage found as a part of the Adoption and Training Kit, this unfortunately in English only.