Tuesday, March 3, 2015

Cisco RCC/CUCILYNC/SIP interoperability advantages and considerations with Lync

The following post outlines the functionality, integration benefits and considerations for the three methods of interoperability with Cisco Call Manager. It is not meant to be an all inclusive list but trying to capture the high level details on each type of integration.

1.1.1             Remote Call Control


In Microsoft Lync Server 2013, support for remote call control scenarios enables users to control their private branch exchange (PBX) phones (in this case, the Cisco IP Phones) by using Microsoft Lync 2013 on their desktop computers. This is accomplished by using a SIP/CSTA gateway (a SIP/CSTA gateway is a gateway between SIP and a computer-supported telecommunications application (CSTA). In the case of Cisco, this would require the Cisco Unified Presence Server which is also used with Jabber clients. The Presence bits are now colocated with Cisco CallManager.

Functionality
Functional Specifications include:
Make an outgoing call by Click-to-Dialing contacts from Outlook and the Lync client.
Control the deskphone (or softphone) using the Lync client.

Integration Benefits
Benefits include:
Leverages existing PBX (CUCM) infrastructure for voice, voicemail, etc…
Voice workload is anchored on Cisco UCM. Predictable call flows
Switch between controlling Cisco handset or softphone with Remote Call Control Plug-in
Single Dial plan
Ability to still leverage Audio\Video MCU to make a PC to PC Lync audio and video workloads and conferencing
Cisco Phone Presence off hook status is displayed in Lync
Possible Dial out conferencing support.  Needs to be tested with Lync 2013 client.

Integration Considerations
Considerations include:
Can’t perform drag and drop conferencing with an RCC Call. Conferencing on Cisco phone must be initiated from Cisco phone.
RCC does not work with remote users unless a VPN connection is established as CSTA/SIP gateway which is the Cisco Presence server is not exposed to the Internet.
Can’t escalate a RCC call to a video call without hanging up and making it a Lync call.
Remote user will get a red exclamation mark indicating phone control is not accessible as Cisco presence server is not reachable without a VPN connection.
Mobile clients on the IPhone, Droid, and Windows mobile will not be able to control call forwarding settings of Cisco Phone.  Will need to use the Full Lync desktop client to control Call Forwarding settings of Cisco Phone.
Requires the Lync Voice CAL.
Needs to be tested in VDI environment


1.1.2             CUCILYNC

Cisco UC Integration™ for Microsoft Lync (CUCI-Lync) is a desktop integration that provides access to Cisco Unified Communications from the Microsoft Lync client. There is also support for Cisco VDI environments. The product no longer adds an additional pane at the bottom of the Lync client but uses a separate dockable client that intercepts Audio/video communications and passes them off to the Cisco registrars and MCU’s. For more information please see the following YouTube video and datasheets.



















Functionality
Functional Specifications include:
Use the Lync client for IM and Presence Features
Provide softphone capability and desktop phone control using the Cisco UC client for Lync.

Integration Benefits
Benefits include:
Leverages existing PBX (CUCM) infrastructure for voice, video, voicemail, etc…
Requires only the Lync standard CAL in some cases
Enterprise CAL required if dial out Conferencing to Cisco handset is required.
Ability to switch between Cisco Phone and Soft client for phone calls.
Single dial plan.
Visual voicemail access to Cisco Unity.
Desktop sharing and application sharing using Lync.

Integration Considerations
Considerations include:
Disable A/V MCU functionality in Lync is highly recommended to avoid call confusion. All Lync to Lync A/V scenarios would be disabled in this configuration including the ability to make a Lync to Skype A/V call.
All video calls would be peer to peer unless leveraging a Cisco video MCU for conferencing.
The user cannot use CUCI-Lync functionality through the Lync Edge servers (meaning, they will be required to VPN in to the environment to utilize CUCI-Lync, or implement Phone Proxy on an ASA).
Single Sign On (SSO) is accomplished through a third party server running Linux. (OpenAM server 9.0 supplied by ForgeRock).
No mobile phone or MAC support.
Additional piece of software to manage on desktop that uses resources.
Not Microsoft supported.
Microsoft updates could break client side application.
Support lags 12 months behind new product releases



1.1.3             SIP Trunking with Cisco Single Number Reach (SNR)

Functionality
Functional Specifications include:
Virtual SIP trunks configured between Cisco CUCM and Lync Pools.
Both Cisco and Lync endpoints ring for all incoming calls.

Integration Benefits
Benefits include:
Utilize same number on Lync and Cisco endpoints or route using SIP URI.
Calls that originate from Call manager will go to Unity Voicemail and follow the CUCM VM path when Setting ‘Do Not Disturb’ in Lync when the Cisco Phone ring time expires.
Easily escalate a Lync voice call to a video call or a conference if call is answered with the Lync client.
Setting Do Not Disturb (DND) prevents the Lync client from ringing and the call will be answered by the Unity voicemail system as the call is rooted on the Call Manager. DND is useful to set in situations when the user is in Conference call and does not want the Lync extension to ring during this time.
Ability to simultaneously ring more than a single number.
End user chooses the endpoint to answer call with.
Works with mobile client and external remote Lync users without VPN.
Can be configured so anytime a Lync user makes a call to another Lync user the Cisco endpoint also rings.
Do not need to install any additional software’s on desktop.
Lync user can join a Lync conference via Lync; have system dial-out to Cisco or Mobile phone or use Lync mobile clien twithout having to dial in.

Integration Considerations
Considerations include:
Lync dial plan required.
Calls answered on Cisco Phone will generate a missed call notification for Lync user.
Requires the Lync voice CAL
Lync client does not control the Cisco endpoint like RCC or CUCILYNC
Cisco on hook off hook status will not appear in Lync.  Phone presence will appear for users making Lync calls. To see phone presence of Cisco phone consider Lync Integration for Cisco Call Manager (LICC) from Bridge Communications to see call presence of a Cisco handset user. http://www.bridgeoc.com/products/licc/licc.htm
With SNR configuration Media flows between two Lync clients could be hair pinned through the Lync Mediation Server. See Figure 15.




















Monday, March 2, 2015

Can't Publish Lync 2013 Topology

Important note to self:

If you have installed SQL express and uninstalled SQL express on a Lync 2013 Standard edition deployment make sure you delete the CSdata folder and all database files before republishing topology otherwise the system will throw an exception that it can't attach to the XDS database with an access denied message..













Trying to connect to Sql Server LyncFE1.acme.com\rtc. using windows authentication...
Sql version: Major: 11, Minor: 0, Build 2100.
Sql version is acceptable.
Validating parameters...
DbName xds validated.
SqlFilePath C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup validated.
DbFileBase xds validated.
DbPath C:\CsData\CentralMgmtStore\rtc\DbPath validated.
Effective database Path: \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath.
LogPath C:\CsData\CentralMgmtStore\rtc\LogPath validated.
Effective Log Path: \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath.
Checking state for database xds.
Checking state for database xds.
Checking state for database xds.
State of database xds is detached.
Attaching database xds from Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath.
Attaching Database xds. Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\xds.mdf, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath\xds.ldf.
Failed to attach database xds from Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\xds.mdf, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath\xds.ldf.
Directory lookup for the file "\\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\xds.mdf" failed with the operating system error 5(Access is denied.).
****Creating DbSetupInstance for 'Microsoft.Rtc.Common.Data.LisDatabase'****
Initializing DbSetupBase
Parsing parameters...
Found Parameter: SqlServer Value LyncFE1.acme.com\rtc.
Found Parameter: SqlFilePath Value C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup.
Found Parameter: Adminacct Value acme\RTCUniversalServerAdmins.
Found Parameter: Roacct Value acme\RTCUniversalReadOnlyAdmins.
Found Parameter: DbPath Value C:\CsData\CentralMgmtStore\rtc\DbPath.
Found Parameter: LogPath Value C:\CsData\CentralMgmtStore\rtc\LogPath.
Trying to connect to Sql Server LyncFE1.acme.com\rtc. using windows authentication...
Sql version: Major: 11, Minor: 0, Build 2100.
Sql version is acceptable.
Validating parameters...
DbName lis validated.
SqlFilePath C:\Program Files\Common Files\Microsoft Lync Server 2013\DbSetup validated.
DbFileBase lis validated.
DbPath C:\CsData\CentralMgmtStore\rtc\DbPath validated.
Effective database Path: \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath.
LogPath C:\CsData\CentralMgmtStore\rtc\LogPath validated.
Effective Log Path: \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath.
Checking state for database lis.
Checking state for database lis.
State of database lis is detached.
Attaching database lis from Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath.
Attaching Database lis. Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\lis.mdf, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath\lis.ldf.
Failed to attach database lis from Data Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\lis.mdf, Log Path \\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\LogPath\lis.ldf.
Directory lookup for the file "\\LyncFE1.acme.com\C$\CsData\CentralMgmtStore\rtc\DbPath\lis.mdf" failed with the operating system error 5(Access is denied.).

Tuesday, January 27, 2015

Skype for Business On line Web training

If you can't make the new Office 365 ignite events in Europe you can sign up for Lync for Skype Business webinars at:


https://infopedia.eventbuilder.com/index.asp?landingpageid=7p1c8p

Introduction
Monday, 02/23/2015 8:00 AM, USA Pacific

New Windows Desktop Experience
Wednesday, 02/25/2015 8:00 AM, USA Pacific

Reference Architecture and Design Considerations
Monday, 03/02/2015 8:00 AM, USA Pacific

Manageability Improvements Overview
Wednesday, 03/04/2015 8:00 AM, USA Pacific

In-Place Upgrade Deep-dive
Monday, 03/09/2015 8:00 AM, USA Pacific

SQL Always On Deep-dive
Wednesday, 03/11/2015 8:00 AM, USA Pacific

Server Core Improvements Overview
Monday, 03/16/2015 8:00 AM, USA Pacific

Reliability & Patching Deep-dive
Wednesday, 03/18/2015 8:00 AM, USA Pacific

Hybrid Configuration Deep-dive
Monday, 03/23/2015 8:00 AM, USA Pacific

New Meeting & Web Investments Overview
Wednesday, 03/25/2015 8:00 AM, USA Pacific

Video Interop Server Deep-dive
Monday, 04/06/2015 8:00 AM, USA Pacific

Lync/Skype Federation (Phase 2)
Wednesday, 04/08/2015 8:00 AM, USA Pacific

Lessons Learned from Preview
Monday, 04/20/2015 8:00 AM, USA Pacific

Software Defined Networks (SDN)
Monday, 04/27/2015 8:00 AM, USA Pacific

Developer Platform
Wednesday, 04/29/2015 8:00 AM, USA Pacific

Tuesday, September 2, 2014

Lync 2013 Monitoring Time Zone -CDR and QOE databases have a different timezone than SQL Server

After installing the Monitoring Reports we encountered a strange issue stating that the SQL Reporting Services (SSRS) is inconsistent with the time zone for the CDR and QOE databases with a set of instructions to re mediate the issue.

Figure 1 illustrates the warning message and Figure 2 illustrates the error message when executing the stored procedures to correct the issue.









                             

                                         Figure 1

Msg 547, Level 16, State 0, Procedure RtcClearTimeZoneInfo, Line 6

The DELETE statement conflicted with the REFERENCE constraint “FK_DaylightSavingYears_1″. The conflict occurred in database “QoEMetrics”, table “dbo.DaylightSavingYears”, column ‘TimeZone’.

The statement has been terminated.

(1 row(s) affected)

                                         Figure 2

After searching the Internet I came across a Duncan's blog http://eureka.greenhead.com/lync-monitoring-time-zone/ that reported the same issue with a fix from Microsoft support. Below are the details on correcting the issue:

There are two issues which prevent the successful execution of the stored procedure  'dbo.RtcClearTimeZoneInfo' in Lync 2013 which include:

1. A foreign key constraint between the DaylightSavingYears table and the TimeZones table which         prevents the TimeZones table from being cleared first.

2. There is now a trigger associated with the TimeZoneConfiguration table which requires there              always be exactly one row in the table.

Resolution

To work around this issue the following SQL query at the root of the SQL instance.  It will execute the operation on both the LcsCDR and QoEMetrics tables.


USE [LcsCDR]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @Status int
set @Status = 0
BEGIN TRANSACTION
    DELETE from DaylightSavingYears WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 DELETE from TimeZones WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 ALTER TABLE TimeZoneConfiguration DISABLE TRIGGER "TimeZoneConfigurationTrigger";
    DELETE from TimeZoneConfiguration WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 ALTER TABLE TimeZoneConfiguration ENABLE TRIGGER "TimeZoneConfigurationTrigger";
COMMIT TRANSACTION
exec @Status = RtcTruncateSummaryTables
SELECT @Status

USE [QoEMetrics]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
declare @Status int
set @Status = 0
BEGIN TRANSACTION
    DELETE from DaylightSavingYears WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 DELETE from TimeZones WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 ALTER TABLE TimeZoneConfiguration DISABLE TRIGGER "TimeZoneConfigurationTrigger";
    DELETE from TimeZoneConfiguration WITH (TABLOCKX)
    if (@@error <> 0) begin
        ROLLBACK TRANSACTION
    end
 ALTER TABLE TimeZoneConfiguration ENABLE TRIGGER "TimeZoneConfigurationTrigger";
COMMIT TRANSACTION
exec @Status = RtcTruncateSummaryTables
SELECT @Status

The script combines the procs from both the LcsCDR and QoEMetrics in a single procedure. After running the script, you will still need to generate the summary tables with 

dbo.RtcGenerateSummaryTables in each of the databases.

Monday, May 26, 2014

Microsoft Lync Voice gateway failover - SipResponseCodeTranslationRules

In Lync environments that utilize multiple gateways for path failure it is important to understand the differences between a voice gateway hard and soft failure.  Lync does a great job with a hard failure and will mark that gateway down and proceed to try the next gateway/trunk that has been selected in the users Voice Policy.

There are two different types of Voice gateway failures in the Lync world. They include:

1. Hard down with the voice gateway being unreachable and marked down by Lync
2. Soft down with the voice gateway is reachable but the Carrier is having an issue.

The concentration will be focused on handling a soft down failure. Our example is based on a pair of Audiocodes Mediant 2600 SBC's that have independent circuits terminating to each gateway to provide high availability and failover. In the event of a soft failure the Audiocodes gateway responds with a 408 Request timeout which is defined as "couldn't find the user or determine the location of the user in time".  Because this is a client side response Lync will not failover to another gateway.  In order to get Lync to try the next gateway the response code must be a 5XX Server response failure.




So we need a way to tell Lync Server when it receives a 408 client response failure to try another gateway.  By using SipResponseCodeTranslationRulesList on the Lync Trunk we can translate both Sip and ISDN response codes to different Sip Response codes. In this case we will create a rule to map the client response code failure of 408 to a server side response code failure of 503 Service unavailable. Lync recognizes this as a gateway down issue and will try next PSTN usage record that is associated with the route and gateway/trunk as defined in the users Voice Policy.

Below is the command we used on the Global Trunk Configuration to convert 408 response code into a 503 response code.


New-CsSipResponseCodeTranslationRule -Parent Global -Name "Rule-408-to-503" -ReceivedResponseCode 408 -TranslatedResponseCode 503

 

 Viola! Lync will now try secondary route to alternate SBC gateway

Sunday, September 8, 2013

Exchange UM AA does not recognize spoken names (Galgrammargenerator.exe)

I was recently integrating a pair of Exchange 2010 UM servers to a Avaya CM 6.21 via Session Manager and ran across an interesting issue. After enabling several mailboxes for Exchange UM the users were not available in the Directory when speaking the subscribers name.  Though I could reach them using the touchtone menu by specifying the extension numbers.

I've seen this issue before and thought to myself - this is a just a case of the grammar files not updating.  I ran the following command to update the grammar files that contain the users recorded name or system generated name:

Galgrammargenerator.exe -d 'ACME UM Dial Plan' -o c:\temp\galgrammarresults01.txt and got the following output:

------------------------------------------
Generating Grammar: Grammar for all UM-enabled users in dial plan 'ACME UM Dial Plan'
Filter: ((((HiddenFromAddressListsEnabled -eq 'False') -and (((RecipientType -eq 'MailContact') -or (RecipientType -eq 'UserMailbox') -or (RecipientType -eq 'MailUser') -or (Phone -ne $null))) -and (((DisplayName -ne $null) -or (FirstName -ne $null) -or (LastName -ne $null))))) -and (EmailAddresses -like '*phone-context=ACME UM Dial Plan.acme.com') -and (EmailAddresses -like 'EUM:*'))
Downloading Entries: 09/03/2013 11:51:44
Downloading Entries Complete: 09/03/2013 11:51:44
The user "Henry E. Jensen III" with the e-mail address "hjensen@acme.com" was not added to the speech grammar because the speech recognition service has determined that it can be said in at least 10 ways. The maximum allowed is 1.
The user "Greg D. Rapp" with the e-mail address "grapp@acme.com" was not added to the speech grammar because the speech recognition service has determined that it can be said in at least 10 ways. The maximum allowed is 1.
Compiling grammar file E:\Program Files\Microsoft\Exchange Server\V14\UnifiedMessaging\grammars\en-US\59e94d9d-355c-4e1e-a4c6-b45dcc013998.grxml -> C:\Users\hejadmin\AppData\Local\Temp\ad8e619f-1cf4-4941-95e1-a4ea5f2bbd4d.cfg

Wowzers 10 different ways to say a name and only one allowed. After digging through the following Blog http://blogs.technet.com/b/exchange/archive/2006/10/30/3395749.aspx it is the display name where the users given name is generated from and then inserted into the speech grammar.
In this case the Display Names had periods, and designations like III that the speech grammars did not like. 

There are two solutions:
1)  Modify the display name attributes.
2)  Populate the PhoneticDisplayName attribute

I opted for the second option and executed the following command:
set-csuser -identity hjensen@acme.com -PhoneticDisplayName 'Henry Jensen'

Next I ran Galgrammargenerator.exe again and after a couple of minutes the user was added to the directory allowing a caller to search for the user name using voice commands.

Cheers

-Paul Gurman-



Monday, August 19, 2013

Southern California Lync users Group








You are Invited!


NACR and Microsoft are proud to announce the Southern California Lync User Group – bringing together a wide range of professionals from companies including AudioCodes, AcmePacket, Polycom, Avaya, Radvision, Plantronics and Interactive Intelligence.

Organized by Paul Gurman, a Lync MCM from NACR, and Lee Reese, a Microsoft Lync Voice TSP for the Southwest, the group is dedicated to demonstrating the value of Unified Communications (UC) and exploring how the Microsoft stack can:

  • Increase ROI
  • Provide a cost-effective replacement strategy for aging phone switches
  • Integrate with contact center and line-of-business applications

 Join us and network with the experts

Our first event will feature AudioCodes presenting on Session Management with Lync and solutions for Auto Attendants at the Branch office, analog device handling and Voice Recording.



Refreshments will be provided by AudioCodes, and cool giveaways will be awarded by Plantronics.



RSVP by September 12th at the link to the below.  Seating is limited.
http://www.nacr.com/company/register-event/?event=56209