What happens when I call 911 from my Skype for Business or Teams mobile client?

Now that calling in Teams is GA, you may be wondering, what happens when you call 911 with Microsoft Phone System using a desk phone or full client?  I cover that in more detail in another blog post, but basically the call is intercepted by a certified 911 operator and they confirm that you’re in the location assigned to you in the portal before delivering your call, if not, they correct it and get you to the correct emergency dispatch (PSAP).

But what if you’re using your mobile client with Skype for Business or Teams?  It doesn’t matter if you’re in the cloud or not, if you’re using Microsoft as a telephone provider or not (though this is the only way to get Teams), that call will go through your cell phone provider.

Why?  Well, there’s a few reasons.  The first is simply that it’s an external connection, and we can’t locate you (no LIS or location information service) if you’re connected through an Edge server.  But in the cloud EVERYONE is connected through an Edge server and there’s no dynamic location services yet anyway.  Well, Microsoft assumes and rightly so, that your cell phone’s GPS is going to do a better job of locating you than whichever service you may be employing.

Too afraid to test out E911 calling on the mobile clients?  No problem, I did it for you!

Here we are making a call from the Skype for Business Mobile client.  This is an iPhone, so once you hit the call button, it sends the call to the mobile phone which asks me to confirm the call by hitting the Call button again.  Once I hit that, I’m on the line with police using my mobile phone only.

And now that calling is available in Teams, let’s make the same call from the Teams Mobile client to make sure they didn’t forget this important feature.  Of course they didn’t, and it’s the exact same experience.

It’s always important to test E911 services with any solution.  However, to avoid fines and to simply be considerate, please call your local dispatch’s non-emergency number first and ask permission to find out if it’s a good time.  In some metropolitan locations you will need to schedule your test calls in advance to avoid fines.  In the suburbs, they don’t always have many calls happening and you may be OK to make that call immediately after you ask permission.  When they answer, remember that your first statement should be that the call is not an emergency, but rather a test.  Ask them to provider the phone number and location you’re calling from to validate your deployment, and ALWAYS BE POLITE!

 

6 thoughts on “What happens when I call 911 from my Skype for Business or Teams mobile client?

  1. Pingback: Monthly IT Newsletter – November 2017–January 2018 – Guy UC World

  2. Calynn Ihnat

    Hi Anthony,

    I am in customer development at Nextplane Inc who is the federation provider for Skype for Business, Cisco Jabber, IBM Sametime and others. I am looking to talk with Teams MVP’s about what they are hearing regarding federation capability with Teams. I am wondering if you have heard anything about Microsoft Teams opening up their API’s (SIPP or XMPP) like they did with Skype for Business. If you have a contact or other MVP’s that could know this answer I would appreciate some help in finding the right people.

    Thanks for any help and if you want to see BOTS we have built for Skype for Business we would love to show them to you.

    Regards,

    Calynn

    Reply
    1. C. Anthony Caragol Post author

      Thanks Calynn! I’ve been following you guys since the Lync 2010 days when you were the only option for a lot of this stuff. At this point, I haven’t heard of people asking to federate Teams with other platforms, but then again, Teams federation with Skype isn’t even in there yet. 🙂 Just a roadmap item coming soon. I can’t imagine people wouldn’t want this, though keep in mind Teams isn’t speaking SIP like Skype was. Not sure on the APIs. Ping me on LinkedIn if you want, perhaps an online survey and I could spread the word to other MVPs.

      Reply
  3. Ross Worth

    Hi, old one here but in response to http://www.skypeadmin.com/2016/08/09/skype-database-can-find-pstn-conference-id/ (comments disabled). I have found how you calculate the PSTN Meeting ID.

    The calculation uses the authorityId and localId fields in the confernce table. These are then run through the algorithm below. This was found by de-compiling dbanalyze.exe

    I have made a little c# utility that takes the input as strings and then delivers the result. Drop it in Visual studio and have a play, next step would be to convert to a DB stored procedure.
    ###################################################################
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApplication2
    {
    class Program
    {
    static void Main(string[] args)
    {
    Console.WriteLine(“Calculate PSTN ConfID”);
    Console.WriteLine(“Enter AuthorityID and Push Enter”);
    string Authority = Console.ReadLine();
    Console.WriteLine(“Enter LocalID and Push Enter”);
    string LocalId = Console.ReadLine();
    string result = EncodeMeetingId(Authority, LocalId);
    Console.WriteLine(result);
    Console.WriteLine(“End”);
    Console.ReadLine();
    }

    public static string EncodeMeetingId(string authorityId, string localId)
    {
    char[] chArray = authorityId.ToString().ToCharArray();
    char[] chArray2 = localId.ToString().ToCharArray();
    StringBuilder builder = new StringBuilder();
    int repeatCount = 5;
    builder.Append((char)(0x30 + chArray.Length));
    repeatCount–;
    builder.Append(chArray);
    repeatCount -= chArray.Length;
    repeatCount -= chArray2.Length;
    if (repeatCount > 0)
    {
    builder.Append(‘0’, repeatCount);
    }
    builder.Append(chArray2);
    int num2 = builder.Length – 1;
    if (builder[num2] != ‘0’)
    {
    char ch = builder[0];
    builder[0] = builder[num2];
    builder[num2] = ch;
    }
    for (int i = 1; i <= (num2 / 2); i++)
    {
    char ch2 = builder[i];
    builder[i] = builder[num2 – i];
    builder[num2 – i] = ch2;
    }
    for (int j = 1; j <= num2; j++)
    {
    int num5 = builder[j – 1] – '0';
    int num6 = builder[j] – '0';
    builder[j] = (char)(0x30 + ((num6 + num5) % 10));
    }
    return builder.ToString();
    }
    }
    }

    Reply
      1. C. Anthony Caragol Post author

        Very cool, I tried it and it works. Similar to dbanalyze, I’m getting a different number than the invite shows, but it lets me into the same meeting using the two different numbers.

        Reply

Leave a Reply

Your email address will not be published. Required fields are marked *