Call to 911 announcement

This guide describes how to set up a notification call to a management / frontdesk extension when someone dials emergency number (911 in our example).

For setting up notification call in case customer dials support number to report emergency situation, see the document Emergency Call Notification.

Created: December 2018


Emergency Call Notification - Use Case

A user on the system dials 911. The system informs someone of the fact that 911 was dialed so that this management or front desk person knows about the event and has information about where the caller is at (extension). This ensures that if/when emergency responders arrive, someone can ensure that they are taken to the correct location of the emergency.

An example could be a hotel installation. User in a specific room (extension) calls 911 and the front desk receives a call indicating that a specific room called emergency services. Emergency responders arrive and front desk personnel directs them to the specific room’s physical location.

Notification call will show the extension which dialed the emergency as the caller ID number, plus, once picked up, will play a TTS message containing some pre-configured message as well as the extension number of the party that dialed 911.

The solution is generally as follows:

  1. Recognize 911 was dialed

  2. Use custom apps to originate a notification call.  This is a new call with no originating party on the other end.  Instead, this new call will be sent to the party(s) to be notified and then connected to a TTS message once answered.

  3. Continue routing of actual 911 call (i.e. route it to external trunk)

Note: Notification call is made through a call group to avoid having the call picked up by voicemail.

Note: Notification call is made using TTS.  Therefore, at least one premium license is required on the system.


If you build this in your system to try it, please note that the last step of the users 911 dialplan is:

Dial the Trunk -> TrunkName -> Number 911

You will want to replace 911 here with a test number of your choice until such time as you decide to put this configuration into production.  Example; replace 911 with your cell phone number so that you call to your cell phone and NOT to the live emergency 911 service!


Step 1. Set up 911 entry in users dialplan (or whatever dialplan target users use)

Below are applications used in the corresponding order:

  • Set -> ORIGINATE_TIMEOUT -> 3600
  • Set -> ORIGINATE_EXTEN -> 765
  • Set -> ORIGINATE_CONTEXT -> internalcalls
  • Set -> ORIGINATE_CHANNEL -> Local/777@internalcalls/n
  • Set -> ORIGINATE_ASYNC -> true
  • Custom application -> Originate()
  • Dial the trunk

Note: In the ORIGINATE_EXTEN, 765 is an extension number. It is a “fake” user used exclusively for call forwarding. It does not need to be online. It is simply used to forward the call to a dialplan entry that will play a TTS message to the user that is being notified.

Note: In the ORIGINATE_EXTEN, 777 is another “fake” user which forwards the call to a dialplan entry that will route it to a call group consisting of users to be notified. This is done so that the notification can ring until someone answers it.

Step 2.  Setup Forwarding Users 765 and 777 (referenced in dialplan config in step 1)

Below are preferences for user 765 (Notice the "Call Forward All" is set to send the call to 764)

Below are preferences for user 777 (Notice the "Call Forward All" is set to send the call to 778)

Step 3. Create 764 entry in users dialplan. This is the announcement that management extension will get when answering  the call.

  • Play sound -> User ${MYVAR} dialed 911. Again, user ${MYVAR} dialed 911.

Note:  ${MYVAR} is a variable that contains the calling extension (set in the 911 dialplan entry in the Set -> ORIGINATE_VARIABLES).

Note: Text other than ${MYVAR} can be changed to meet your needs.

Step 4. Create 778 entry in users dialplan. It will route the notification call to a call group.

Add extensions you want to be notified to the call group ("Notification" call group in our example). Don’t specify a timeout if you want it to ring until someone answers.

  • Call group -> "Notification".

Note: you can replace this call group application with any treatment that you would like of course. Example: if you would rather ring an external number you could use "Dial the Trunk" application. However, in our example, it makes the most sense to put the call in call group forever so that it will call users of the call group until someone ultimately answers and is informed of the 911 call.

The way it works

As a result of someone calling the emergency number (911), their call will be processed as usual. In ADDITION to routing the 911 call to a trunk, the PBX engine (Callweaver) will generate a separate call leg and ring the “Notification” call group until someone picks up the call. Once someone answers this call out of the call group they will hear a TTS message saying which extension called the emergency.

Additional Information 

In our example we used:

  • User 765 and 777
  • Dialplan Entries for Routing of 764 and 778

These arbitrary values can be changed to anything that you would like.  However, if you do use different values, be sure to change ALL references for it to the value of your choice.

Example: You want to use User of 321 instead of 765, you must of course build a user 321 instead of 765. And, you must change the reference to 765 in the 911 dialplan entry to 321 as well. This one! Set -> ORIGINATE_EXTEN -> 765

Also note that in this example we have added everything to the user dialplan since the originating call is expected to come from an interanl user dialing 911. However, this example could be tweaked to use for some other purpose that perhaps has a triggering event of a call arriving on a trunk. If you reuse this example in such a way you would want to be sure to add the originate application steps into the dialplan associated with the trunk that the call will be arriving on.