Unified Communications by Yann Espanet

Microsoft Office Communications,Exchange,VoIP,telephony
Subscribe

New ressources and whitepapers for OCS R2

August 11, 2009 By: Yann Espanet Category: Office Communication Server, Whitepapers

Office Communications Server 2007 R2 Capacity Planning Tool

http://www.microsoft.com/downloads/details.aspx?familyid=F8CBDDD6-7608-4BBE-9246-16E96C62BEF4&displaylang=en

 Integrating Telephony with Office Communications Server 2007 and 2007 R2

 http://www.microsoft.com/downloads/details.aspx?FamilyID=8cde0c3a-042e-445b-a514-2d12ed5b2ac2&displaylang=en

Microsoft Office Communications Server 2007 R2 Client and Devices Technical Reference

http://www.microsoft.com/downloads/details.aspx?familyid=7EEA9543-EC18-4BEB-BA49-1023A441147C&displaylang=en

 

Microsoft Office Communications Server 2007 R2 Site Resiliency White Paper

http://www.microsoft.com/downloads/details.aspx?familyid=C930FEBB-3A44-4BF3-969D-1C52675A7063&displaylang=en

 

Live Meeting 2007 Technical Considerations Whitepaper

http://www.microsoft.com/downloads/details.aspx?familyid=E52C945A-BF33-48AC-B5D8-D8C4E93C71CC&displaylang=en

 

Unified Communications Phones and Peripherals Datasheet

http://www.microsoft.com/downloads/details.aspx?familyid=74BD3EC0-C7DC-4111-A9B7-A9AFBDC86AA9&displaylang=en#filelist

Using Asterisk to pass and receive SIP calls from Microsoft OCS to a SIP Trunk in UDP

August 04, 2009 By: Yann Espanet Category: Hardware Device, Interoperability, SIP trunk

Enabling Any SIP Phone & Any SIP Trunking Service Provider with OCS 2007 R2 !

Goals of the demo :

 Use asterisk like a UPD/TCP translator between OCS and a SIP trunking services in UDP mode.

  • make calls from Microsoft Office Communicator to the sip trunk
  • dial from a external mobile or a PSTN phone trough the sip trunk and answer the call on either a hard or soft  phone or Office Communicator.
  • control forwarding and simultaneous ringing options from the Communicator

 I use Asterisk 1.6 which support TCP and UDP installed on CentOS 5 – Kernel 2.6.18

Installation steps :

  1. Add a mediation server to the OCS infrastructure
  2. Add an asterisk server
  3. Configure Mediation server to use the asterisk box
  4. Resolve NAT problem (if needed)
  5. Create two SIP trunks :
    1. Asterisk to OCS
    2. Asterisk to SIP Trunk service
  6. Define the context used by this trunks
  7. Configure follow me
  8. Test the infrastructure

 

Basic schema :
 

OCS R2   —-    Mediation —-   Asterisk    ——   Firewall   —   SIPTrunk
MTLS       —-        TCP       —-        UDP —-  NAT —–     UDP

  

I use Hyper-V for the two OCS servers and VMware for the Asterisk server.

  

Step-by-steps

Step 1 : Add a mediation server to your infrastructure

  1. Install a mediation server
  2. Configure certificate
  3. Add the OCS reskit tools (useful for troubleshooting)
  4. Create a dial plan
  5. Create a location profile with two normalization rules.
The first will be use for internal numbering and the second is a generic rule that redirect all call that do not correspond to a valid extension number in OCS to the default gateway.
Internal : OCS user have an three digit extension beginning by 2
Phone pattern : ^2(\d{2})$
Translation pattern : +2$1
Generic rule : All number are concerned (be careful to put this rule in second position in your location profile)
Phone pattern : ^(.*)$
Translation pattern : $1
Assign your location profile to front-end server (properties of the pool / properties of front-end / Voice Tab)
NB : Test your dial plan using the Enterprise Voice route helper

The first will be use for internal numbering and the second is a generic rule that redirect all call that do not correspond to a valid extension number in OCS to the default gateway.

  • Internal : OCS user have an three digit extension beginning by 2

Phone pattern : ^2(\d{2})$

Translation pattern : +2$1

  • Generic rule : All number are concerned (be careful to put this rule in second position in your location profile)

Phone pattern : ^(.*)$

Translation pattern : $1

Assign the location profile to the front-end server (properties of the pool / properties of front-end / Voice Tab)
NB : Test your dial plan using the Enterprise Voice route helper

Step 2 : Add an asterisk server

  1. Download trixbox 2.2 Virtual Appliance from VMware website http://www.vmware.com/appliances/directory/939
  2. Configure basic settings (Ip address, ..)
  3. Add this line in the begining of sip.conf

tcpenable = yes
bindport = 5060

  1. Access the web Trixbox interface (use Mozilla) In system menu / Network / Configure IP, Subnet, DNS and a valid hostname on internet : Ex : sip.mydomain.com

 

Step 3 : Configure Mediation server to use the asterisk box

  1. Open the properties of your mediation server verify that :
  2. in General tab : the gateway listening port is 5060
  3. In next hop connections tab : put the IP address of your asterisk server in PSTN gateway next hop with 5060 for the port number

Step 4 : Resolve NAT problems (if needed)

  1. In Asterisk, Go to PBX / Config File Editor / and edit SIP_NAT.conf

nat=yes

externip=Valid_FQDN

localnet=Your_Localnet/Your_Subnet

  1. Open in your firewall port
    • 5060 in UDP and TCP for SIP
    • RTP: 10000 to 20000 UDP
  2. Verify that you can see you valid public IP in the Trixbox system status

 

Step 5 : Create two SIP trunk in Trixbox : asterisk to OCS and Asterisk to SIP Trunk service

  • Asterisk to OCS

Trunk Name : ocs

PEER Details :

host=ip-mediation-server

type=peer

qualify=yes

transport=tcp

insecure=very

port=5060

canreinvite=yes

fromdomain=yourdomain

context=from-ocs

 

Incoming Settings :

User context : (I put a OCS username here)

User details :

host=ip-mediation-server

type=peer

transport=tcp

insecure=very

port=5060

context=from-ocs

register string :

(leave blank)

 

 

  • Asterisk to SIP Trunk service

Trunk Name : siptrunk

PEER Details :

type=friend

disallow=all

allow=ilbc&speex&gsm&alaw&ulaw

username=username

secret=password

host=yoursipregistrar

canreinvite=no

context=from-siptrunk

Incoming Settings :

Clear all

register string :

username:password@yoursipregistrar (/yournumber if needded)

  

Step 6 : configure context

Edit Extension_Custom.conf and add a the end of the file :

[from-ocs]

exten => _X.,1,Answer

exten => _X.,2,Dial(SIP/${EXTEN}@siptrunk,,tr)

#include extensions-away-status.conf

[from-siptrunk]

exten => _X.,1,Set(numDialled=+${EXTEN:Number_of_X_to_ignore})

exten => _X.,2,Set(__FROM_DID=${EXTEN})

exten => _X.,3,Answer

exten => _X.,4,Dial(SIP/${numDialled}@ocs,,tr)

 

exten => _X.,4,Dial(SIP/${numDialled}@ocs)

 

Step 7 : Configure follow-me in Asterisk

Assign line number from your sip trunk to Asterisk extension and redirect to phone extension in OCS by using a # after the number.
DID number from your SIP trunk provider —> Extension in Asterisk —> Follow-me to OCS extention (use # after the number to precise that it’s external to asterisk)

Step 8 : Test the infrastructure

  1. Troubleshooting tools that you can use in Asterisk :
    1. Log as root with a terminal tools (putty) / Type asterisk –r / Type sip set debug on
    2. Assign a line prefix to test the trunk from a softphone directly connected to Asterisk
      Ex : Create a outbound route with “9|.” to test the trunk by dialing 9 before the number
  2. Troubleshooting tools that you can use in OCS :
    1. Eventviewer
    2. Use the Debug tools (right click your mediation server)
    3. MS Netmon
    4. OCS Route helper to validate your dial plan.

Have fun with that and leave me a message if encounter some problems!

It’s probably possible to do the same with other IP/PBX like : Freeswitch, OpenSer, SipxECS, …

Date : 04/08:2009  - Author :  Yann Espanet – mail : yann@unifiedcommunications.eu

Understanding Microsoft Regular Expressions

July 31, 2009 By: Yann Espanet Category: Office Communication Server

Trouble to use regular expressions in defining routes for OCS ? Download a whitepaper from Globalknowledge and a cheatsheet from addedbytes !

  • Tips on Understanding Microsoft Regular Expressions from GlobalKnowledge

“Microsoft has introduced regular expressions for the main purpose of normalizing E.164 numbers and allowing users to dial numbers by a pattern they are accustomed to, and to define routes to send to an external gateway for PSTN connectivity. This white paper focuses on the regular expression process and the syntax used by the Microsoft OCS (Optional Component Manager) Expert to create a dial plan and normalization rules that will properly be interpreted and executed. Regular expressions are also used for Address Book translations of numbers in the user contact database that would have to be converted to the E.164 format. This paper also examines tool sets that can be used right on your XP or Vista computer to test regular expression constructs without disturbing the corporate production environment.”

http://images.globalknowledge.com/wwwimages/whitepaperpdf/WP_Parlas_MicrosoftOCS.pdf

  • regular-expressions-cheat-sheet-v2.pdf

http://www.addedbytes.com/download/regular-expressions-cheat-sheet-v2/pdf/

Why Microsoft use TPC instead of UDP for SIP ?

July 21, 2009 By: Yann Espanet Category: Interoperability

Is better to use TCP rather than UDP for SIP message fragmentation concerns ?

First concerns : maximum size of a UDP datagram

The maximum message size for a UDP datagram socket is limited by the maximum size of an IP datagram and the size of the UDP datagram socket buffer.
The maximum size of an IP datagram limits the maximum message size of a UDP message to 65507 bytes. Therefore, using the maximum socket buffer size will allow multiple maximum-sized messages to be placed on the send queue. The default inbound and outbound message size limit for a UDP datagram socket is 65535 bytes.  

The maximum message size for a UDP broadcast is limited by the MTU size of the underlying link, which is 1500 on Ehternet.

Here’s the MTU for different media :

Network                                     MTU 

Token Ring 16 Mb/s                17 914

FDDI                                           4 352

Ethernet                                     1 500

IEEE 802.3/802.2                    1 492

PPPoE                                        1 480

X.25                                               576

UDP has no fragmentation mechanism like TCP or IP, but it used the fragmentation of IP layer.

Transmission Control Protocol (TCP) is an example of a protocol that will adjust its segment size to be smaller than the MTU.
User Datagram Protocol (UDP) disregard MTU size thereby forcing IP to fragment oversized datagrams.

Conclusion :

TCP provide transport-layer fragmentation. If a SIP message is larger than the MTU size, it is fragmented at the transport layer. When UDP is used, fragmentation occurs at the IP layer. IP fragmentation increases the likelihood of having packet losses and makes NAT and firewall traversal difficult, if not impossible. This feature will become important if the size of SIP messages grows dramatically.

 Second concerns : Multiple-Stage Fragmentation

While the fragments above are in transit, they may need to pass over a hop between two routers where the physical network’s MTU is only 1,300 bytes. In this case, each of the fragments will again need to be fragmented. The 3,300 byte fragments will end up in three pieces each (two of about 1,300 bytes and one of around 700 bytes) and the final 2,100-byte fragment will become a 1300-byte and 800-byte fragment. So instead of having four fragments, we will end up with eleven.

 IPfragmentation

This example shows illustrates a two-step fragmentation of a large IP datagram. The boxes represent datagrams or datagram fragments and are shown to scale. The original datagram is 12,000 bytes in size, represented by the large gray box. To transmit this data over the first local link, Device A splits it into four fragments, shown at left in four primary colors. The first router must fragment each of these into smaller fragments to send them over the 1,300-byte MTU link, as shown on the bottom. Note that the second router does not reassemble the 1,300-byte fragments, even though its link to Device B has an MTU of 3,300 bytes.

 

What about the impact on SIP performance ? A CPU problem, not a network problem ..

Today’s SIP application is mostly operating over the unreliable transport protocol UDP. In lossy environment such as wireless networks and congested Internet networks, SIP messages can be lost or delivered out of sequence. The SIP application then has to retransmit the lost messages and re-order the received packets. SIP has a builtin process for dealing with the unreliable nature of UDP, however to parse the SIP data a transition from kernel to usermode is required. This additional processing overhead can degrade the performance of the SIP application.

Conclusion : 
It’s not a network problem, but a CPU problem !

Take a look at this study :
http://www.research.ibm.com/people/n/nahum/papers/sigmetrics07-sip-perf.pdf

Security concerns ?

  • UDP packets are not interrogated in the same manner as TCP packets making it an easy way to exploit SIP problems.
  • UDP posses a problem for NAT traversal, QOS, and fragmentation.
  • Authentication – By using TCP you can leverage TLS and SRTP to make it extremely difficult to ease drop on conversations.

 

What about SCTP to transfer SIP messages ?

Ref : RFC 4168
http://www.rfc-editor.org/rfc/rfc4168.txt

Therefore to solve this problem, the researchers are looking for a more appropriate transport layer for SIP. SCTP, a transport protocol providing acknowledged, error-free, non-duplicated transfer of messages, has been proposed to be an alternative to UDP and TCP. The multi-streaming and multi-homing features of SCTP are especially attractive for applications that have stringent performance and high reliability requirements and an example is the SIP proxy server.

Ref :
http://www.bth.se/fou/cuppsats.nsf/all/7d8446ad03071d5ac12575890073deec/$file/Thesis%20Report%20Final.pdf

But additional testing need to be done, and Microsoft doesn’t support SCTP for the moment !

Another article can be found there :

Increased SIP Performance with Stream Control Transmission Protocol
http://blog.tmcnet.com/cross-talk/2008/07/increased-sip-performance-with-stream-control-transmission-protocol.html

SCTP and its applications
http://www.apng.org/9thcamp/Slide/Satit.pdf

 

Is Microsoft does not support UDP for SIP implementation at all ?

Right in OCS but not in his small business product !, Microsoft SIP Solution for Small Business support UDP !!

http://www.microsoft.com.nsatc.net/responsepoint/resources-whitepapers-sbsintegration.aspx

“Microsoft Response Point is complete phone system software designed specifically for small businesses with 1-50 employees. In the past, deploying an advanced phone system to a small business was considered impractical.”

“Network Protocols
Response Point transfers data and communicates using standard protocols. Generally, there should not be any network configuration changes needed to support these protocols. All hardware and software connected to your network—the router, SBS, and other computers— should work automatically with the following protocols:

 Session Initiation Protocol (SIP over UDP) to establish and coordinate phone calls between devices.

  • Real-time Transport Protocol (RTP) to transmit audio over the LAN in the G.711 μLaw and G.723 encoding formats.
  • Secure Hypertext Transfer Protocol (HTTPS) and Extensible Markup Language (XML) to communicate configuration settings between the Administrator program and base unit, or the Assistant program and base unit.
  • Dynamic Host Configuration Protocol (DHCP) to acquire IP addresses; to discover the location of the base unit; and to discover phones and phone line adapters that have not been provisioned yet.
  • Hypertext Transfer Protocol (HTTP) and Extensible Markup Language (XML) to provision phones and phone line adapters.”

 

 

Strange Error message : OCS R2 not supported on Windows 2008 R2 RC ?!!!!

July 16, 2009 By: admin Category: Office Communication Server

ocserror

Screenshot of trying to install OCS R2 64bit 3.5.6907.0 on Windows 2008 R2 Standard 6.1.7100 Build 7100 …..

Echange 2010 and Windows Mobile 6.5 preview on Technet Edge

July 07, 2009 By: Yann Espanet Category: Exchange 2010

Adam Glick from Microsoft demonstrates the newest Exchange 2010 features for Windows Mobile 6.1/6.5 :

  • conversation view
  • ignore/move conversation
  • voice mail preview
  • voice to text
  • get free/busy
  • allow/block/quarantine phone list
  • new reporting
  • Windows Mobile OS automatic update
  •  

     

    Exchange 2010 Video on Technet …

    July 07, 2009 By: Yann Espanet Category: Exchange 2010, Webcast

  • TechNet Webcast: Exchange 2010 Voice Mail enabled by Unified

    Exchange 2010 Unified Messaging is Microsoft’s second generation unified messaging and voice mail solution. In this webcast, learn about the features,

  • TechNet Webcast: Storage in Exchange 2010 (Level 300)

    Exchange 2010 carries on the tradition that began in Exchange Server 2007 of dramatically reducing mailbox storage costs. Attend this webcast and learn how

  • TechNet Webcast: Exchange 2010 High Availability (Level 300)

    In this webcast, we reveal the changes and improvements to the built-in high availability platform in Exchange Server 2010. Exchange 2010 includes a unified

  • Exchange 2010: The Future of Collaboration

    19 Jun 2009 The upcoming release of Exchange 2010 can help you achieve better business outcomes while controlling the costs of deployment,

  • TechNet Webcast: Exchange 2010 Management Tools (Level 300)

    Exchange 2010 includes new capabilities that make the operation of your Exchange environment more efficient. Learn how we’ve made the Exchange Management

  • Updates to Exchange Server 2010 specifically to support law firms

    This event will provide you with important information on the changes made to the upcoming Exchange Server 2010. The discussion will focus on how Microsoft

  • Exchange Server 2010 (Beta) Setup and Deployment Virtual Lab

    17 Jun 2009 They wish to install Exchange Server 2010 on a single server. Northwind Traders must make sure that the server is adequately prepared and

  • ES: Microsoft Unified Communications Solutions – Microsoft

    Microsoft’s product plans for the next release code named “Exchange 2010 focuses around three o Operational Flexibility – With Exchange Server 2010,

  • Microsoft My Phone service open to public ! synchronize, archive and browse your SMS on the web and more …

    May 21, 2009 By: admin Category: Office Communication Server

     

    Hands on with Microsoft My Phone: pretty neat, actually

    Microsoft® My Phone syncs information between your mobile phone and the web, enabling you to:

    • Back up and restore your phone’s information to a password-protected web site
    • Access and update your contacts and appointments through your web account
    • Share photos on your phone with family and friends

     

    Microsoft has announced that they upgraded the My Phone website to support 19 additional languages plus some improvements based on users feedback. There is no details about the improvements. From now on, the My Phone beta is open to the public.

    Promotional codes are no longer needed !

     
    To start using the service, point your Windows Phone’s browser to http://myphone.microsoft.com.