Introduction
This document describes the process used when Unified Contact Center Express (UCCX) integrates with Microsoft Exchange in order to provide email functionality. The two protocols used by UCCX are:
- Internet Message Access Protocol (IMAP)
- Simple Mail Transfer Protocol (SMTP)
The IMAP connection is opened from both UCCX and Cisco Agent Desktop (CAD) clients, but SMTP is used by the UCCX server only. Apart from the configurations on the UCCX and Microsoft Exchange, the throttling policies on Microsoft Exchange have to be considered with caution. These policies can cause many issues, such as:
- Agent Email READY/NOT-READY buttons are grayed out
- Emails do not route to agents
- Agents are unable to retrieve emails
There might be multiple issues, and this document covers some of the most common ones.
UCCX Email Integration with Microsoft Exchange 2010 Throttling Policies Checklist
The CAD clients and UCCX both open IMAP connections to the Microsoft Exchange server. Every client login requires two IMAP connections to be open. The connection limit on Microsoft Exchange is an issue because of the user account used in order to open the account.
For example, the UCCX Email READY/NOT-READY buttons are grayed out.
When this occurs, notice that the Agent Email tab displays Loading and is locked with that message. In order for the buttons to highlight, the CAD client must open an IMAP connection to the Microsoft Exchange server. Open a command prompt on the PC and enter:
telnet <ip address of exchange> 143
If this is unsuccessful, the problem is a network issue or a configuration issue. If successful, then the connection from CAD should be successful as well. However, this does not always occur, since the CAD client opens the connection with the use of the UCCX Email Account configured on the Cisco Desktop Administrator page. A packet capture on the Cisco Agent Desktop PC shows that Microsoft Exchange rejects the connection with an authentication error. However, other agents might be working with same account, and you have verified that the credentials are correct.
At this stage, the throttling policies on Microsoft Exchange are involved since all clients and the UCCX open the connection with the use of the SAME user account. Therefore, you must configure the appropriate values on the Microsoft Exchange server for the Max Connections from a user.
After you consider the previous example, review the throttling policies for Microsoft Exchange 2010.
IMAP
- Open the Microsoft Exchange Management Shell and enter:
Set-ImapSettings
-MaxCommandSize 10240
-MaxConnectionFromSingleIP 2000
-MaxConnections 2400
-MaxConnectionsPerUser 2400
This sets:
MaxConnectionFromSingleIP : 2000
MaxConnections: 2400
MaxConnectionsPerUser 2400
- Also, if you have issues with the email, open the Event viewer logs on Microsoft Exchange and you see messages similar to:
Mapi session "/o=First Organization/ou=Exchange Administrative Group
(FYDIBOHF23SPDLT)/cn=Recipients/cn=E-mailUser" exceeded the maximum of 16 objects of type "session"
This points to a new configuration that must be created on Microsoft Exchange:
- On the server that runs the Microsoft Exchange Server 2010 Mailbox role, click Start > Run. Enter regedit, and click OK.
- Locate and then click these keys in the registry:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
- On the Edit menu, select New, and select DWORD Value.
- Enter the Maximum Allowed Service Sessions Per User, and select ENTER.
- On the Edit menu, select Modify.
- Enter the decimal value that specifies the number of sessions that you want to use, and select OK.
- Exit the Registry Editor.
- Restart the Microsoft Exchange Information Store Service service or the Microsoft Exchange server.
This process is documented in theYou cannot connect to an Exchange Server 2010 mailbox from Outlook Web Access knowledge base article.
Notice that the value has to be selected based on the customer system and usage. The value can be 64 or any number in that range.
- Microsoft Exchange opens a Messaging Application Programming Interface (MAPI) session when an IMAP session is opened. Since both UCCX and the CAD clients open the IMAP connection, MAPI throttling sessions also come into effect. Configure the values as described in Exchange Store Limits .
- Grant the UCCX Email account the View Information Store status permissions. Open the Microsoft Exchange Management Shell:
Get-OrganizationConfig |
Add-ADPermission -user "<Mailbox Name>"-extendedrights "View Information Store status"
SMTP
SMTP must be applied to the connector that UCCX email uses. Open the Microsoft Exchange Management Shell.
- Find the connector:
Get-ReceiveConnector
- In order to apply the policy for the connector, add the name retrieved in Step 1:
Set-ReceiveConnector -identity "<Receive Connector Name>"
-MaxInboundConnection 5000
-MessageRateLimit 250
-MaxInboundConnectionPercentagePerSource 5
-MaxInboundConnectionPerSource 250
You must repeat this for of ALL of the connectors that have been used.
Client Throttling
Client throttling policies are used only in Microsoft Exchange 2010, and the default configuration is known to cause adverse performance with agent email.
Open the Microsoft Exchange Management Shell tool.
- Create a new throttling policy:
New-ThrottlingPolicy -name "<Policy Name>"
Where Policy Name = the name for the new policy.
For Exchange 2010:
Set-ThrottlingPolicy -identity “<Policy Name>”
-IMAPMaxConcurrency $null -IMAPPercentTimeInAD $null
-IMAPPercentTimeInCAS $null -IMAPPercentTimeInMailboxRPC $null
-RCAMaxConcurrency $null -RCAPercentTimeInAD $null
-RCAPercentTimeInCAS $null -RCAPercentTimeInMailboxRPC $null
-MessageRateLimit $null -RecipientRateLimit $null -CPUStartPercent $null
For Exchange 2010 SP1 and SP2:
Set-ThrottlingPolicy -identity “<Policy Name>”
-IMAPMaxConcurrency $null -IMAPPercentTimeInAD $null
-IMAPPercentTimeInCAS $null -IMAPPercentTimeInMailboxRPC $null
-RCAMaxConcurrency $null -RCAPercentTimeInAD $null
-RCAPercentTimeInCAS $null -RCAPercentTimeInMailboxRPC $null
-CPAMaxConcurrency $null -CPAPercentTimeInCAS $null
-CPAPercentTimeInMailboxRPC $null -MessageRateLimit $null
-RecipientRateLimit $null -CPUStartPercent $null
- Now that the policy has been created, apply it to the mailbox (UCCX Email):
Set-Mailbox -Identity "<Mailbox Name>" –ThrottlingPolicy "<Policy Name>"