<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tonino Filipovic</title><link>http://blogs.technet.com/b/toninof/</link><description>Microsoft Unified Communications 

</description><dc:language>en-US</dc:language><generator>Telligent Community 5.6.583.19431 (Build: 5.6.583.19431)</generator><item><title>Moving Central Management Store in Disaster Recovery scenario</title><link>http://blogs.technet.com/b/toninof/archive/2011/11/27/moving-central-management-store-in-disaster-recovery-scenario.aspx</link><pubDate>Sun, 27 Nov 2011 00:21:42 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3467401</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><description>&lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;p&gt;If your CMS pool is unavailable and cannot be recovered in short time or at all, you’ll have to move &lt;a href="http://blogs.technet.com/b/jenstr/archive/2010/10/13/what-is-central-management-store-cms.aspx"&gt;Central Management Store&lt;/a&gt; to another pool to be able to make any changes in the topology. However, you’ll also have to move all other services hosted on failed pool (Conference Directory, Users, Dial-in Access Numbers, Response Groups, etc.)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;Prerequisites for successful CMS move:&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;- Backup of CsConfiguration&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;- Backup of CsLisConfiguration&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;- Backup of RGS configuration&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#ff0000"&gt;- Backup of user data (dbimpexp)&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To move these services follow the steps below:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A. &lt;/strong&gt;From a user account that is a member of the RTCUniversalServerAdmins group, log on to any Front-end server in a pool to which CMS is going to be moved and open Lync Server Management Shell&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;B. &lt;/strong&gt;Run the following cmdlet to install the CMS database on a target (new) pool back-end server&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Install-CSDatabase -CentralManagementDatabase -SqlServerFqdn be02.contoso.com -SqlInstanceName rtc&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: use sql server and instance names relevant to your environment&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C. &lt;/strong&gt;Run the following Management Shell cmdlet to move Central Management Store &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;a&gt;&lt;b&gt;&lt;font color="#000000"&gt;Move-CsManagementServer -ConfigurationFileName &amp;quot;C:\CsConfiguration.zip&amp;quot; -LisConfigurationFileName &amp;quot;C:\CsLisConfiguration.zip&amp;quot; –Force&lt;/font&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: use filenames relevant to your environment&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Move-CsManagementServer also updates the SCP to point to the new Central Management Store location.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;D. &lt;/strong&gt;Run &lt;b&gt;Enable-CsTopology&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;E. &lt;/strong&gt;Move Conference Directory associated with failed pool to other frontend pool by running the following Management Shell cmdlets: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Get-CsConferenceDirectory | where {$_.ServiceID -match “UserServer:&lt;/b&gt;&lt;i&gt;FQDN_of_failed_pool”&amp;gt;&lt;/i&gt;&lt;b&gt; | Move-CsConferenceDirectory -TargetPool &amp;lt;&lt;i&gt;targetPoolFQDN&amp;gt; -Force&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;F. &lt;/strong&gt;Move users from pool01 to target pool using either Control Panel or following Management Shell cmdlet:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Get-CsUser | where {$_.registrarpool –match “&lt;i&gt;FQDN_of_old_pool&lt;/i&gt;”} | Move-CsUser –target “&lt;i&gt;FQDN_of_new_pool&lt;/i&gt;” –Force&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;Force move user will just move user accounts but will not move data associated with users (such as conferences). You’ll need to have this information exported previously (using dbimpexp on a regular basis) to be able to restore also user associated data.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;G. &lt;/strong&gt;If Simple URLs were pointing to the “old” pool, make sure to change DNS entries to point to the new pool (make sure that Meet and Dialin FQDNs are present in SAN of pool’s certificate).&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;H. &lt;/strong&gt;Move RGS configuration to the new pool. Follow instructions in the procedure &lt;b&gt;&lt;a href="http://technet.microsoft.com/en-us/library/hh202174.aspx"&gt;Restoring Response Group Settings&lt;/a&gt;, &lt;/b&gt;but make sure to import settings &lt;u&gt;to the new pool&lt;/u&gt;. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: you will need to have RGS Config information exported on a regular basis (at least after every change) so you can import RGS configuration to another pool. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I. &lt;/strong&gt;If there are Dial-In Access numbers hosted by the old pool, those should be migrated to the new pool using the following syntax:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Move-CsApplicationEndpoint&lt;/b&gt; -Identity &amp;lt;&lt;i&gt;SIP URI of the access number to be moved&lt;/i&gt;&amp;gt; -TargetApplicationPool &amp;lt;&lt;i&gt;FQDN of the pool to which the access number is moving&amp;gt; &lt;/i&gt;-Force&lt;b&gt;&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;J. &lt;/strong&gt;Import exported resources (users, contacts, conference directories) to a new pool using Dbimpexp tool:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;- Make sure User Replicator has finished full sync. An event is logged upon completion (30024). You can trigger full sync with &lt;b&gt;Update-CsUserDatabase &lt;/b&gt;cmdlet&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;- Run Dbimpexp.exe from the support folder where Communications Server is installed, using the following syntax:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For Standard Edition Server:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;dbimpexp.exe /import /hrxmlfile:&amp;quot;c:\SavedUserData.xml&amp;quot; /restype:all&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For an Enterprise pool:&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;dbimpexp.exe /import /hrxmlfile:&amp;quot;c:\SavedUserData.xml&amp;quot; /sqlserver:&amp;lt;sql server host name&amp;gt; /restype:all&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Optional&lt;/strong&gt;: If failed CMS pool also held a CAC PDP role, move this role to a new CMS pool using Topology Builder &lt;/p&gt;  &lt;hr align="left" size="1" width="33%" /&gt;  &lt;p&gt;&lt;a name="_msocom_1"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3467401" width="1" height="1"&gt;</description></item><item><title>Lync Server 2010 DR scenarios – Restoring CMS server</title><link>http://blogs.technet.com/b/toninof/archive/2011/11/25/lync-server-2010-dr-scenarios-restoring-cms-server.aspx</link><pubDate>Fri, 25 Nov 2011 21:50:49 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3467333</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I just realized that it’s been quite a while since I announced in my last blog that I’d publish DR procedure for SQL server holding CMS (Central Management Store). &lt;/p&gt;  &lt;p&gt;The procedure is quite similar to previous one (Restoring Enterprise Edition Back End server NOT holding CMS), with a few important differences (such as creating CMS database, for example) :&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc296700036"&gt;&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; Start with a clean or new server that has the same fully qualified domain name (FQDN) as the failed computer and install the operating system. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;B.&lt;/strong&gt; From a user account that is a member of the &lt;b&gt;RTCUniversalServerAdmins&lt;/b&gt; group, log on to the server you are restoring.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;C. &lt;/strong&gt;Install SQL Server 2008 R2, 2008 or SQL Server 2005 keeping the instance names the same as before the failure.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;D. &lt;/strong&gt;Start the Lync Server Management Shell on any available Front End server: Click &lt;b&gt;Start&lt;/b&gt;, click &lt;b&gt;All Programs&lt;/b&gt;, click &lt;b&gt;Microsoft Lync Server 2010&lt;/b&gt;, and then click &lt;b&gt;Lync Server Management Shell&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;E. &lt;/strong&gt;Recreate the Central Management store database. At the command line, type:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Install-CsDatabase –CentralManagementDatabase –SqlServerFqdn &amp;lt;FQDN&amp;gt; -SqlInstanceName &amp;lt;instance name&amp;gt; -Verbose&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Install-CsDatabase –CentralManagementDatabase –SqlServerFqdn Server01.contoso.com -SqlInstanceName cms –Verbose&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;F. &lt;/strong&gt;Set the Active Directory service control point for the Central Management store. At the command line, type:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Set-CsConfigurationStoreLocation –SqlServerFqdn &amp;lt;FQDN&amp;gt; -SqlInstanceName &amp;lt;instance name&amp;gt; -Verbose&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Set-CsConfigurationStoreLocation –SqlServerFqdn Server01.contoso.com -SqlInstanceName cms –Verbose&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;G. &lt;/strong&gt;Import the Central Management store data from $Backup. At the command line, type:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Import-CsConfiguration –FileName &amp;lt;CMS backup file name&amp;gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Import-CsConfiguration –FileName &amp;quot;C:\Config.zip&amp;quot;&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;H. &lt;/strong&gt;Restore File store and share it &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;I. &lt;/strong&gt; Publish the topology using Topology Builder (recommended method): &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Start Topology Builder: Click &lt;b&gt;Start&lt;/b&gt;, click &lt;b&gt;All Programs&lt;/b&gt;, click &lt;b&gt;Microsoft Lync Server 2010&lt;/b&gt;, and then click &lt;b&gt;Lync Server Topology Builder&lt;/b&gt;.&lt;/li&gt;    &lt;li&gt;Click &lt;b&gt;Download Topology from existing deployment&lt;/b&gt;, and then click &lt;b&gt;OK&lt;/b&gt;. &lt;/li&gt;    &lt;li&gt;Select the topology, and then click &lt;b&gt;Save&lt;/b&gt;. Click &lt;b&gt;Yes&lt;/b&gt; to confirm your selection.&lt;/li&gt;    &lt;li&gt;Right-click the &lt;b&gt;Lync Server 2010&lt;/b&gt; node, and then click &lt;b&gt;Publish Topology&lt;/b&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;J. &lt;/strong&gt;Restore Location Information data to the Central Management store database. At the command line, type:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Import-CsLisConfiguration –FileName &amp;lt;LIS backup file name&amp;gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Import-CsLisConfiguration –FileName &amp;quot;$Backup\E911Config.zip&amp;quot;&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;K.&lt;/strong&gt; Create required databases on BE server by running the following command:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Install-CsDatabase –configuredDatabases –SqlServerFQDN &amp;lt;BE_FQDN&amp;gt;&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: This step also creates QoeMetrics and LcsCDR if this server hosts Monitoring databases.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;L.&lt;/strong&gt; Restore user data by performing either of the following restore procedures: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Option A&lt;/b&gt;:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Restore RTC database from backup using SQL Server Management Studio. (use REPLACE option when restoring)&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;If you’re getting error stating that exclusive access to the database could not be obtained, run the following SQL Query in SQL Server Management Studio (providing correct path to backup file):&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;USE Master&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;ALTER DATABASE rtc SET SINGLE_USER with ROLLBACK IMMEDIATE&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;RESTORE DATABASE rtc&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;FROM DISK = ‘c:\backup\rtc.bak’&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;WITH REPLACE&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;GO&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Option B&lt;/b&gt;:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Verify that at least one Front End Server in the pool is running and that the User Replicator process has completed a full synchronization cycle. If you run Dbimpexp.exe before the synchronization is complete, the command will fail.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Important&lt;/b&gt;:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;The Lync Server 2010 User Replicator service initial synchronization process occurs when the Lync Server 2010 Front End Server is started for the first time or when a regenerate operation is initiated.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;LS User Replicator will log Event ID 30024 for completed initial synchronization of AD domain and user database. &lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;If necessary (e.g. initial user synchronization has not been completed for any reason) you can trigger synchronization cycle by issuing &lt;b&gt;Update-CsUserDatabase &lt;/b&gt;powershell command.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;To restore the user data, at the command line, type:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;Dbimpexp.exe /hrxmlfile:&amp;lt;path and file name of backed up Rtc database&amp;gt; /sqlserver:&amp;lt;SQL Server FQDN&amp;gt;\&amp;lt;instance name&amp;gt; /import /restype:all&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Dbimpexp.exe /hrxmlfile:D\BackupUsers.xml /sqlserver:sql.contoso.com\rtc /import /restype:all&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;M. &lt;/strong&gt;If you deployed Response Group on this pool, restore the Response Group configuration data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;From a user account that is a member of the &lt;b&gt;RTCUniversalServerAdmins&lt;/b&gt; group (or has equivalent user rights), log on to any available Front End server.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Locate a copy of the script required for this procedure at &lt;a href="http://blogs.technet.com/b/csps/archive/2011/02/09/scriptrgsrestore.aspx"&gt;http://blogs.technet.com/b/csps/archive/2011/02/09/scriptrgsrestore.aspx&lt;/a&gt; . Copy the code and paste it into a text editor, such as Notepad. Save the code as Get-CsApplicationContact.ps1.&lt;/li&gt;    &lt;li&gt;Start the Lync Server Management Shell: Click &lt;b&gt;Start&lt;/b&gt;, click &lt;b&gt;All Programs&lt;/b&gt;, click &lt;b&gt;Microsoft Lync Server 2010&lt;/b&gt;, and then click &lt;b&gt;Lync Server Management Shell&lt;/b&gt;.&lt;/li&gt;    &lt;li&gt;At the command line, navigate to the folder where you saved the script, and then type:&lt;/li&gt;  &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Import-Module .\Get-CsApplicationContact.ps1&lt;/strong&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;To retrieve the list of Response Group contact objects that are associated with the pool, at the command line, type:&lt;/li&gt;  &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Get-CsApplicationContact –OwnerUrn &amp;quot;urn:application:Rgs&amp;quot; –Filter &amp;quot;(MSRTCSIP-ApplicationOptions=1)&amp;quot; –RegistrarPool &amp;lt;pool FQDN&amp;gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;For example:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Get-CsApplicationContact –OwnerUrn &amp;quot;urn:application:Rgs&amp;quot; –Filter &amp;quot;(MSRTCSIP-ApplicationOptions=1)&amp;quot; –RegistrarPool &amp;quot;pool01.contoso.com&amp;quot;&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;Review the output of the &lt;b&gt;Get-CsApplicationContact&lt;/b&gt; script to verify that the contact objects listed are the ones you want to remove. To remove the contact objects, at the command line, type:&lt;/li&gt;  &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;Get-CsApplicationContact –OwnerUrn &amp;quot;urn:application:Rgs&amp;quot; –Filter &amp;quot;(MSRTCSIP-ApplicationOptions=1)&amp;quot; –RegistrarPool &amp;lt;pool FQDN&amp;gt; -Delete&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Note: &lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;You are prompted to confirm the deletion of each contact object, and you can skip any contact objects that you do not want to delete.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;ul&gt;   &lt;li&gt;To restore the configuration settings, do the following:&lt;/li&gt;  &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;a. If you have not already done so, locate the &lt;b&gt;RgsImportExport.ps1&lt;/b&gt; script in the Lync Server 2010 Resource Kit, and save it to the computer.&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;b. At the command line, navigate to the folder where you saved the script, and type:&lt;/p&gt;  &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Import-Module .\RgsImportExport.ps1        &lt;br /&gt;Import-CsRgsConfiguration ApplicationServer:pool01.contoso.com –FileName D:\RgsConfig_pool01.zip&lt;/b&gt;&lt;/p&gt;  &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;N. &lt;/strong&gt;If this Back End Server also hosts Archiving or Monitoring databases, restore the Archiving or Monitoring data by using a SQL Server management tool, such as SQL Server Management Studio (use REPLACE option when restoring databases)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;IMPORTANT:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;If Option A in step 13 was used to restore user data, Event IDs 32118 and 51009 could be logged in Lync Server Event log, caused by crossed databases chaining being disabled, in which case it will be needed to run the following command in SQL Query:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Alter database RTC set db_chaining on&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Alter database RTCDYN set db_chaining on&lt;/b&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3467333" width="1" height="1"&gt;</description></item><item><title>Lync Server 2010 Disaster Recovery scenarios – Restoring Enterprise Edition Back end server</title><link>http://blogs.technet.com/b/toninof/archive/2011/06/04/lync-server-2010-disaster-recovery-scenarios-restoring-enterprise-edition-back-end-server.aspx</link><pubDate>Sat, 04 Jun 2011 18:09:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3433414</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;While you can find official Lync Server 2010 Backup/Restore guide at &lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/hh202160.aspx"&gt;Backing Up and Restoring Lync Server 2010&lt;/a&gt;, in this article I&amp;rsquo;m providing an additional recovery scenario to restore the data.&lt;/p&gt;
&lt;p&gt;There&amp;rsquo;s nothing wrong with the procedure in official online Lync documentation, but while it is focusing solely on using Dbimpexp tool to backup and restore user data, this article provides another method to restore the data stored on your failed back end server &amp;ndash; restore RTC database using SQL Server Management Studio.&lt;/p&gt;
&lt;p&gt;First prerequisite to use this option to recover your data is, obviously, to have a backup of RTC database which you can conduct using SQL Server Management Studio.&lt;/p&gt;
&lt;p&gt;If you are wondering why you would look for alternative solutions when you can use Dbimpexp tool, one good reason would be to avoid dependency on User Replicator full synchronization. Namely, if you want to successfully import data using Dbimpexp tool, you need to make sure that User Replicator process has completed initial synchronization (logged as Event ID 30024). &lt;/p&gt;
&lt;p&gt;Certainly, you can trigger full synchronization with Update-CsUserDatabase and wait for completion of initial sync (make sure Event ID 30024 is logged), but in this case you depend on existence of at least one Front end server to trigger this process. In site disaster scenarios, though (such as&amp;nbsp;natural disaster, site power failure&amp;nbsp;etc), where all your Front end servers might be unavailable, you&amp;rsquo;d have to first rebuild at least one Front End server to trigger User Replicator initial sync.&lt;/p&gt;
&lt;p&gt;Long story short, it might be beneficial to have multiple options when restoring user data, and that is why I&amp;rsquo;d recommend backing up RTC database on a regular basis (apart from regular export using Dbimpexp tool), so you can pick the method that suit you&amp;nbsp;best. &lt;/p&gt;
&lt;p&gt;So without further ado, let&amp;rsquo;s jump to the procedure itself:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A.&lt;/strong&gt; Start with a clean or new server that has the same fully qualified domain name (FQDN) and IP settings as the failed SQL Back end server. &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;B&lt;/strong&gt;. From a user account that is a member of the &lt;b&gt;RTCUniversalServerAdmins&lt;/b&gt; group, log on to the server you are restoring.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;C&lt;/strong&gt;. Install SQL Server 2008 or SQL Server 2005 (whichever was deployed on your failed server) keeping the same SQL version and Service Pack, as well as instance names as before the failure.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;D&lt;/strong&gt;. From any available Front End server in environment: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Start the Lync Server Management Shell: Click &lt;b&gt;Start&lt;/b&gt;, click &lt;b&gt;All Programs&lt;/b&gt;, click &lt;b&gt;Microsoft Lync Server 2010&lt;/b&gt;, and then click &lt;b&gt;Lync Server Management Shell&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Use Install-CsDatabase cmdlet to create configured BE databases&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;b&gt;Install-CsDatabase &amp;ndash;ConfiguredDatabases &amp;ndash;SqlServerFqdn &amp;lt;sqlfqdn&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;Note&lt;b&gt;:&lt;/b&gt; if the failed back end server hosted Archiving or/and Monitoring server databases, those databases will also be created when running Install-CsDatabase &amp;ndash;ConfiguredDatabases&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;E&lt;/strong&gt;. Restore the data by performing either of&amp;nbsp;two options below: &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;Option A &amp;ndash; Restore RTC database&lt;/b&gt;&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;a) Restore RTC database from backup using SQL Server Management Studio. (use REPLACE option when restoring database)&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;b) If you&amp;rsquo;re getting error stating that exclusive access to the database could not be obtained, run the following SQL Query in SQL Server Management Stuido (providing correct path to backup file):&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;USE Master&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;ALTER DATABASE rtc SET SINGLE_USER with ROLLBACK IMMEDIATE&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;RESTORE DATABASE rtc&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;FROM DISK = &amp;lsquo;c:\backup\rtc.bak&amp;rsquo;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;WITH REPLACE&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;GO&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;b&gt;Option B &amp;ndash; use Dbimpexp to import data to clean database&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;a) Verify that at least one Front End Server in the pool is running and that the User Replicator process has completed a full synchronization cycle. If you run Dbimpexp.exe before the synchronization is complete, the command will fail.&lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;&lt;b&gt;Important&lt;/b&gt;:&lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;The Lync Server 2010 User Replicator service initial synchronization process occurs when the Lync Server 2010 Front End Server is started for the first time or when a regenerate operation is initiated. &lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;LS User Replicator will log Event ID 30024 for completed initial synchronization of AD domain and user database. &lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;If necessary (e.g. initial user synchronization has not been completed for any reason) you can trigger synchronization cycle by issuing &lt;b&gt;Update-CsUserDatabase &lt;/b&gt;powershell command.&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;b) To restore the user data, at the command line, type:&lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;Dbimpexp.exe /import /hrxmlfile:&amp;lt;path and file name of backed up Rtc database&amp;gt; /sqlserver:&amp;lt;SQL Server FQDN&amp;gt;\&amp;lt;instance name&amp;gt; /restype:all&lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;For example:&lt;/p&gt;
&lt;p style="padding-left: 120px;"&gt;&lt;b&gt;Dbimpexp.exe /import /hrxmlfile:D\BackupUsers.xml /sqlserver:sql.contoso.com\rtc /restype:all&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;F&lt;/strong&gt;. Restore RGS configuration settings &lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;Note: to restore RGS configuration settings, you need to have a backup of RGS configuration. Please refer to &lt;a target="_blank" href="http://technet.microsoft.com/en-us/library/hh202170.aspx"&gt;Backing up Core Data and Settings&lt;/a&gt; for information on how to backup RGS configuration.&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From a user account that is a member of the &lt;b&gt;RTCUniversalServerAdmins&lt;/b&gt; group (or has equivalent user rights), log on to any Front&amp;nbsp;End server.&lt;/li&gt;
&lt;li&gt;Copy the Get-CsApplicationContact.ps1 script, located in the Lync Server PowerShell blog at &lt;a href="http://go.microsoft.com/fwlink/?LinkId=210869"&gt;http://go.microsoft.com/fwlink/?LinkId=210869&lt;/a&gt;, and paste it into a text editor, such as Notepad or a Windows PowerShell editor. Save the script as Get-CsApplicationContact.ps1 on the server.&lt;/li&gt;
&lt;li&gt;Start the Lync Server Management Shell: Click &lt;b&gt;Start&lt;/b&gt;, click &lt;b&gt;All Programs&lt;/b&gt;, click &lt;b&gt;Microsoft Lync Server 2010&lt;/b&gt;, and then click &lt;b&gt;Lync Server Management Shell&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;At the command line, navigate to the folder where you saved the script, and then type:&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Import-Module .\Get-CsApplicationContact.ps1&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To retrieve the list of Response Group contact objects that are associated with the pool, at the command line, type:&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 90px;"&gt;Get-CsApplicationContact &amp;ndash;OwnerUrn "urn:application:Rgs" &amp;ndash;Filter "(MSRTCSIP-ApplicationOptions=1)" &amp;ndash;RegistrarPool &amp;lt;pool FQDN&amp;gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;For example:&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;strong&gt;Get-CsApplicationContact &amp;ndash;OwnerUrn "urn:application:Rgs" &amp;ndash;Filter "(MSRTCSIP-ApplicationOptions=1)" &amp;ndash;RegistrarPool "pool01.contoso.com"&lt;/strong&gt;&amp;nbsp; &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review the output of the &lt;b&gt;Get-CsApplicationContact&lt;/b&gt; script to verify that the contact objects listed are the ones you want to remove. To remove the contact objects, at the command line, type:&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;strong&gt;Get-CsApplicationContact &amp;ndash;OwnerUrn "urn:application:Rgs" &amp;ndash;Filter "(MSRTCSIP-ApplicationOptions=1)" &amp;ndash;RegistrarPool &amp;lt;pool FQDN&amp;gt; -Delete&lt;/strong&gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;Note&lt;b&gt;: &lt;/b&gt;You are prompted to confirm the deletion of each contact object, and you can skip any contact objects that you do not want to delete.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;To restore the configuration settings, do the following: 
&lt;ul&gt;
&lt;li&gt;If you have not already done so, locate the &lt;b&gt;RgsImportExport.ps1&lt;/b&gt; script in the Lync Server 2010 Resource Kit, and save it to the computer.&lt;/li&gt;
&lt;li&gt;Using Lync Management Shell navigate to the folder where you saved the script, and type:&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;strong&gt;Import-Module .\RgsImportExport.ps1 &lt;/strong&gt;&lt;/p&gt;
&lt;p style="padding-left: 90px;"&gt;&lt;strong&gt;Import-CsRgsConfiguration ApplicationServer:pool01.contoso.com &amp;ndash;FileName D:\&lt;i&gt;RgsConfigBackupFile&lt;/i&gt;.zip&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;G&lt;/strong&gt;. If Option A (RTC database restore)&amp;nbsp;in step 5 was used to restore user data, Event IDs 32118 and 51009 could be logged in Lync Server Event log, caused by crossed databases chaining being disabled. In this case you need to run the following command in SQL Query windows:&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;b&gt;Alter database RTC set db_chaining on&lt;/b&gt;&lt;/p&gt;
&lt;p style="padding-left: 60px;"&gt;&lt;b&gt;Alter database RTCDYN set db_chaining on&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;This article addresses recovery of your failed Enterprise Edition Back End server, providing two different methods to restore the data.&lt;/p&gt;
&lt;p&gt;Apart from use of Dbimpexp tool to recover user data, an alternative recovery option is provided &amp;ndash; restore of RTC database using SQL Server Management Studio.&lt;/p&gt;
&lt;p&gt;Restore of RTC database does not depend on full synchronization of User Replicator process and is thus preferred scenario in situations when you might not have accessible Front End server to trigger User Replication sync.&lt;/p&gt;
&lt;p&gt;RTC database restore method can be used in all situations except when it&amp;rsquo;s necessary to restore user data from one pool to another pool, in which case you&amp;rsquo;ll have to use Dbimpexp tool.&lt;/p&gt;
&lt;p&gt;This article addresses specifically the failure of the SQL Back End server that does not host Central Management Store. That specific scenario will be addressed in my next blog.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3433414" width="1" height="1"&gt;</description></item><item><title>Outbound Routing Fault Tolerance in Lync Server 2010</title><link>http://blogs.technet.com/b/toninof/archive/2011/02/06/outbound-routing-fault-tolerance-in-lync-server-2010.aspx</link><pubDate>Sun, 06 Feb 2011 10:21:22 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3385252</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Enterprise Voice fault tolerance (as well as load balancing) is enabled in several ways in Lync Server 2010. We can start with possibility to deploy Enterprise Edition pool with multiple Front End servers (with either collocated Mediation service or deploying standalone Mediation Server pool with multiple Mediation servers). Apart from achieving fault tolerance through this redundant configuration at a pool level, outbound calls will also be effectively load balanced by configuring &lt;a href="http://technet.microsoft.com/en-us/library/ff755052.aspx" target="_blank"&gt;DNS load balancing&lt;/a&gt; on standalone Mediation Server Pool.&lt;/p&gt;  &lt;p&gt;However, in case that site resiliency is required, even configuration with multiple servers in Enterprise Edition or Mediation pools in Central site will not be sufficient to address this requirement. In this case a &lt;a href="http://technet.microsoft.com/en-us/library/gg398797.aspx" target="_blank"&gt;multiple data center topology&lt;/a&gt; has to be deployed. More information about central site voice resiliency as a recommended approach to central site resiliency can be found in official Lync Server 2010 documentation under &lt;a href="http://technet.microsoft.com/en-us/library/gg398347.aspx" target="_blank"&gt;Planning for Central Site Voice Resiliency&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Apart from these multiple fault tolerance options being available out-of-the-box (but which, nevertheless, require correct planning), Enterprise Voice admins can further enhance voice fault tolerance by configuring &lt;a href="http://technet.microsoft.com/en-us/library/gg425853.aspx" target="_blank"&gt;Outbound Call Routing&lt;/a&gt; components and settings in redundant fashion. Let’s assume that Contoso has deployed multiple data center topology with Enterprise Edition pool and standalone Mediation server pool in each data center:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/0216.Figure_2D00_1_5F00_7414C870.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 1" border="0" alt="Figure 1" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/3817.Figure_2D00_1_5F00_thumb_5F00_52857314.jpg" width="529" height="332" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Outbound call routing configuration steps in Lync Server 2010 differ somewhat compared to OCS 2007 and OCS 2007 R2. While not much has changed in configuring Normalization rules, Voice Policies and PSTN Usages, the configuration of Voice Routes has changed significantly. The biggest change is that now you do not associate Routes with Mediation servers, but rather directly with Gateway peers (which can be IP/PSTN Gateway, SIP Trunk provider Session Border Controller, IP PBX).&amp;#160; &lt;/p&gt;  &lt;p&gt;However, prior to configuring Routes, it is necessary to associate Mediation servers with gateway peers (IP/PSTN Gateway, SBC, IP PBX) when defining your topology in Topology Builder.&lt;/p&gt;  &lt;p&gt;What impact does this configuration have to your outbound routing?&lt;/p&gt;  &lt;p&gt;The answer is pretty straightforward – by associating multiple gateway peers with the same route, you’re adding another layer of fault tolerance to your outbound routing. This is possible since routing now determines which gateway to use for a call and the Mediation Server associated with that gateway will handle the call. Although you could achieve similar configuration in previous OCS versions (by configuring multiple Mediation servers in the same route), the level of granularity in configuring fault tolerance on outbound routing was significantly lower. In his &lt;a href="http://blogs.technet.com/b/jenstr/archive/2010/10/12/outbound-routing.aspx" target="_blank"&gt;article&lt;/a&gt; my colleague Jens touches some significant changes introduced in Lync Server 2010 (no more 1:1 relationship between Mediation server and gateway, as well as load balancing the calls when having multiple gateways in the route).&lt;/p&gt;  &lt;p&gt;Let’s see how it works using following examples:&lt;/p&gt;  &lt;h4&gt;Example A: Sunny day, all components working&lt;/h4&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/8117.Figure_2D00_2_5F00_16E56454.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 2" border="0" alt="Figure 2" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/2335.Figure_2D00_2_5F00_thumb_5F00_66FA9CC5.jpg" width="519" height="418" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Let’s suppose that Marino is hosted on EE Pool A in Data center A. He places a call to PSTN number, and the CroatiaNationalCalls route is used to carry the call. Apart from containing PSTN Usage that match those in Marino’s Voice Policy, the CroatiaNationalCalls voice route is associated with both Gateway peer A and Gateway peer B. The red intermittent line shows signaling path, while green line shows media path.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/0160.Figure_2D00_3_5F00_2E8C75ED.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 3" border="0" alt="Figure 3" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/4370.Figure_2D00_3_5F00_thumb_5F00_43019F9E.jpg" width="520" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Couple of (shorten) SIP traces will show that Mediation Pool A (Mediation pool medpool.w14lab.com and mediation server w14ms01.w14lab.com) is used to handle the call:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Direction&lt;/strong&gt;: outgoing       &lt;br /&gt;&lt;strong&gt;Peer&lt;/strong&gt;: &lt;font style="background-color: #ffff00"&gt;medpool.w14lab.com&lt;/font&gt;:5070       &lt;br /&gt;&lt;strong&gt;Message-Type&lt;/strong&gt;: request       &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;&lt;font color="#0000ff"&gt;Start-Line&lt;/font&gt;: &lt;/strong&gt;&lt;font color="#0000ff"&gt;INVITE sip:+385351234567@&lt;font style="background-color: #ffff00"&gt;172.31.255.240&lt;/font&gt;:5070;user=phone;maddr=medpool.w14lab.com SIP/2.0       &lt;br /&gt;&lt;strong&gt;From&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;;tag=fb6c460929;epid=29a361e88d       &lt;br /&gt;&lt;strong&gt;To&lt;/strong&gt;: &amp;lt;sip:+385351234567@contoso.com;user=phone&amp;gt;       &lt;br /&gt;&lt;strong&gt;CSeq&lt;/strong&gt;: 1 INVITE       &lt;br /&gt;&lt;strong&gt;Call-ID&lt;/strong&gt;: f2f17de2c5ed6a1c82e01b0fb1ccf9eb       &lt;br /&gt;&lt;strong&gt;Record-Route&lt;/strong&gt;: &amp;lt;sip:&lt;font style="background-color: #ffff00"&gt;pool&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;01.w14lab.com&lt;/font&gt;:5061;transport=tls;ms-fe=w14fe01.w14lab.com;opaque=state:T;lr&amp;gt;;tag=F9D9739CC4664BAAA1D425A3E6D2F5D4       &lt;br /&gt;&lt;strong&gt;Via&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.102:52633;branch=z9hG4bK78DA00AB.F7405DF5D7C1D3DA;branched=TRUE       &lt;br /&gt;&lt;strong&gt;Via&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.171:59990;ms-received-port=59990;ms-received-cid=401E00       &lt;br /&gt;ms-application-via: SIP;ms-urc-rs-from;ms-server=w14fe01.w14lab.com;ms-pool=pool01.w14lab.com;ms-application=ad894dc3-55e0-44bf-a07e-3c073aaa4a57       &lt;br /&gt;&lt;strong&gt;P-Asserted-Identity&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;,&amp;lt;tel:+38514802002&amp;gt;       &lt;br /&gt;ms-application-via: w14be01.w14lab.com_rtc;ms-server=w14fe01.w14lab.com;ms-pool=pool01.w14lab.com;ms-application=51FB453D-5B9F-45df-83B4-ADD1F7E604A8       &lt;br /&gt;&lt;strong&gt;Contact&lt;/strong&gt;: &amp;lt;sip:marinof@contoso.com;opaque=user:epid:c0-4HR_d61GaEzW7fhYCgAAA;gruu&amp;gt;       &lt;br /&gt;&lt;strong&gt;User-Agent&lt;/strong&gt;: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Direction&lt;/strong&gt;: incoming       &lt;br /&gt;&lt;strong&gt;Peer&lt;/strong&gt;: &lt;font style="background-color: #ffff00"&gt;medpool&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;.&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;w14lab.&lt;/font&gt;com:5070       &lt;br /&gt;&lt;strong&gt;Start-Line&lt;/strong&gt;: SIP/2.0 183 Session Progress       &lt;br /&gt;&lt;strong&gt;From&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;;tag=fb6c460929;epid=29a361e88d       &lt;br /&gt;&lt;strong&gt;To&lt;/strong&gt;: &amp;lt;sip:+385351234567@contoso.com;user=phone&amp;gt;;tag=ec42fc28ac;epid=95500EB922       &lt;br /&gt;&lt;strong&gt;CSeq&lt;/strong&gt;: 1 INVITE       &lt;br /&gt;&lt;strong&gt;Call-ID&lt;/strong&gt;: f2f17de2c5ed6a1c82e01b0fb1ccf9eb       &lt;br /&gt;&lt;strong&gt;VIA&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.102:52633;branch=z9hG4bK78DA00AB.F7405DF5D7C1D3DA;branched=TRUE,SIP/2.0/TLS 172.30.255.171:59990;ms-received-port=59990;ms-received-cid=401E00       &lt;br /&gt;&lt;strong&gt;RECORD-ROUTE&lt;/strong&gt;: &amp;lt;sip:pool01.w14lab.com:5061;transport=tls;ms-fe=w14fe01.w14lab.com;opaque=state:T;lr&amp;gt;;tag=F9D9739CC4664BAAA1D425A3E6D2F5D4       &lt;br /&gt;&lt;strong&gt;CONTACT: &lt;/strong&gt;&amp;lt;sip:&lt;font style="background-color: #ffff00"&gt;w14ms01.w14lab.com&lt;/font&gt;@contoso.com;gruu;opaque=srvr:MediationServer:CxCmXfo8Z1K91JOq_lHpMgAA&amp;gt;;isGateway       &lt;br /&gt;&lt;strong&gt;SERVER&lt;/strong&gt;: RTCC/4.0.0.0 MediationServer &lt;/font&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;Glossary:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;pool01.w14lab.com = EE Pool A &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;medpool.w14lab.com = Mediation Pool A &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;w14ms01.w14lab.com = Mediation Server in Med. Pool A &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;w14fe01.w14lab.com = FE server in EE Pool A&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;172.31.255.240 = Gateway peer A&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Example B: Mediation Pool A and/or Gateway peer A down&lt;/h4&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/7103.Figure_2D00_4_5F00_4482BBB2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 4" border="0" alt="Figure 4" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/3872.Figure_2D00_4_5F00_thumb_5F00_75554D50.jpg" width="528" height="425" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In case whole Mediation pool A (or Gateway peer A) is down, both signaling and media would take different path, as shown below and recorded in subsequent SIP trace:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/3463.Figure_2D00_5_5F00_6B40AC25.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 5" border="0" alt="Figure 5" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/3343.Figure_2D00_5_5F00_thumb_5F00_431DD739.jpg" width="530" height="427" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Direction&lt;/strong&gt;: outgoing       &lt;br /&gt;&lt;strong&gt;Peer&lt;/strong&gt;: &lt;font style="background-color: #ffff00"&gt;medpool02&lt;/font&gt;&lt;font style="background-color: #ffff00"&gt;.w14lab.com&lt;/font&gt;:5070       &lt;br /&gt;&lt;strong&gt;Message-Type&lt;/strong&gt;: request       &lt;br /&gt;&lt;strong&gt;Start-Line&lt;/strong&gt;: INVITE sip:+385351234567@&lt;font style="background-color: #ffff00"&gt;172.31.255.241&lt;/font&gt;:5070;user=phone;maddr=medpool02.w14lab.com SIP/2.0       &lt;br /&gt;&lt;strong&gt;From&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;;tag=ec7fb59bd1;epid=29a361e88d       &lt;br /&gt;&lt;strong&gt;To&lt;/strong&gt;: &amp;lt;sip:+385351234567@contoso.com;user=phone&amp;gt;       &lt;br /&gt;&lt;strong&gt;CSeq&lt;/strong&gt;: 1 INVITE       &lt;br /&gt;&lt;strong&gt;Call-ID&lt;/strong&gt;: a308fa7249b5dc9c142cd0df87dfe669       &lt;br /&gt;&lt;strong&gt;Record-Route&lt;/strong&gt;: &amp;lt;sip:&lt;font style="background-color: #ffff00"&gt;pool01.w14lab.com&lt;/font&gt;:5061;transport=tls;ms-fe=w14fe01.w14lab.com;opaque=state:T;lr&amp;gt;;tag=F9D9739CC4664BAAA1D425A3E6D2F5D4       &lt;br /&gt;&lt;strong&gt;Via&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.102:52581;branch=z9hG4bK0A7C7979.7D6F128CBD51436D;branched=TRUE       &lt;br /&gt;&lt;strong&gt;Via&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.171:59990;ms-received-port=59990;ms-received-cid=401E00       &lt;br /&gt;ms-application-via: SIP;ms-urc-rs-from;ms-server=w14fe01.w14lab.com;ms-pool=pool01.w14lab.com;ms-application=ad894dc3-55e0-44bf-a07e-3c073aaa4a57       &lt;br /&gt;&lt;strong&gt;P-Asserted-Identity&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;,&amp;lt;tel:+38514802002&amp;gt;       &lt;br /&gt;ms-application-via: w14be01.w14lab.com_rtc;ms-server=w14fe01.w14lab.com;ms-pool=pool01.w14lab.com;ms-application=51FB453D-5B9F-45df-83B4-ADD1F7E604A8       &lt;br /&gt;&lt;strong&gt;Contact&lt;/strong&gt;: &amp;lt;sip:marinof@contoso.com;opaque=user:epid:c0-4HR_d61GaEzW7fhYCgAAA;gruu&amp;gt;       &lt;br /&gt;&lt;strong&gt;User-Agent&lt;/strong&gt;: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;Direction&lt;/strong&gt;: incoming       &lt;br /&gt;&lt;strong&gt;Peer&lt;/strong&gt;: &lt;font style="background-color: #ffff00"&gt;medpool02.w14lab.com&lt;/font&gt;:5070       &lt;br /&gt;&lt;strong&gt;Message-Type&lt;/strong&gt;: response       &lt;br /&gt;&lt;strong&gt;Start-Line&lt;/strong&gt;: SIP/2.0 183 Session Progress       &lt;br /&gt;&lt;strong&gt;From&lt;/strong&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@contoso.com&amp;gt;;tag=ec7fb59bd1;epid=29a361e88d       &lt;br /&gt;&lt;strong&gt;To&lt;/strong&gt;: &amp;lt;sip:+385351234567@contoso.com;user=phone&amp;gt;;tag=76451dc3ba;epid=2756E7038A       &lt;br /&gt;&lt;strong&gt;CSeq&lt;/strong&gt;: 1 INVITE       &lt;br /&gt;&lt;strong&gt;Call-ID&lt;/strong&gt;: a308fa7249b5dc9c142cd0df87dfe669       &lt;br /&gt;&lt;strong&gt;VIA&lt;/strong&gt;: SIP/2.0/TLS 172.30.255.102:52581;branch=z9hG4bK0A7C7979.7D6F128CBD51436D;branched=TRUE,SIP/2.0/TLS 172.30.255.171:59990;ms-received-port=59990;ms-received-cid=401E00       &lt;br /&gt;&lt;strong&gt;RECORD-ROUTE&lt;/strong&gt;: &amp;lt;sip:pool01.w14lab.com:5061;transport=tls;ms-fe=w14fe01.w14lab.com;opaque=state:T;lr&amp;gt;;tag=F9D9739CC4664BAAA1D425A3E6D2F5D4       &lt;br /&gt;&lt;strong&gt;CONTACT&lt;/strong&gt;: &amp;lt;sip:&lt;font style="background-color: #ffff00"&gt;w14ms11.w14lab.com&lt;/font&gt;@contoso.com;gruu;opaque=srvr:MediationServer:28bAlNPmzFOn7fSHzYQ4VwAA&amp;gt;;isGateway       &lt;br /&gt;&lt;strong&gt;SERVER&lt;/strong&gt;: RTCC/4.0.0.0 MediationServer       &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;strong&gt;&lt;font color="#000000"&gt;Glossary&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;pool01.w14lab.com = EE Pool A &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;medpool02.w14lab.com = Mediation Pool B&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;w14ms11.w14lab.com = Mediation Server in Med. Pool B&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;&lt;span style="mso-ansi-language: en" lang="EN"&gt;&lt;font color="#000000"&gt;w14fe01.w14lab.com = FE server in EE Pool A&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin: 0in 0in 0pt 0.5in" align="left"&gt;172.31.255.241 = Gateway peer B&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Prerequisites&lt;/h4&gt;  &lt;p&gt;- Correct configuration of Outbound Routing components&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="line-height: 12pt; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-list: ignore"&gt;1.&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Associate Mediation Pool A with Gateway peer A and Mediation Pool B with Gateway peer B &lt;/p&gt;  &lt;p style="line-height: 13pt; margin: 0in 0in 0pt 0.5in" class="MsoListParagraphCxSpMiddle"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="line-height: 12pt; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-list: ignore"&gt;2.&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create Pool-level trunk with following options&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Enable REFER method support (if REFER is supported on gateway peer side)&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Enable Centralized Media Processing if media termination has the same IP as the signaling termination&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Configure appropriate Media Bypass option (media bypass was not used here for simplicity)&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create translation rules if necessary&lt;/p&gt;  &lt;p style="line-height: 13pt; margin: 0in 0in 0pt 1in; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&amp;#160;&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1; tab-stops: list .5in" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="line-height: 12pt; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 11.0pt"&gt;&lt;span style="mso-list: ignore"&gt;3.&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create and configure relevant Voice Routes &lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Add appropriate PSTN Usages to Voice Routes&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 0pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-ascii-font-family: calibri; mso-fareast-font-family: calibri; mso-hansi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="line-height: normal; font-family: "&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Associate Routes with relevant gateway peers (in our example, CroatiaNationalRoute is associated with both Gateway peer A and Gateway peer B)&lt;/p&gt;  &lt;p style="line-height: 13pt; text-indent: -0.25in; margin: 0in 0in 10pt 1in; mso-list: l0 level2 lfo1; mso-add-space: auto" class="MsoListParagraphCxSpLast"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;- Redundant network link exists between Datacenter A and Datacenter B&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Summary&lt;/h4&gt;  &lt;p&gt;Outbound Routing in Lync Server 2010 provides a lot of granularity in configuring fault tolerant routes. Apart from two mentioned options, there’s another one I haven’t discussed in details above – the scenario when e.g. both Mediation pool in one location is down and at the same time, Gateway peer in other location is down:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/8156.Figure_2D00_6_5F00_7E418D37.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 6" border="0" alt="Figure 6" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/6180.Figure_2D00_6_5F00_thumb_5F00_667A3004.jpg" width="533" height="429" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you also associate Mediation Pool A with Gateway peer B and Mediation Pool B with Gateway peer A (in addition to the steps mentioned in Prerequisites), you will enable the call to go through even in above scenario:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/2055.Figure_2D00_7_5F00_7CECCE8B.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Figure 7" border="0" alt="Figure 7" src="http://blogs.technet.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-63-metablogapi/2043.Figure_2D00_7_5F00_thumb_5F00_0A2331D2.jpg" width="531" height="428" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Although the topology presented in these examples describes rather complex scenarios with multiple data centers, the similar fault tolerance level can be achieved with much simpler topologies (e.g. single data center, two Standard Edition servers associated with two gateway peers – correct configuration of trunks and routes would enable you the similar level of fault tolerance as described in this article, apart from site resiliency, obviously). &lt;/p&gt;  &lt;p&gt;It is worth mentioning that this is not the only way of configuring fault tolerance on outbound routing (e.g. – failover route is another alternatives in some scenarios) and its up to administrators to pick the configuration that best suites their particular requirements.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3385252" width="1" height="1"&gt;</description></item><item><title>Limit Media Ports in Office Communications Server 2007 R2 Devices</title><link>http://blogs.technet.com/b/toninof/archive/2010/07/10/limit-media-ports-in-office-communications-server-2007-r2-devices.aspx</link><pubDate>Sat, 10 Jul 2010 06:32:27 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3343299</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Administrators are frequently required to limit media ports that are used by Communications Server 2007 R2 clients. This particular task is straightforward to perform for Office Communicator 2007 R2 clients through group policy. For details, see &lt;a href="http://go.microsoft.com/fwlink/?LinkId=187328"&gt;Media Port Range Registry Keys&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;However, Office Communicator 2007 R2 Phone Edition is not configurable through group policy and to achieve the same result with Communicator Phone Edition, you have to edit relevant server-side pool settings so devices can receive this information through in-band provisioning in the SIP channel.&lt;/p&gt;  &lt;p&gt;I have published an article on &lt;a href="http://technet.microsoft.com/en-us/office/ocs/ee465814.aspx" target="_blank"&gt;NextHop&lt;/a&gt; describing the exact procedure to limit media ports for Communicator Phone Edition devices. Complete article can be found at &lt;a href="http://technet.microsoft.com/en-us/library/ff806918.aspx" target="_blank"&gt;Limit Media Ports in Office Communications Server 2007 R2 Devices&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3343299" width="1" height="1"&gt;</description></item><item><title>Office Communicator SIP Trace – Multiple Points of Presence (MPOP)</title><link>http://blogs.technet.com/b/toninof/archive/2010/01/12/office-communicator-sip-trace-multiple-points-of-presence.aspx</link><pubDate>Tue, 12 Jan 2010 16:08:43 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3305161</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/toninof/rsscomments.aspx?WeblogPostID=3305161</wfw:commentRss><comments>http://blogs.technet.com/b/toninof/archive/2010/01/12/office-communicator-sip-trace-multiple-points-of-presence.aspx#comments</comments><description>&lt;p&gt;During my work on OCS engagements, I’ve already seen situations where OCS admins would start successful trace of SIP sessions (IM, voice calls, conferences, etc) but at one point they would be “lost” in that bunch of SIP packets in the log. In short – they’d expect to see less messages related to the call than they would find in their logs.&lt;/p&gt;  &lt;p&gt;Provided that they correctly sorted SIP messages belonging to the same SIP session (which is easily done by finding all messages with same Call-ID&lt;a href="#_ftn1_9321" name="_ftnref1_9321"&gt;[1]&lt;/a&gt;), they’d still see more SIP messages than they’d expect to see.&lt;/p&gt;  &lt;p&gt;When talking about &lt;a href="http://blogs.technet.com/toninof/archive/2009/11/19/office-communicator-sip-trace-voice-call-flow.aspx" target="_blank"&gt;Voice Call Flow SIP trace&lt;/a&gt;, I didn’t mention one of rather frequent situations you’re going to encounter in your SIP traces: multiple points of presence (MPOP). While I did it on purpose in that particular blog post (for simplicity), it’s necessary to address those scenarios as you will often find in SIP traces more SIP messages (mainly provisional, 1xx replies) than you’d expect, usually due to recipient having multiple registered SIP endpoints (and thus multiple points of presence).&lt;/p&gt;  &lt;p&gt;For more detailed information on MPOP, please see &lt;a href="http://blogs.technet.com/uc/archive/2007/03/01/multiple-points-of-presence-mpop.aspx"&gt;Sriram’s blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Following examples address such communication where called party (in this case IzabelaF) has logged on with two endpoints: Office Communicator Phone 2007 R2 and Office Communicator 2007 R2, while remote user (MarinoF) uses his OC 2007 R2 client to place a call.&lt;/p&gt;  &lt;p&gt;Please note that in parenthesis after each SIP method/header, I’m putting the direction of the message from the caller’s point of view.&lt;/p&gt;  &lt;hr align="left" size="1" width="33%" /&gt;  &lt;p&gt;&lt;a href="#_ftnref1_9321" name="_ftn1_9321"&gt;[1]&lt;/a&gt; Each SIP session is uniquely identified with &lt;b&gt;Call-ID&lt;/b&gt; header parameter, so the first step in finding related SIP messages would be to search for all SIP messages with identical Call-ID&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;SIP Invite (OUT)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_7.png" width="244" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:00:47.889 418:D8 INFO&amp;#160; :: INVITE sip:izabelaf@uclab.org SIP/2.0      &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604       &lt;br /&gt;Max-Forwards: 70       &lt;br /&gt;From: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 1 INVITE       &lt;br /&gt;Contact: &amp;lt;sip:marinof@uclab.org;opaque=user:epid:NFExHZ6mj1yDHREOYWtdYQAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The first message shows an attempt to setup a SIP session between a caller (sip:marinof@uclab.org) and a called party (sip:izabelaf@uclab.org).&lt;/p&gt;  &lt;p&gt;If we skip next two “standard” messages sent from FE server (100 Trying and 183 Session Progress), we’ll see an interesting &lt;strong&gt;ms-diagnostics&lt;/strong&gt;&amp;#160; header value in 101 Progress Report message:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;101 Progress Report (IN)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_1.png" width="244" height="95" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;ms-diagnostics: 13004;reason=&amp;quot;Request was proxied to one or more registered endpoints&amp;quot;;source=&amp;quot;R2EE01.uclab.org&amp;quot;;appName=&amp;quot;InboundRouting&amp;quot;      &lt;br /&gt;Server: InboundRouting/3.5.0.0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;101 Progress Report shows that the request was handled by server-side Inbound Routing component. Inbound Routing handles incoming calls in such way that it forks the call to all called party’s registered endpoints. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;183 Session Progress (endpoint 1) (IN)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_18.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_8.png" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:00:48.831 418:D8 INFO&amp;#160; :: SIP/2.0 183 Session Progress      &lt;br /&gt;ms-user-logon-data: RemoteUser       &lt;br /&gt;Authentication-Info: NTLM rspauth=&amp;quot;0100000000000000C2EA75A8807B40EA&amp;quot;, srand=&amp;quot;8E9BFD7E&amp;quot;, snum=&amp;quot;16&amp;quot;, opaque=&amp;quot;135DF6CC&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;       &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604;ms-received-port=2604;ms-received-cid=500       &lt;br /&gt;From: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=aad34505db;tag=c34587eaa8       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 1 INVITE       &lt;br /&gt;Record-Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;Contact: &amp;lt;sip:izabelaf@uclab.org;opaque=user:epid:ATX04NzZClmCm9_s1BVjeAAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;First 183 Session Progress message shows reply from one of Izabela’s registered endpoints, OC 2007 R2 client, which is visible from User-Agent header value:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;User-Agent: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;Please, pay attention to &lt;strong&gt;epid &lt;/strong&gt;and &lt;strong&gt;tag &lt;/strong&gt;values in To: header. I stressed in my &lt;a href="http://blogs.technet.com/toninof/archive/2009/11/19/office-communicator-sip-trace-voice-call-flow.aspx" target="_blank"&gt;previous blog&lt;/a&gt; that you can expect different &lt;strong&gt;epid &lt;/strong&gt;and &lt;strong&gt;tag &lt;/strong&gt;values in To: headers in case recipient has multiple registered endpoints, as those values uniquely identify each registered endpoint. This is also one of very helpful information when differentiating between multiple SIP messages (such as multiple 183 Session Progress messages).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;So, lets see the second 183 Session Progress message.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;183 Session Progress (endpoint 2) (IN)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_5.png" width="244" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:00:49.191 418:D8 INFO&amp;#160; :: SIP/2.0 183 Session Progress      &lt;br /&gt;ms-user-logon-data: RemoteUser       &lt;br /&gt;Authentication-Info: NTLM rspauth=&amp;quot;01000000000000005DBAB6FE807B40EA&amp;quot;, srand=&amp;quot;B48CE0F0&amp;quot;, snum=&amp;quot;19&amp;quot;, opaque=&amp;quot;135DF6CC&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;       &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604;ms-received-port=2604;ms-received-cid=500       &lt;br /&gt;From: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=97a7d6045d       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 1 INVITE       &lt;br /&gt;Record-Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;Contact: &amp;lt;sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Second 183 Session Progress message shows reply from another Izabela’s registered endpoint: this time it’s Office Communicator Phone (&lt;font color="#800000"&gt;User-Agent: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)&lt;/font&gt;). &lt;/p&gt;  &lt;p&gt;If you click on screenshots in both 183 messages you will see SDP data containing ICE protocol details used to establish media flow between the caller and called party. This is nothing else than answer to SDP offer sent in first analyzed packet (SIP Invite from Marino) where you can find two SDP blocks (to accommodate both R1 and R2 OC clients, as mentioned in my previous blog) with Marino’s candidates to be used for establishing media flow.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: ICE negotiation has several phases which is not within the scope of this blog post, but just for informational purposes let’s say that the actions performed during media path negotiation are: address discovery and exchange, connectivity check and address candidate promotion.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It’s important to stress that SDP details can be seen in provisional (1xx) messages only in case of OCS 2007 R2 and later. In previous releases, SDP offer with caller’s ICE candidates would still be sent in SIP Invite message, but called party would reply with it’s own candidates in &lt;u&gt;200 OK &lt;/u&gt;message which would sometimes lead to first Hello going unheard. As of OCS 2007 R2, the support for early media is added so that media negotiation starts before the call is actually answered by called party. It’s also necessary that endpoints support early media which is the case with OCS 2007 R2 and later endpoints.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;200 OK (IN)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_6.png" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:00:59.296 418:D8 INFO&amp;#160; :: SIP/2.0 200 OK      &lt;br /&gt;ms-user-logon-data: RemoteUser       &lt;br /&gt;Authentication-Info: NTLM rspauth=&amp;quot;01000000000000007CA5BF76807B40EA&amp;quot;, srand=&amp;quot;5F94A5D3&amp;quot;, snum=&amp;quot;21&amp;quot;, opaque=&amp;quot;135DF6CC&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;       &lt;br /&gt;P-Asserted-Identity: &amp;lt;sip:izabelaf@uclab.org&amp;gt;, &amp;lt;tel:+38514802551&amp;gt;       &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604;ms-received-port=2604;ms-received-cid=500       &lt;br /&gt;From: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=97a7d6045d       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 1 INVITE       &lt;br /&gt;Record-Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;Contact: &amp;lt;sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)       &lt;br /&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;. &lt;/font&gt;&lt;font color="#000000"&gt;(&lt;em&gt;cut due to simplicity&lt;/em&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;a=ice-ufrag:Ec9d      &lt;br /&gt;a=ice-pwd:EWRPxB9CrdW64VXL1trp587N       &lt;br /&gt;a=candidate:1 1 UDP 2130706431 172.31.255.73 32039 typ host       &lt;br /&gt;a=candidate:1 2 UDP 2130705918 172.31.255.73 3599 typ host       &lt;br /&gt;a=candidate:2 1 TCP-PASS 6556159 200.1.1.20 51553 typ relay raddr 200.1.1.20 rport 51553       &lt;br /&gt;a=candidate:2 2 TCP-PASS 6556158 200.1.1.20 51553 typ relay raddr 200.1.1.20 rport 51553       &lt;br /&gt;a=candidate:3 1 UDP 16648703 200.1.1.20 52279 typ relay raddr 200.1.1.20 rport 52279       &lt;br /&gt;a=candidate:3 2 UDP 16648702 200.1.1.20 57326 typ relay raddr 200.1.1.20 rport 57326       &lt;br /&gt;a=candidate:4 1 TCP-ACT 7076863 200.1.1.20 51553 typ relay raddr 200.1.1.20 rport 51553       &lt;br /&gt;a=candidate:4 2 TCP-ACT 7076350 200.1.1.20 51553 typ relay raddr 200.1.1.20 rport 51553       &lt;br /&gt;a=candidate:5 1 TCP-ACT 1684797951 172.31.255.73 31247 typ srflx raddr 172.31.255.73 rport 31247       &lt;br /&gt;a=candidate:5 2 TCP-ACT 1684797438 172.31.255.73 31247 typ srflx raddr 172.31.255.73 rport 31247 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Although media negotiations starts before the call is answered (to accommodate early-media requirements), the called party still sends its final candidates (from the endpoint that answered the call) in 200 OK message to complete ICE negotiation. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: what is not visible from this trace (as that is communication between the server and the other endpoint) is that server cancels invitation to the other endpoint using SIP CANCEL method.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;ACK (OUT)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_9.png" width="244" height="81" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:00:59.456 418:D8 INFO&amp;#160; :: ACK sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu SIP/2.0      &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604       &lt;br /&gt;Max-Forwards: 70       &lt;br /&gt;From: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=97a7d6045d       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 1 ACK       &lt;br /&gt;Route: &amp;lt;sip:sip.uclab.org:443;transport=tls;opaque=state:Ci.R500;lr;ms-route-sig=babjyotg5YrHahdExfv5G_R78glc6rHo0ChevgyAAA&amp;gt;       &lt;br /&gt;Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;User-Agent: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)       &lt;br /&gt;Supported: ms-dialog-route-set-update       &lt;br /&gt;Proxy-Authorization: NTLM qop=&amp;quot;auth&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;, opaque=&amp;quot;135DF6CC&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, crand=&amp;quot;a1b5d2ce&amp;quot;, cnum=&amp;quot;15&amp;quot;, response=&amp;quot;0100000000000000adf58669807b40ea&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font color="#800000"&gt;&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;SIP session three way handshake completes with acknowledgement from Marino’s endpoint to Izabela’s endpoint that was picked to answer the call.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;SIP INVITE (OUT)&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_22.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_10.png" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Excerpt:&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;01/05/2010|14:01:04.934 418:D8 INFO&amp;#160; :: INVITE sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu SIP/2.0      &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604       &lt;br /&gt;Max-Forwards: 70       &lt;br /&gt;From: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=97a7d6045d       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 3 INVITE       &lt;br /&gt;Route: &amp;lt;sip:sip.uclab.org:443;transport=tls;opaque=state:Ci.R500;lr;ms-route-sig=babjyotg5YrHahdExfv5G_R78glc6rHo0ChevgyAAA&amp;gt;       &lt;br /&gt;Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;Contact: &amp;lt;sip:marinof@uclab.org;opaque=user:epid:NFExHZ6mj1yDHREOYWtdYQAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)       &lt;br /&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;. &lt;/font&gt;&lt;font color="#000000"&gt;(&lt;em&gt;cut due to simplicity&lt;/em&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;strong&gt;a=candidate:1 1 UDP 2130706431 200.1.1.201 50016 typ host        &lt;br /&gt;a=candidate:1 2 UDP 2130705918 200.1.1.201 50018 typ host         &lt;br /&gt;&lt;/strong&gt;a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:JTZf0de/tIGNK+5aQmVJCgslAzCLYsPwNJgG/Ga+|2^31|1:1       &lt;br /&gt;&lt;strong&gt;a=remote-candidates:1 200.1.1.20 52279 2 200.1.1.20 57326        &lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;font color="#000000"&gt;After ICE connectivity check and candidate promotion is completed (very detailed information can be found in &lt;a href="http://communicationsserverteam.com/archive/2009/04/22/433.aspx" target="_blank"&gt;Bernd’s blog&lt;/a&gt;), Marino is sending the second SIP INVITE with chosen candidates (both local and remote), which can be seen in above excerpt.&lt;/font&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;font color="#800000"&gt;&lt;/font&gt;  &lt;p&gt;&lt;/p&gt; &lt;font color="#800000"&gt;   &lt;h3&gt;&lt;font color="#000000"&gt;200 OK (IN)&lt;/font&gt;&lt;/h3&gt;    &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_24.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceMultiplePoints_E90E/image_thumb_11.png" width="244" height="133" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;font color="#000000"&gt;Excerpt:&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;01/05/2010|14:01:05.154 418:D8 INFO&amp;#160; :: SIP/2.0 200 OK      &lt;br /&gt;ms-user-logon-data: RemoteUser       &lt;br /&gt;Authentication-Info: NTLM rspauth=&amp;quot;01000000000000006A0598A9807B40EA&amp;quot;, srand=&amp;quot;E662685E&amp;quot;, snum=&amp;quot;27&amp;quot;, opaque=&amp;quot;135DF6CC&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;       &lt;br /&gt;Via: SIP/2.0/TLS 200.1.1.201:2604;ms-received-port=2604;ms-received-cid=500       &lt;br /&gt;From: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0fae8454e3;epid=1488039028       &lt;br /&gt;To: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=97a7d6045d       &lt;br /&gt;Call-ID: e34305289c3b4c368c583f531fddeff3       &lt;br /&gt;CSeq: 3 INVITE       &lt;br /&gt;Record-Route: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=401&amp;gt;       &lt;br /&gt;Contact: &amp;lt;sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu&amp;gt;       &lt;br /&gt;User-Agent: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)       &lt;br /&gt;.&lt;/p&gt;    &lt;p&gt;. &lt;font color="#000000"&gt;&lt;em&gt;(cut due to simplicity)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;a=candidate:3 1 UDP 16648703 200.1.1.20 52279 typ relay raddr 200.1.1.20 rport 52279        &lt;br /&gt;a=candidate:3 2 UDP 16648702 200.1.1.20 57326 typ relay raddr 200.1.1.20 rport 57326         &lt;br /&gt;&lt;/strong&gt;a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:kSYTWb/FPgCEeGKC1/6z4in0Nr1gNfYymLwBMfCc|2^31|1:1       &lt;br /&gt;&lt;strong&gt;a=remote-candidates:1 200.1.1.201 50016 2 200.1.1.201 50018&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;/p&gt; &lt;/font&gt;&lt;font color="#000000"&gt;Izabela’s client confirms the candidates and formally completes the candidate negotiation.&lt;/font&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Summary&lt;/h4&gt;  &lt;p&gt;When tracing a particular SIP session you might encounter slightly more complex traces than you usually would see in the logs. Reasons could be various: simultaneous ringing set on called party’s side, delegation, but also that called party has multiple registered endpoints in which case each endpoint would reply to initial SIP INVITE. However, you’ll notice that only one of those endpoints (the one that picked the call) would complete the three way handshake process (INVITE/200 OK/ACK).&lt;/p&gt;  &lt;p&gt;Although it might look confusing to see multiple 180 and 183 messages, paying attention to&amp;#160; &lt;strong&gt;tag &lt;/strong&gt;and &lt;strong&gt;epid &lt;/strong&gt;values in &lt;strong&gt;To: &lt;/strong&gt;header will help resolve most doubts. As for multiple 200 OK messages in the same SIP session, it’s very helpful to check &lt;strong&gt;CSeq&lt;/strong&gt; header value in each 200 OK message, as it identifies a particular transaction (looking at CSeq values, you will see that some of those 200 OK messages belong to first INVITE, some to PRACK and some to second INVITE).&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3305161" width="1" height="1"&gt;</description></item><item><title>Office Communicator SIP Trace – Voice Call Flow</title><link>http://blogs.technet.com/b/toninof/archive/2009/11/19/office-communicator-sip-trace-voice-call-flow.aspx</link><pubDate>Thu, 19 Nov 2009 17:07:33 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3295144</guid><dc:creator>ToninoF</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/toninof/rsscomments.aspx?WeblogPostID=3295144</wfw:commentRss><comments>http://blogs.technet.com/b/toninof/archive/2009/11/19/office-communicator-sip-trace-voice-call-flow.aspx#comments</comments><description>&lt;p&gt;When using Office Communicator to place a voice call, you can use several different ways to establish a call:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;clicking on a Communicator Call option next to the contact in your OC, thus using contact’s SIP URI to place a call &lt;/li&gt;    &lt;li&gt;dialing E.164 number &lt;/li&gt;    &lt;li&gt;dialing non-E.164 number and letting OCS “normalize” the number &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Whatever way you choose to place a call, several OCS server-side components will be involved in call establishment, so let’s first shortly define what each of those components do:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Inbound Routing – handles incoming calls, taking into account user’s call-forwarding settings (e.g. if user configured the call forwarding settings so that incoming calls is forwarded to his/her cell phone, inbound routing would take care that the call is handled accordingly). &lt;/li&gt;    &lt;li&gt;Translation Application – uses normalization rules based on user’s location profile to translate dialed number into a standard E.164 number. For complete information, let’s say that client also obtains normalization rules together with other configuration data through in-band provisioning process (more information in Jens Trier Rasmussen’s &lt;a href="http://blogs.technet.com/jenstr/archive/2007/12/14/how-are-phone-normalization-rules-updated-on-the-client.aspx"&gt;blog&lt;/a&gt;) &lt;/li&gt;    &lt;li&gt;Outbound Routing – calls that are not destined to users hosted on OCS (when normalized number cannot be matched to any existing SIP URI) are transferred to Outbound Routing component that applies call authorization rules to callers and route the calls to PBX or PSTN. &lt;/li&gt;    &lt;li&gt;User Services – handles several aspects of Office Communications Server (IM, Presence, Conferencing features) but is also very important for Enterprise voice functionality where it performs Reverse Number Lookup on the phone number of each incoming call and tries to match that number to a SIP URI. If a match is found the call is for an OCS-enabled user and stays within OCS environment, but if there is no match, the call has to be handled by Outbound Routing component that will route the call to PBX or PSTN. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Let’s see how SIP traces differ depending on which call scenario is used: SIP URI (Communicator Call), E.164 number or non-E.164 number. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; I am providing background information about SIP headers and parameters after first SIP INVITE message only, since majority of these headers are repeating in subsequent packets. New headers and parameters in later packets that are important for this article will be explained as well, where necessary. For more detailed information, though, please refer to RFCs and other articles often mentioned as references throughout this blog post.&lt;/p&gt;  &lt;p&gt;Since analyzing all SIP packets in each call would be rather tiresome (and unnecessary) business, I will take three typical packets that can provide enough information to achieve this articles purpose: SIP INVITE, Progress Report and Session Progress messages.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Scenario 1: Calling basic&lt;a href="#_ftn1_3791" name="_ftnref1_3791"&gt;&lt;b&gt;[1]&lt;/b&gt;&lt;/a&gt; SIP URI (Communicator Call)&lt;/h2&gt;  &lt;p&gt;In this first example we’ll check what happens when you choose Communicator Call option when calling one of your contacts.&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;SIP INVITE&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:21.441 2A0:F34 INFO :: Sending Packet - 200.1.1.20:443 (From Local Address: 200.1.1.201:2262) 5107 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:21.441 2A0:F34 INFO :: &lt;b&gt;INVITE sip:izabelaf@uclab.org SIP/2.0&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Max-Forwards&lt;/b&gt;: 70&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=fda796badd;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:izabelaf@uclab.org&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: 0aee2d6389294d18af28ae9f219a3420&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Contact&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org;opaque=user:epid:NFExHZ6mj1yDHREOYWtdYQAA;gruu&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;User-Agent&lt;/b&gt;: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Ms-Conversation-ID&lt;/b&gt;: Acpm1MgQioYa3RnkRyeZp67T413HPw==&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: timer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: histinfo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-safe-transfer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-sender&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-early-media&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: Replaces&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-keep-alive&lt;/b&gt;: UAC;hop-hop=yes&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Allow&lt;/b&gt;: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONS&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;P-Preferred-Identity&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;, &amp;lt;tel:+38517654321&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-conf-invite&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Proxy-Authorization&lt;/b&gt;: NTLM qop=&amp;quot;auth&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, crand=&amp;quot;c3ed0454&amp;quot;, cnum=&amp;quot;12&amp;quot;, response=&amp;quot;010000006e646964cf67ad685412cf8b&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Type&lt;/b&gt;: multipart/alternative;boundary=&amp;quot;----=_NextPart_000_0007_01CA66DD.2A245470&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 3968&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------=_NextPart_000_0007_01CA66DD.2A245470&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Type: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Transfer-Encoding: 7bit&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Disposition: session; handling=optional; ms-proxy-2007fallback&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#008080"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 1.1&lt;/strong&gt; – INVITE: Session setup using SIP URI of the called party (SDP offer (blue font) is truncated due to clarity)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The first packet shows the caller (sip:&lt;a href="mailto:marinof@uclab.org"&gt;marinof@uclab.org&lt;/a&gt;) calling the other party using her SIP URI (sip:&lt;a href="mailto:izabelaf@uclab.org"&gt;izabelaf@uclab.org&lt;/a&gt;). Since Request URI&lt;a href="#_ftn2_3791" name="_ftnref2_3791"&gt;[2]&lt;/a&gt; already contains a SIP URI of a called party, there is no action whatsoever from the Translation Application side, nor from User Services side.&lt;/p&gt;  &lt;p&gt;This means that there is no need to neither normalize non-E.164 number to E.164 (as there’s nothing to normalize), nor there is a need to match E.164 number to SIP-URI (as SIP URI is already there).&lt;/p&gt;  &lt;p&gt;A little bit more detailed look at this first packet will reveal several interesting facts about establishing the call:&lt;/p&gt;  &lt;p&gt;First, it shows session setup for which SIP uses an INVITE method&lt;a href="#_ftn3_3791" name="_ftnref3_3791"&gt;[3]&lt;/a&gt;. Each session is uniquely identified by the From and To headers with tag and epid parameters and with the Call-ID&lt;a href="#_ftn4_3791" name="_ftnref4_3791"&gt;[4]&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;As can be seen, the INVITE has been sent to (example) address 200.1.1.20 (which is an Access Edge server for uclab.org SIP domain) on a port dedicated for remote user access (443). The request is sent from the remote host which will be visible in one of the replies (&lt;b&gt;ms-user-logon-data: RemoteUser&lt;/b&gt;), such as in Trace 1.2 – Progress Report.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;“Contact” &lt;/i&gt;header contains URI registered by the user (&lt;a href="sip:marinof@uclab.org"&gt;sip:marinof@uclab.org&lt;/a&gt;) that provides contact information for other party in the call.&lt;/p&gt;  &lt;p&gt;“&lt;i&gt;Supported&lt;/i&gt;” headers contain a list of supported options such as &lt;i&gt;100rel&lt;/i&gt; (ability to send provisional responses to INVITE messages in a reliable way), … and one very important option: &lt;b&gt;ms-early-media.&lt;/b&gt;&lt;a href="#_ftn5_3791" name="_ftnref5_3791"&gt;[5]&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ms-early-media&lt;/b&gt; is a proprietary extension to SIP Supported header, and denotes client’s ability to receive an SDP answer in a provisional 18x message (apart from standard way through reliable 200 message). Effectively, this means that media exchange can start even before session is fully established. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;i&gt;“P-Preferred-Identity”&lt;/i&gt; header is generated by user agent when it needs to communicate an additional identity of the user (apart from the one in the From: header)&lt;a href="#_ftn6_3791" name="_ftnref6_3791"&gt;[6]&lt;/a&gt;. This identity would later be used by trusted proxy to create P-Asserted-Identity value. &lt;/p&gt;  &lt;p&gt;&lt;i&gt;“Proxy-authorization”&lt;/i&gt; header was mentioned in more details in previous blog (&lt;a href="http://blogs.technet.com/toninof/archive/2009/10/31/office-communicator-sip-trace-analysis-registration.aspx"&gt;Office Communicator SIP Trace Analysis – Registration &lt;/a&gt;), so let’s just note here that in this particular session it shows that NTLM auth is used (Proxy-Authorization: NTLM), protection method used is authentication only, not integrity protection (qop=auth) and that &lt;i&gt;response&lt;/i&gt; parameter caries client’s message signature. &lt;/p&gt;  &lt;p&gt;Listing all headers found in INVITE message is far beyond the scope of this article, but two of these should not be omitted at least from short explanation: &lt;b&gt;Via&lt;/b&gt; and &lt;b&gt;Record-Route&lt;/b&gt; headers. &lt;b&gt;Record-Route&lt;/b&gt; is added by proxies who decide to stay in the path of all responses to initial request, while &lt;b&gt;Via&lt;/b&gt; header contains transport protocol used (SIP/2.0/TLS) and the client &lt;i&gt;IP address:port&lt;/i&gt; combination.&lt;/p&gt;  &lt;p&gt;Next part of this first packet (after Content-Length header) shows start of SDP Offer, but I removed it for the sake of clarity. If it weren’t removed, you’d see that there were two very similar SDP messages in this first INVITE message - to accommodate both OC 2007 (R1) and OC 2007 R2 clients. &lt;/p&gt;  &lt;p&gt;First SDP message starting with ms-proxy-2007fallback parameter in Content-Disposition header is for R1 client while the second one is for R2 client. &lt;/p&gt;  &lt;p&gt;Detailed SDP analysis is beyond the scope of this article, so if you want to dive deeper in SDP and media exchange negotiation itself, I’d highly recommend reading Bernd Ott’s &lt;a href="http://communicationsserverteam.com/archive/2009/04/22/433.aspx"&gt;blog&lt;/a&gt; at &lt;a href="http://communicationsserverteam.com/"&gt;Communications Server Team Blog&lt;/a&gt; site. Apart from SDP details, Bernd provides excellent analysis of media traversal over NAT, which itself is very interesting reading.&lt;/p&gt;  &lt;p&gt;The next analyzed trace will be the 101 &lt;i&gt;Progress Report&lt;/i&gt; message sent by Front End server’s Inbound Routing component.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;101 Progress Report&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:21.612 2A0:F34 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2262) 697 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:21.612 2A0:F34 INFO :: &lt;b&gt;SIP/2.0 101 Progress Report&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;0100000000000000BC4976EB5412CF8B&amp;quot;, srand=&amp;quot;7756C6C0&amp;quot;, snum=&amp;quot;14&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262;ms-received-port=2262;ms-received-cid=2D00&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=fda796badd;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:izabelaf@uclab.org&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: 0aee2d6389294d18af28ae9f219a3420&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-diagnostics&lt;/b&gt;: 13004;reason=&amp;quot;Request was proxied to one or more registered endpoints&amp;quot;;source=&amp;quot;R2EE01.uclab.org&amp;quot;;appName=&amp;quot;InboundRouting&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Server&lt;/b&gt;: InboundRouting/3.5.0.0&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 1.2&lt;/strong&gt; – Progress Report&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ms-diagnostics&lt;a href="#_ftn7_3791" name="_ftnref7_3791"&gt;&lt;b&gt;[7]&lt;/b&gt;&lt;/a&gt;&lt;/b&gt; header in Progress Report trace contains some interesting information - it shows that Inbound Routing application will proxy the call to one or more called party’s registered SIP endpoints. In case of more than one registered endpoint for the called party, the call would be forked to all registered endpoints. &lt;b&gt;Server&lt;/b&gt; header found in Progress Report does not denote physical server, but rather server-side application responsible for handling client’s request.&lt;/p&gt;  &lt;p&gt;The next interesting packet (Trace 1.3) shows Session Progress in which you can see two &lt;b&gt;Record-Route&lt;/b&gt; headers (defined earlier in the text) with values of Access Proxy server (&lt;a href="sip:sip.uclab.org:443"&gt;sip:sip.uclab.org:443&lt;/a&gt;) and OCS pool (&lt;a href="sip:pool01.uclab.org:5061"&gt;sip:pool01.uclab.org:5061&lt;/a&gt;). Please pay attention to &lt;strong&gt;ms-fe &lt;/strong&gt;parameter found in first Record-Route header value (ms-fe=r2ee01.uclab.org). When SIP server is a member of a pool of servers that share the same FQDN (in this case pool01.uclab.org), &lt;b&gt;ms-fe&lt;/b&gt; parameter enables particular member of the pool (that is working on the request), to put its own, unique FQDN (ms-fe=r2ee01.uclab.org) and denote the particular member of the pool that should stay in the path of future SIP message exchanges.&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;183 Session Progress&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:22.443 2A0:F34 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2262) 2585 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|16:52:22.443 2A0:F34 INFO :: &lt;b&gt;SIP/2.0 183 Session Progress&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;01000000000000001DC9DAC65412CF8B&amp;quot;, srand=&amp;quot;77BAA84A&amp;quot;, snum=&amp;quot;16&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262;ms-received-port=2262;ms-received-cid=2D00&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=fda796badd;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:izabelaf@uclab.org&amp;gt;;epid=2798f0b3cc;tag=5e5e12af1a&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: 0aee2d6389294d18af28ae9f219a3420&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Record-Route&lt;/b&gt;: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F:T:Eu;lr;received=172.31.255.222;ms-received-cid=2701&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Contact&lt;/b&gt;: &amp;lt;sip:izabelaf@uclab.org;opaque=user:epid:uozeqPgOuFOVd0DaRpeFCgAA;gruu&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;User-Agent&lt;/b&gt;: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Require&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;RSeq&lt;/b&gt;: 1&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Type&lt;/b&gt;: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 1520&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Record-Route&lt;/b&gt;: &amp;lt;sip:sip.uclab.org:443;transport=tls;opaque=state:Ci.R2d00;lr;ms-route-sig=gadu3AbEKriSVtRh1_ODE_CC6EuF7pPgc70lwmrQAA&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;v=0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;o=- 0 0 IN IP4 172.31.255.71&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;s=session&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 172.31.255.71&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;b=CT:99980&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;t=0 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;m=audio 2879 RTP/SAVP 114 111 115 8 0 97 13 118 101&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=ice-ufrag:hfAS&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=ice-pwd:MNL10SujMvycj08p4UH/lP02&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:1 1 UDP 2130706431 172.31.255.71 2879 typ host &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:1 2 UDP 2130705918 172.31.255.71 20457 typ host &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 1.3&lt;/strong&gt; - Session Progress carrying SDP Answer&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The Session Progress message shows that called party (sip:&lt;a href="mailto:izabelaf@uclab.org"&gt;izabelaf@uclab.org&lt;/a&gt;) has registered OC Phone endpoint (&lt;b&gt;User-Agent&lt;/b&gt;: CPE/3.5.6907.0 OCPhone/3.5.6907.0 (Office Communicator Phone 2007 R2) . If called party has registered more than one SIP endpoint, the caller would receive multiple 183 Session Progress messages, but in that case &lt;b&gt;tag&lt;/b&gt; and &lt;b&gt;epid&lt;/b&gt; parameters in &lt;b&gt;To&lt;/b&gt;: header would carry different values in these separate messages (To-tag and epid parameters uniquely identify each registered endpoint). You can also see an answer to initial SDP Offer found in INVITE message (truncated due to clarity). This is where R2 client differs from R1 in which you could find an SDP Answer only later in 200 OK response (as there was no support for early media in previous client version&lt;a href="#_ftn8_3791" name="_ftnref8_3791"&gt;&lt;sup&gt;&lt;sup&gt;[8]&lt;/sup&gt;&lt;/sup&gt;&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Scenario 2: Calling E.164 number&lt;/h2&gt;  &lt;p&gt;Following traces show how session setup differs when user dials using E.164 number. In the first place, you’ll see some additional server components involved as this call has destination outside of OCS environment (either on other PBX or PSTN).&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;SIP INVITE&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.249 2A0:F34 INFO :: Sending Packet - 200.1.1.20:443 (From Local Address: 200.1.1.201:2262) 5137 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.249 2A0:F34 INFO :: &lt;b&gt;INVITE sip:+38511234567@uclab.org;user=phone SIP/2.0&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Max-Forwards&lt;/b&gt;: 70&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=d089e797cf;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:+38511234567@uclab.org;user=phone&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: 036f540493ef4d089dff7c50d197b43f&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Contact&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org;opaque=user:epid:NFExHZ6mj1yDHREOYWtdYQAA;gruu&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;User-Agent&lt;/b&gt;: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Ms-Conversation-ID&lt;/b&gt;: Acpm1iN/R7sNneRNT8eC9BppFFWX+w==&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: timer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: histinfo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-safe-transfer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-sender&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-early-media&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: Replaces&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-keep-alive&lt;/b&gt;: UAC;hop-hop=yes&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Allow&lt;/b&gt;: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONS&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;P-Preferred-Identity&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;, &amp;lt;tel:+38517654321&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-conf-invite&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Proxy-Authorization&lt;/b&gt;: NTLM qop=&amp;quot;auth&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, crand=&amp;quot;2d80635e&amp;quot;, cnum=&amp;quot;46&amp;quot;, response=&amp;quot;010000006e646964031f26bd5412cf8b&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Type&lt;/b&gt;: multipart/alternative;boundary=&amp;quot;----=_NextPart_000_0016_01CA66DE.85874C90&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 3968&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------=_NextPart_000_0016_01CA66DE.85874C90&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Type: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Transfer-Encoding: 7bit&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Content-Disposition: session; handling=optional; ms-proxy-2007fallback&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;v=0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;o=- 0 0 IN IP4 200.1.1.20&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;s=session&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 200.1.1.20&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;b=CT:99980&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;t=0 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;m=audio 52828 RTP/AVP 114 111 112 115 116 4 8 0 97 13 118 101&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;k=base64:8nz2U+Sr7tkJOyxCVKRXT1JoEwganb5OVW5QFs5v40hiBx3fuyzPa+oHcHTH&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:Y/dexvxW+WxmsamABmy6olEMpPbYL4muLNDd+Hb/BHs 1 ei885sgdxFjptCgFT+bAJg UDP 0.860 200.1.1.201 50007 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:Y/dexvxW+WxmsamABmy6olEMpPbYL4muLNDd+Hb/BHs 2 ei885sgdxFjptCgFT+bAJg UDP 0.860 200.1.1.201 50002 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 2.1&lt;/strong&gt; – INVITE showing &lt;i&gt;user=phone&lt;/i&gt; parameter&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;It’s important to stress the significant difference in Request URI compared to Scenario 1 : &lt;/p&gt;  &lt;p&gt;&lt;b&gt;INVITE sip:+38511234567@uclab.org;user=phone SIP/2.0&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;Apart from visible difference in first part of SIP URI (phone number instead of user alias), a new parameter &lt;i&gt;user=phone&lt;/i&gt;&lt;b&gt; &lt;/b&gt;is added which denotes that SIP URI is in phone number format. Again, an SDP details follow (and again truncated significantly due to clarity) &lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;101 Progress Report&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;The second trace shows Progress Report which again differs from the equivalent packet in Scenario 1.&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.470 2A0:F34 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2262) 868 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.470 2A0:F34 INFO :: &lt;b&gt;SIP/2.0 101 Progress Report&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;0100000000000000517441485412CF8B&amp;quot;, srand=&amp;quot;7EBD2724&amp;quot;, snum=&amp;quot;55&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262;ms-received-port=2262;ms-received-cid=2D00&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=d089e797cf;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:+38511234567@uclab.org;user=phone&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: 036f540493ef4d089dff7c50d197b43f&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-diagnostics&lt;/b&gt;: 12006;reason=&amp;quot;Trying next hop&amp;quot;;source=&amp;quot;R2EE01.uclab.org&amp;quot;;PhoneUsage=&amp;quot;CN={AB77AE74-F9B1-480F-B7CD-79792BC13D87},CN=Phone Route Usages,CN=RTC Service,CN=Services,CN=Configuration,DC=uclab,DC=org&amp;quot;;PhoneRoute=&amp;quot;Local Calls&amp;quot;;Gateway=&amp;quot;R2MS01.uclab.org:5061&amp;quot;;appName=&amp;quot;OutboundRouting&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Server&lt;/b&gt;: OutboundRouting/3.5.0.0&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 2.2&lt;/strong&gt; – Progress Report&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;ms-diagnostics&lt;/b&gt; header value in 101 Progress Report this time shows that another server side component is involved: Outbound Routing. The reason behind involvement of Outbound Routing component is rather simple: E.164 number of the called party (+38511234567) could not be matched to any existing SIP URI, which shows that the called party is either on a PBX system or PSTN, so the call has to be routed out of OCS system to the next hop using Local Calls route (PhoneRoute=&amp;quot;Local Calls&amp;quot;;Gateway=&amp;quot;R2MS01.uclab.org:5061&amp;quot;). Just a note that apart from finding the best route for the call, Outbound Routing also performs a call authorization (in a nutshell, it is matching normalized number and caller’s Voice Policy phone usages to the number pattern and phone usages in available routes).&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;183 Session Progress&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.690 2A0:F34 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2262) 2650 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/16/2009|17:02:04.690 2A0:F34 INFO :: &lt;b&gt;SIP/2.0 183 Session Progress&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2262;ms-received-port=2262;ms-received-cid=2D00&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;0100000000000000260310965412CF8B&amp;quot;, srand=&amp;quot;CDB978E7&amp;quot;, snum=&amp;quot;56&amp;quot;, opaque=&amp;quot;628A7332&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;FROM&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=d089e797cf;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;TO&lt;/b&gt;: &amp;lt;sip:+38511234567@uclab.org;user=phone&amp;gt;;tag=2fe83c9f;epid=B6EE6ACB83&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSEQ&lt;/b&gt;: 1 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CALL-ID&lt;/b&gt;: 036f540493ef4d089dff7c50d197b43f&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;RECORD-ROUTE&lt;/b&gt;: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F;lr;received=172.31.255.222;ms-received-cid=2701&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTACT&lt;/b&gt;: &amp;lt;sip:R2MS01.uclab.org@uclab.org;gruu;opaque=srvr:MediationServer:XDQqnDzOpESpnFD0MajmKgAA&amp;gt;;isGateway&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTENT-LENGTH&lt;/b&gt;: 1558&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;SUPPORTED&lt;/b&gt;: gruu-10&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTENT-TYPE&lt;/b&gt;: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ALLOW&lt;/b&gt;: UPDATE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;REQUIRE&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;SERVER&lt;/b&gt;: RTCC/3.5.0.0 MediationServer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Rseq&lt;/b&gt;: 1&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Record-Route&lt;/b&gt;: &amp;lt;sip:sip.uclab.org:443;transport=tls;opaque=state:Ci.R2d00;lr;ms-route-sig=gasAR62MgLINIzHBRWokPQinSiu77VVVbz0lwmrQAA&amp;gt;&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;v=0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;o=- 0 0 IN IP4 172.31.255.223&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;s=session&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 172.31.255.223&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;b=CT:1000&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;t=0 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;m=audio 62724 RTP/SAVP 0 8 115 13 118 97 101&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 172.31.255.247&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=rtcp:60177&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=ice-ufrag:xVRU&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=ice-pwd:oI+0a7+PQL8RD5eS+xaTrDsJ&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:1 1 UDP 2130706431 172.31.255.247 62724 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;a=candidate:1 2 UDP 2130705918 172.31.255.247 60177 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 2.3&lt;/strong&gt; –Session Progress&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The 183 Session Progress packet is sent from Mediation Server that in turn sends an SDP Answer, sending its own candidates to the client.&lt;/p&gt;  &lt;p&gt;In this particular case where remote user places a call to PSTN, the Mediation server acts as an ICE client. Although media connectivity and firewall traversal is completely different topic out of this article’s scope, let’s just be aware that Mediation Server not only does codec translation and encapsulation of SIP into TLS, but it also acts as an ICE client for calls where one party is outside of organization (remote user) and the other one is on PSTN or PBX. For such call to be established at all, it’s necessary for media to traverse firewall, AV Edge, and Mediation server, before it’s finally sent to the gateway and PSTN or PBX. To establish the most optimal media path along this way, it’s necessary to use ICE and Mediation server thus acts as an ICE client in such call scenarios.&lt;/p&gt;  &lt;p&gt;One more detail worth mentioning in this trace is the &lt;b&gt;isGateway&lt;/b&gt; parameter of the Contact header: &lt;/p&gt;  &lt;p&gt;&lt;b&gt;CONTACT&lt;/b&gt;: &amp;lt;sip:R2MS01.uclab.org@uclab.org;gruu;opaque=srvr:MediationServer:XDQqnDzOpESpnFD0MajmKgAA&amp;gt;;&lt;b&gt;isGateway&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A SIP User Agent stamping isGateway parameter in the Contact header denotes that it has a role of the gateway.&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h2&gt;Scenario 3: Calling non-E.164 number&lt;/h2&gt;  &lt;p&gt;The third scenario happens in situations when user types in the number that is not in E.164 format and the client cannot normalize the number using existing rules.&lt;sup&gt; &lt;a href="#_ftn9_3791" name="_ftnref9_3791"&gt;&lt;sup&gt;[9]&lt;/sup&gt;&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;SIP INVITE&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:36.901 E54:F68 INFO :: Sending Packet - 200.1.1.20:443 (From Local Address: 200.1.1.201:2389) 5188 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:36.901 E54:F68 INFO :: &lt;b&gt;INVITE sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone SIP/2.0&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2389&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Max-Forwards&lt;/b&gt;: 70&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0c0ef918e6;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: bcd9cff8600c4b2487845f5ae211f7c6&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 2 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Contact&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org;opaque=user:epid:NFExHZ6mj1yDHREOYWtdYQAA;gruu&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;User-Agent&lt;/b&gt;: UCCAPI/3.5.6907.0 OC/3.5.6907.0 (Microsoft Office Communicator 2007 R2)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Ms-Conversation-ID&lt;/b&gt;: Acpnqo4mdWwkauuDSkmzOozY9Es0ow==&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: timer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: histinfo&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-safe-transfer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-sender&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-early-media&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: Replaces&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-keep-alive&lt;/b&gt;: UAC;hop-hop=yes&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Allow&lt;/b&gt;: INVITE, BYE, ACK, CANCEL, INFO, UPDATE, REFER, NOTIFY, BENOTIFY, OPTIONS&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;P-Preferred-Identity&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;, &amp;lt;tel:+38517654321&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Supported&lt;/b&gt;: ms-conf-invite&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Proxy-Authorization&lt;/b&gt;: NTLM qop=&amp;quot;auth&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;, opaque=&amp;quot;5C3ADF72&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, crand=&amp;quot;f8c12e13&amp;quot;, cnum=&amp;quot;2&amp;quot;, response=&amp;quot;010000006e64696432ff475bdb3f8ba6&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Type&lt;/b&gt;: multipart/alternative;boundary=&amp;quot;----=_NextPart_000_003F_01CA67B2.F06D3950&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 3968&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;------=_NextPart_000_003F_01CA67B2.F06D3950&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;Content-Type&lt;/b&gt;: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;Content-Transfer-Encoding&lt;/b&gt;: 7bit&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;Content-Disposition&lt;/b&gt;: session; handling=optional; ms-proxy-2007fallback&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;v=0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;o=- 0 0 IN IP4 200.1.1.20&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;s=session&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 200.1.1.20&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;b=CT&lt;/b&gt;:99980&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;t=0 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;m=audio 53192 RTP/AVP 114 111 112 115 116 4 8 0 97 13 118 101&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;k=base64&lt;/b&gt;:zNM45WUMx3rM0ia1GYK/7sjrazYa0XKuCtvlw40qdhd+WUD8fy3JmhylaxHh&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:kp5leWkR7rFrrXLbl2zQ+XD/6kw/e9Ho/onLrkYUg54 1 6IWEArE1V0Pud+C/oHj+iA UDP 0.890 200.1.1.201 50018 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:kp5leWkR7rFrrXLbl2zQ+XD/6kw/e9Ho/onLrkYUg54 2 6IWEArE1V0Pud+C/oHj+iA UDP 0.890 200.1.1.201 50007 &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 3.1&lt;/strong&gt; – INVITE showing Phone-context parameter&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The new header, seen for the first time in this scenario, is &lt;b&gt;Phone-Context&lt;/b&gt; header (INVITE sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone SIP/2.0).&lt;/p&gt;  &lt;p&gt;Phone-Context header can be found when Request URI contains neither basic SIP URI, nor phone number in E.164 format. The value of Phone-Context header is the name of user’s Location Profile (zagreb.uclab.org) where location profile contains all necessary normalization rules to translate user-entered phone number. More details on this visible from next Progress Report packet, sent by Translation Service.&lt;/p&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;101 Progress Report (1)&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.014 E54:F68 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2389) 912 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.014 E54:F68 INFO :: &lt;b&gt;SIP/2.0 101 Progress Report&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;0100000000000000106D7D7BDB3F8BA6&amp;quot;, srand=&amp;quot;70653AFF&amp;quot;, snum=&amp;quot;10&amp;quot;, opaque=&amp;quot;5C3ADF72&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2389;ms-received-port=2389;ms-received-cid=4000&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0c0ef918e6;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: bcd9cff8600c4b2487845f5ae211f7c6&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 2 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-diagnostics&lt;/b&gt;: 14011;reason=&amp;quot;Called Number translated&amp;quot;;source=&amp;quot;R2EE01.uclab.org&amp;quot;;RuleName=&amp;quot;3test&amp;quot;;RuleDN=&amp;quot;CN={24428855-3EEA-42DC-A6EC-A2CD2F3F43D1},CN=Location Normalization Rules,CN=RTC Service,CN=Services,CN=Configuration,DC=uclab,DC=org&amp;quot;;CalledNumber=&amp;quot;3123456&amp;quot;;TranslatedNumber=&amp;quot;+38535123456&amp;quot;;appName=&amp;quot;TranslationService&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Server&lt;/b&gt;: TranslationService/3.5.0.0&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 3.2 &lt;/strong&gt;– Progress Report (first packet)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The first Progress Report packet sent from Translation Service (&lt;b&gt;Server&lt;/b&gt;: TranslationService/3.5.0.0) holds an interesting data in &lt;b&gt;ms-diagnostics&lt;/b&gt; header carrying information about normalization rule used&amp;#160; to translate dialed number (RuleName=”3test”), as well as dialed (CalledNumber=”3123456”) and translated number (TranslatedNumber=”+38535123456”).&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;101 Progress Report (2)&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.154 E54:F68 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2389) 897 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.154 E54:F68 INFO :: &lt;b&gt;SIP/2.0 101 Progress Report&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;01000000000000003A15F11FDB3F8BA6&amp;quot;, srand=&amp;quot;38D4C7E0&amp;quot;, snum=&amp;quot;11&amp;quot;, opaque=&amp;quot;5C3ADF72&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Content-Length&lt;/b&gt;: 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2389;ms-received-port=2389;ms-received-cid=4000&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;From&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0c0ef918e6;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;To&lt;/b&gt;: &amp;lt;sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Call-ID&lt;/b&gt;: bcd9cff8600c4b2487845f5ae211f7c6&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSeq&lt;/b&gt;: 2 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-diagnostics&lt;/b&gt;: 12006;reason=&amp;quot;Trying next hop&amp;quot;;source=&amp;quot;R2EE01.uclab.org&amp;quot;;PhoneUsage=&amp;quot;CN={D6912478-0BBC-4A6B-83F6-01D79BD7E126},CN=Phone Route Usages,CN=RTC Service,CN=Services,CN=Configuration,DC=uclab,DC=org&amp;quot;;PhoneRoute=&amp;quot;National Calls&amp;quot;;Gateway=&amp;quot;R2MS01.uclab.org:5061&amp;quot;;appName=&amp;quot;OutboundRouting&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Server&lt;/b&gt;: OutboundRouting/3.5.0.0&lt;b&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 3.3&lt;/strong&gt; – Progress Report (second packet)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The second Progress Report packet is sent from another server side application: Outbound Routing (&lt;b&gt;Server&lt;/b&gt;: OutboundRouting/3.5.0.0). The number normalized by Translation Service (as explained in Trace 3.2) could not be matched to existing SIP URI, and thus the call has to be routed out of OCS environment via Med.Server/gateway using the National Calls route (PhoneRoute=&amp;quot;National Calls&amp;quot;;Gateway=&amp;quot;R2MS01.uclab.org:5061&amp;quot;). Again, the choice of the route and appropriate gateway has come as a result of previously mentioned procedure (matching normalized number and caller’s Voice Policy phone usages to the number pattern and phone usages in available routes)&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h3&gt;&lt;font color="#000080"&gt;183 Session Progress&lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.435 E54:F68 INFO :: Data Received - 200.1.1.20:443 (To Local Address: 200.1.1.201:2389) 2678 bytes:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;11/17/2009|18:22:39.435 E54:F68 INFO :: &lt;b&gt;SIP/2.0 183 Session Progress&lt;/b&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ms-user-logon-data&lt;/b&gt;: RemoteUser&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Via&lt;/b&gt;: SIP/2.0/TLS 200.1.1.201:2389;ms-received-port=2389;ms-received-cid=4000&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Authentication-Info&lt;/b&gt;: NTLM rspauth=&amp;quot;0100000000000000A6E772DCDB3F8BA6&amp;quot;, srand=&amp;quot;60A1AF0C&amp;quot;, snum=&amp;quot;12&amp;quot;, opaque=&amp;quot;5C3ADF72&amp;quot;, qop=&amp;quot;auth&amp;quot;, targetname=&amp;quot;R2EE01.uclab.org&amp;quot;, realm=&amp;quot;SIP Communications Service&amp;quot;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;FROM&lt;/b&gt;: &amp;quot;Marino Filipovic&amp;quot;&amp;lt;sip:marinof@uclab.org&amp;gt;;tag=0c0ef918e6;epid=1488039028&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;TO&lt;/b&gt;: &amp;lt;sip:3123456;phone-context=zagreb.uclab.org@uclab.org;user=phone&amp;gt;;tag=753a4cf29d;epid=B6EE6ACB83&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CSEQ&lt;/b&gt;: 2 INVITE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CALL-ID&lt;/b&gt;: bcd9cff8600c4b2487845f5ae211f7c6&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;RECORD-ROUTE&lt;/b&gt;: &amp;lt;sip:pool01.uclab.org:5061;transport=tls;ms-fe=R2EE01.uclab.org;opaque=state:F;lr;received=172.31.255.222;ms-received-cid=4101&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTACT&lt;/b&gt;: &amp;lt;sip:R2MS01.uclab.org@uclab.org;gruu;opaque=srvr:MediationServer:XDQqnDzOpESpnFD0MajmKgAA&amp;gt;;isGateway&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTENT-LENGTH&lt;/b&gt;: 1558&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;SUPPORTED&lt;/b&gt;: gruu-10&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;CONTENT-TYPE&lt;/b&gt;: application/sdp&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;ALLOW&lt;/b&gt;: UPDATE&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;REQUIRE&lt;/b&gt;: 100rel&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;SERVER&lt;/b&gt;: RTCC/3.5.0.0 MediationServer&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Rseq&lt;/b&gt;: 1&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;&lt;b&gt;Record-Route&lt;/b&gt;: &amp;lt;sip:sip.uclab.org:443;transport=tls;opaque=state:Ci.R4000;lr;ms-route-sig=halHDFb5tb_P1j5pyPPGNCZq-kEkaR3G_J0lwmrQAA&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;v=0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;o=- 0 0 IN IP4 172.31.255.223&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;s=session&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 172.31.255.223&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;b=CT&lt;/b&gt;:1000&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;t=0 0&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;m=audio 61508 RTP/SAVP 0 8 115 13 118 97 101&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;c=IN IP4 172.31.255.247&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=rtcp&lt;/b&gt;:60865&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=ice-ufrag&lt;/b&gt;:jrbL&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=ice-pwd&lt;/b&gt;:vmjJgl/BqZr0BfHdGG8+m5Lr&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:1 1 UDP 2130706431 172.31.255.247 61508 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:1 2 UDP 2130705918 172.31.255.247 60865 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:2 1 UDP 2130705919 172.31.255.223 63845 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;b&gt;a=candidate&lt;/b&gt;:2 2 UDP 2130705406 172.31.255.223 63260 typ host&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Trace 3.4 &lt;/strong&gt;– Session Progress&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Not much to comment in Session Progress packet, as it is also consistent with the previous packets in this scenario.&lt;/p&gt;  &lt;p&gt;Since the normalized number has destination on PSTN, the Mediation server acts as ICE client and sends an SDP answer with its candidates back to originating client to negotiate the optimal media path. Again, for more information about firewall traversal of media, please refer to very detailed blog &lt;a href="http://communicationsserverteam.com/archive/2009/04/22/433.aspx"&gt;How Communicator Uses SDP and ICE To Establish a Media Channel &lt;/a&gt;created by Bernd Ott.&lt;/p&gt;  &lt;hr align="left" size="1" width="33%" /&gt;  &lt;p&gt;&lt;a href="#_ftnref1_3791" name="_ftn1_3791"&gt;[1]&lt;/a&gt; SIP URIs can be found in several formats: &lt;a href="sip:name@domain.com"&gt;sip:name@domain.com&lt;/a&gt; (basic SIP URI), &lt;a href="sip:+12345678@domain.com"&gt;sip:+12345678@domain.com&lt;/a&gt; (SIP URI with phone number), &lt;a href="sip:name@1.2.3.4"&gt;sip:name@1.2.3.4&lt;/a&gt; (SIP URI with IP address) and several other formats.&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref2_3791" name="_ftn2_3791"&gt;[2]&lt;/a&gt; According to RFC 3261, initial Request URI is set to the value of URI in the To: field (except for REGISTER request).&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref3_3791" name="_ftn3_3791"&gt;[3]&lt;/a&gt; SIP session setup is a three-way handshake process – INVITE/OK/ACK for a success, or INVITE/4XX or 5xx or 6xx/ACK in case of a failure. INVITE is the only SIP method that is in a form of three way handshake, as all other SIP requests are in the form of &lt;i&gt;Request&lt;/i&gt;/200 or &lt;i&gt;Request&lt;/i&gt;/4xx or 5xx or 6xx for a failure. Several provisional responses (1xx) can be seen between INVITE and final 200 OK (Trying, Progress Report, Session Progress), and we’ll tackle these responses later through SIP traces.&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref4_3791" name="_ftn4_3791"&gt;[4]&lt;/a&gt; The From-tag parameter is assigned when the INVITE request is sent out while the To-tag is added by the remote party when answering INVITE request&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref5_3791" name="_ftn5_3791"&gt;[5]&lt;/a&gt; According to &lt;a href="http://tools.ietf.org/html/rfc3960"&gt;Early Media and Ringing Tone Generation in the Session Initiation Protocol&lt;/a&gt; , early media “&lt;i&gt;refers to media (e.g., audio and video) that is exchanged before a particular session is accepted by the called user&lt;/i&gt;”.&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref6_3791" name="_ftn6_3791"&gt;[6]&lt;/a&gt; For more details on P-Preferred-Identity and P-Asserted-Identity headers, please see RFC 3325 - &lt;i&gt;Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref7_3791" name="_ftn7_3791"&gt;[7]&lt;/a&gt; &lt;b&gt;ms-diagnostics&lt;/b&gt; header is added by SIP server to indicate an error and/or provide a troubleshooting information that can be helpful in resolving the error. Since values of this header can contain information that is private to the company, it should be removed when SIP responses are leaving the enterprise boundary.&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref8_3791" name="_ftn8_3791"&gt;[8]&lt;/a&gt; Lack of support for early media in previous client version could sometimes lead to initial greeting not being heard.&lt;/p&gt;  &lt;p&gt;&lt;a href="#_ftnref9_3791" name="_ftn9_3791"&gt;[9]&lt;/a&gt; Normally, the client itself will normalize the number immediately as user is typing the number in OC (as client receives all normalization rules through in-band provisioning process) but in rare cases (such as when new normalization rule is added and client still didn’t refresh the information), the server-side Translation Application will be involved, as in example above.&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3295144" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/toninof/archive/tags/voice+call+flow+office+communicator+sip+trace/">voice call flow office communicator sip trace</category></item><item><title>Remote Access Configuration Guide by Rick Varvel</title><link>http://blogs.technet.com/b/toninof/archive/2009/11/04/remote-access-configuration-guide-by-rick-varvel.aspx</link><pubDate>Wed, 04 Nov 2009 17:52:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3291472</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/toninof/rsscomments.aspx?WeblogPostID=3291472</wfw:commentRss><comments>http://blogs.technet.com/b/toninof/archive/2009/11/04/remote-access-configuration-guide-by-rick-varvel.aspx#comments</comments><description>&lt;p&gt;Working with regional and worldwide customers and partners who deployed OCS 2007 or 2007 R2, it was noticeable that one area was particularly challenging to configure - remote access. Although official documentation was good and detailed, there was many different aspects to take care of, and which is more, it would involve several different teams to fully configure remote access: OCS, networking, and security/perimeter network teams. Apart from OCS aspects, configuring remote access involves firewall and reverse proxy configuration, choosing and deploying correct certificates, registering correct DNS records internally and externally, (optionally) configuring load balancer, etc, etc.&lt;/p&gt;  &lt;p&gt;So, the only missing piece of puzzle was a whitepaper or a guide that would connect all these pieces together: something like the Notes From the Field. Exactly such kind of document was created by my colleague Rick Varvel who wrote an excellent white paper “OCS 2007 R1/R2 Remote Access Configuration Guide”. If you are about to deploy Edge servers for remote access and/or federation with your partnering company or PIC, I would highly recommend downloading (and studying, which is more important :) ) Rick’s whitepaper from: &lt;a title="http://blogs.technet.com/rickva/archive/2009/04/09/ocs-2007-r1-r2-remote-access-configuration-guide.aspx" href="http://blogs.technet.com/rickva/archive/2009/04/09/ocs-2007-r1-r2-remote-access-configuration-guide.aspx"&gt;http://blogs.technet.com/rickva/archive/2009/04/09/ocs-2007-r1-r2-remote-access-configuration-guide.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3291472" width="1" height="1"&gt;</description></item><item><title>Office Communicator SIP Trace Analysis – Registration</title><link>http://blogs.technet.com/b/toninof/archive/2009/10/31/office-communicator-sip-trace-analysis-registration.aspx</link><pubDate>Sat, 31 Oct 2009 18:24:35 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3290569</guid><dc:creator>ToninoF</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/toninof/rsscomments.aspx?WeblogPostID=3290569</wfw:commentRss><comments>http://blogs.technet.com/b/toninof/archive/2009/10/31/office-communicator-sip-trace-analysis-registration.aspx#comments</comments><description>&lt;p&gt;When I changed my career path to Unified Communications a few years ago (after having spent two decades with several UNIX flavors, MS directory and MS messaging platforms), one of the biggest challenges for me was trying to understand what all those methods and headers in SIP protocol trace exactly meant.&lt;/p&gt;  &lt;p&gt;In trying to decipher it’s meaning, especially when troubleshooting unsuccessful calls, it didn’t help that there was no abundance of helpful online information.&lt;/p&gt;  &lt;p&gt;First huge help was the introduction of Snooper tool from Microsoft OCS 2007 Resource Kit Tools, as Snooper sorts related SIP messages and presents SIP methods and headers in very readable way, in contrast to plain text files you had to use for analysis before Snooper. &lt;/p&gt;  &lt;p&gt;Having Snooper around and SIP protocol gaining on significance each day actually determined the first topic for my Unified Communications blog – understanding SIP traces. Once this was decided, why not start from the beginning – client registration itself. &lt;/p&gt;  &lt;p&gt;In a series of Snooper screenshots that follow, we’ll go through the registration process when SIP client registers its address with SIP server. You will see two examples: Office Communicator user registering both from internal network, and from outside, as a remote user. You will also see that not every red message in Snooper immediately denotes an issue – in registration process it may be just a normal, expected message that fits in the expected registration flow.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a name="_Toc244329541"&gt;Remote SIP client registration&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;So, let’s start with a remote client (&lt;a href="sip:izabelaf@uclab.org"&gt;sip:izabelaf@uclab.org&lt;/a&gt;) that initiates the login sequence by sending a REGISTER request.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%201_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 1" border="0" alt="Figure 1" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%201_thumb.gif" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 1: The remote client sends a REGISTER request with no credential or authentication information. &lt;/p&gt;  &lt;p&gt;The more detailed look at the first packet (Figure 1) will reveal that the client connects from its local address (200.1.1.201) to port 443 of Access Edge Server (200.1.1.20). In Office Communications Server 2007 R2, port 443 of Access Edge server is used for remote user access. Note that the Call-ID header will have the same value throughout the session - in this case it will be the same for all 6 messages from the beginning of registration process till its end.&lt;/p&gt;  &lt;p&gt;In this first packet the client sends REGISTER request without any credentials, as suggested in RFC 3261.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: From: and To: header values in Register request will typically be the same, as From: header denotes the client responsible for registration, while To: header denotes the client whose registration is to be created. The only case those two fields can differ would be if the request is third-party registration. For more information on mandatory SIP header fields in SIP requests, please check &lt;a href="http://tools.ietf.org/html/rfc3261"&gt;RFC 3261 - SIP: Session Initiation Protocol&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%202_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 2" border="0" alt="Figure 2" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%202_thumb.gif" width="244" height="138" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 2: The server responds to the request with a 401, indicating that it supports NTLM and requires authentication. &lt;/p&gt;  &lt;p&gt;Since authentication is enabled on the server, it sends 401 Unauthorized message to the client and indicates a support for NTLM authentication. Note that server added “&lt;i&gt;ms-user-logon-data: RemoteUser” &lt;/i&gt;header to indicate that the client is logging in from outside of corporate network. This information also tells the client that it should use the web service URLs that are accessible from the Internet for distribution list expansion, address book download, and meeting content download &lt;a href="#_ftn1_9898" name="_ftnref1_9898"&gt;[1]&lt;/a&gt; The &lt;i&gt;RemoteUser&lt;/i&gt; info also tells the client that it does not have direct media connectivity to the enterprise network.&lt;/p&gt;  &lt;hr align="left" size="1" width="33%" /&gt;  &lt;p&gt;&lt;a href="#_ftnref1_9898" name="_ftn1_9898"&gt;[1]&lt;/a&gt; The client will obtain all necessary information later in a 200 OK response to the SUBSCRIBE request for In-band Provisioning event (Event: vnd-microsoft-provisioning-v2)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%203_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 3" border="0" alt="Figure 3" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%203_thumb.gif" width="244" height="139" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 3: The client reissues the request &lt;/p&gt;  &lt;p&gt;Client reissues the request, now with Authorization header, confirming it supports NTLM authentication. The client calls the NTLM authentication protocol implementation with Izabela’s credentials (user name, domain, and password) and several other (Datagram, Identify, and Integrity) parameters to initialize the security context and generate (an empty) NEGOTIATE_MESSAGE. You can use one of network trace tools (NetMon, Wireshark) to obtain more data about actual NTLM messages exchange.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NTLM Background Information:&lt;/strong&gt; There are two major flavors of NTLM auth protocol: connection-oriented and connectionless (datagram). In connection-oriented NTLM, negotiation starts with a NEGOTIATE_MESSAGE, carrying the client's preferences, and the server replies with NegotiateFlags in the subsequent CHALLENGE_MESSAGE. In connectionless (datagram) NTLM, however, the server starts the negotiation with the CHALLENGE_MESSAGE and the client replies with NegotiateFlags in the subsequent AUTHENTICATE_MESSAGE.&lt;/p&gt;  &lt;p&gt;&lt;i&gt;In our example above, the client picked Datagram option, and that is the reason an empty NEGOTIATE_MESSAGE is sent.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%204_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 4" border="0" alt="Figure 4" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%204_thumb.gif" width="244" height="142" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 4: The server responds with 401 sending an appropriate challenge in WWW-Authenticate SIP header&lt;/p&gt;  &lt;p&gt;After receiving client’s reissued REGISTER request, the server calls its NTLM security subsystem which processes empty NEGOTIATE_MESSAGE and generates NTLM CHALLENGE_MESSAGE which it sends to the client (&lt;i&gt;gssapi-data&lt;/i&gt; parameter carrying the challenge in &lt;i&gt;WWW-Authenticate&lt;/i&gt; header) in another 401 Unauthorized message (Figure 4).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%205_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 5" border="0" alt="Figure 5" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%205_thumb.gif" width="244" height="137" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 5: The client responds to the server's challenge. &lt;/p&gt;  &lt;p&gt;Client now reissues the REGISTER request with the response to the server’s challenge (Figure 5). &lt;/p&gt;  &lt;p&gt;The process of generating response to server’s challenge (simplified due to clarity) starts with client first having to decode base64-encoded content of &lt;i&gt;gssapi-data&lt;/i&gt; parameter and passing the challenge to its NTLM subsystem that in turn generates AUTHENTICATE-MESSAGE. Gssapi-data parameter (sent in Proxy-Authorization header) thus carries client’s response to server challenge proving that the client knows the password.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%206_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 6" border="0" alt="Figure 6" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%206_thumb.gif" width="244" height="137" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 6: The server processes the request and responds (including its signature for the response) with Authentication-Info. &lt;/p&gt;  &lt;p&gt;The server finds out the client identity from the request and the &amp;quot;opaque&amp;quot; value from the authorization header field received in previous REGISTER request (Figure 5), and calls its NTLM subsystem to process AUTHENTICATE_MESSAGE. The NTLM subsystem authenticates the client and validates that the user is authorized to use the &amp;quot;izabelaf@uclab.org&amp;quot; SIP URI. The server continues processing the REGISTER request (as described in RFC3261) and passes it to the SIP Registrar component which (after it completes processing) sends back a &amp;quot;200&amp;quot; response to the client (Figure 6).&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;a name="_Toc244329542"&gt;Internal SIP client registration&lt;/a&gt;&lt;/h3&gt;  &lt;p&gt;Let’s see now what happens with internal client (&lt;a href="sip:marinof@uclab.org"&gt;sip:marinof@uclab.org&lt;/a&gt;) issuing REGISTER request:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%207_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 7" border="0" alt="Figure 7" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%207_thumb.gif" width="244" height="132" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 7: The client sends a REGISTER request with no credential or authentication information.&lt;/p&gt;  &lt;p&gt;As you can see in Figure 7 showing the first REGISTER attempt for internal user, the client connects from its local address (172.31.255.247) to port 5061 of his home pool (172.31.255.222). Again, no credentials or authentication information is sent to the server. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%208_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 8" border="0" alt="Figure 8" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%208_thumb.gif" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 8: The server responds with &amp;quot;401&amp;quot;&lt;/p&gt;  &lt;p&gt;Figure 8 shows server sending 401 Unauthorized to the client, also stating its support &lt;u&gt;for both Kerberos and NTLM&lt;/u&gt; authentication methods (WWW-Authenticate headers). Please note the difference in &lt;i&gt;targetname&lt;/i&gt; parameter values between Kerberos and NTLM responses: The &lt;i&gt;targetname&lt;/i&gt; parameter for Kerberos contains the SPN for Marino’s home server, while the &lt;i&gt;targetname&lt;/i&gt; for NTLM carries the FQDN of home server.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Note&lt;/b&gt;: For Kerberos, the &lt;i&gt;targetname&lt;/i&gt; value must be prefixed with a &amp;quot;sip/&amp;quot; service descriptor and the server must register its &lt;i&gt;targetname&lt;/i&gt; value with the KDC database. If the server supports both the NTLM and Kerberos protocols, the &lt;i&gt;targetname&lt;/i&gt; value in NTLM must be the same as the &lt;i&gt;targetname&lt;/i&gt; value in Kerberos without the &amp;quot;sip/&amp;quot; service descriptor.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%209_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 9" border="0" alt="Figure 9" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%209_thumb.gif" width="244" height="169" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 9: The client chooses Kerberos protocol and reissues REGISTER request to the home server&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;What is not visible from the SIP trace&lt;a href="#_ftn1_8933" name="_ftnref1_8933"&gt;[2]&lt;/a&gt; is that client obtained a Kerberos ticket for the server (in KRB_TGS_REP message from Ticket Granting Service – see &lt;b&gt;Kerberos background information (1)&lt;/b&gt;). The client included this information in the &lt;i&gt;gssapi-data&lt;/i&gt; parameter of the Proxy-Authorization header:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Proxy-Authorization: Kerberos qop=”auth”, realm =”SIP Communications Service”,&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;targetname=”sip/R2EE01.uclab.org”, version=4, gssapi-data”=”YIIE…”&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;The Proxy-Authorization: header above (and in more details in Figure 9) shows that client opts for Kerberos auth (&lt;i&gt;Proxy-Authorization: Kerberos&lt;/i&gt;) and reissues the REGISTER requests to his home server identified by an SPN in &lt;i&gt;targetname&lt;/i&gt; parameter (sip/R2EE01.uclab.org).&lt;/p&gt;  &lt;p&gt;Please, also note the &lt;i&gt;response&lt;/i&gt; parameter in Proxy-Authorization header – the value of this parameter carries the client signature, while analogous parameter on the server side is &lt;i&gt;rspauth &lt;/i&gt;which carries the server signature (it can be found in &lt;i&gt;Proxy-Authentication-Info&lt;/i&gt; header in servers response – Figure 10).&lt;/p&gt;  &lt;hr align="left" size="1" width="33%" /&gt;  &lt;p&gt;&lt;a href="#_ftnref1_8933" name="_ftn1_8933"&gt;[2]&lt;/a&gt; The entire Kerberos ticket request/response message flow can be seen using a NetMon or Wireshark network trace&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%2010_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Figure 10" border="0" alt="Figure 10" src="http://blogs.technet.com/blogfiles/toninof/WindowsLiveWriter/OfficeCommunicatorSIPTraceAnalysisRegist_10DBE/Figure%2010_thumb.gif" width="244" height="135" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figure 10: The server processes the request and responds&lt;/p&gt;  &lt;p&gt;Marino’s home server received the REGISTER request, verified the Kerberos ticket (see &lt;b&gt;Kerberos Background Information (2)&lt;/b&gt;) and successfully processed the REGISTER request.&lt;/p&gt;  &lt;h4&gt;&lt;/h4&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;&lt;a name="_Toc244329543"&gt;&lt;font color="#000000"&gt;Kerberos&lt;/font&gt;&lt;/a&gt; vs NTLM Background info&lt;/h4&gt;  &lt;p&gt;Although the Kerberos vs. NTLM title may sound a bit pompous, as it’s not easy to compare these two protocols in just a few words, I’ll try to address just those most obvious differences that are important for our topic.&lt;/p&gt;  &lt;p&gt;Office Communications Server 2007 R2 supports two authentication mechanisms when it comes to client-to-server authentication and mutual message signing: Kerberos and NTLM. While Kerberos is standard and a more secure protocol, there are situations where NTLM has to be used.&lt;/p&gt;  &lt;p&gt;An example is when remote user (not having connectivity to the Domain Controller) tries to register to its home pool. With Kerberos, the client must request Kerberos ticket from the KDC (Key Distribution Center), which, in Microsoft implementation, resides on the domain controller (see &lt;b&gt;Kerberos Background Information (3)&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;Although you can find some background info below, a full Kerberos authentication details are not in the scope of this blog, so to make the long story short – with Kerberos auth, client have to have access to Domain Controller to be able to authenticate which is not the case with remote clients (I am not discussing the clients connected through VPN, but “real” remote clients accessing their OCS infrastructure by means of Edge servers). &lt;/p&gt;  &lt;p&gt;NTLM is a bit more benevolent when it comes to authenticating remote users. With NTLM, the client doesn’t have to directly contact DC, but the server verifies the client's credentials by contacting the domain controller. This NTLM’s approach to authentication allows clients that do not have connectivity to the domain controller to authenticate with the server using NTLM authentication. This is also the main reason for supporting NTLM, in addition to the more secure and standard Kerberos authentication.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h4&gt;Kerberos background information (1)&lt;/h4&gt;  &lt;p&gt;For more details on Kerberos message flow, please take a look at &lt;a href="http://technet.microsoft.com/en-us/library/cc772815(WS.10).aspx"&gt;How the Kerberos Version 5 Authentication Protocol Works&lt;/a&gt; and particularly &lt;a href="http://tools.ietf.org/html/rfc4120"&gt;RFC 4120 - The Kerberos Network Authentication Service (V5) &lt;/a&gt;. I will provide just a short overview of the process that should be sufficient for the blog topic. &lt;/p&gt;  &lt;p&gt;In a nutshell, there are three types of ticket exchanges with six messages exchanged: &lt;/p&gt;  &lt;p&gt;· Authentication Service Exchange: KRB_AS_REQ and KRB_AS_REP&lt;/p&gt;  &lt;p&gt;· Ticket Granting Service Exchange: KRB_TGS_REQ and KRB_TGS_REP&lt;/p&gt;  &lt;p&gt;· Client/Server Exchange: KRB_AP_REQ and KRB_AP_REP&lt;/p&gt;  &lt;p&gt;A little more details on each of these messages:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_AS_REQ&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;As its name implies, the client contacts KDC’s Authentication Service (residing on Domain Controller) with request to obtain a TGT. Client will use TGT every time when it requests a service ticket to access a service or application on the server. Without TGT, client would have to enter password each time it requests a service ticket, and this way it enters password only during logon. So, in this first KRB_AS_REQ message, client sends &lt;i&gt;username&lt;/i&gt; and user’s &lt;em&gt;domainname&lt;/em&gt; in clear text, together with Pre-authenticator (e.g. machine timestamp encrypted with user’s password hash)&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_AS_REP&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;if AS can decrypt Pre-authenticator (which would prove that client knows the proper password), it will create a session ticket with session key for client-to-KDC communication, as well as a TGT (readable only by KDC) which contains client authorization data. The client will use obtained session key to encrypt further communication with TGS, for example, to encrypt Authenticator (usually contains client ID and client machine’s timestamp) that it will present to Ticket Granting Service (together with TGT) when requesting service ticket.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_TGS_REQ&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;When client needs access to network (or even local computer) resources it will send a request to TGS for the service ticket. To get the service ticket, client will present TGT (obtained in KRB_AS_REP), an Authenticator and the name of target server (in a form of Service Principal Name, or SPN). If TGS can decrypt authenticator using the session key known only to client and KDC, it would prove that client is the one who it claims to be (in any case, it’s someone who knows the correct session key :). Just to shortly discuss this smiley – although Kerberos is secure protocol, password policy is critical here, as with very weak password, brute force attack can be successful in decrypting pre-authenticator mentioned in KRB_AS_REQ. In that case, all further steps could be compromised, so please, pay attention to complex passwords that are long enough and combination of lowercase, uppercase, non-alphanumeric characters, and digits.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_TGS_REP&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The Ticket Granting Service will examine the TGT and authenticator and if both are acceptable, TGS will create a service ticket. Apart from service ticket (that only server can decrypt), TGS will send a session key for client/server encrypted communication. I didn’t mention so far that TGT (which is btw, encrypted with &lt;i&gt;krbtgt&lt;/i&gt; account’s password hash) contains user’s (security principal’s) authorization information in a field called PAC (Privilege Attribute Certificate). The content of PAC (group membership of security principal requesting access) is copied to service ticket and will be used later to construct access token for the client.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_AP_REQ&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;As soon as client needs to access the server/service, it will send the service ticket to the server as well as Authenticator (client ID and machine timestamp encrypted with client/server session key). When server obtains the service ticket, it will decrypt it (using the key known only to server and KDC), extract its own copy of the client/server session key, use this session key to verify authenticator and if everything is ok, it will create an access token for the user based on SIDs found in service ticket.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;KRB_AP_REP&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;The last message actually is optional, and is used if client requested mutual authentication. The server will use its copy of client/server key to encrypt (modified) authenticator and send it back to the client. It’s necessary to modify and re-encrypt the authenticator to prove that authenticator is not just replay attempt.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Please note that this is just very condensed information about Kerberos ticket exchange and I would suggest to refer to &lt;/em&gt;&lt;a href="http://tools.ietf.org/html/rfc4120"&gt;&lt;em&gt;RFC 4120 - The Kerberos Network Authentication Service (V5) &lt;/em&gt;&lt;/a&gt;&lt;em&gt; each time you need detailed information about all Kerberos aspects.&lt;/em&gt;&lt;/p&gt;  &lt;h4&gt;&amp;#160;&lt;/h4&gt;  &lt;h4&gt;Kerberos background information (2)&lt;/h4&gt;  &lt;p&gt;When client request any service from the server, one of the messages it sends to the server (in KRB_AP_REQ request) is an Authenticator – it can simply be a Client ID and client machine’s timestamp encrypted with the key &lt;u&gt;only client and server know&lt;/u&gt;. The client obtained this &lt;i&gt;client/server key&lt;/i&gt; in earlier, KRB_TGS_REP exchange from Ticket Granting Service. Apart from &lt;i&gt;client/server key&lt;/i&gt; that client could decrypt, TGS also sent service ticket (that contains the same &lt;i&gt;client/server &lt;/i&gt;key) that only server can decrypt. The server will use server/KDC key to decrypt the service ticket, extract &lt;i&gt;client/server key&lt;/i&gt;, use it to decrypt Authenticator and thus verify that client is who he claims to be. The last step would be for server to modify authenticator, encrypt it with client/server key and send back to client for mutual authentication (as described in KRB_AP_REP) above.&lt;/p&gt;  &lt;h5&gt;&amp;#160;&lt;/h5&gt;  &lt;h4&gt;Kerberos background information (3)&lt;/h4&gt;  &lt;p&gt;Again, the whole story is a bit more complex, as client first needs to obtain a ticket to access Ticket Granting Service on KDC, by contacting Kerberos Authentication Service first, as described in Kerberos background information (1)&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3290569" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/b/toninof/archive/tags/Office+Communicator+SIP+Trace+Call+Flow+Register/">Office Communicator SIP Trace Call Flow Register</category></item></channel></rss>