The purpose of this blog post of mainly for my own memory and to share my experiences to date with deploying E911 with Microsoft Lync in a large organization. This post is not a complete post on how to setup E911 and all of its capabilities.
Last year when I was at Ignite 2015, I attended one of the sessions that talked about E911. The speaker asked who had deployed E911 services with Lync 2013 to raise their hand. I was shocked that in a large conference hall, only I and a few others raised their hands. Much of what I am about to discuss is not documented and as stated previously are my own experiences. Let’s get started…I hope this post will help educate others looking for this info and help clarify some of the undocumented.
To begin we need to understand what the difference between 911 and E911 is. In a nutshell, when you dial 911 that goes over a NON E911 certified circuit, you will likely reach some 911 call center somewhere in the Continental North America. This operator will ask you for your location (City/Street/State/Type of emergency….). While this is good that you reach someone having to answer all these questions during an emergency event can be less than easy. Here’s an example of how things can go wrong when the 911 operator isn’t presented your location. While this video is comical it helps to depict the serious nature of an emergency call where the caller can’t provide accurate location info.
Now, what about E911. E911 is Enhanced 911. Great but what does “Enhanced” mean? The goal of Enhanced 911 is when a user dials for emergency services, that call will be directed to the local Public Safety Answering Point (PSAP) for that location ON THE FIRST HOP (thus not going through North America Dispatch). The great thing about this is unlike in the YouTube video, the 911 operator WILL get the Location of the call, and thus the emergency services operator will immediately know where you are. This is a GOOD thing. In the Lync / Skype world E911 can truly only be deployed if you procure an E911 service provider. The next question is what exactly is this service provider doing? We’ll get to this in a minute. In order for E911 to work you must populate your Location Information Services (LIS) database with valid MSAG addresses. I keep meaning to write a blog post on how to populate LIS but it’s a big topic and hard to define in writing. Assuming you have your LIS database all correct, if you dial an emergency dial string (911 for example) and that call gets routed over a non-certified E911 trunk, that call will still make its way to North America Dispatch. The North America Dispatch will likely need you to validate your address and then transfer you to your counties local PSAP. So it’s important that you do procure an E911 service provider and an E911 trunk.
Back to the question, what exactly is the E911 service provider “providing” to you and your organization? Well they provide a very valuable service. When you populate LIS, you must validate all addresses you populate in LIS against the E911 service providers Master Street Address Guide (MSAG). After all your addresses have been validated and committed (published-cslisconfiguration) when you call for emergency services, the E911 service provider will steer that call directly to the PSAP for your location. But how exactly are they doing this? Here’s how I think about it. When you call 911 and you have configured Lync and your Session Boarder Controller (SBC) correctly, that call will be sent down a dedicated E911 SIP circuit. Within the INVITE of this call, a unique XML file containing Presence Information Data Format Location Object (PIDF–LO) will be included. Within this PIDF-LO file is the location data you entered into LIS. Now, it’s the job of the E911 service provider to open that XML PIDF-LO file and compare it to its MSAG so it can steer the call off to the local PSAP for your location. I think of it as the E911 service provider has a magical excel file that states if the City is Rockville and the State is MD, in my case the E911 service provider says “Oh in my excel file if I see these two things, I route that call to the Montgomery County Maryland PSAP”. Again, this is highly simplified but it works to help paint the picture of some of the mechanics. So now we’ve got the call to the PSAP…onto some of the Good the BAD and the UNDOCUMENTED.
GOOD & UNDOCUMENTED:
It works. If you populate LIS appropriately and you buy an E911 sip trunk with an E911 service provider that is approved for Lync/Skype, the local PSAP will receive the location of the call which is an amazing help for both the person in distress and the operator. If a user sets his/her presence as DND or is “presenting” thus in a presence mode that does not allow inbound calls/im’s should that user dial 911 the users Presence will be updated to available. The reason it does this is should that 911 call be disconnected, 911 will still be able to call the user back. The UNDOCUMENTED part of this is some technet blogs state this will only happen for 2 hours before Presence and call forwarding rules will get re-enabled.
BAD & UNDOCUMENTED:
SCREEN POP – Notification URI
With Lync / Skype you can do a number of other very cool things such as give a screen pop to some group of staff when an Emergency call is happening. That is imagine all your security staff have Lync/Skype 4 Business accounts and are logged in to their clients. When 911 is called, all of those Security staff will get a Screen Pop outlining who is calling and from where. This is all done through the Notification URI field of the Location Policy. Per this KB it states:
“Notification URI One or more SIP Uniform Resource Identifiers (URIs) to be notified when an emergency call is made. For example, the company security office could be notified through an instant message whenever an emergency call is made. If the caller’s location is available that location will be included in the notification. Multiple SIP URIs can be included as a comma-separated list. For example, “sip:email@example.com”,”sip:firstname.lastname@example.org”. Distribution lists are supported. The string must be from 1 to 256 characters in length and must begin with the prefix “sip:”. Before you click in the Notification URI field an example is displayed.”
I’ve highlighted the important part. In testing (Polycom VVX running 5.4.3.X and CX running 4.0.7577.4463) when leveraging a DL in the Notificatoin URI field, no screen pop was given to anyone in the DL. The only way I was able to get staff to be alerted when using a Hard Phone was to update the Notificatoin URI field with the SIP address of individual staff. I have reported this to Microsoft and should i get more information I will update this post. If you are using this feature please ensure that your Notification URI is with SIP addresses and NOT DLs. If someone has it working with a DL please comment on what CU your backend is running and what Firmware Level you have on your phones.
One last thing on the Screen Pop. Should a user call 911 from a Lync End point and should you have your location policy configured to notify via IM some list of people, should someone in the Notification URI field have their presence set to DND or Presenting or any other Presence that override being alerted, that staff member will NOT get notified. Thus if you only want to alert 1 person and should that person be in one of those Presence states, nobody will be notified. This is undocumented. Microsoft should override the presence state of those in Notification URI field when 911 is called to ensure someone on site is alerted.
Dual Homed Computers – Laptops
Laptops are great. They allow us to work anywhere, any time, and any place. Here’s the Bad part about laptops when it comes to 911. Follow along with me for the typical user staring their day. At 8am, Bob shows up for work. He docks his laptop and turns it on. Bob gets to the Control Alt Delete screen and puts in his user credentials. A few minutes later Bob is logged in and his Lync / Skype client starts. Because Bob is on a laptop he will have a wired and a wireless connection. Because the client will prefer the wired connection the Lync / Skype client does a web query for its location via the wired interface. As we know it’s easier to define more granular wired location info in LIS than it is for wireless (example: With Wired connection and should you have a port map of your building, you could provide to 911 the Office number of where the person is location. With wireless, it’s possible for you to connect to an AP that is on the floor above or below your office). So let’s assume that we did have a wire map and did configure LIS with this wire map. Now Bob’s client has Location that states his Civic address AND office number. How cool is this (note that to get Office number your computer must support LLDP. Currently only windows 8 and up support LLDP). Should Bob call 911 from his Lync / Skype client (remember what we talked about above, if you want to loop in guards, you must do it through the client) and now not only does 911 know where Bob is, but so do the Security Guards. Ok so let’s fast forward and Bob has a meeting in his building. Bob un-docks his laptop and thus he loses his Physical connection to the network. When this happens, Bob’s Lync / Skype client will sign out and sign back in and register to Lync with wireless connection. As mentioned before, it’s harder to define exact location with wireless connections so it’s best practice to not place defined wireless information into LIS. That is for Wireless info in LIS you may state “NEAR – some location”. The reason you may state “NEAR” is because you could be connected to an AP on the floor above or below. Again fast forward to after the meeting and Bob returns to his office and re-docks his computer. Now his computer has a physical connection and a wireless connection. What happens here? The answer is because the client has NEVER LOST its wireless connection to the Lync FE / Skype FE, it will never use the wired connection (and thus will provide emergency personnel with “NEAR – location”. This is undocumented. It would be nice if there was a client policy that an IT administrator could configure that states “Prefer wired connection over wireless”. Set this value to $True or $False. Thus when Bob reconnects and should I set the flag to $True, Bob’s client signs out and back in and now I have more defined location info for Emergency services.
Conferencing in Security Staff – Conference URI
Another amazing feature that Lync / Skype provide is to have some defined number be conferenced into a 911 call. That is should a user dial 911, the security guard staff in your building can listen into the call or can listen into the call and be a participant (thus be able to speak). This is controlled by the Conference URI and the Conference Mode fields of the location policy. This is a REALLY helpful tool for your security staff. It will give them a heads up before 911 just shows up at your front door. Also this allows a local security staff to immediately understand what’s going on and to go to that area. Truly is an amazing feature. Here’s where there’s room for improvement. Let’s talk about how this “looping” in the security guards works. Let’s say Bob has a DID of 301-555-5555 and my location policy states that when 911 is called to conference in 301-555-1234. Cool lets walk through the mechanics. Bob calls 911 > Bob sends PIDF-LO info out the E911 circuit. In this PIDF-LO data, Bob amongst other things give the E911 provider the Conference URI, Bob’s phone number and the Conference Mode. It is now the E911 service provider to call 301-555-1234 and create the conference. When this happens the E911 service provider uses Bob’s phone number as the Caller ID, thus when 301-555-1234 gets the call, on their phone it looks like 301-555-5555 (BOB) is calling them. That’s it…nothing else. Imagine this, Bob calls 911 > Call gets routed to the local PSAP > the local PSAP is overwhelmed > Bob is put on hold > the security guard number defined in the location policy gets conferenced into that call (remember it just looks like Bob is calling them 301-555-5555) > security guard hears whatever hold message if any is played > and hangs up because they think it’s a bad call or hear nothing. It would be REALLY nice if the E911 service provider could send not only the users number (Bob) to the security guard staff but also some caller ID of “EMERGENCY CALL” back to in this case 301-555-1234 so when the guard sees the call coming in, they know it’s an Emergency call. Also it would be great to be able to configure the VVX phones to play a unique ring tone when these situations happen.
In closing, my goal of this article is to keep me straight on things I’ve hit and to share these experiences with the broader community so others can understand what to expect. Lync/S4B are truly great products and have helped my organization immensely. I am truly grateful to be able to deploy / configure this product. As with most products, there is always some room for improvement. I hope that Microsoft does improve this product especially around 911 like topics. The documentation available to the public is lacking and needs to be updated. As I hit other interesting things around 911 with Lync/Skype I’ll be sure to keep this page updated. Hopefully this post will help others. As always please feel free to comment.