Showing posts with label sip. Show all posts
Showing posts with label sip. Show all posts

Tuesday, December 10, 2013

Regex & SIP URI

When you work with SIP trunk, you often have to write regular expression - a regular expression (abbreviated regex or regexp) is a sequence of characters that forms a search pattern, mainly for use in pattern matching with strings, or string matching, i.e. "find and replace"-like operations dixit Wikipedia.

I dont know for you, but since School, it is lways difficult for me...
So, I would like to share some basic regex for SIP trunk. You will be able to use them in IBM Sametime 9 SIP Proxy.

Any Username @ Any Domain => sip:(.*)@(.*)
Any Username @ IP Address => sip:(.*)@9.9.9.9
Any Username @ Domain => sip:(.*)@sip_domain.com
8-digit number@ Any Domain => sip:[0-9]{8}@(.*)
8-digit number, beginning with optional 9 @ Any Domain => sip:9?[0-9]{7}@(.*)
4-digit extension starting with 5 @ Any Domain => sip:5[0-9]{3}@(.*)
4-digit number not starting with 36 @ Any Domain => sip:(?!36)[0-9]{4}@(.*)

Tuesday, December 3, 2013

SIP trunks, Video MCU, Dial in/out with IBM Sametime 9

SIP trunk are very important in Telephony and Video world. With IBM Sametime 8, in order to enable SIP trunk capabilities, it was required to buy IBM® Sametime® Unified Telephony Lite. This
licence enables you to place calls to and receive calls from internal or external phone numbers, video conferencing systems or video conferencing endpoints on your desktop.

With the new licensing model of IBM Sametime 9, this license is now free of charge... It is included in almost all bundles (Communicate and Complete) - link

I forecast that almost all IBM Sametime deployments will involve SIP trunks, because it opens IBM Sametime to a entirely new world:
  • Device-based dialing for Sametime softphone functionality
  • Call non-Sametime users — reach people on any device including Polycom RealPresence audio/video endpoints 
  • Provides rich remote collaboration experience with video—reducing productivity loss, expense of travel, and telephony costs

 
SUT Lite call to a video endpoints from IBM Sametime 9 Client






In addition to enable licence in the IBM Sametime System Console, you need to define rules in Sametime SIP Proxy.
You can find two excellent guide to do it:
  • From Zero to Hero - Sametime Unified Telephony Lite: link 
  • IBM Sametime 8.5.2 Unified Telephony Lite Client troubleshooting guide: link 
These documents have been written for IBM Sametime 8.5.2 IFR1, but they are still very valuable for S9.

But, the Audio/Video media framework has slightly changed, so I would like to share with you additional elements. IBM Sametime 9 now includes a "true" MCU, providing continuous presence and the support of SIP SVC (and AVC).

In a Sametime Meeting, you can do a dial out to an endpoints via moderator Control (picture 1), but now you can also dial in. You can retrieve dial in information from conference details (picture 2).

Dial-out
Dial-in

IBM Sametime 9 & SIP trunk architecture

The four main component of the A/V media framework are :
  • SIP Proxy/registrar (P/R)
  • Conference Focus
  • VMgr
  • VMcu 
These components are linked together via REST API or SIP trunk. I have tried to summarize it in the below schema.


In order to link Sametime 9 with the outside world, I have added two SIP trunks (black lines):
  • Between external SIP server and SIP P/R
  • Between SIP P/R and VMgr
My "simple" dial plan:
  • S9 VMgr meeting: 10xx
  • SIP Endpoints: 12xx
That is my rules (order is important)


  • Rule N°1 (dial-in) redirects incoming calls for the Sametime Video meeting to the VMgr (then Vmcu)
That means, calls coming from 10.47.49.164 that have 10xx as pattern should be routed to the VMGR (FQDN: stvideomgr.ucalab.polycom.com). A dial-in flow like this doesn't involve the conference focus.
  • Rule N°2 redirects incoming calls to Sametime Client.
That means, calls coming from 10.47.49.164  should be routed to the Conference Focus (FQDN: sametime9.ucalab.polycom.com). A dial-in flow like this involves the conference focus.
  • Rule N°3 (dial-out) redirects calls to external SIP server
That means, calls coming with 12xx as pattern should be routed to the external SIP proxy (@: 10.47.49.164).

Hope it will help to deploy SIP trunks with IBM Sametime 9.

Thursday, July 26, 2012

Lotus Notes Widget & Live Text with Polycom infrastructure

Lotus Notes Widgets & LiveText are a very powerful feature of Lotus Notes to increase user productivity. Widgets and Live Text enables end users to see and act on Live Text in a document, including mail, using widgets (.XML files) created for their use (here).

Lot of examples are available on the web (For example OpenNTF.org). But, I would like to share with you a new one.
Mikkel Flindt Heisterberg has writtenan interesting article about how to developp dynamic extension  for Lotus Notes (here).

I have used it to create a Lotus Notes plugin including a SIP recognizer and the ability to do a click to call via SUT Lite using the liveText capability.
That video shows how to leverage that plugin to directly call a Polycom end-point from an email or a video meeting room from a calendar entry.




You can test it, in a demo environment, in your LN client: https://dl.dropbox.com/u/16375531/IBM/PolycomSIPWidget.zip
The plugin will recognize SIP URI (like sip:xxxx@yyyy) and will initiate a call using xxxx.
I provide that code as is, like an example without specific support.

That's just an example of what you can imagine to provide to your end-user to provide them a direct access to Polycom video infrastructure from their Lotus Notes client...

Monday, February 27, 2012

The unnoticed parameter of Sametime 8.5.2 IFR1 : sutLiteNumberMatcher

A new parameter has been presented at Lotusphere 2012. Unfortunately, that parameter has gone unnoticed : sutLiteNumberMatcher.

What is the purpose of that parameter ?

Two different approach are available to integrate an IBM Sametime with Polycom Real Presence infrastructure.
  • TCSPI adapter on the Sametime Media Manager to provide User-based dialing.
  • SIP Trunk on the Sametime Media Manager to provide Device-based dialing.
IBM Sametime Unified Telephony Lite lets users make and receive voice and video calls from their desktops using the Sametime Connect Client as a rich, standards-based audio/video softphone.
But, when you deploy an audio or video TCSPI, it will take over the voice/video channel of IBM Sametime.
So, if you specify Polycom (or other video technology) as Service Provider (picture 1), you won' be to do a call to an endpoint or a virtual meeting room (VMR) via your Sametime Phonebook or buddy list.

Picture 1 : IBM Sametime Service Providers window

In 8.5.2, the ST client automatically passed any SIP URI to SUT Lite.  Starting in IFR1, only SIP URIs that match a managed settings filter will get routed to SUT Lite.  Any SIP URIs not matching the filter will go to TCSPI. 

So, If you enter a new entry in Sametime phonebook (Picture 2) or from your buddy list (picture 3), how can you make a SUT Lite call?

 Picture 2

 Picture 3

With the famous parameter sutLiteNumberMatcher, introduced during the very interesting session ID220 "Sametime® Unified Telephony Lite: Communicating with Devices".
The idea is to override the TCSPI adapter for specific number you can have add in your Sametime Phonebook. In the IBM La Gaude Polycom environment, the dial plan of personal VMRs is 6xxx.

Procedure:

The parameter sutLiteNumberMatcher needs contain a regular expression to recognize the dial number of the video endpoint or VMR. In my environment : 6\d{3}
Any dial string matches that regular expression will be passed to SUT Lite.

In order to provision ST client with that parameter, you wil have to leverage IBM Expeditor managed settings framework to create a managed-settings.xml file and post it to an update site, clients receive new or updated preferences automatically. The managed-settings.xml file is policy-based, so you can define different sets of preferences for different users. This method applies only to Sametime® Connect clients.

In our case, the content of the managed-settings.xml will be:
<ManagedSettings>
<settingGroup name="com.ibm.collaboration.realtime.telephony.ui"> 
    <setting name="sutLiteNumberMatcher" value="6\d{3}" isLocked="false"/>
</settingGroup>
</ManagedSettings>


In some heteregeneous environment, you could have several SIP trunk with multiple dial plan. In that case, you will have to create a more complex regular expression.

  • For the SIP Trunk 1 to a audio ipbx, the SIP URI is  sip:xxx@test.com
  • For the SIP Trunk 2 to Polycom DMA7000, the SIP URI is  sip:xxx@polycom.com
The value that you will have to put in the managed-settings.xml file is :
<setting name="sutLiteNumberMatcher" value="sip:.*@(test|polycom)\.com" isLocked="false" />

See Sametime wiki for more information about to setup the managed-setting.xml: here
See Lotus Notes/Domini for more information about to setup the managed-setting.xml: here 

Troubleshooting:

1/ Check the content of this file : com.ibm.collaboration.realtime.telephony.ui.prefs in that folder file:///C:/Users/%username%/AppData/Roaming/Lotus/Sametime/.metadata/.plugins/org.eclipse.core.runtime/.settings
You should find that line :  sutLiteNumberMatcher=6\\d{3}

2/ Activate that level of log : com.ibm.collaboration.realtime.telephony.ui.level=FINEST
You can find how to enable finest level of log here.

After enabling the right level of log, you will be able to read in the log file this line :
com.ibm.collaboration.realtime.telephony.ui.ServiceProviderUtilisSutLiteOverride ->  SUT Lite matcher 6\d{3} matches true/false

P.S: Open a service request with IBM Support to request a hotfix for Sametime 8.5.2. IFR1 to leverage that parameter.

All this test has been done with Todd Page (Polycom) & Fabrice Duband (IBM).