SfB Server – Sonus SBC SIP Trunk – No audio during calls

I have recently been troubleshooting an issue a customer had been facing since installing a SIP trunk from a UK Provider in preparation for a migration away from older ISDN circuits. In this deployment, the customer had already configured the SIP trunk and calls inbound and outbound to and from end-user assigned numbers were working fine, two-way audio, good quality and calls were staying up without any issues.

The problem was apparent, when a call was made inbound to the on premises SfB Server PSTN Dial-in access number. Whenever a call was made to these numbers, the calls would establish, but no audio was being sent from the Conferencing Auto Attendant, greeting a callee and offering meeting ID and pin entry options.

As I hadn’t configured the SIP trunk myself I did the usual checks and reviewed the configuration of:

  • Signalling groups; which were configured correctly (inbound/outbound calls were OK)
  • SIP server tables; which were all defined for both SIP provider and SfB
  • Media lists were in place, the provider used G711 and the appropriate TLS media list was in place for SfB
  • SIP profiles were configured correctly

Using the Sonus logging tool, LX, from a bird’s eye view of the call, I could see the invite being accepted, call being setup and teared down correctly:

Call flow setupThe next step for me was to review the invite, from the outside in (inbound call), firstly reviewing the SIP invite and SDP negotiation between the provider and our SBC appliance. The invite was a routable IP address in our signalling group and SIP server table (ITSP IP) coming in to our internal IP interface for this SIP trunk…


…but then looking at the SDP negotiation, I noticed that for the media endpoint being offered within the SDP (referred to as ITSP IP2 below), the SBC did not have a static route back available to it, and all traffic to this IP address would be sent to the default route 0.0.0.0, pointing to an internal gateway (and therefore no way of reaching the ITSP):

The SDP negotiation provides valuable information, from the media processing endpoint, to the codecs and capabilities of the call. For further reading, the following are good references:

The customer has decided to strictly define the endpoints presented to them by the ITSP, in the static route table using a /32 notation and therefore would need to explicitly define each of the endpoints required for communication to ensure correct routing. In this instance, an IP address had been missed but by correctly configuring the static route table in the SBC to account for this IP (ITSP IP2), we were now being presented audio for inbound calls to the conferencing service.

An important note I would like to make is that in this scenario, it is crucial to ensure that all endpoints/networks have been accounted for – I continued to work with the customer to ensure that the static routes covered all potential endpoints as there is the potential for the ITSP to failover between endpoints and therefore reintroducing the issue we have faced above!

Advertisements

Combining Call Queues and Auto Attendants

With the increase in popularity of Skype for Business Online Cloud PBX (as it is known for now…), I have been approached on many occasions and often presented with pushback, around the limitations of Cloud PBX Call Queues.

My first response is quite simple – they aren’t designed to replace an enterprise grade business contact centre. If we take a second to think about Server Response Groups – they were never aimed at replacing Enterprise Contact Centre, more so, bridge the gap to the requirement.

So, back to the point, with Cloud PBX Call Queues, I am often approached on their capabilities and limitations.

The main one being the fact that they are single tiered, so we call a given number, enter a given queue and a call is distributed to queue agents based upon Distribution lists:

Incoming calls via a Call Queue onlyTo overcome this limitation, it is time to start combining Call Queues with Cloud PBX Auto Attendants!

Auto Attendants allow us to record custom business menu greetings/menu prompts that can then feed into a Cloud PBX Call Queue depending upon the key pressed. Auto attendants not only allow for transfers to call queues, but they also support the ability to transfer to another AA!

So, if we think about this for a second, we can record a customer business hours menu prompts (Press 1 for Sales, Press to for HR, press 3 for Marketing) that then transfers into either, another tier of options, or a given queue:

Combining Auto Attendants with Call Queues

Based upon the above logic and call flow, we can introduce tiered call queues, providing callers with several options to find the queue best suited to handle their call.

The downside to this approach; each Cloud PBX Call queue requires a service number – they aren’t infinite either…hopefully we will support SIP only call queues soon!

Admittedly, it is still not providing feature parity when compared to a Contact Centre, but by using the above methodology, we can start to build out those ACD scenarios.

Move User from Online to Server Fails

Issue:

When trying to move a user from Skype for Business Online to Skype for Business Server, the following error was being output in the Skype for Business Server Control Panel – “Index was outside the bounds of the array” – not the most helpful issue to troubleshoot!

Troubleshooting:

A customer had recently requested support for the migration to SfB Online to SfB Server for a subset of users.

After initially understanding why this migration scenario was taking place, I began to look at the configuration in its entirety:

  • All Skype for Business Servers were running the latest CU
  • The SfB Server Topology was correctly and successfully published with no warnings or errors
  • All firewall ports had been opened correctly
  • Public DNS was pointing to the on-premise estate, for all required records
  • A Shared SIP Address space had been enabled
  • The Skype for Business control panel Hybrid wizard confirmed “all prerequisites had been met”

When testing a move of a user myself, I too encountered the error the customer had been reporting, which was;

“Index was outside the bounds of the array” – not the most helpful issue to troubleshoot!

The same occurred too when trying to move a user using PowerShell, with the appropriate switches.

As we had not implemented the solution, it was time to take a step back and look at all “moving components” within this scenario, including AAD Connect and ADFS.

Resolution:

When viewing the attributes that were being synchronised from the customers AD to Azure AD, I noticed that none of the MS-RTC* Attributes were included… hmmmm…..

After speaking with the customer, I then determined that Skype for Business Server had been install AFTER the installation of AAD Connect!

We decided to “Refresh the Directory Schema” using the AAD Connect Wizard, o ensure that our SfB attributes were being synced.

Following on from the refresh, we could then complete the procedure of moving a user from Online to Server, for those that needed to be migrated.

Skype for Business Broadcast Meetings Part 1

Unless you have been hiding under a gigantic UC rock, you will have no doubt seen the recent announcement from Microsoft around Skype for Business Broadcast Meetings.

Further enforcing the agile software release strategy of Cloud first, On-Premise second – should you fall into the latter category, this is the first Skype for Business feature release that is explicitly going to depend on hybrid connectivity being in place.

In Lync Server 2013, Hybrid connectivity always felt like an afterthought, something to bolt on, to help you get from A to B but there was never any real feature benefit from doing so (IMO – it was purely for migration purposes).

With Skype for Business, this has now changed – there will actually be scenarios where hybrid connectivity is required to not only allow for selective user placement and migrations, but also to enable specific functionality, Meeting Broadcast being the first.

Continue reading

Skype for Business SEFA Util

For those wondering, Secondary Extension Feature Activation – SEFA 🙂

I am slow off the mark with this one, but for those Administrators that have been using Lync Server 2013 SEFA Util, you will be pleased to know what a Skype for Business iteration has now been released!

Download here

Continue reading

Office 365 E5 – Cloud PBX

So as Day 1 Keynote has now taken place, several additional anouncements have been made; with respect to UC, the most significant being the announcement of Office 365 E5 Licensing SKU…

From a recent summary email;

New Office 365 E5 offering: In October, we will introduce a new premium Office 365 enterprise suite. The new E5 plan will include Cloud PBX, analytics, Power BI, and advanced security capabilities, providing partners with a complete productivity and communications offering for their enterprise customers.

Stay tuned for more updates as they come through!

 

Skype for Business Mobility App Released

We were teased with the inclusion of an introduction screen in a recent update to Lync 2013 Mobile for Windows Phone, but as of Monday 6th July, version 6.0.1430.0 has been released – Skype for Business for Windows Phone.

Skype4B Intro Skype4B Version

 

 

 

 

 

 

 

 

 

At the moment, it seems to only be available for Windows Phone, with pretty much the same features, with an updated UI as it seems, but I will update if and when I find any differences, also as and when the iOS and Android apps are released – Happy Monday!

 

Centralised Logging Agent – Key does not exist

I hope everyone is well and enjoying their Skype for Business experiences, today’s post is more of a quick tip as opposed to in depth troubleshooting.

The fix will help you with you when troubleshooting at the component level though!

So a colleague of mine was having issues with Unified Messaging integration (which turned out to be a quick fix with OCSUMUTIL.exe), during the troubleshooting process I suggest he used the CLS logging tool.

Continue reading

Skype for Business CU1 Released

Good morning, good afternoon and finally good evening!

On June 19th, Microsoft released the first Cumulative Update for Skype for Business Server 2015.

More information can be found here whilst the actual download is here.

In summary, CU1 addresses the following issues;

  • KB3069206 Exchange UM Auto Attendant can’t transfer call to phone/extension number in Skype for Business Server 2015 environment
  • KB3068921 RTCHost.exe process persistently consumes many CPU resources on a Skype for Business Server 2015 Front End server
  • KB3068926 Default presence configuration parameter is incorrect on a Skype for Business Server 2015 server
  • KB3068920 Skype for Business Web App connected to a wireless network crashes during audio/video or application sharing session
  • KB3068196 Call to a RGS number cannot be transferred to an available RGS agent in Skype for Business Server 2015-based client
  • KB3068197 Skype for Business Server 2015 RGS agent receives a toast for a second call after agent accepts the first waiting call
  • KB3068931 You cannot join a Skype for Business 2015 meeting when the server is deployed in Turkey system locale
  • KB3068932 “Device is not allowed to join” when you click a Skype for Business meeting URL on a Windows Phone 8.1 phone

Keep an eye out for updates to my previous post, for details on how to apply this update!

Happy Monday!

Lync Phone Edition Devices – Not updating

During a recent engagement, I had ran into an issue updating the firmware version on Lync Phone Edition Devices.

I initially kicked off with checks around DNS, Certificates, Ports and everything checked out but phones would still not update.

Test Devices had been configured correctly (using serial number and one using MAC) – still no joy.

The IIS logs are extremely useful; Jeff Schertz has excellent blog posts on Configuring LPE for Lync and Updating LPE devices which go into reviewing the IIS logs. In summary, it enables you to confirm whether devices are communicating with the device update site running on within the front-end pool, or in our case – NOT.

Continue reading