Last week we spent some time reviewing the TLS and SIP Options requirements for Microsoft Direct Routing, this week it’s payday! Time to make some final adjustments and place some calls.
For my setup, I wanted to route the outbound calls to my CPaaS, where I could do many other things besides just Origination or Termination. After some experimenting, we had our route configured and we could try some calls.
Calls were now flowing from my Teams client to my SBC and onto my CPaaS / external PSTN phone numbers. Much to my jubilation, the quality was pretty good, check it out for yourself…
Now the harder part, routing calls into Teams. For this part, I had to route to the Microsoft SIP resources + assign external numbers from my CPaaS to the Teams active users. This is where things get “interesting”.
As it turns out, the only way you can assign an external number to a user in Teams (today at least) is to run commands from a Power Shell connected to the Teams instance. Since I am a Mac user, that meant spinning up a VirtualBox, installing Windows on a VM, installing PowerShell and SFB modules. (Microsoft, please tell me there is a C# or Graph API coming for this).
Then we need to run the command to connect to the SFB resources…
It will create some remoting modules…
Once authenticated you will end up back at the prompt, where you can enter the commands to add your phone numbers.
That command looks something like this…
Set-CsUser -Identity “firstname.lastname@example.org” -OnPremLineURI tel:1234567890 -EnterpriseVoiceEnabled $true -HostedVoiceMail $true
Tech tip: Here is a link to all the Skype module commands.
If it works, it will return you back to the PS prompt. A quick look inside Teams and we will see that the number has been associated with the user as an On-premises number.
Here we see the Teams user with the assigned number inside the Team client interface…
Now, we have to route the inbound number from the CPaaS to the SBC and then onto Teams. In my case, I registered my SBC to a CPaaS SIP endpoint and used that connection to send inbound calls from my number to the SBC endpoint. The SBC then forwards the calls to the Teams SIP servers and decides where to send the media. Even though all my endpoints were in the Vancouver area, the media sometimes connected in East USA, which seems weird, maybe their Western hubs were overloaded, not sure.
Et Voila! Once everything was set up, calls inbound started working. Celebrate your small victories, as my dad always said. Here is a screenshot of me answering a call from an external number to my Teams phone number.
I added a bit of redundancy (few more servers) monitoring + failover logic and rolled it out for my buddy’s business.
He’s elated. Not only is the price right, but he now has a great deal more flexibility in how he uses the systems. He added some SIP desk phones to the mix, which now ring simultaneously when someone calls a Teams number.
I also added some SMS capabilities, TTS (Text To Speech), Call Recording and Call Whisper to his setup.
The next post will be on using external telephony resources with some of the Microsoft Phone System features like; Auto-Attendant, Call Queues, Transfer, etc.
I hope you found this article interesting. We have had good interest in the offering thus far and now are now thinking of building a complete all-in-one solution that would do all of this through an intuitive interface eg. connect external phone systems, carriers/aggregators/cpaas, buy/manage numbers, choose carriers, set up domains, add TLS certs, et al. Let us know if you think that would be something you would be interested in.
If you have any questions or comments or want your own SBC for Direct Routing, get in touch via email@example.com or give us a call 1.877.897.1952
In the last post, we talked about Microsoft’s Business Voice offer and why it’s not always a practical solution. Today we get a bit more in-depth on the Direct Routing components and what’s required for external Teams telephony and the associated SBCs.
Direct Routing is Microsoft’s way of saying, external SIP connectivity. It allows admins of Teams to create interconnectivity with the outside VoIP and PSTN world without using Microsoft’s calling plans. From the Microsoft website…
Direct Routing lets you connect a supported Session Border Controller (SBC) to Microsoft Phone System to enable voice calling features. You can view information about SBCs and online voice routes; add, edit, or delete an SBC; add, edit, and specify priority of online voice routes; and manage online PSTN usage records.
So, here we know that in order for us to connect our own VOIP phone system, I needed an SBC in the middle. Here’s a quick reminder of what an SBC does in a VoIP network…
SBCs, or Session Border Controllers, are network elements that help protect VoIP networks from malicious attacks. They also serve as a point of NAT traversal and media transcoding, to aid in the connection of VoIP endpoints.
Well, it’s not the end of the world. My favorite CPaaS has plenty of SBCs in-network so that shouldn’t be an issue. Not so fast. This particular SBC needs to be set up with some specific configuration including TLS + SIP Options, specific Contact Headers & audio codecs, and few more fiddly bits. Time to dust off my SIP tools and get started. Let’s start by seeing what happens when we try and point Direct Routing to my CPaaS SBCs…
Nope, no go. Now what’s this about the domain not being setup? O365 admin says my DNS configuration is fine, so what gives?
After spending some time with Microsoft Support, the fellow I was speaking to said he copied my setup and his config wasn’t working until he enabled Exchange and Outlook MX records in his DNS. Hmm, that didn’t sound right. I didn’t want to point all my MX records to Outlook for this test, I only want Voice and Teams chat to work. Then I noticed there is a “Skype For Business / Voice” only option when verifying your domain.
I added the DNS records and it gave me the all green as you can see above, but it still wasn’t allowing me to add the SBC.
Tech Tip: I had to actually assign a user to that domain before it would recognize that domain as being active. After doing that I was able to add my SBC domain.
The SBC in my chosen CPaaS was not directing calls to the proper Microsoft SIP signaling servers, looks like I will definitely need an SBC in between my CPaaS and Microsoft’s SIP servers.
I had no choice, if I was going to get this working I would have to use one of the certified Teams SBCs, or build my own. The certified SBCs were relatively expensive and required licensing based on per channel usage or per minute metering if you used one of their cloud images eg. Azure, Amazon. That would not fly for my friend’s business, he is very cost-conscious, not unlike most business owners.
Down the rabbit hole we go, I bit the bullet and began building up a server. The first objective was getting outbound calls to the PSTN/outside world from Teams users. From past experience, it’s always easier to start with outbound calling first, when you get that working move on to inbound. The reason being is that NAT firewalls and SIP don’t mix well, especially if they are blocking certain traffic. Sending traffic out of a NAT was always easier than getting past the firewall inbound.
I set to work on building my SBC also known as a B2BUA (Back to back user Agent). This is not brain surgery but it does take some VoIP network know-how and a good understanding of Linux.
My first stop was Kamailio.org. A great open-source SIP server project that is used in countless commercial deployments. I found some recent articles on their mail-list talking about how to setup up Kamailio with Teams, which was a great start. Before we can proceed we must address the elephant in the room, TLS.
More on that in the next “Microsoft Teams Phone System, Direct Routing, and SBCs, a journey. (pt.3)”, to be published next week!
I hope you found this article interesting.
If you have any questions or comments or want your own SBC for Direct Routing, get in touch via firstname.lastname@example.org or give us a call 1.877.897.1952
The various teams in your organization have similar and at the same time very different needs. Sales teams generally request integration with Salesforce and revenue operations tooling. Marketing, integration into toolsets like Hubspot and Marketo. Product teams need a feedback loop that will provide insights into usability and trends for customer use cases identifying gaps and popular (and unpopular) features. Customer Support needs integration into ticketing and help systems. Customer Success needs tight integration with success platforms tied to customer experiences and outcomes. All of these teams need reporting that delivers clarity on progress with established KPI/OKR targets in mind.
The implication here is that managing all of these well is a tall order for any growing business, but your communication strategy can’t take a back seat, it needs to be a first-class citizen. After all, it’s the first thing your customers will interact with to communicate with you!
Your cloud communications strategy will tie into all of your organizational disciplines, and there needs to be enough flexibility for your teams to grow. So how will you decide which providers or platforms suit your company’s needs best?
One would think it could be relatively simple. This process might start with one question; “Do you need deep feature integration and do you have developers in your command?” If the answer is no, your decision just became a whole lot simpler, meaning you should look at a turn-key offering. In reality, it’s not that simple. The lines between UCaaS, CPaaS, and Cloud Communications are becoming blurred.
Cloud Communications Platforms or CPaaS (Communications Platform as a Service) providers enable APIs, or Application Programming Interfaces for developers. Simply put, APIs equate to a toolset for developers that can be used to integrate features and functionality into web and mobile applications. In the comms space, this might be represented as SMS, Voice, Video, AI, Data Analytics, Fax (yes, fax still exists), etc. Some of these platforms also have professional services teams that can be retained for development projects. For some larger customers, platforms offer the best solution as it generally offers more flexibility and allows for a more tailored approach. The approach also requires more planning and coordination as services /features need to be built before they can be used. At the very least, a good customer success group is likely a requirement.
UCaaS / Cloud Communications Service Providers provide various services that are ready to consume by their business customers, there is no development required. Not to say that these companies do not offer APIs as well, many do, but it’s not what drives their business.
These services are generally less flexible. The providers that do provide APIs generally limit it to the features available in the existing offering. These cloud offerings generally take the place of several disparate systems, some of which used to be maintained onsite at the customer location(s). These services are the product of constant innovation in business phone systems. Early in the 21st century, we had analog phone systems that were circuit-switched and were bound by wires. Those systems either died or evolved into VoIP systems that were packets switched with layers of translation for interoperability with the systems of old. Now we have multi-modal and feature-rich cloud services that encapsulate Voice (desk phone, mobile, desktop), Video (single, multiparty, mobile and desktop), Text (ott + translation for SMS) and some form of Artificial Intelligence offering.
Even with all of these features, many larger enterprise companies require white-glove treatment with well-managed onboarding as their workflows and use cases can be complex. This means a CPaaS offering might be more applicable for their use cases, as long as the features are there to support all their use cases.
SMB (Small Medium Business) to SME (Small Medium Enterprise) seem to gravitate towards readymade offerings enabled by cloud communications service providers.
There are many great vendors to choose from on both sides of the fence and many times they are used in combination to serve customer’s needs.
As a demonstration, we can take a look at any larger enterprise customer that might have a need for a business communications system. It must accommodate administrative, sales, support, and customer success. They all will likely need Voice, Video, and Chat supplemented by some smart AI to help them reduce manual laborious tasks or augmenting their workflow. Many organizations have made a considerable investment into their customer workflow, including call center systems and networks and with that in mind, the customer is not interested in hearing about ripping and replacing equipment and networks. In this scenario, you might select a CPaaS for the call center component and potentially leverage a Cloud UCaaS (Unified Communications as a Service) offering for the business comms requirements.
Regardless of your needs, now could be a good time to be considering improving efficiency, optimizing and upgrading systems, and adding some feature enhancements. There are plenty of options and providers to choose from, all of which are competing fiercely for your business.
What tools do you use today and how are they working for you? How often do you use AI or video/web conferencing as part of your daily routine? If you prefer sharing your comments or questions privately, feel free to shoot me a text message or call anytime: (877) 897–1952 (Note: All calls will be recorded).
Most business owners will agree that it’s become much harder to justify paying the increasingly exorbitant lease rates for office space in most major cities in North America. Even Canada isn’t exempt.
Once a haven for US companies looking to hire cheaper Canadian labor, Vancouver now has the lowest commercial vacancy rate. To add insult to injury, it also has the highest price of gasoline in North America.
CBRE’s Canada Q2 Quarterly Statistics Report said that downtown Vancouver’s office vacancy rate was 2.6 percent in 2019’s second quarter, down from 4.7 percent one year previously, making it the hottest commercial office space market in North America on par with Toronto, beating out 3rd place San Francisco, where the vacancy rate is 3.6 percent.
Growth in commercial office space worldwide is also being spurred by coworking. We now see coworking facilities in a large number of major cities across the globe, although the number of new coworking space openings does appear to be slowing down when compared to the previous year.
Coworking is obviously not free. It does reduce the overhead and headache of having to manage your own office (lease, insurance, maintenance, etc) but if and organization made use of coworking facilities full-time, it could likely be more expensive than a comparable stand-alone office space, per square foot.
It doesn’t take a genius to see that not only are office spaces getting harder to find, but they are also the most expensive they ever have been. For staff, who are interested in raising a family, getting them to this expensive office is also costly. This sounds like a lose-lose proposition, why are we doing this again?
Unsurprisingly, IT organizations and software organizations that have no real need for dedicated physical locations appear to be shuttering offices and opting for coworking + remote work models.
Automattic, Gitlab, Shopify (just to name a few) have successfully made this transition, in fact, some of these companies were purposefully built as distributed companies from the get-go.
Various reports and studies have been done which seem to indicate that everyone wants to work from home. In a recent study, Buffer published the State of Remote Work where 2,500 remote workers surfaced some interesting statistics:
Zapier has also published a report(*) on the subject and the findings are quite similar in that it points to knowledge workers’ desire to work remotely:
Microsoft (Japan) is also researching work routines and recently published findings on a 4 day work week experiment, which increased productivity by up to 39.9%. This could very well increase even more if they adopted a virtual coworking model for the other 4 days.
Now that we have set the stage for what looks to be an unstoppable trend, let’s take a look at why this is not a no-brainer.
I interviewed a few companies (ranging from small to large) and asked them what their position was with remote work in mind. Some business owners and team members expressed concerns.
Some of these concerns are legitimate and it could be they will not be overcome with even the best remote work processes.
Case in point — In 2012, Marissa Mayer was hired as CEO of Yahoo! and was charged to return the former powerhouse to its glory days. Among the many things she had to fix were company culture and productivity. According to sources closer to Yahoo!, it was made clear that many of those working at the company were not getting their jobs done when working from home. A review of VPN logins and source repository access logs surfaced a gap in the lack of work being accomplished while Yahoo! staff were working from home.
In 2013, an internal letter was issued, the company mandated that remote work was to be all but banned. Here is an excerpt from that letter…
To become the absolute best place to work, communication and collaboration will be important, so we need to be working side-by-side. That is why it is critical that we are all present in our offices. Some of the best decisions and insights come from hallway and cafeteria discussions, meeting new people, and impromptu team meetings. Speed and quality are often sacrificed when we work from home. We need to be one Yahoo!, and that starts with physically being together.
Some of Mayer’s staff, the press, and many other groups let her have it, no one seemed to be impressed. It could be said that Mayer had little choice. She had to do whatever she could to turn the company around and for her, that meant taking some drastic measures. In a Forbes post, Yahoo! commented further…
“This isn’t a broad industry view on working from home — this is about what’s right for Yahoo, right now.”
At first blush, it would seem this was more about timing and the position Yahoo! found themselves in at the time. They did what they thought needed to be done to influence behavior.
This seems like an extreme case, but the same sentiment can be found in other IT and SaaS organizations worldwide. In fact, some of these companies are the creators of communications software and services we use for remote work every day. In fact, they openly promote the “work from anywhere” mantra in their own product marketing. It might seem a little hypocritical, but it is happening for many of the same reasons we have shown.
Now that we have heard the concerns, let’s talk about the potential upside. Here are some high-level benefits:
One in four knowledge workers find their commute to be among the most stressful parts of their job.*
Obviously, these benefits can contribute to a more attractive and economical approach to building a business, as long as you can overcome the concerns.
If you are still with me and undeterred, you are not alone. Personally, I have been working remotely 100% for several years in various roles with teams all over the world. I have learned a few things along the way. Here are the cliff notes.
Remote Work Guide: A good place to start is by creating a “remote work guide” document that embodies some or all of the elements listed here along with your own spin on things. Your teams may not have experienced working remotely before, they will need some guidance and direction, this is also where we set expectations eg. working hours, always-on video, etc. It could be an addendum to your existing company handbook or a completely new document, keep in mind it will grow with your company. (Note: Many miss this step and it’s likely the single most important contributing factor to a successful remote work strategy for your company or organization.)
Small Teams: You are going to need some time to plan your rollout and decide which processes and tools are going to work best for your various teams. When your teams are first getting started, parcel off smaller project teams that are tech-savvy and preferably have experience using online collaboration tools. Their experience will pave the way for everyone else. Once you have a good process that seems to be working, you can roll it out in stages for everyone else.
Always-on Video Conferencing: This may sound a bit creepy but it can actually be quite effective in preserving team spirit, fending off FOMO and helping with the isolation that some feel when working remotely. It can be done in pairs, teams or even using a water cooler approach where team members drop in and out during the day. You can even use it to bridge branch offices, like a window into each remote office. Let’s be honest, organizations are going to see a bit more opposition when introducing this concept, it will need to be actively managed. As the business leader, you will need to actively work with team members to encourage participation (eg. by leading a weekly all-hands meeting or asking them to join or lead regular video calls, etc). If managed properly this idea can be a great communications centerpiece.
Weekly all-hands Video Conference: This is less about remote work and just good business practice. I have seen this work well in traditional and remote businesses, but few business leaders do it. Weekly highlights are shared by the CEO with support from other leaders in the organization. A master slide deck is prepared in Google Slides, with input from various departments. Friday afternoons are a good time as it ends the week on a high note (and serious note if things need attention) and helps start the next week off with a positive sentiment.
Coworking Passes: In addition to virtual coworking, it’s a good idea to include at least one or two days a week of onsite coworking for those that feel they need to get out of the house and be around other professionals. This has been widely adopted by some of the larger distributed organizations. Going completely virtual can be a bit of a shock to the system, this helps ease the transition and keeps everyone feeling like they are still human.
Offsite Team Events: With the reduction or elimination of in-person face time, team-building exercises now become more important. Organize quarterly or semi-annual gatherings at your favorite coworking establishment or pick a fun recreational location. If your company is large enough, you can divide these meets into geographical pods. Schedule at least one all-hands meeting per year with some fun events to ensure everyone feels like they are part of the organization. Do yourself a favor and don’t leave this to the last minute, you will have a poor turnout, piss people off and defeat the purpose.
There are literally dozens of team collaboration tools you can use to empower your remote workers. Try as many as you can. Select tools that are intuitive and self-explanatory, this will cut down on the learning curve. Make sure the vendors you select provide mobile support so your teams can be connected via phone or tablet.
Here are some that I have used and have found work well for remote teams, in no particular order:
As this remote work thing matures, we will see more purpose-built applications that aim to bring our teams closer together, virtually.
We are already seeing some activity in this space with the recent capital raise by Tandem, which has a sidecar collaboration application that works pretty well with Slack.
Another is Sococo, which looks more like a virtual workspace with web conferencing. They take an interesting approach to how they visualize the virtual office and how team members work together. I actually think this is an intuitive idea, although it does feel a wee bit recreational. To be fair, I have not used the service.
It is expected these solutions that personalize and aid remote teams in working better together will certainly evolve. It is still unclear if customers would opt-in for purpose-built applications or just use several disparate applications to do the same job, time will tell.
The next post will speak to the future of remote work. We will be touching on AI & bots, VR & AR in the remote work realm, some of which are being used today and some are not far off at all.
If you work in a distributed company, I’d like to hear from you. What tools do you use today and how are they working for you? How often do you use video/web conferencing as part of your daily routine? If you prefer sharing your comments or questions privately, feel free to shoot me a text message or call anytime: (877) 897–1952 (Note: All calls will be recorded).
None of the ideas expressed in this post are shared, supported, or endorsed in any manner by my employer.
Communication software and development services.