Error 0x80070020 when you try to run Setup Lync Server Components

Recently I had an error during the setup of Lync Server Components regarding Enabling of the  web site “Lync Server Internal Web Site”. A fast google search indicated it was something about IIS not being able to start the default website because of port 80 or 443 was being used by another program. To find out what software was using the ports I did the following, solution found in this KB article: http://support.microsoft.com/kb/973094

Run the following command from a command prompt to find the PID of the process which is using TCP port 80 and/or 443. 
               netstat -aon | find “:80” 
               netstat -aon | find “:443”
You will see an output similar to the following. Remember the actual PID will vary from case to case. 
               TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       3604 
               TCP    0.0.0.0:443           0.0.0.0:0              LISTENING       3320
Now using Task Manager you can easily find out to which process the above PID belongs and take appropriate action.

In my case I was using TeamViewer to remote in to the server during installation. Closing TeamViewer and getting the customer to run the installation solved the problem.

Here is the exact error message I got in the logs

 Error: The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)
▼ Details
└ Type: FileLoadException
└ ▼ Stack Trace
    └   at Microsoft.Web.Administration.Interop.IAppHostMethodInstance.Execute()
at Microsoft.Web.Administration.ConfigurationElement.ExecuteMethod(String methodName)
at Microsoft.Web.Administration.Site.Start()
at Microsoft.Rtc.Management.Deployment.Roles.WebServices.LocalActivate(IService service, Computer computer)
at Microsoft.Rtc.Management.Deployment.Core.Service.LocalActivate(Computer computer)
at Microsoft.Rtc.Management.Internal.Utilities.LogWriter.InvokeAndLog[T](Action`1 action, T arg) 
 └    Error: An error occurred: “System.IO.FileLoadException” “The process cannot access the file because it is being used by another process. (Exception from HRESULT: 0x80070020)”

ESTOS PhoneTools for Communicator works for Lync

ESTOS is a german company that is an independent software vendor for Unified Communications components. They have developed a small TAPI application that lets you dial any number using Communicator. I have used it for about a year for Communicator and it works great. I have now tested it for Lync and it still works great and is very easy to use. This is how it works:

  1. Highlight any phone number from the web, Outlook, IM session, wherever you can find a telephone number
  2. Press your chosen hotkey, by default it is F8
  3. Lync 2010 will call the chosen number

Untill now it has been a free tool, now you have a free trial for 45 days. One user licence is 29,00 €. I recommend you try it in your Enterprise Voice deployment. You can download it here

Produced two webcasts with Microsoft about Lync

I sat down with Anders Borchsenius who is IT-Pro Community Manager at Microsoft Norway and talked about Microsoft Lync. We recorded two sessions. The first about whats new in Microsoft Lync. The other webcast is about how to get started with Lync and how to use my blog as a starting point. The webcasts are in Norwegian.

Installing Lync Server 2010 Prerequisites on Windows Server 2008 R2

When installing Lync Server 2010 some roles requires specific Windows Features to be installed. The features are about the same as for OCS 2007 R2.

NOTE: This article will be updated when more information and requirements become available and necessary. Last update 02.12.2010

Part One – Prerequisites required on all server roles

  • Open PowerShell as administrator and run the following commands
  • Import-Module ServerManager
  • Add-WindowsFeature NET-Framework-Core,Telnet-Client
  • Install the prerequisites for the specific role as described in Part Three
  • Run Windows Update untill everything is updated
  • Install the Lync Server 2010 binaries for the role you are installing
  • Do post installation tasks as described in Part Two

Part Two – What to install AFTER Lync Server 2010 is installed

I describe it here so it is more accessible rather than in the end of the post

Part Three – Commands to install prerequisites for Lync Server 2010 on Windows Server 2008 R2

Front End, Director and Group Chat Server Roles on Windows Server 2008 R2

NOTE: To be able to run schema, forest and domain prep from the Front End Server you need to have the Remote Server Administrative Tools [RSAT-ADDS] installed. It is only required on the first Front End server in you organization. For more information on preparing AD see: http://technet.microsoft.com/en-us/library/gg398607.aspx

  • Open PowerShell as administrator and run the following commands
  • Import-Module ServerManager
  • Add-WindowsFeature RSAT-ADDS,Web-Static-Content,Web-Default-Doc,Web-Http-Errors,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Http-Logging,Web-Log-Libraries,Web-Http-Tracing,Web-Windows-Auth,Web-Filtering,Web-Stat-Compression,Web-Mgmt-Console,Web-Scripting-Tools,Web-Client-Auth,Desktop-Experience

Installs the following components:

  • [RSAT-ADDS] – Remote Server Administrative Tools
  • [Web-Static-Content] – Static Content
  • [Web-Default-Doc] – Default Document
  • [Web-Http-Errors] – HTTP Errors
  • [Web-Asp-Net] – ASP.NET
  • [Web-Net-Ext] – .NET Extensibility
  • [Web-ISAPI-Ext] – Internet Server API (ISAPI) Extensions
  • [Web-ISAPI-Filter] – ISAPI Filters
  • [Web-Http-Logging] – HTTP Logging
  • [Web-Log-Libraries] – Logging Tools
  • [Web-Http-Tracing] – Tracing
  • [Web-Windows-Auth] – Windows Authentication
  • [Web-Filtering] – Request Filtering
  • [Web-Stat-Compression] – Static Content Compression
  • [Web-Mgmt-Console] – IIS Management Console
  • [Web-Scripting-Tools] – IIS Management Scripts and Tools
  • [Web-Client-Auth] – Client Certificate Mapping Authentication
  • Anonymous Authentication (This is installed by default when IIS is installed)
  • [Desktop-Experience] – Desktop Experience

NOTE: Installing on Server 2008 R2 SP1, you need to do this step manually. All Front End Servers and Standard Edition servers where conferencing will be deployed must have the Windows Media Format Runtime installed. The Windows Media Format Runtime is required to run the Windows Media Audio (.wma) files that the Call Park, Announcement, and Response Group applications play for announcements and music. Thats why Desktop Experience is installed. If you only want to install the correct runtime run the command below:

  • Run using Command Prompt as administrator
  • Requires reboot
  • %systemroot%\system32\dism.exe /online /add-package
    /packagepath:%windir%\servicing\Packages\Microsoft-Windows-Media-Format-Package~31bf3856ad364e35~amd64~~6.1.7601.17514.mum
    /ignorecheck

Mediation Server Role on Windows Server 2008 R2

  • No additional features required for mediation

EDGE Server Role on Windows Server 2008 R2

  • Need one aditional hotfix for Lync EDGE Server Role.
    • Note: This hotfix is included in SP1 for Server 2008 R2
    • Windows Server 2008 R2 update available from Microsoft Knowledge Base article 2028827, “The applications that use the TDI driver for network traffic may stop responding in Windows Server 2008 R2 or in Windows 7,” at http://go.microsoft.com/fwlink/?LinkId=205459

Monitoring and Archiving Server Roles on Windows Server 2008 R2

NOTE: If Monitoring og Archiving is deployed in the topology, all server roles must install the below features, including the Monitoring and Archiving Servers

  • Open PowerShell as administrator and run the following commands
  • Import-Module ServerManager
  • Add-WindowsFeature msmq-server,msmq-directory

Installs the following components:

  • [MSMQ-Server] – Message Queuing Server
  • [MSMQ-Directory] – Directory Service Integration

Software Automatically Installed by Lync Server Setup

When you install Lync Server 2010 on a server, some software that is required by Lync Server is installed automatically (that is, if the required software is not already installed on the server). This includes the following:

  • Microsoft Visual C++ 2008 Redistributable
  • Microsoft Visual J# version 2.0 Redistributable
  • URL Rewrite Module version 2.0 Redistributable
  • SQL Server 2008 Express SP1
  • SQL Server 2008 Native Client

References:
For more information see TechNet documentation: http://technet.microsoft.com/en-us/library/gg398686.aspx

Lync Server 2010 features and how to configure them

UPDATE: This blog post has moved to the TechNet Wiki for open editing: http://social.technet.microsoft.com/wiki/contents/articles/10119.wiki-lync-server-2010-features-and-how-to-configure-them.aspx

Now that Lync has gone RTM and Virtual Launch is done we need to get down to business and deploy Lync to the general masses. During the time of Beta, RC and early RTM a lot of great blog articles were published about features and how to configure them. I wanted to collect the posts I find interesting here so I have them all in one place when I deploy Lync Server to my customers. I will update this article with new posts as I find them or when they get published.

Last updated: 16.10.2011

Archiving in Exchange Server 2010 vs Symantec Enterprise Vault

When Exchange 2010 was released in RTM it introduced a new feature called Archive Mailbox. In RTM this Archive Mailbox had to be collocated in the same database as the main mailbox of the users. In Exchange Server 2010 SP1 the Archiving Mailbox feature was updated with the ability to have the Archive Mailbox located in a different database than the main mailbox.

When designing solutions for customers on Exchange Server 2010 I often get asked why they need archiving in the first place and is Exchange 2010 archiving good enough compared to Enterprise Information Archiving solutions such as Symantec Enterprise Vault. The answer is complicated, and it depends greatly on the customer needs and their users. To answer this you need to understand what Exchange archiving really is and how it differs from Enterprise Information Archiving. to answer this we look to Gartner.

Gartner has been publishing a Magic Quadrant for E-Mail Active Archiving since 2002 featuring products that does Enterprise level archiving of emails. They now see an increase in end-user demand of same type of archiving for additional content types such as files shares, Sharepoint and IM. That is the reason for Gartner in 2010 to release a new Magic Quadrant replacing the old. They now call it Enterprise Information Archiving. Vendors featured in this version need to be able to archive e-mail, file, Sharepoint and IM. Below is the latest Magic Quadrant for Enterprise Information Archiving (EIA):

We see in this quadrant that Symantec is a leader with its Enterprise Vault product. These are the key points for the reason of why EV is in the leader quadrant

  • It’s a mature product with the largest worldwide base of enterprise customers
  • It archives mail, Windows file systems, Sharepoint and IM
  • Virtual Vault enables users to manage and view their archive data using a familiar GUI experience
  • Tight integration with is backup products
  • Enterprise level E-Discovery
  • Support for Exchange 2010 SP1 and Microsoft BPOS

Microsoft Exchange Server 2010 is not part of the EIA Magic Quadrant. Gartner gives the following statement about why:

“Exchange 2010 archiving is a good choice for organizations that have never implemented archiving and are struggling with rapid, unmanageable growth of historical e-mail, or are looking for organizations that are looking to replace PST files with a more efficient and secure archiving capability. Because there is no support for files or other content types beyond e-mail, Microsoft’s archiving capabilities are not rated in this Magic Quadrant for EIA”

This is the essence of the Exchange Server 2010 archiving feature, it is an online PST archive with entry level archiving features. Knowing this, it boils down to the following questions:

  1. When is Exchange 2010 archiving good enough?
  2. When does the need for Enterprise Information Archiving like Symantec Enterprise Vault arise?

Koen Vermoesen has created a feature comparison between Exchange 2010 and Enterprise Vault in this article: http://blog.koenvermoesen.be/2010/06/03/symantec-enterprise-vault-vs-microsoft-exchange-server-archiving/

The feature Comparison between Exchange 2010 SP1 and Enterprise Vault 9.0 should be a good starting point to decide what solution to choose. I have updated it with some additional information. The conclusion in the feature comparison is noteworthy.

 

Microsoft Exchange
Server 2010

Symantec Enterprise
Vault 9.0

Archiving Targets

Exchange Server

Exchange Server

Lotus Domino

Sharepoint Server

File Servers

Prerequisites

SP1 to store primary and secondary mailboxes in separate databases

Support for E2K10 from SP1 onwards

OWA or Outlook 2010/2007 to access the archives

Outlook 2003/2007/2010

 

Additional client software required

Integration

Seamless integration, both client and server-side; pst-like

Training required for both the Administrator and the end-user

Mailbox search and conversation view work across both mailboxes

Additional technology

 

“Stubs”, Archive Explorer look “different” to the end-user

Virtual Vault looks just like a pst and mailbox search work across mailbox and Virtual Vault

 

Offline Archive Support

None

Offline Vault

Storage

Exchange databases

SIS

No SIS

Special options like WORM, lots of choice

PST Migration

Gathering of PST is manual. Need to be imported using Outlook or Powershell

PST files can be added both from local computers and NFS with limited user interaction using collector tools

Legal Position

Weak

Strong

Migration

Easy (?)

Hard (?)

 

 

In place upgrades not supported, need to do swing migrations

Cannot skip major versions. Full reinstall even for SP’s

 

Need to pay attention to compatibility both for client and server-side software

Cost

Enterprise CAL’s (Client Access Licenses) required

Additional software to license

Possibly additional server licenses

Additional hardware, can be virtualized with less than 1000 users, or low mailflow.

 

 

Separate SQL server in large deployments

Training

 

Conclusion

Low end alternative for pst-files for the first time ever

If you want to archive…

… for seamless PST import

… for legal reasons

… multiple targets

… to specific storage solutions

 

 

 

References:
Gartner Magic Quadrant EIA october 2010: http://www.symantec.com/content/en/us/about/media/industryanalysts/Gartner_MQ_EIA_03Nov10.pdf 

Contacts vs Subscribers in OCS 2007 R2

In OCS 2007 R2 deployments where you have a large amount of users with large contact lists you may have users that experience the problem of seeing colleagues with unknown presence. Troubleshooting this may prove to be difficult because there is nothing wrong with the system, it is by design. The reason for this is that the Default Presence Policy has a set of limits and restrictions that affect presence. The following table describes the available presence policy settings:
By default, the Default Policy and Service: Medium presence policies are installed when you deploy Office Communications Server 2007 R2. The following table describes the specific settings of the two presence policies
So what does this mean?
  • CategorySubscriptions: Defines how many users are getting your presence information
    • Max: 3000 / 5 = 600. Additional users will see you as presence unknown
    • We divide by 5 because of each category that make up the presence document
      • contactCard
      • calendarData
      • Note
      • Services
      • State categories
    • The result of this is that 400 hundred out of thousand users how have you in their contact list will see presence unknown
    • Setting a large number here will have a significant impact on performance if the average user has a larger number of users subscribing to their presence
  • PromptedSubscribers: Maximum Number of Queued Presence Subscription Alerts
    • Max: 500
    • Determines the maximum number of prompts that can be queued up for a given user
      • An “acknowledgement prompt” is created when a subscriber subscribes to a users presence
      • Once the user acknowledges the subscription, the entry is moved
      • Most of the time there will only be a few entries in this table (assuming the user acknowledges the prompts and doesn’t just ignore them)
    • This table could get full in certain situations when users are imported into the system
    • Setting a larger number here has no real impact on performance
  • “Maximum contacts per user”: Maximum number of contacts per users contact list
    • Max 1000, default 200
    • If you have 1000 users and all those 1000 users have indeed 1000 contacts, then each user will get presence unknown for 400 contacts
Conclusion:
If you see users start getting presence unknown you should expand the numbers of CategorySubscriptions in the Default Policy for presence. If you still get issues with this you should help your customer reevaluate how they use the contact list in Communicator. One of the strengths with Communicator is that you don’t need to add the entire organization to you list because you are able to search up contacts you are not collaborating with on a daily basis and see their presence status.

As long as you have 1000 users and only a few have indeed 1000 contacts and the others have lots less so that no user gets more than 600 subscriptions, then nobody will get presence unknown. You could say to be on the safe side they should allow “Maximum contacts per user” only 600. But Microsoft decided to allow slightly more as the experience in practice is that not all users will indeed add contacts to the max but a few wants to, and that´s what they are making possible.

 
References:

Solved: OCS 2007 R2 integration with Exchange UM when mobile phone is primary number

I am proud to announce that we have solved a problem we had with Exchange UM integration with OCS 2007 R2 when the users mobile phone is the primary number.

Background information

In Norway and Scandinavia it is normal for end users to have a mobile phone as work and private phone. A lot of companies in Norway have adopted mobile phone number as their primary phone numbers and can only be reached using this types of numbers. Traditionally the operators have offered their customers net centric logic for their call handling and switchboards and using only mobile phones as terminals. Since the users use the same phone at work and privately they only have their mobile number and the numbers follow the users and not the company. When we started deploying OCS 2007 R2 for these companies they wanted the solution to be built with using mobile phone numbers as primary number when calling from Communicator. Operators in Norway such as Telenor and Netcom are therefore offering IP Trunks that can integrate with OCS 2007 R2. With these IP Trunks they can rewrite the callers number from a PSTN number to mobile phone number before the call reaches the PSTN network and by that realizing single number reach. And when the called party calls back to the mobile phone number the OCS PSTN number is called at the same time using Dual Forking provided by the operator. This is how single number reach is realized when mobile phone is the main number and it works great. The end user do not have a clue what their real number in OCS is.

The Problem

If you throw Exchange UM into this mix with single number reach and mobile phone as primary number you get an issue. The integration itself works fine and as expected. The problem occurs when the users log off their computers and go to meetings, drive home or are generally not logged in. What happens is that when you are not logged in to Communicator and someone calls you. OCS will answer the call after under a second, ignoring the users call forwarding settings in Communicator,  and forward it to Exchange UM resulting in users loosing the call on the mobile phone. Exchange UM therefore breaks the solution. This is by design and we have not been able to implement Exchange UM in the UC mix in these scenarios until now.

Why Exchange Unified Messaging in conjunction with OCS

So why are we so eager to implement Exchange UM in these scenarios? When using the operators own net centric voice mail features we loose some technology and integration. By default the users get an SMS telling them they have a new message, and they can call in and hear the message. A lot of users set up their voice mail settings so that it sends an email with a wav file of the message to their inbox. After listening to the wav file and archive it or delete it, they still get the sms with the unheard message and there is no integration with their inbox and that they have already possessed it. Resulting that the SMS can tell them they have several unheard messages and that not being true. That is why we want to have Exchange UM deployed to have a complete UC solution.

Exchange UM has a couple of advantages to name a few:

  • Integration with Exchange inbox, messages that are heard/read from Outlook, Outlook Web App or mobile phone through ActiveSync, are also read when calling the Exchange UM service
  • Call back functionality directly for outlook Web App, you can have Exchange UM call you and play the message on the phone of your choosing
  • Note field integrated in Outlook and Outlook Web App, gives you the ability take notes in outlook while listening to the message, save them and have them indexed
  • You can call Exchange UM and rearrange you calendar, a good thing when you are late for a meeting and in a car travelling
  • Read more about the Exchange UM server role here: http://technet.microsoft.com/en-us/library/bb125141.aspx

The solution

I have spent the most part of a year to find someone to help med with this. After some research I found out that it was possible to work around this using Front End Scripts and a program to put the call on hold for a given period of time. This summer I came in touch with a Scandinavian developer company called Competella. They develop application based on the UCMA (Unified Communications Managed API) and are currently developing an switchboard attendants that integrate call control with an advanced directory search tool, access to presence, calendar, e-mail and IM. The system adds attendant call control functionality to the Microsoft OCS beyond the level found in legacy PBXs. They developed a script and a program that checks the status of the user. If the user is offline it will put the call on hold for 20 seconds before forwarding it to the Exchange UM and by that solving the problem we have with single number reach using mobile phones and Exchange UM. This also works if the user has the status “in a mobile call” set by third party programs that get free/busy status from the operators on the users mobile phones.

Conclusion

By using the script and program from Competella we are now able to complete our UC deployments with Exchange UM when mobile phone is the primary number in a single number reach scenario. With this we can realise enterprise voice mail for mobile phones as well as OCS/Lync.

Gartner Magic Quadrant for Unified Communications 2010

[tweetmeme source=”stalehansen” only_single=false]Gartner updated their magic quadrant for Unified Communications July 2010. It is always interesting to see what Gartner has to say about the UC market. It is good to see that Microsoft still is in the lead followed closely by Cisco and Avaya. As we can se from 2009 to 2010 is that Microsoft is still in the lead while IBM has been reduced to a challenger. Cisco and Avaya has gotten a clearer UC message and are following Microsoft closely. I often use this in presentations at seminars to explain some of the reason why we promote Microsoft as the UC vendor of choice.

Here is what Gartner has to say about Microsoft in their article

Microsoft

Microsoft’s UC solution is based on Exchange Server, OCS and Active Directory. Microsoft has strategic partnerships with Aspect and HP, along with a large and growing set of partnerships for gateways, survivable branch appliances, IP phones, audioconferencing service providers and SIP trunking, along with major system integrators and channel partners. OCS also integrates with collaboration and business applications like SharePoint. The same OCS and Exchange application is also used for Microsoft’s online collaboration suite, Business Productivity Online Standard Suite (BPOS).

Strengths
  • Microsoft OCS 2010 R2 has seen year-over-year increased adoption for voice and audioconferencing, and now states that it has 100-plus deployments of over 2,000 telephony users. The next release of OCS, Microsoft Communication Server “14,” scheduled for this calendar year, will add several critical telephony functions.
  • Exchange UM continues to gain acceptance and maturity in the market. Deployments have expanded beyond smaller (fewer than 2,000 subscribers) into the midsize (2,000 to 5,000 subscribers), with a few deployments in the very large (10,000-plus subscribers) market. In Exchange Server 2010, calendar access is integrated with the UM telephone interface, as is text-to-speech rendering of audio messages.
  • Microsoft’s historic strength in collaboration and desktops, combined with promising, emerging real-time communications, results in significant potential. Emerging areas include increased visibility of SIP trunks from carriers and from IP-PBX providers, significant new end-to-end UC solution providers, such as HP, and increased presence in contact centers.
  • Enterprises looking into UC, particularly those with Microsoft applications already in place, should understand Microsoft’s broad UCC paradigm. When considering telephony specifically, OCS can be deployed in different configurations, depending on enterprise directions and requirements. It can be deployed with a PBX so that both are in parallel use for telephony, or it can be deployed to perform nontelephony functions, leaving telephony to the IP-PBX. As OCS matures in 2011, OCS may be able to perform complete stand-alone telephony services.


Cautions

  • The telephony functionality in OCS 2007 R2 remains in the early stage, and OCS has not yet been proved as a complete telephony displacement. Enterprise planners should understand that OCS 2007 R2 has limitations, and should carefully evaluate some critical newer features in the forthcoming version of OCS, such as call admission control and E911.
  • Microsoft’s OCS audioconferencing and videoconferencing product set has expanded its interoperability and endpoint support abilities this year, but these functions remain new and have not yet been proved in the market.
  • Many OCS communication functions, such as telephony, video and public switched telephone network (PSTN) integration, require solution integrators and employees with different skills than many firms presently have. Planners should ensure that their providers and internal staff have relevant experience in key areas.
  • Currently, OCS offers an attractive initial price point for bundled communications and collaboration; however, voice capabilities will be priced separately in subsequent releases. Although some users will be allowed grandfathered pricing, others may see the competitive price advantage of the OCS bundle disappear.

Link to the full article: http://www.gartner.com/technology/media-products/reprints/microsoft/vol10/article19/article19.html

How to check SRV records for OCS and Exchange

A critical part of an OCS deployment is SRV records for automatic sign in. It is critical that these are present and configured correct. An easy way to check them is using nslookup. Below are how to check SRV records and what SRV records need to be present.

  1. Open cmd
  2. Type: nslookup
  3. Type: set type=all
  4. Type the SRV record to list its content

For OCS 2007 R2

  • External
    • _sip._tls.domain.com
      • Usually points to Access EDGE FQDN on port 443
    • _sipfederationtls._tcp.domain.com
      • Usually points to Access EDGE FQDN on port 5061
  • Internal
    • _sipinternaltls._tcp.domain.com
      • Usually points to Pool name with correct sip domain on port 5061

For Exchange 2007/2010

  • External autodiscover
    • _autodiscover._tcp.domain.com
      • Usually points to owa FQDN listener with NTLM negotiate on port 443