[cisco-voip] Hotel Murder Linked to E911 Programming

Anthony Holloway avholloway+cisco-voip at gmail.com
Tue Jan 21 14:29:29 EST 2014


I've had a few requests for more details on the CURRI solution.

Please use this as development information only and consult legal counsel
before mucking with EMS in your environment.

Disclaimer complete. Time for code.

The PHP code I have developed is:



<?php



// If CUCM is making a HEAD request as keep alive, simply respond with
Headers and then quit

if ($_SERVER['REQUEST_METHOD'] == 'HEAD') {

     header('Content-type: text/plain');

     header('Content-length: 1');

     die();

}





// Otherwise, output the CURRI instructions for this call

header('Content-type: text/xml; charset="UTF-8"');



$xml = '<?xml version="1.0"
encoding="UTF-8"?><Response><Result><Decision>Permit</Decision><Status></Status><Obligations><Obligation
FulfillOn="Permit"
ObligationId="urn:cisco:xacml:policy-attribute"><AttributeAssignment
AttributeId="Policy:simplecontinue"><AttributeValue DataType="
http://www.w3.org/2001/XMLSchema#string"><cixml
ver="1.0"><continue><*greeting
identification="MonitoringWarning_00055"*/></continue>
</cixml></AttributeValue></AttributeAssignment></Obligation></Obligations></Result></Response>';



header('Content-length: ' . strlen($xml));



echo $xml;



?>



The *greeting identification="MonitoringWarning_00055"* is what tells the
system which audio file to play.  You can upload custom audio files to each
and every annunciator server.  You’ll just have to change your filename in
the code to match whats on the server.  Also, announcements in CUCM can
have a secondary announcement as backup, and so that’s kind of nice.  For
example, your primary announcement could be the full audio file, and then
your backup could be just a silent audio file.  Then, whenever there is an
issue loading your primary, the caller will just hear silence, or
experience a delay.  Really, the only time you should have trouble is when
you’re updating or changing the announcement.  Otherwise it’s just there,
not doing much, like an MOH file.



Also, how this gets limited to only 911 EMS calls is that you put your ECCP
only on your 911 translation patterns.  Otherwise, you’ll need more PHP
code to read the XML sent to you, read out the called number field, then
make a conditional based decision on that value.  I think my way keeps it
simple.



Here’s the required steps necessary within CUCM:



1.    Upload your Announcement (Media Resources > Announcement > Upload
File)

a.    Follow the instructions here:
https://<publisher>:8443/Help/en_US/ccm/wwhelp/wwhimpl/common/html/wwhelp.htm?context=ccmcfg&file=ccmcfg-060-4.html

b.    The key thing to remember is to upload it to each and every
annunciator server in the cluster

2.    Create an ECCP (Calll Routing > External Call Control Profile > Add
New)

a.    Name = some name like EMS

b.    Pri Web Service =http://<server>:<port>/path (note that port is
required even if port 80)

c.    Sec Web Service = Optional, but same deal as Pri

d.    Enable Load Balancing = Optional if you have a Sec

e.    Routing Request Timer = Optional time to wait for web server to
respond (min is 1 sec; default is 2 sec; max is 5 sec)

f.     Diversion Rerouting CSS = Not required for this solution as we do
not divert the call, we permit it

g.    Call Treatment on Failure = Fail Open is a good thing

3.    Create or modify your 911 translation pattern(s)

a.    External Call Control Profile = Set it to your ECCP from step 1



In CUCM 8.6(2) you cannot make changes to your ECCP without restarting CCM
process.  That feature is fixed in 9.0.  Also, in my testing, in 9.1(2), I
couldn’t even get it to work the first time without restarting CCM process.
 Not too mention, there is a defect (CSCui38773) in 9.1(2) that causes one
way audio in this call flow for certain SIP implementations. So watch out
for those.



You can learn more about CURRI and every other API on
http://developer.cisco.com/


I hope that helps.

On Tuesday, January 14, 2014, Anthony Holloway <
avholloway+cisco-voip at gmail.com> wrote:

> This is learning a lesson in phone system ownership, and administration,
> in the hardest way possible.
>
> On the topic of 911 strategies, I too allow both 911 and 9911 to go out.
>  I have even thought about allowing other PSTN access codes to go out as
> well.  E.g., 8911.  Though I have not yet done this.  Anyone else?
>
> On the topic of mitigating miss-dials, I leverage the CUCM CURRI API to
> play an announcement and then route the call.  The announcement can be a
> blank audio file of any duration, giving you a way to control delay outside
> of T302.  Additionally, a short announcement such as "Routing your call to
> emergency services" followed by a short 1 or 2 seconds of silence to allow
> the caller time to react and hangup if it is a miss-dial is also possible.
>
> The CURRI API is implemented in CUCM as External Call Control Profiles and
> has a fail open safety mechanism.  So, if for any reason CUCM cannot
> leverage the feature, the call simply routes.
>
>
> On Tue, Jan 14, 2014 at 2:28 AM, Heim, Dennis <Dennis.Heim at wwt.com<javascript:_e({}, 'cvml', 'Dennis.Heim at wwt.com');>
> > wrote:
>
>> I have always told customers that 911 must go out to the PSAP. If they
>> only want to allow 9-9-1-1, then they need to place stickers on the phones.
>> That usually causes them to do 911. In an attempt to avoid miss dials, I
>> have inserted a delay by changing the 911 pattern to 911? And changing the
>> inter-digit (T.302) timers to 5000-7500 ms.
>>
>> Dennis Heim | Solution Architect (Collaboration)
>> World Wide Technology, Inc. | 314-212-1814
>>
>> PS Engineering:  Innovate & Ignite.
>>
>>
>> -----Original Message-----
>> From: cisco-voip [mailto:cisco-voip-bounces at puck.nether.net<javascript:_e({}, 'cvml', 'cisco-voip-bounces at puck.nether.net');>]
>> On Behalf Of Coy Hile
>> Sent: Monday, January 13, 2014 8:29 PM
>> To: Adam Piasecki
>> Cc: cisco-voip at puck.nether.net <javascript:_e({}, 'cvml',
>> 'cisco-voip at puck.nether.net');>
>> Subject: Re: [cisco-voip] Hotel Murder Linked to E911 Programming
>>
>>
>> On Jan 13, 2014, at 6:35 PM, Adam Piasecki <apiasecki at midatlanticbb.com<javascript:_e({}, 'cvml', 'apiasecki at midatlanticbb.com');>>
>> wrote:
>>
>> > I install CUCM along with CER at Hotels and I've always just allowed
>> 911 to go out. I get people dialing 911 by accident but it's better then
>> someone not getting out.
>> >
>> > Adam
>>
>> I've done the same thing on my personal lab setups (which double for
>> voice at the house), and I've personally seen PD respond to one of my
>> company's offices because someone dialed 9-1-1 rather than 9-011-<XXXX> for
>> an international call.
>>
>> Like others have said, better to have an accidental call than to have a
>> call not go out.  I don't know any first responder personally who disagrees
>> with that sentiment.
>>
>> -
>> Coy Hile
>> coy.hile at coyhile.com <javascript:_e({}, 'cvml', 'coy.hile at coyhile.com');>
>>
>>
>> _______________________________________________
>> cisco-voip mailing list
>> cisco-voip at puck.nether.net <javascript:_e({}, 'cvml',
>> 'cisco-voip at puck.nether.net');>
>> https://puck.nether.net/mailman/listinfo/cisco-voip
>>
>> _______________________________________________
>> cisco-voip mailing list
>> cisco-voip at puck.nether.net <javascript:_e({}, 'cvml',
>> 'cisco-voip at puck.nether.net');>
>> https://puck.nether.net/mailman/listinfo/cisco-voip
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://puck.nether.net/pipermail/cisco-voip/attachments/20140121/d8b0ab5e/attachment.html>


More information about the cisco-voip mailing list