Subscribe
Lync,Exchange,VoIP,telephony

Archive for the ‘Office Communication Server’

Office Communicator for various phones : IPhone, Blackberry, Java Phone

November 01, 2009 By: Yann Espanet Category: Interoperability, Office Communication Server

Communicator for Apple IPhone :

iDialog is an OCS 2007 and OCS 2007 R2 compatible client for the Apple iPhone and iPod Touch.

IMG_0026IMG_0024

Participate in IM message and Forward incoming OCS Voice Calls

iDialog supports the following features:

  • Display OCS contact list and presence information
  • Set presence information, including custom note and location data
  • Search corporate Global Address List (GAL)
  • Send and receive Instant Messages (IM)
  • Add multiple participants to an IM conversation
  • Manage and participate in multiple IM conversations simultaneously
  • Control incoming OCS Voice calls (forward/redirect an incoming OCS call to another device, such as an iPhone, voice mailbox, or another phone number)
  • Call a phone number listed on a contact card (This feature is not available on iPod Touch devices)
    Send an email to an address listed on a contact card

http://www.modalitysystems.com/idialog/

Communicator for BlackBerry :

What you can do :

  • Initiate and manage group chat sessions of three or more participants from your smartphone
  • View the presence status of contacts, such as online, busy, do not disturb, be right back, away or appear offline and set your own status to inform others of your availability
  • Enjoy a synchronized contact list, with the same contacts available on your BlackBerry smartphone and your computer
  • Find contacts quickly with the quick find function and picture association
  • Receive alerts when team members become available

Download the BlackBerry Client for use with Microsoft Office Communications Server 2007

http://na.blackberry.com/eng/services/server/exchange/ocs2007.jsp

 

Communicator for Java Phones :

Java Based Phones (Nokia S40/S60 series and Motorola RAZR v3 Devices)

Microsoft makes a version of Office Communicator Mobile R2 available that is optimized for Java. There are different versions available depending on your phone (listed below). OCS 2007 R2 must be running on the backend.

a) Office Communicator Mobile 2007 R2 for Java (Nokia S60 320X240 resolution)

– Supported Phone Models: E51, E66, N95;  Supported Telecom Network: Vodafone and Orange networks in Europe, Airtel and Vodafone networks in India.

b) Office Communicator Mobile 2007 R2 for Java (Nokia S60 240X320 resolution)

– Supported Phone Models: E51, E66, N95;  Supported Telecom Network: Vodafone and Orange networks in Europe, Airtel and Vodafone networks in India.

c) Microsoft Office Communicator Mobile 2007 R2 for Java (Nokia S40)

– Supported Telecom Networks: Vodafone and Orange networks in Europe, Airtel and Vodafone networks in India;   Supported Phone Models: Nokia S40 5th edition phones including: 3120 Classic, 3600 Slide, 5220 XpressMusic , 5310 XpressMusic , 5610 XpressMusic, 6212 Classic, 6300i, 6301, 6500 Classic, 6500 Slide, 6600 Fold, 6600 Slide, 7210 Super Nova, 7310 Super Nova, 7510 Super Nova, 7610 Super Nova, 7900 Prism and 8800 Arte

d) Microsoft Office Communicator Mobile 2007 R2 for Java (Motorola Razr V3 U.S.)

– Supported Telecom Network: AT&T (US); Supported Phone Models: Motorola RAZR V3xx

Remove Plus From Request URI OCS 2007 R2 : bypass RFC 3966 compliance for OCS R2

October 25, 2009 By: Yann Espanet Category: Interoperability, Office Communication Server, SIP trunk

How to make OCS 2007 R2 non-RFC 3966-compliant ?
Office Communications Server 2007 Mediation Server uses a plus sign (+) to prefix E.164 numbers in the Request Uniform Resource Identifier (URI) for outgoing calls. Unfortunately, some IP-PBXs don’t comply with RFC 3966 and do not accept numbers that are prefixed with a plus sign (+).

In OCS 2007 R2 use a new WMI setting, RemovePlusFromRequestURI, which is described in this TechNet article called Enterprise Voice Server-Side Components.
According to the TechNet article, Office Communications Server 2007 R2 introduces two new Windows Management Instrumentation (WMI) settings for Mediation Server. The first new setting specifies how Mediation Server processes E.164 numbers in outbound calls. The second new setting enables Quality of Service (QoS) marking on Mediation Server.

Handling E.164 Numbers in Outbound Calls (OCS 2007 R2)
By default, E.164 numbers in the Request Uniform Resource Identifier (URI) for outgoing calls are prefixed with a plus sign (+). Most Private Branch eXchanges (PBXs) process such numbers without problem. Certain PBXs, however, do not accept numbers that are prefixed with a plus sign.

To ensure interoperability with these PBXs, Mediation Server has a new WMI Boolean setting called RemovePlusFromRequestURI, which has two values: TRUE and FALSE. If your PBX does not accept numbers prefixed with a plus sign, the value for the WMI setting should be set to TRUE, which causes Mediation Server to strip the plus sign from a Request URI for outbound calls. The default is FALSE, which causes Mediation Server to pass the outgoing INVITE’s Request URI, To URI, and From URI unchanged.

The TechNet article also discusses compatibility with PBXs that do not support the plus (+) sign.

By default, E.164 numbers in the Request URI of outgoing calls from Office Communications Server 2007 R2 are prefixed with a plus sign. Most PBXs process such numbers without problem. Some PBXs, however, do not accept numbers that are prefixed with a plus sign and do not route those calls correctly.

Additionally, the From headers of inbound calls from some PBXs does not conform to RFC 3966 because they are not prefixed with a plus sign. Microsoft Office Communicator cannot resolve these numbers to the correct user.

To assure interoperability with these PBXs, Office Communications Server 2007 R2 has a new Mediation Server setting for WMI called RemovePlusFromRequestURI. This setting can be set to YES or NO. The default value is NO.

– If a PBX downstream from the Office Communications Server 2007 R2 Mediation server does not accept numbers prefixed with a plus sign, set the value of RemovePlusFromRequestURI to YES. This causes Mediation Server to remove the plus signs from the Request URIs of outgoing calls. It also causes the plus signs to be removed from the To and From URIs.
– If the downstream PBX accepts numbers prefixed with plus signs, leave the value of RemovePlusFromRequestURI set to its default value of NO. This causes Office Communications Server 2007 Mediation Server to pass Request URIs, To URIs, and From URIs unchanged (that is, with plus signs).

Extract from : http://tmcnet.com

Choose between insecure or “not working” : To apply or not MS Crypto API security update KB974571 on OCS …

October 19, 2009 By: Yann Espanet Category: KB articles, Office Communication Server

You have to choose between beeing secure or stop working with OCS according to Microsoft !:

Your evaluation period may be expired with this error in event viewver :

Event source: OCS Server
Event id: 12290
Event text: The evaluation period for Microsoft Office Communications Server 2007 R2 has expired. Please upgrade from the evaluation version to the full released version of the product.

So, you follow the “Upgrading Office Communications Server 2007 Evaluation to the Full Released Version” document :

http://www.microsoft.com/downloads/details.aspx?FamilyId=54A5521D-A928-46F2-8BF7-125DA636DD2E&displaylang=en

BUT here’s the result :

OCS Setup log :

Failure
[0xC3EC78D8] Failed to read the Office Communications Server version information. This can happen if the computer clock is not set to correct date and time.

 

After some research I’ve found that the workaround was to remove the MS Crypto API security update KB974571. So I removed the update, rebooted the machine, and OCS 2007 R2 was up and running again, without any issues.

What is the position of MS regarding this issue :

http://support.microsoft.com/kb/974571/en-us

Microsoft recommends to postpone installing KB974571 on any LCS 2005 / OCS 2007 /OCS 2007 R2 servers.

Microsoft is investigating this issue, and will determine the most appropriate way to address it. Customers who are not running OCS or LCS server are not affected by this known issue, and can safely ignore this issue.

Customers who have deployed the OCS or LCS product on a server should assess the risk that is involved to decide whether to install the security update on that server. These customers should revisit this Knowledge Base article often, because this article will be updated as soon as more information and a resolution are available.

Nice one from MS !

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 froma external mobile or a PSTN phonetrough the sip trunk and answer the call on eithera 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 withother 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 TCP 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 …..