Outside Voice Control Scenario
Microsoft Office Communications Server 2007 and Microsoft Office Communications Server 2007 R2 will reach end of support on January 9, 2018. To stay supported, you will need to upgrade. For more information, see Resources to help you upgrade your Office 2007 servers and clients.
Mobile phones are a key facet of information worker communications. Accordingly, incorporating mobility into a unified communications plan is essential for true unification of communications. Although the e-mail, instant messaging (IM), and federated telephony worlds are already becoming unified by having a single Session Initiation Protocol (SIP) address (which is typically the e-mail address) be the single point of contact for a person, this unification has not yet extended to the mobile phone space. Information workers still end up exchanging mobile phone numbers in addition to their work phone numbers as part of their contact information. This has led to a suboptimal user experience. For example, a caller from the public switched telephone network (PSTN) tries to reach a certain user by dialing the user’s office phone number. If she cannot reach the user at his office phone, she bypasses the corporate voice mail system by disconnecting the original call and dialing the user’s mobile phone number. If the caller cannot reach the user on his mobile phone, the caller leaves a message on the user’s voice mail box in the mobile phone network. As a result, the recipient ends up checking his Outlook inbox for e-mails, corporate voice mail system for some voice mails, and his mobile phone provider’s voice mailbox for other voice mails.
A unified communications solution needs to provide means for the user to control any communication stream in a unified fashion at all times. By giving out a mobile phone number, a secondary access channel to the user has been opened that currently bypasses the user’s unified communications solution in the company. With Office Communications Server 2007 R2 a new feature has been introduced, called Outside Voice Control, that enables users to hide their mobile phone number for inbound and outbound calls. This feature is sometimes referred to as outside voice.
To use this feature, a user needs to install Office Communicator Mobile (2007 R2 release) on a Windows Mobile phone, and a data service such as General Packet Radio Service (GPRS) to provide IP data communication between the mobile phone and the Internet. This network carries SIP messages (that is, but not audio media) between the Office Communications Server 2007 R2 system (that is, by using the organization’s Edge Server) and the Communicator Mobile client. The user also needs to be enabled for Enterprise Voice.
If the user receives an incoming call on his SIP Uniform Resource Identifier (URI), either from the PSTN or from other Office Communications Server 2007 R2 users or from a federated contact, Office Communications Server 2007 R2 sends a SIP INVITE to all of the user’s registered SIP endpoints (for example, Office Communicator 2007 R2, Office Communicator Phone Edition) as well as to the user’s Communicator Mobile client running on the Windows Mobile device. After this SIP INVITE message reaches the Communicator Mobile client using the data channel of the mobile phone, Communicator Mobile automatically accepts the incoming call and changes the user’s presence to In a Call. Next, Office Communications Server 2007 R2 initiates an outbound call to user’s mobile phone number by using an Office Communications Server 2007 R2 Mediation Server and PSTN access point (that is, by using a gateway, PBX, or SIP Trunk service provider). The user receives a second incoming call through the mobile phone provider’s cellular network and is able to accept the call. Note that the actual mobile phone call is not a Voice over IP (VoIP) call where audio has been transmitted by using the mobile phone provider’s data packet network to Communicator Mobile. Instead, it is a normal mobile phone call that uses the mobile phone provider’s cellular network.
For an outbound call from her mobile phone, the user has the option to enter the phone number to be dialed in Communicator Mobile or to initiate a call to a SIP contact using Communicator Mobile. If the user chooses the Call menu option in Communicator Mobile, the call is placed by the mobile phone by using the mobile phone network. However, if the user chooses the Call via work option in Communicator Mobile, the phone first sends a SIP INVITE to Office Communications Server 2007 R2. Office Communications Server 2007 R2 establishes a call to the user’s mobile phone number over the PSTN. The user receives an incoming mobile phone call from his company by using the mobile phone provider’s cellular network. Finally, after the user accepts the call from his company, Office Communications Server 2007 R2 sets up a second call leg to the designated called party and joins the two connections. (Note that if the Called Party is on the PSTN, the two call legs can be over separate Mediation Servers that have completely different PSTN break-out locations.) The called party receives a call from the user’s company by using the user’s office phone number as the Calling Party number despite the fact that the user is actually on her mobile phone.
Following are some of the benefits for the company and the user associated with this scenario:
The user’s office phone number can become the only phone number that is published on business cards and other business materials. The mobile phone number can be shared with selected people.
Activities on the user’s mobile phone (for example, when participating in a mobile phone call) can be aggregated to the user’s overall presence state.
If the user is enabled for Enterprise Voice and Exchange 2007 SP1 Unified Messaging, the user can disable his mobile phone voice mail box and use Exchange 2007 SP1 Unified Messaging as his only voice mail repository. This has all the advantages of using an Outlook Inbox for all communications (for example, e-mail, missed call notifications, voice mail, team call pick-up notifications, and so on).
By setting up an outbound mobile phone call through Office Communications Server 2007 R2 by using the Outside Voice Control functionality, call charge reductions may occur. For example, if the user wants to call an international phone number from his mobile phone for a longer conference call, call charges can be lowered significantly by placing the call from the company to the international number through the PSTN, bypassing the mobile phone network (despite another call leg being established from the company to the user’s mobile phone number). Office Communications Server 2007 R2 Least-Cost Routing functionality helps save additional costs in these situations. Even more obvious are the savings what occur when the user calls a federated contact who has a phone number based in another country. Instead of calling the international number directly from the user’s mobile phone, Office Communications Server 2007 R2 can use an Office Communications Server Edge Server to connect this federated call leg with the call leg to the user’s mobile phone.
All calls initiated through Office Communications Server 2007 R2 are captured for Call Detail Recording (CDR) and Quality-of-Experience (QoE) as part of the Office Communications Server 2007 R2 Monitoring Server. However, the QoE data is only on the VoIP legs of the call and does not reflect the quality of the PSTN or mobile provider network.
Outside Voice Control Architecture
To enable the Outside Voice Control scenario, the following prerequisites are required:
As part of the Office Communications Server 2007 R2 installation, all applications are installed by default. During the deployment, the Outside Voice Control application needs to be activated as part of the Office Communications Server 2007 R2 installation.
The unified communications Application Server needs to run on every Office Communications Server 2007 R2 Standard Edition server or Enterprise pool Front End Server. You need to start the Outside Voice Control application by using the Office Communications Server 2007 R2 snap-in.
One or more Office Communications Server 2007 R2 Mediation Servers with connected PSTN Gateways, IP PBXs, or SIP Carrier trunks need to be deployed for PSTN access.
Users who want to benefit from this scenario need to be enabled for Enterprise Voice. To benefit from the single voice mail box functionality, which can only be provided by Exchange 2007 Unified Messaging, users need to be enabled for Exchange 2007 Unified Messaging.
Users need to have a Communicator Mobile (2007 R2 release) client installed on their Windows Mobile 6 or Windows Mobile 6.1 smartphone or Pocket PC phone device. Additionally, it is highly recommended that you have an unlimited data usage plan with the mobile phone provider.
The user’s mobile phone needs to be enabled for data packet communication through GPRS, EDGE, CDMA, or other 3G connection, and a screen resolution of 240 x 320 pixels is required.
An Office Communications Server 2007 R2 Access Edge server needs to be deployed to allow Communicator Mobile to exchange SIP messages with the corporate Office Communications Server 2007 R2 pool.
You need to configure a location profile for each pool or user where Outside Voice Control is installed.
To enable this scenario, you need to open the following ports:
Table 1. Required and Optional Ports
Application Port Number Protocol Place to open ports Usage Communicator Mobile (2007 R2 release)
5060
SIP Transmission Control Protocol (TCP)
Load balancer in front of home server (optional)
Port range used by Communicator Mobile for SIP communications internally
Communicator Mobile (2007 R2 release)
5061
SIP TLS
Internal firewall and load balancer in front of home server (required)
Port range used by Communicator Mobile for SIP over Transport Layer Security (TLS) communications internally
Communicator Mobile (2007 R2 release)
443
TLS/HTTPS
External firewall and load balancer in front of external edge of Access Edge Server
Used by Communicator Mobile for connecting from outside the intranet for SIP communications
Outside Voice Control
5074
TCP
Load balancer in front of home server where Outside Voice Control is installed
Used by Outside Voice Control for internal communications
Architectural Overview
The following figure shows the architecture required for the Outside Voice Control scenario.
Figure 1. Outside Voice Control architecture
Protocols Used By Outside Voice Control
Outside Voice Control uses the following protocols:
Session Initiation Protocol (SIP). Communicator Mobile exchanges SIP messages through the Office Communications Server 2007 R2, Access Edge Server with the Office Communications Server 2007 R2 pool.
Third Party Control Protocol (TPCP). This protocol is transported by SIP messages between the Communicator Mobile client and the Office Communications Server 2007 R2 Standard Edition server or Enterprise pool and is used to send call commands between the phone and the user’s Front End Server.
Call Flows
The following sections contain sample call flows for an outbound call and an inbound call (from the perspective of the Windows Mobile phone user) by using the Enterprise Cellular Voice scenario with a Communicator Mobile (2007 R2 release) client.
Outbound Call
The following steps occur when User A, who is running Communicator Mobile, establishes an outbound call to User B, who is using Office Communicator, from a mobile telephone by using Communicator Mobile in conjunction with the Outside Voice Control application. User B has multiple endpoints: Office Communicator 2007 R2 and Communicator Mobile (2007 R2 release).
On his Communicator Mobile client, User A selects a contact from his contact list, and then selects Call via Work from the calling options.
Communicator Mobile uses a data channel to inform Outside Voice Control of the outbound call. This information is transmitted to Outside Voice Control by using SIP/TPCP. The message is passed though the mobile provider’s data packet network through the Internet to their organization’s Office Communications Server 2007 R2 Access Edge server, and from there to their assigned Standard Edition server or Enterprise pool.
Outside Voice Control establishes a call to User A’s mobile phone by initiating a request through a Mediation Server to the mobile phone provider’s cellular voice network.
User A receives an incoming call on her mobile phone.
User A answers the call and the first call leg between the Office Communications Server 2007 R2 environment and User A’s mobile phone has been established. Media is inactive.
Outside Voice Control now establishes a second call leg with the home pool of User B, where Office Communicator 2007 or Communicator 2007 R2 has been registered, by sending a SIP INVITE message.
A Front End Server in User B’s home pool looks up the User B’s registered endpoints and then forks the SIP INVITE message to all of them.
User B gets an incoming call notification.
As soon as User B answers the call on one of her registered devices, the second call leg has been established.
Outside Voice Control provides call management to bridge the two call legs between the mobile client (that is, User A) and the enterprise Office Communicator user (that is, User B). Media flows between User A’s mobile phone through the mobile phone provider’s cellular network, to the PSTN, then through the Mediation Server (that was selected by Outbound Routing) to Office Communicator 2007 or Communicator 2007 R2 client.
Figure 2. Outbound call flow
If call forwarding on the mobile telephone has been enabled, outbound calls on Communicator Mobile are not supported.
For the normalization of telephone numbers dialed by Communicator Mobile, the user’s user-specific location profile is applied on non RFC3966 compliant called party numbers.
Inbound Call
To continue with the example above but in the opposite direction, User B (that is, the Office Communicator 2007 or Communicator 2007 R2 user) in the enterprise calls User A. User A has Communicator Mobile installed on her mobile device. In this section, the call flow of this scenario is outlined below.
User B initiates a call to User A by clicking on a contact in Office Communicator 2007 or Office Communicator 2007 R2.
User A’s Front End Server in the recipient’s home pool looks up User A’s registered endpoints, and then forks the call to all registered endpoints, including User A’s Communicator Mobile client.
When the request to establish a signaling channel reaches Communicator Mobile, Communicator Mobile determines that the incoming session is an audio call.
Note: Communicator Mobile intercepts the incoming voice call only if the Calling Party number of the voice call matches the Calling Party number that is communicated through the data channel that gets established before the voice call. Otherwise, the incoming voice call is treated as a regular mobile telephone call and Communicator Mobile does not respond.
Communicator Mobile automatically accepts the call by using a data signaling channel in the data packet network of the mobile phone provider to pass this message to Outside Voice Control through the Internet and Office Communications Server 2007 R2.
Outside Voice Control initiates a call to User A’s mobile phone number. Outbound Routing selects a Mediation Server/gateway to send the call to the PSTN, which ultimately routes to the mobile phone provider’s cellular network.
When the user answers the incoming mobile phone call on his mobile phone, Outside Voice Control and Office Communications Server 2007 R2 connect the Office Communications Server 2007 R2 Mediation Server call leg with the originating call leg. Media flows directly between Office Communications Server 2007 R2, Mediation Server and the caller.
Outside Voice Control remains in the signaling path to provide call management until the call is terminated.
Figure 3. Inbound call flow
To redirect the incoming INVITE, Communicator Mobile redirects the INVITE with a 303 SIP response and introduces a new header called CancelForking. This header can have two possible values: Yes or No. The absence of the header, which is consistent with Communicator Mobile (2007 release), means that forks will be cancelled. Therefore, the absence of the header is equal to CancelForking:Yes.