Personal safety network

A personal safety network (PSN) is provided in which authorized members of the network may rapidly and efficiently communicate with each other regarding threats, emergencies, or other circumstances. The PSN provides virtually real-time, multi-way messages among at least the members of a predetermined group of authorized members of the PSN. The PSN may integrate sensor data from security devices such as cameras, badge readers, and smart locks, with messages created by authorized members. The PSN may also include a location data database for maintaining virtually real-time location information for authorized members. Messages may be composed using speech recognition as an alternative to typing. A system administrator may provide temporary access to first responders or other authorized entities to message threads and underlying messages maintained by the PSN. Pre-processing and de-duplication methods are disclosed for managing congestion during periods when a large number of messages are received by the PSN.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates generally to the field of personal communications and, more specifically, to a personal safety network through which groups of individuals may rapidly communicate and share information regarding an emergency or other circumstance.

Background Information

When an incident occurs at a school, business, or other facility that affects or may affect the safety of the people at the facility, there is a need for rapid communication. For example, a student sees someone in the school, or heading towards the school, and the student is concerned. The student may not know the person, and believes the person doesn't belong in the school, or perhaps the student knows the person, and feels threatened. The student needs to be able to report this situation to someone who can do something rapidly. Calling 911 may seem like an overreaction, and finding the appropriate person on a campus may take too much time. Ideally, the student should be in contact with a trusted individual, and quickly receive a response that indicates that there is no actual threat, or that there is a threat and instructions about what to do.

Similarly, a student may observe someone in the school, or heading towards the school, who is carrying a weapon of some kind, or the student sees a fire or hears an explosion. The student needs to be able to report this circumstance immediately, and may need to let everyone in the school know what is happening, and where. Other students, as well as staff or faculty, may want to add information regarding what they see and hear. School administration or security personnel may wish to send instructions to all students. A common theme in this type of scenario is that there is chaos, and limited or inaccurate information. Instead of knowing there are shots fired in a particular part of a large building or multi-building campus, many people may be completely unaware that something is happening. Further, loud sounds generated by fire alarms or other emergency alarms may interfere with intercoms and public address systems, thus blocking effective communication through those channels.

SUMMARY OF THE INVENTION

In accordance with one aspect of the invention, a personal safety network (PSN) is provided in which authorized participants of the network may communicate with each other regarding threats, emergencies, or other circumstances. The PSN typically includes mobile, wireless communication devices such as smartphones, an administrative server, and a push notification server. The mobile devices, administrative server, and push notification server cooperate to enable distribution of virtually real-time, multi-way messaging among at least a predetermined group of authorized participants of the PSN which is selected by an originator of a message. The rapidity and efficiency of this communication, along with the ability for multiple authorized participants of the PSN to share their respective observations, warnings, and other information about an unfolding event, is highly advantageous.

Each mobile device of the PSN runs a mobile application which enables an authorized member to originate (compose) messages, and select an individual authorized participant of the PSN, a predetermined group of authorized participants, or all of the authorized participants to receive a given message. Messages are transmitted by the mobile device to the administrative server or, alternatively, to a push notification server with which the (client) mobile device is registered. For enhanced security, messages may be encrypted by the mobile application prior to transmission.

An administrative application, running on the administrative server, maintains records and data structures regarding mobile device registrations, authorized participants of the network and their respective PSN permissions, and predetermined groups of authorized participants which are defined by authorized participants. The administrative application may also receive messages originating from registered mobile devices. Upon receipt of a message, the administrative server stores a copy of the message in a message archive. The administrative server decrypts the initial message, if necessary for storage, and converts it into a push notification distribution. The push notification distribution includes both the content of the initial message and information necessary to effect distribution of the message to each of the authorized participants of the predetermined group designated by the authorized participant who originated the initial message. In response to receiving a push notification distribution from the administrative server, the push notification server, based on information contained in the push notification distribution, proceeds to push notifications to the mobile devices associated with the predetermined group of other authorized participants. A push notification server may also push notifications to mobile devices associated with authorized participants in response to a message received directly from a mobile device which previously registered with the push notification server. Each mobile device's mobile application, if necessary, decrypts the received push notification and displays it.

An authorized participant receiving a push notification based on an initial message may, in turn, originate a response message which, similar to the process summarized above, is sent to all of the other authorized participants who are members of the predetermined group which received the initial message. Alternatively, an authorized participant may send a response message only to the mobile device which originated the initial message. As an additional alternative, an authorized participant may send a response message to all authorized participants of the PSN.

In accordance with another aspect of the invention, beginning with an initial message, and continuing with any response message(s) received, the mobile device may display all such messages in a reverse chronological, continuing conversation format. This capability advantageously enables multiple authorized participants to coherently share their respective observations, warnings, or other information regarding a rapidly evolving event.

Further enhancing the usefulness of the message-based communications provided by the PSN, each displayed message may include an individual or group name, or other identifier of the authorized participant who originated the message, a time stamp, the text of the message, information regarding a geographic location of a mobile device at the time when a message was originated from that device, or other information.

In accordance with another aspect of the invention, permission to establish or modify the membership of predetermined groups of authorized participants may be assigned as part of PSN permissions. For example, any authorized participant of the PSN may have permission to request to join to an existing group, but such a request must be approved by an authorized participant having permission to modify the membership of that group.

In accordance with another aspect of the invention, the mobile application may query or poll the administrative server to check for a missed message. By comparing a message identifier of the last message received by the mobile application to the administrative server's stored messages, the administrative application may determine whether the mobile application failed to receive a previously sent message. If so, the administrative application will respond to the mobile application with the missing message(s). Polling for missed messages serves as a form of redundancy or safeguard since push notifications do not typically include an acknowledgement of successful reception by the intended recipient.

In accordance with another aspect of the invention, a first PSN may be linked to a second (or greater) PSN. Through such linking, a universe of authorized members may be expanded to cover larger geographical areas, or commonly owned or administered facilities that are remote from each other. For example, a school district may choose to implement a PSN for each individual school, which may be administered by a staff person who is familiar with that school's students, parents, staff, and faculty. The school district may choose to link all of the individual schools' PSNs together to enable district wide message broadcasting. Similar to an authorized participant requesting to join an existing group, an authorized participant of a first PSN having the necessary permission may transmit a request to link to a second PSN. Once the request is granted, the first and second PSNs are linked.

In accordance with another aspect of the invention, an enhanced PSN is arranged to receive notifications from security devices, convert such notifications to human-readable messages, and distribute the messages to selected PSN participants through virtually real-time, multi-way messaging. The enhanced PSN may also include a location data database for maintaining virtually real-time location information for PSN participants.

In accordance with another aspect of the invention, speech recognition is provided to enable PSN participants to dictate messages, which are converted to text-based messages before distribution through virtually real-time, multi-way messaging.

In accordance with another aspect of the invention, a system administrator may provide temporary access to first responders or other authorized entities to message threads and underlying messages.

In accordance with another aspect of the invention, a PSN is arranged to receive notifications from a variety of devices which identify locations of PSN participants, and use such notifications to update the location data database as well as generate a facility-wide room status/user location page, and specific room status pages.

In accordance with another aspect of the invention, the PSN administrative application pre-processes and de-duplicates messages originating from PSN participants.

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

FIG. 1shows a block diagram of a personal safety network (PSN)100which includes mobile devices102a,102b. . .102n, push notification servers104a. . .104n, an administrative server106, and an administrator command and control unit108. Each of mobile devices102a. . .102nmay be based on a smartphone or other wireless communication device which is capable of sending text messages and receiving push notifications. Each of push notification servers104a. . .104nmay be based on hardware and software available from a wide variety of commercial sources. Alternatively, one or more of push notification servers104a. . .104nmay represent a third party owned or operated server which is compatible with iOS®, Android® or another operating system which is in use among mobile devices102a. . .102n. Administrative server106and administrator command and control unit108may be based on hardware and software available from a wide variety of commercial sources.

In general, each of mobile devices102a. . .102nis associated with an authorized participant (not shown) of PSN100. As described in more detail below, each of mobile devices102a. . .102nruns a mobile application (not shown) which enables the devices to register with administrative server106. Alternatively, mobile devices102a. . .102nmay use the mobile application to register with one or more of push notification servers104a. . .104nby presenting a unique device ID along with UserID, GroupID, and SubGroupID tags.

Once registered, each mobile device102a. . .102nmay transmit messages, each of which is addressed to an individual authorized participant of PSN100, a predetermined group of authorized participants of PSN100, or all authorized participants of PSN100, to administrative server106which is running an administrative application (not shown). In turn, administrative server106, in cooperation with push notification servers104a. . .104n, functions to distribute each message to the members of the predetermined group of authorized participants to which it is addressed, effectively enabling virtually real-time, multi-way messages among such authorized participants.

Alternatively, mobile devices102a. . .102which registered with one or more of push notification servers104a. . .104nmay transmit messages directly to those servers. Again, each message may be addressed to an individual authorized participant of PSN100, a predetermined group of authorized participants of PSN100, or all authorized participants of PSN100.

FIG. 2is a block diagram of administrative server106shown inFIG. 1. For enhanced clarity and conciseness, an element introduced in a previous figure retains the same reference number throughout this specification. Administrative server106includes a bus200which interconnects a processor202, a network adapter204, a memory206, and a storage adapter208. Network adapter204interfaces with network210which may represent the Internet or another public or private network. Storage adapter208interfaces with storage212which may represent disk, flash memory, or other mass storage media. Memory206includes an operating system214, a PSN administrative application216, and PSN data structures218.

FIG. 3is a block diagram of mobile device102ashown inFIG. 1. Mobile device102aincludes a bus300which interconnects a processor302, RF/WiFi™/Bluetooth® transceivers304, a display and user interface306, and a memory308. Memory308includes an operating system310and a PSN mobile (client) application312. Operating system310may represent iOS®, Android® or another commercially available operating system. PSN mobile application312may be downloaded and installed from third party application stores, such as those owned or operated by Apple Inc. or Google, or other websites.

FIGS. 4A-4Fare representations of various pages generated by the PSN administrative application216shown inFIG. 2. Turning first toFIG. 4A, a representation of an administrative home page400is shown. A top level navigation menu402is displayed above a recent message threads list404. Recent message threads list404displays, in reverse chronological order, a time stamp, message originator, and message text for the most recent message received by administrative application216for a given thread. By clicking a “Go to” link corresponding to a given thread displayed in recent message threads list404, an administrator may view, and optionally contribute to, that thread as discussed below in connection withFIG. 4B. Throughout this specification, it should be understood that references to “pressing” or “tapping” buttons or “clicking” links are merely exemplary and that such terms include any action which results in actuation or activation of a control.

A new message box406is provided for an administrator (not shown) to compose new messages. An intended recipients box408is provided which enables an administrator to specify either an individual authorized member of PSN100or, using checkboxes410, a predetermined group of authorized members, as the intended recipient(s) of the next message sent by the administrator. An emergency priority checkbox416, if checked, specifies that the next message sent by the administrator has highest priority for delivery to the intended recipients. By tapping a send button412, an administrator sends a new message (as it appears in new message box406) to the intended recipient(s). By tapping a broadcast button414, an administrator may send a new message to all authorized participants of PSN100.

Turning next toFIG. 4B, a representation of a message threads page418is shown. Most of the elements of message threads page418are common to administrative home page400. However, a message list420displays, in reverse chronological order, a time stamp, message originator, message text, and message originator location for each message of the displayed thread. An administrator may use message threads page418to simply review what transpired or, alternatively, to compose and send a new message on the displayed thread.

FIG. 4Cis a representation of a users/groups page422. A groups list424displays the names of previously defined groups of authorized participants of PSN100. For example, a group named “Admin” may contain authorized participants of PSN100who hold administrator permissions. A group named “Security” may contain authorized participants of PSN100who are also security personnel. By clicking an “Add Group” link, an administrator may create a new group. By clicking a “Manage” link, an administrator may make changes to an existing group as shown inFIG. 4D.

FIG. 4Dshows a representation of a manage group page426generated by the PSN administrative application216shown inFIG. 2. The manage group page426shows information for a group named “Family” as indicated by a group name box428. A group role box430shows the role of this group is “Family”. By tapping a “Save” button432, an administrator may save any changes made to the displayed group. By tapping an “Import Users” button434, an administrator may import additional authorized participants into the displayed group from a spreadsheet or other data source (not shown).

A group members (users) list436displays, for each group member, a name, a unique PSN identification number, an email address, and a phone number. Each entry on list436also includes an “Edit” link and a “Delete” link by which an administrator may, respectively, edit a group member's information or delete a member from the group.

A request to add new members (users) list438shows information on authorized participants of PSN100for whom a request for membership in the displayed “Family” group has been made. Specifically, a group member “Lisa K.” who is an existing member of the displayed “Family” group has requested that a new member “Dan G.”, who is identified as the father of “Lisa K.”, be added to the “Family” group. An administrator may approve or disapprove the request by clicking on the corresponding button displayed at the right. Once a new group member is approved, he or she becomes an authorized participant of PSN100.

FIG. 4Eshows a representation of a roles/permissions page440generated by the PSN administrative application shown inFIG. 2. A roles list442contains the available choices for the role box430shown inFIG. 4D. That is, the roles shown in roles list442represent the available choices for the role to be assigned to a given group of authorized participants of PSN100. Each role in roles list442includes a role name, and a series of check boxes which specify PSN100permissions associated with a given role. A new role may be added to roles list442by clicking an “Add” link. Changes to the indicated permissions of any roles on list442may be saved by clicking “Save” button444.

FIG. 4Fshows a representation of an archive messages page446. Archive messages page446allows an administrator to view older messages (e.g., messages older than 24 hours) and to search by keyword using a search box450. In addition, an administrator may filter the messages displayed in an archived message list448using a date filter452or a user filter454(or both). When an archived message of interest appears in archived message list448, an administrator may click on a displayed “Go to” link and view a thread containing the message of interest as described above in connection withFIG. 4B.

FIG. 4Gshows a representation of an authorized participant location page450. Using geographical location information which is appended to messages originated by PSN mobile application312, as described below, PSN administrative application216shows the physical location of an authorized participant of PSN100as of the time that authorized participant sent a particular message.

FIGS. 5A-5Eare representations of various pages generated by PSN mobile application312shown inFIG. 3.FIG. 5Ashows a representation of a login page500as it may appear on display and user interface306of mobile device102a. A username box502accepts typed entry of a username assigned to an authorized participant of PSN100. Similarly, a password box504accepts typed entry of a password assigned to or selected by the authorized member. A newly authorized participant of PSN100may receive a username and initial password by email as part of the process described above in connection withFIG. 4D.

When pressed, a “Login” button506causes PSN mobile application312to contact administrative server106and present the entered username and password credentials for validation. As part of a successful initial login by a new authorized participant of PSN100, the administrative server106may prompt the authorized participant to establish a new password. After a successful initial login, a “Forgot Password?” button may be pressed to recover an existing password or establish a new password.

Following a successful login, a mobile home page510, as shown inFIG. 5B, may be displayed by display and user interface306. Similar to administrative home page400discussed above, a new message box512is provided for an authorized participant (not shown) of PSN100to compose new messages. An intended recipients box518is provided which enables an authorized member to specify either another, individual authorized participant of PSN100or, using checkboxes520, a predetermined group of authorized participants, as the intended recipient(s) of the next message sent. An emergency priority checkbox514, if checked, specifies that the next message sent has highest priority for delivery to the intended recipients. In addition, without intervention by an authorized participant, PSN mobile application312may automatically append to each message a current latitude and longitude of the mobile device102a. . .102noriginating the message. Leveraging such geographical information, a checkbox525, when checked, enables an authorized participant of PSN100to send a message to other authorized participants of PSN100who are in close geographical proximity.

By pressing a “Send” button516, an authorized participant of PSN100sends a new message (as composed in new message box512) to the intended recipient(s) and starts a thread.

A received messages box522displays, in reverse chronological order, messages received through PSN100by PSN mobile application312. As displayed, each received message includes a parenthetical (e.g., “(Admin)”) advantageously showing the predetermined group from which the message originated. Knowledge of the source of a particular message may be of critical importance for a message recipient in determining what action, if any, to take.

In an emergency situation in which there may not be time, or it is unsafe, to compose a message, a “Send Emergency Broadcast” button524may be pressed. Such action will immediately broadcast an emergency message (i.e., a default message such as “An emergency is in progress”) to all authorized participants of PSN100. Pressing or otherwise activating either send button516or “Send Emergency Broadcast” button524will cause PSN mobile application312to transition to a mobile messages page526as shown inFIG. 5Ddiscussed below.

As shown inFIG. 5C, mobile home page510displays messages received by push notifications from PSN100(i.e., received from push notification servers104a. . .104n), as illustrated by push notification526. All pages of PSN mobile application312will display received push notifications from PSN100when that application is open. Such push notifications will be received by mobile devices102a. . .102neven when PSN mobile application312is not open. Tapping push notification526will cause PSN mobile application312to open and transition to a mobile messages page528as shown inFIG. 5D.

As shown inFIG. 5D, mobile messages page528displays the most recent messages of a thread in reverse chronological order. The displayed messages originated from any authorized participant of PSN100who is also a member of a predetermined group to whom an initial message was addressed, or any authorized participant of PSN100if the initial message was addressed to the group “All”. New message box512may be used to compose a message which, when sent by pressing “Send” button516, will be added to the thread.

As also shown inFIG. 5D, each displayed message includes a parenthetical advantageously showing the predetermined group or individual from which the message originated as well as a time stamp. In addition, the display of messages in a “chat” or continuing conversation format provides important information about how a situation is evolving in time, whether a threat is worsening or abating, when and where help should be expected to arrive, and the like. In this fashion, virtually real-time, multi-way messaging among at least the members of a predetermined group of authorized participants of PSN100is provided.

FIG. 5Eshows a mobile users page530which may be used to manage an authorized participant's PSN account. A family list536displays the current members (users) of a previously established “Family” group for a given authorized member. A potential new member of the “Family” group may be nominated by filling in the information required by boxes532(i.e., name, email address, phone number, and relation to person making nomination) and pressing a “Send Request to Add Member” button534. That action will cause a request to be transmitted to both the “Family” group and the “Admin” group (FIG. 4D) for approval/disapproval. InFIG. 5E, two pending requests538to add new members are shown along with links to approve or disapprove. If members of the “Family” group have PSN permission to approve a new member, as shown inFIG. 4E, then they may do so. If not, a member of the “Admin” group must approve or disapprove the requests.

FIG. 6shows examples of PSN data structures218(FIG. 2) used by PSN administrative application216. A Setting object600and a Network table604together specify information needed to establish, operate and maintain PSN100. A User table606corresponds with an authorized member (user) of the PSN100. Properties of User table606include, inter alia, a user ID, name, email address, phone number, group name, and password. A Message object608corresponds with messages originated by an authorized member as described above. A Group table612, Subgroup table614, and Role table616together specify a given authorized member's group membership(s) and role(s) (i.e., PSN permissions).

A User Request object602corresponds with an authorized member's request to add another member to a particular established group as described above in connection withFIG. 5E.

A Network Request object610corresponds with a request to link two PSNs together as described below in connection withFIGS. 9-11.

With reference now toFIGS. 1-3, 7A and 7B, the higher level interactions among mobile devices102a. . .102n, administrative server106, and push notification servers104a. . .104nare described. At step700, an authorized participant of PSN100, using PSN mobile application312running on one of mobile devices102a. . .102n, composes a message and addresses it to (a) another individual, authorized participant of PSN100, (b) a predetermined group of authorized participants of PSN100, or (c) to all authorized participants of PSN100. Next, at step702, PSN mobile application312appends location information (e.g., latitude and longitude) to the composed text, encrypts the entire message and stores a copy. At step704, the encrypted message is transmitted to administrative server106.

At step706, administrative server106validates the received message, stores a copy in message archive, and creates a push notification distribution based on the authorized participants of PSN100to whom the validated message is addressed. The push notification distribution, which includes the encrypted message, is transmitted by administrative server106to push notification servers104a. . .104n. Next, at step708, push notification servers104a. . .104n, using the push notification distribution, transmit push notifications, including the encrypted message, to the mobile devices102a. . .102nassociated with the intended recipients of the message.

Each mobile device102a. . .102nwhich receives a push notification displays the notification even if PSN mobile application312is not open. If PSN mobile application312is open, the received, encrypted message is decrypted and also displayed. Next, at step712, PSN mobile application stores a copy of the encrypted message.

PSN mobile application312includes a poll timer which is checked at step714. If the poll timer has not yet expired, the process loops until expiration occurs. Expiration is followed by step716at which PSN mobile application312polls administrative server106to determine if application312failed to receive a previously transmitted message. This determination is done by PSN mobile application312transmitting a message ID (FIG. 6at608) of the most recent message it received. If administrative server106determines, based on that message ID, that there is a more recent message that was not received by PSN mobile application312, the more recent message is returned to PSN mobile application312by PSN administrative server106at step718.

As an alternative to the push notification approach described above, messages originated by authorized participants of PSN100may instead be distributed by a “pull” approach in which PSN mobile application312periodically polls administrative server106. In this approach, PSN mobile application312periodically retrieves new messages from PSN administrative server106as opposed to polling for missed messages that were previously sent by push notifications.

At step720, if a new message is received by administrative server106, flow returns to step706for message validation. If no new message is received, flow returns to step714.

As shown inFIG. 8, a linked PSNs environment800includes four administrative servers106a,106b,106c, and106deach of which includes functionality similar to administrative server106(FIG. 1). Administrative server106asupports two personal safety networks802aand802beach of which provides functionality similar to that described above. For enhanced clarity, mobile devices and push notification servers have been omitted fromFIG. 8. Each of administrative servers106b,106c, and106dalso supports multiple PSNs802c. . .802i.

As multiple PSNs are deployed across a given geographical area, school system, or commonly owned or controlled facilities, it may be desirable to link two or more PSNs together. For example, by linking multiple PSNs together, a larger number of authorized participants may be reached at once by a message addressed to “All” or an emergency broadcast message (FIG. 5B). This may be highly advantageous for dealing with threats or emergency situations affecting a wide geographic area as well as those where coordinated action among multiple organizations or facilities is needed.

As shown inFIG. 8, administrative server106ahas links804aand804b, respectively, to administrative server106cand administrative server106b. Through link804a, PSNs802aand802bare effectively linked with PSN802f. In order to establish a link between two PSNs, a request is made initially made by an authorized participant of one of the PSNs who has the necessary PSN permission.

Referring now toFIG. 9, a users/groups page900of PSN administrative application216provides an administrator with the ability to both issue a request to link to another PSN as well as approve/disapprove similar requests received from other PSNs. A linked networks list902displays all currently linked PSNs including a main contact for each network. By clicking on a “Delete” link an administrator may sever the link to a particular. Also displayed is a pending request to link PSNs904which includes a network name, main contact, and links to approve/disapprove the request. Should an administrator which to make a request to link PSNs, he or she would fill in the information in boxes906(i.e., a PSN network name, a main contact name and email address), and press “Send Request to Link” button908.

As shown inFIG. 10, functionality for requesting to link PSNs, and approving/disapproving requests, may also be provided in PSN mobile application312. A PSN networks page1000displays information and controls similar to those shown inFIG. 9.

As shown inFIG. 11, at step1100, a request to link PSNs is prepared as described above. The request is sent by email addressed or forwarded to an administrator (or other authorized member) of a PSN as shown in step1102. The administrator who receives a request to link then approves or disapproves the request at step1104. If the request is approved, at step1106, each of PSN administrative applications216of the two linked networks adds the other network to its Network table604, and synchronizes its User table606, Group table612, and Subgroup table614. Next, at step1108an email is sent to the requestor confirming approval. As a result, at step110, two PSN are now linked for messaging and each of PSN administrative applications216of the two linked networks recognizes all of the authorized participants of both of the linked networks. Alternatively, if the request to link is disapproved at step1104, an email is sent to the requestor advising of disapproval at step1112, and the two PSNs remain unlinked at step1114.

FIG. 12is a flowchart illustrating how messages originated by authorized participants are delivered across linked PSNs. At step1200, an authorized participant originates a message which is addressed to an individual authorized participant, the members of a group of authorized participants, or all authorized participants, as previously described. At step1202, an administrative server106of a first PSN (PSN1) receives the message and, at step1204, forwards the message to each counterpart administrative server106for each PSN which is linked to PSN1.

Next, at step1206, following receipt of a forwarded message, each administrative server106, through its PSN administrative application216, determines whether any addressee(s) of the forwarded message is part of the PSN associated with that administrative server. If not, at step1208, administrative server106is done. If so, then at step1210administrative server106creates a push notification distribution for the forwarded message in a manner similar to that described above. At step1212, the forwarded message is received.

FIG. 13shows an enhanced PSN1300which is arranged to accept messages originating from a variety of security devices1302-1312and distribute such messages to authorized participants as described above. Security device1302may represent a closed circuit security camera which functions to perform facial recognition or motion detection. Security device1304represents a perimeter detection sensor. Security device1306represents an ID badge reader. Security device1308represents a smart lock. Security device1310represents a motion detector, and security device1312represents an audio detector. Various combinations of security devices1302-1312, or other types of security devices (not shown), may represent “legacy” equipment (i.e., equipment which pre-dates installation of a PSN at a given facility), or may represent new equipment installed contemporaneously with a PSN.

An access control management/security system (ACM)1314provides a communication interface to each of security devices1302-1312. ACM1314may represent, for example, a commercially available system offered by Avigilon or Milestone Systems among others. In general, ACM1314operates to transmit commands to security devices1302-1312as well as receive sensor data (e.g., sensor name, location, event or alarm type, and possibly a message) from such devices.

If it is capable of doing so, ACM1314forwards sensor data to administrative server106. Alternatively, administrative server106may poll ACM1314and retrieve sensor data in that fashion. Administrative server106, in turn, formats sensor data into human-readable notifications or messages and, in conjunction with push notification servers104a. . .104n, distributes such messages as virtually real-time, multi-way messages among authorized PSN users (mobile devices)102a. . .102nas described in detail above.

In addition, enhanced PSN1300includes a location data database1316which is populated and updated by administrative server106. In general, location data database1316provides virtually real-time location information with respect to authorized PSN users as well as other persons who may be located by way of ID badge scanners or other devices as described below. Such virtually real-time location information may be viewed by a system administrator or other authorized person using a PSN room status/user location screen1318, generated by PSN administrative application216(FIG. 2), described below.

In order to manage the distribution of messages originating from security devices1302-1312to PSN participants, PSN administrative application216generates a notification settings page1400as shown inFIG. 14. Exemplary types of possible notifications1402are listed on a vertical axis of a grid, and groups of PSN participants (users)1404are listed on a horizontal axis. Clickable check boxes allow a system administrator to establish desired notification settings. Once the check boxes are correctly set, a system administrator clicks on a Save Notification Settings button1406to save the settings.

FIG. 15shows a mobile device1500displaying a virtually real-time, multi-way message thread that includes messages originated from PSN participants as well as messages originated from security devices as provided by enhanced PSN1300. Specifically, each of messages1506,1508and1512originated from (was composed by) a PSN participant. Each of messages1506,1508and1512may be composed by either typing text in a new message box1502(similar to new message box512inFIG. 5B), or by pressing microphone icon1504to activate speech recognition followed by dictation of the message. Message composition by speech recognition is described in detail below in connection withFIG. 16.

Message1510originated from a security camera (not shown) which performed facial recognition and identified a former employee David D. as present in an unauthorized area. One minute earlier, message1512originated from a door sensor as an alarm notification that a rear door of Building201was forced.

By integrating messages originating from security devices with messages originating from PSN participants, enhanced PSN1300provides a clearer, more current view to security personnel of a dynamic situation which, in turn, enables such personnel to make better decisions as to how to address the situation and neutralize any threat. Further, PSN participants who are attempting to evade a threat have better information in deciding which of several possible hiding places or escape routes to select.

With reference now toFIG. 16, as an alternative to typing messages, a PSN participant may elect to speak a message and leverage speech recognition capabilities embedded in many smartphones, portable (e.g., tablet), wearable (e.g., watch), or other devices. In this alternative embodiment, when a PSN participant (user) presses microphone icon1504(FIG. 15) and speaks a message1600, embedded speech recognition functionality (not shown), in conjunction with PSN mobile application312(FIG. 3), converts the speech to text, formats the text into a message, and forwards the message to administrative server106. Once received by administrative server106, the message is distributed to the appropriate recipients as previously described.

As described above, in order for an individual to either send or receive messages through the PSN, that individual must have previously registered a device with the PSN. In this regard, the PSN may be considered a private network. However, in case of an emergency, it may be desirable, if not imperative, that first responders, law enforcement, or other individuals who have not previously registered their devices be given access to the virtually real-time, multi-way messaging provided by the PSN. As shown inFIG. 17, this may be done through a home page1700generated by PSN administrative application216(FIG. 2).

Home page1700includes a top level navigation menu1702and a recent message threads list1704. Recent message threads list1704displays, in reverse chronological order, a time stamp, message originator, and message text for the most recent message received by administrative application216for a given thread. By clicking a View Messages button corresponding to a given thread displayed in recent message threads list1704, an administrator may view the entire thread as well as contribute new messages to that thread as described previously.

A new message box1706is provided for an administrator (not shown) to compose new messages. Intended recipient check boxes1708enable an administrator to specify one or more groups of authorized PSN participants as the intended recipient(s) of the next message sent by the administrator. A high priority checkbox1710, if checked, specifies that the next message sent by the administrator receives highest priority (except for emergency priority) for delivery to the intended recipients. An emergency message checkbox1712enables an administrator to designate the next message sent as emergency priority for delivery. By clicking a send button1714, an administrator sends a new message (as it appears in new message box1706) to the intended recipient(s).

Should an administrator wish to provide someone temporary access to the recent message threads list1704(and underlying messages), he or she may press a Send Dashboard Link button1716. The result is the creation of a link (not shown) that may be transmitted by email or text to a first responder or other authorized individual. The link provides the recipient with temporary, limited access to recent message threads list1704as shown inFIG. 18A. However, the access provided by the link is limited and blocks access to new message box1706and other functions needed to create and send a new message, and also blocks access to top level navigation menu1702. The link also allows access to the underlying messages, as shown inFIG. 18B, by clicking on one of associated View Messages buttons1800.

FIG. 19shows a PSN1900which is arranged to capture virtually real-time location information, from a variety of sources, regarding a population of interest. One such source is a Bluetooth® beacon1902which may represent a commercially available device that is typically placed in a known, fixed location. An RF beacon signal transmitted by Bluetooth® beacon1902may be received by mobile device102a(FIG. 3) or other device which is Bluetooth® enabled and running PSN mobile application312. Having determined a location from the received beacon signal, PSN mobile application312sends the location1904to administrative server106. In response, administrative server106updates the current location of the registered mobile device102a(and, by implication, the registered user of mobile device102a) in location data database1316.

In addition, or as an alternative, to Bluetooth® beacon1902, virtually real-time location information may be obtained from ID badge reader1306(FIG. 13). ID badge reader1306may represent a commercially available device capable of reading ID badges which contain information that is magnetically or RF encoded. Smart lock1308may represent a commercially available device which typically replaces a keyed door lock and is operable by a digital key or remotely through wireless network connectivity. Both ID badge reader1306and smart lock1308transmit sensor data (e.g., sensor name, location, event or alarm type, and possibly a message) to ACM1314which sends the data1910to administrative server106. Administrative server106updates the current location of the individual whose ID badge was scanned, or whose digital key or network account was used to actuate smart lock1308, in location data database1316.

In addition, or as an alternative, to the devices described above, a barcode/QR scanner1912may be used to collect virtually real-time location information. Barcode/QR scanner1912may represent functionality embedded in mobile device102aother device which is capable of optically scanning barcodes or QR codes (or both) and which is running PSN mobile application312. IDs, attendance lists, or other media bearing barcodes or QR codes may be scanned to provide a virtually real-time location of a person associated with an ID, attendance list, or other media. PSN mobile application312sends the scan data1914to administrative server106. In response, administrative server106updates the current location of the registered user of mobile device102ain location data database1316.

Location information maintained in location data database1316may be viewed by a system administrator or other authorized person using PSN room status/user location screen1318, generated by PSN administrative application216, as shown inFIG. 20A. A top level navigation menu2000includes a Room Status button2014which, when clicked, navigates to PSN room status/user location screen1318. A Setup Room Statuses button2002is displayed along with an Import Rooms button2004, both of which may be used to initially configure rooms (or buildings) of interest for a given facility. As shown inFIG. 20A, three buildings, Chase Hall, Frye Hall, and Library, each having multiple individual rooms, were previously configured. For each individual room, PSN room status/user location screen1318displays a room number, status, and current headcount of persons in the room.

To access more detailed information on the individuals in a particular room, an administrator clicks on a people icon2018for a given room which causes PSN administrative application216to navigate to room detail screen2016. Room detail screen2016displays a list2012of individuals believed to be present in the selected room based on the most recently captured location information present in location data database1316. More specifically, for each individual believed to be present in the selected room, room detail screen2016displays the individual's name, ID number, and a date/time stamp reflecting when location information for the individual was last captured.

FIG. 21shows examples of PSN data structures218(FIG. 2) used by PSN administrative application216in connection with location data database1316(FIG. 13). A Building object2102and a Room object2104together specify information needed to configure a building and individual rooms within the building.

A Device object2108corresponds with a device such as ID badge reader1306, smart lock1308, Bluetooth® beacon1902, barcode/QR scanner1912, or other device which is a source of virtually real-time location information for a population of interest (e.g., students, faculty and staff of a university). A DeviceEvent object2112corresponds with events which may be generated by an associated device (e.g., a smart lock is opened by a digital key assigned to a maintenance supervisor).

A RoomStatus object2106corresponds with the current status of an individual room as displayed on PSN room status/user location screen1318. A RoomsPeople object2110corresponds with the individuals who, based on most recently captured location information, are believed to be present in a particular room as displayed on room detail screen2016.

In the case of an emergency event that may be witnessed by a large number of people almost simultaneously (e.g., an explosion in a power plant on a university campus), it is likely that a large number of messages will be sent by authorized participants of a PSN within just a few minutes. Most of those messages will be duplicative of each other as they are all essentially reporting the occurrence of the event and little or nothing else. The congestion and demand on processing resources created by a large burst of incoming messages are potentially problematic for the smooth functioning of any responder network including the PSN. This problem, however, may be mitigated through pre-processing and de-duplication.

As shown inFIG. 22, pre-processing method2200begins with a large number of authorized participants (users) of a PSN originating messages to report2202the same emergency or other event. Such messages are received2204by administrative server106. Based on the number of received messages per unit of time exceeding a predetermined threshold or similar criteria, or simply to run as a continuous process, PSN administrative application216initiates a de-duplication method2206. When a given received message is determined to be an effective duplicate (i.e., not necessarily a literal duplicate, but duplicative in substance) of an earlier message, method2200advances to send a pre-composed response/status (e.g., “We are aware of the explosion and first responders are on the way”)2208to the user which originated the duplicate message.

Conversely, when a given received message is determined not to be a duplicate of an earlier message, method2200advances to send (forward) the message to responder dispatch2210for further attention. Next, method2200advances to both send a response/status2212to the user who originated the non-duplicate message (e.g., “Thank you for reporting the trash can fire outside the Physics building. FD is on the way.”), as well as create an automatic response which will be sent to other users who originate duplicate messages (e.g., “We are aware of the trash can fire outside the Physics building. FD is on the way.”).

Turning now toFIG. 23, details of de-duplication method2206are shown. At step2300, an input message is received. At step2302, a timestamp (not shown) associated with the input message is compared with a time range that relates to the time when a previous message reporting a particular event was received (“reference message”). If the timestamp of the input message is not sufficiently close in time (not within the time range) to the reference message, the input message is deemed to be a non-duplicate and method2206advances to step2210(FIG. 22).

Conversely, if the timestamp of the input message is within the time range, method2206advances to step2304where a location mentioned in the input message (or possibly a location from which the input message originated) is compared with the corresponding location of the reference message. If there is no location match, method2206again advances to step2210. If there is a location match, method2206advances to step2306.

At step2306, a comparison is made between keywords recited in the input message and keywords found in the reference message. If there are matching keywords, method2206advances to step2208indicating that the input message is a duplicate of the reference message.

If there are not matching keywords, method2206advances to step2308and determines whether there is a synonym in the input message which corresponds to a keyword in the reference message. If so, method2206again advances to step2202. If not, method2206advances to step2310.

At step2310, a Soundex comparison is made between the input message and the reference message to determine whether, despite differences in spelling of certain words, the messages are referring to the same event. If there is a Soundex match, method2206advances to step2208. If not, method2206advances to step2210.

The foregoing description has been directed to specific embodiments of this invention. It will be apparent, however, that other variations and modifications may be made to the described embodiments, with the attainment of some or all of their advantages. For example, it is expressly contemplated that the teachings of this invention can be implemented as software, including a computer-readable medium having program instructions executing on a computer, hardware, firmware, or a combination thereof. Accordingly this description is to be taken only by way of example and not to otherwise limit the scope of the invention. It is thus the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.