Category Archives: Gateways

Lync Call Concurrency Calculator

Sizing appropriate hardware, bandwidth, channels, etc. is one of key activity task during the design phase of any UC project. One value which is extremely important and help you size correctly is the concurrency level of any modality – Voice, Video, desktop sharing, etc. If you are deploying a new solution you would need the concurrency levels to size up the new environment. If you are not deploying the new solution you still require the concurrency levels for reporting/billing/bandwidth forecasting purposes.

Surprisingly, I have found getting concurrency levels (e.g. concurrent voice calls) from existing environment is pretty hard. It is something pretty straightforward to work out but either the customer doesn’t have any logging tool on their ageing PBX or the PBX vendor just don’t want to give any details which may help with Lync deployment. Even after you have Lync deployed there isn’t anywhere in the Lync Monitoring reports to tell you what concurrency levels are for any of the modalities.

Concurrency Script

Over the years I have developed various tools/scripts which I use to gather information during the design phase. One of this is the Concurrency Script. This is an extremely simple but very powerful PowerShell script. This script allows you to generate reports of what your Call Concurrency levels are not just for Lync but from PBX data as well.

All that script requires is an input of a CSV file which has StartTime and EndTime columns which essentially shows the date and time when the call started and when the call ended. The script processes this information and returns you the peak load at every minute/hour/day/week.

As the script is looking for just StartTime and EndTime, the concurrency is not limited to calls, you can calculate the concurrency of anything….literally, even something not related to Lync, PBX or even Voice!

The logic of the script is simple. The diagram below illustrates this very well:

Read More →

Building Sonus Transformation Tables…fast…very fast!!!

If you have been using Sonus Session Border Controllers (Sonus SBC’s 1000/2000) for any amount of time you probably are well aware about the amount of time transformation table entries can consume. Anywhere from few minutes for couple of transformation table entries to few hours or even days if you have got couple of 100 to create. If  you have got 100’s of these transformation table entries to be copied across multiple SBC’s…well you are in for some serious fun!

Needless to say adding creating 100’s of transformation table entries manually via GUI is tedious, error prone and highly inefficient. It certainly doesn’t seem to be sort of thing you should be wasting your or your customers time in this day and age of automation, efficiency & cost cutting!

To take the pain out of building transformation table entries I have created an Excel spreadsheet – SonusSBCTransformationTableBuilder. It allows you to build Transformation table entries offline – anywhere, without access to the SBC.

Read More →

Force Lync to Lync call via Gateway/PSTN

In one of my recent engagement there was a very specific requirement which dictated if a certain Lync phone number is called from Lync it should always be routed via a gateway (for forking, recording, etc. purposes) rather than directly to Lync. Although we never implemented this solution due to side effects I thought it will be good idea to share as it’s not very well documented.

Anyone who has spent some time designing or deploying Enterprise Voice probably have seen the below well published Voice Routing diagram. Now as you can see when someone dials a phone number from Lync except for Emergency Numbers the Reverse Number Lookup (RNL) is always performed. That means even when you are dialling a phone number of another Lync user it will eventually turn into a Lync to Lync call and be never routed via Gateway/PSTN. So to force a Lync call via Gateway/PSTN all you would have to do is make sure Lync does not perform RNL.

Source: Lync Deep Dive -Dial Plans and Voice Management Deep Dive

The trick to force Lync to not perform this inherent RNL is to Read More →

PowerShell Module for Sonus SBC 1000-2000

It’s finally here!!!! PowerShell module for Sonus SBC 1000/2000. Well it’s not an official one, but one I created out of necessity when managing numerous SBC’s.

Key Features

  1. Built-in cmdlets to query Sonus SBC for transformation tables, transformation entries, systems information, etc.
  2. Built-in cmdlets to create transformation tables and transformation entries
  3. Built-in cmdlets to reboot and backup Sonus SBC
  4. Extensibility – Query, create, modify and delete any UX resource even the one’s which don’t have cmdlets associated!
  5. Scalability – Manage Sonus SBC’s at scale. Query, create, modify and delete resources with extraordinary efficiency. 1 or 100 SBC’s, it doesn’t matter!
  6. Simplicity – Extremely simple to use, logical cmdlet naming and in-depth built-in help.


  1. Sonus SBC software should be R3.0 or higher
  2. PowerShell v 3.0 or higher
  3. Ensure you have applied the base version 3.0 license which contains the license for REST
  4. Ensure you have created a username and password for REST. For more details check out:

Getting Started

  1. Download the SonusUX PowerShell module from here Read More →

Backup Sonus SBC (UX) 1000/2000 using PowerShell & REST API’s

As discussed in previous article the REST API license is provided free of charge to all Sonus SBC (UX) 1000/2000 customers with a valid support contract when upgrading to Release 3.0.This has opened whole lot of possibilities to manage Sonus devices programmatically which wasn’t available until now.

One area which has been very tedious was backing up Sonus devices on regular basis. As with other Lync components you do want some automated way to backup the Sonus configuration as well e.g.: once a day. Until now the backups (until you already had REST API license) were manual but with REST API’s licenses all that changes. Now you can quite easily include the backup of the Sonus SBC’s as part of the overall Lync infrastructure.

We will use cURL to backup Sonus SBC’s. Make sure you have gone through my previous article which shows how to setup and login to UX using cURL. To backup the Sonus device all you have to do is issue the following command:

.\curl.exe -s -k -i https://HOSTNAME/rest/system?action=backup –data “” –cookie COOKIE -o BACKUPFOLDER\BACKUPFILE –insecure’

Make sure you replace values in RED appropriately.

Well, using cURL is all well Read More →

Accessing Sonus UX with REST API’s

With the release of version 3.0 firmware for Sonus UX1000/2000 several new features have been added. As part of 3.0 upgrade REST license has become part of the Base license hence it is available free of charge. This is one of the feature I have been most excited about. REST API support has been there in the UX’s for some time license fee was required until R3.0.

REST certainly has opened lot of possibilities to manage Sonus UX’s esp. if you have few of them to manage. I would go as far as saying REST API license probably is compelling enough reason to move to R3.0.

UX REST API and PowerShell

With Poweshell v3 we now have cmdlets which supports REST API. That means we can easily access the UX using REST API by leveraging PowerShell…Right….well…almost.

In order to access the UX login credentials are required. This is something which should be specified when a REST call is made. PowerShell fully supports parameters to add the authentication information. Once the client is authenticated the UX provides the REST client (in this case PowerShell) a session token in a cookie. All subsequent requests to access any resources on the UX are authenticated using the cookie. Now this is where it all breaks down if you are using PowerShell. I couldn’t figure out a way in PowerShell v3 to use cookie authentication with UX.

Alternatives to PowerShell

I am sure Sonus will soon release the required documentation to connect to UX using REST but with PowerShell out of question (for now) what other options we have? Well cURL is another extremely powerful client which can be used to connect to REST services. cURL is a command line tool for getting or sending files using URL syntax.


  • To get started ensure your UX is on R3.0 at minimum and you have got REST license applied (Its part of the Base license)
  • Irrespective of what REST client you use a REST Account will need to be created on the UX. This can be done by logging on to the UX web console and navigating to Settings>Security>users > Local User Management


Load Testing Gateways(SBC’S)

 There are number of tools you can use to load test SBC’s for Voice- some paid and few Open source. Lync also provides “Lync and stress testing” toolkit which can be used for testing although requires bit of work for the initial setup. SiPP is another Open source alternative which can be used for Voice deployments. The advantage of using SiPP is how quickly you can set it up.

In this article I will go through the complete process of installing & configuring SiPP to perform load testing on Sonus SBC 1000/2000. Although I will only discuss Sonus SBC’s the same process can be applied to any Gateway.

SiPP can run in different ways. Either you can run two SiPP endpoints- one acting as the server and the other as a client. You can make calls between the SiPP server endpoint and the SiPP client endpoint which go through gateway/SBC, or you can just use SiPP to make calls to a non-SiPP endpoints like a Lync client, PSTN, etc. We will be using SiPP to make calls to non-SiPP endpoints only in this article.

The high level steps are:

  • Install Cygwin – Provides necessary API’s to run some Linux apps on Windows e.g. SiPP
  • Install SiPP – The actual software which performs load testing
  • Perform load testing with SiPP

Cygwin Installation

1. Download Cygwin from

2. Start the installation by clicking Setup.exe

3. Keep clicking Next using the default settings until you reach the window below


4. In the search box Read More →