SYSTEM AND METHOD FOR ALERTING A USER
20170011611 ยท 2017-01-12
Assignee
Inventors
Cpc classification
H04M7/0024
ELECTRICITY
H04M3/42391
ELECTRICITY
H04L67/10
ELECTRICITY
H04M19/04
ELECTRICITY
International classification
Abstract
An alerting system control server in a set of servers and a method therein, for alerting a user of an incoming signal for a service associated with the user. The method comprises: receiving information that an internet service server is receiving an incoming signal for the service; generating a control signal for triggering an alerting system controller to alert the user of the incoming signal for the service by activating an alerting device; identifying the alerting system controller and extracting the address of the alerting system controller; and sending the generated control signal to the identified alerting system controller, for activating the alerting device and thereby alerting the user. Also, an alerting system controller and a method therein is presented.
Claims
1. A method in an alerting system control server in a set of servers for alerting a user of an incoming signal for a service associated with the user, wherein the method comprises: receiving information that an internet service server is receiving an incoming signal for the service; generating a control signal for triggering an alerting system controller to alert the user of the incoming signal for the service by activating an alerting device; identifying the alerting system controller and extracting the address of the alerting system controller; and sending the generated control signal to the identified alerting system controller, for activating the alerting device and thereby alerting the user.
2. The method according to claim 1 further comprising: waiting for an incoming connection from the alerting system controller.
3. An alerting system control server in a set of servers for alerting a user of an incoming signal for a service associated with the user, wherein the alerting system control server is configured for: receiving information that an internet service server is receiving an incoming signal for the service; generating a control signal for triggering an alerting system controller to alert the user of the incoming signal for the service by activating an alerting device; identifying the alerting system controller and extracting the address of the alerting system controller; and sending the generated control signal to the identified alerting system controller, for activating the alerting device and thereby alerting the user.
4. The alerting system control server according to claim 3, further configured for communication over an open protocol channel with the network server, and for communication over a closed protocol channel with the alerting system controller.
5. A method in an alerting system controller for alerting a user of an incoming signal for a service associated with the user, wherein the method comprises: receiving a control signal for alerting the user of the incoming signal for the service by activating an alerting device, from an alerting system control server in a set of servers; and sending the received control signal to the alerting device, for activating the alerting device and thereby alerting the user.
6. The method according to claim 5 further comprising: establishing a connection with the alerting system control server in the set of servers.
7. An alerting system controller for alerting a user of an incoming signal for a service associated with the user, configured for receiving a control signal for alerting the user of the incoming signal by activating an alerting device, from an alerting system control server in a set of servers; and sending the received control signal to the alerting device, for activating the alerting device and thereby alerting the user.
8. The alerting system controller according to claim 7, further configured for communication over a closed protocol channel with the alerting system control server and for communication over an alerting device interface with the alerting device.
9. An alerting system for alerting a user of an incoming signal for a service associated with the user, wherein the alerting system comprises: an alerting system control server in a set of servers, according to claim 3; and an alerting system controller configured for receiving a control signal for alerting the user of the incoming signal by activating an alerting device, from an alerting system control server in a set of servers; and sending the received control signal to the alerting device, for activating the alerting device and thereby alerting the user.
10. The alerting system according to claim 9, wherein the alerting system control server is further configured for communication over an open protocol channel with the network server, and for communication over a closed protocol channel with the alerting system controller.
11. The alerting system according to claim 9, wherein the alerting system controller is further configured for communication over a closed protocol channel with the alerting system control server and for communication over an alerting device interface with the alerting device.
12. A computer program with a program code for performing a method according to claim 1 when the computer program runs on a computer.
13. A computer program with a program code for performing a method according to claim 5 when the computer program runs on a computer.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Various embodiments are described in more detail with reference to the attached drawings, illustrating different examples of embodiments in which:
[0022]
[0023]
[0024]
[0025]
[0026]
DETAILED DESCRIPTION
[0027] Embodiments of the invention described herein are defined as an alerting system control server, a method in an alerting system control server, an alerting system controller, a method in an alerting system controller, which may be put into practice in the embodiments described below. These embodiments may, however, be exemplified and realized in many different forms and are not to be limited to the examples set forth herein; rather, these illustrative examples of embodiments are provided so that this disclosure will be thorough and complete.
[0028] Still other objects and features may become apparent from the following detailed description, considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed solely for purposes of illustration and not as a definition of the limits of the herein disclosed embodiments, for which reference is to be made to the appended claims. Further, the drawings are not necessarily drawn to scale and, unless otherwise indicated, they are merely intended to conceptually illustrate the structures and procedures described herein.
[0029]
[0030] The alerting system control server 121 is configured for communication with an internet service server 110, not comprised in the alerting system 100. Further the alerting system controller 130 is configured for communication with an alerting device 140.
[0031] In a scenario when the user is receiving, e.g., an incoming video call via the internet service server 110, the internet service server 110, besides sending a message to the communication device of the user, also sends a message to the alerting system control server 121 in the set of servers 120. The alerting system controller 130 has previously established a connection to the cloud service, the outgoing connection is able to penetrate the local router's firewall. Over this connection, the alerting system controller 130 receives a command from the alerting system control server 121 and activates the alerting device 140, or alerting devices as the case may be.
[0032] The communication device of the user may be, e.g., a mobile cellular phone, a computer, a tablet computer, total communication device or any other kind of device configured to communicate over a network, according to different embodiments and different vocabulary.
[0033] The illustrated alerting system 100 is independent of any firewalls and not limited to one network, for example. The setup does not require the user's communication device and alerting system controller 130 to be connected to the same local network, for example.
[0034] The set of servers 120 may sometimes be referred to as a cloud. Cloud computing refers to the practice of transitioning computer services such as computation or data storage to multiple redundant offsite locations available on the Internet, which allows application software to be operated using internet-enabled devices.
[0035] The set of servers 120 may comprise at least one server 121 and optionally one or more databases, and provide a plurality of services. In some embodiments, the administration of the alerting system control server 121 may be made over an internet interface. Further, all activities performed in the alerting system control server 121 may be logged continuously, e.g., by another server in the set of servers 120 in some embodiments.
[0036] An advantage with putting the main part of the computations in one or more servers 121 in the set of servers 120 is that program upgrading becomes easier and may be made without involving the end user.
[0037] It is to be noted that the illustrated setting of one instance of the alerting system controller 130 and one instance of the alerting system control server 121 in the set of servers 120 in
[0038] Thus whenever one or a/an alerting system control server 121, and/or alerting system controller 130 is referred to in the present context, a plurality of the first network node 110, and/or alerting system controller 130 may be involved, according to some embodiments.
[0039] The communication between the internet service server 110 and the alerting system control server 121 in the set of servers 120 may be made over a communication protocol in some embodiments, which may be non-proprietary and non-restrictive such as, e.g., Transmission Control Protocol/Internet Protocol (TCP/IP), Session Initiation Protocol (SIP), Post Office Protocol (POP), Internet Message Access Protocol (IMAP), Hypertext Transfer Protocol (HTTP), Simple Object Access protocol (SOAP), just to mention some few examples.
[0040] The alerting system controller 130 may, e.g., be situated in the home of the user. However, the alerting system controller 130 may also be portable in some embodiments. Furthermore, one user may have a plurality of alerting system controllers 130 in some embodiments. In other embodiments, a plurality of users, such as, e.g., a family, may share one common alerting system controller 130.
[0041] The alerting system controller 130 is configured for communication with the alerting system control server 121 in the set of servers 120, e.g., via a communication protocol.
[0042] Furthermore, the alerting system controller 130 is configured for communication with the alerting device 140 via a wired or wireless communication interface. Such communication interface may comprise, e.g., WiFi, Bluetooth, Ethernet, Universal Serial Bus (USB), relays, etc. Thereby, an alerting command generated by the alerting system control server 121 may be received by the alerting system controller 130 and trigger an alerting signal to be transmitted by the alerting system controller 130 to the alerting device 140, or plurality of alerting devices 140 as the case may be.
[0043] It is to be noted that the alerting device 140 per se is not part of the alerting system 100. Instead, any appropriate alerting device 140 configured for communication with the alerting system controller 130 over the communication interface may be utilized.
[0044] The alerting device 140 may comprise a lamp, a diode, a loudspeaker, a stroboscope, a tactile device, etc., or a combination thereof.
[0045] For the alerting system 100 to work, a communication protocol is applied between the three entities: the alerting system control server 121, the alerting system controller 130 and the internet service server 110.
[0046] However, there are different requirements and needs for the communication channel between the alerting system control server 121 and the alerting system controller 130, and the communication channel between the alerting system control server 121 and the alerting system controller 130. The communication channel between the alerting system control server 121 and the alerting system controller 130 may be referred to as a closed protocol channel, while the communication channel between the alerting system control server 121 and the internet service server 110 may be referred to as an open protocol channel.
[0047] The names are selected as the closed protocol is hidden from public by encryption while the open protocol may be open and accessible for generic services. The closed protocol channel got its name from the fact that communication between the alerting system control server 121 and the alerting system controller 130 may with advantage be hidden, unmodifiable, and secure, in other words this channel may be closed for the public. Thereby spoofing and/or unauthorised activation of the user's alerting device 140 without permission without first passing through the alerting system 100 is avoided. To ensure this security, web security solutions such as Secure Sockets Layer (SSL) and/or Transport Layer Security (TLS) may be applied to this closed protocol channel.
[0048] While the closed protocol channel may be encrypted and hidden from the public, the open protocol channel may be usable by anyone, as not only one dedicated internet service server 110 may be able to utilise the alerting system control server 121, but a plurality of other internet service servers may be able to communicate with the alerting system control server 121. Thereby alerts associated with different services may be provided to the alerting system control server 121. Thereby, future development of new services is enabled, which may fill the gap between alerting systems and modern Internet of Things (IoT) products.
[0049] The Internet of Things, sometimes also referred to as Internet of Everything, is the network of physical objects or things embedded with electronics, software, sensors, and connectivity to enable objects to exchange data with the manufacturer, operator and/or other connected devices. The IoT allows objects to be sensed and controlled remotely across existing network infrastructure, creating opportunities for more direct integration between the physical world and computer-based systems. Each thing is uniquely identifiable through its embedded computing system but is able to interoperate within the existing Internet infrastructure.
[0050] To provide security for the open protocol, asymmetric key cryptography may be used. Asymmetric key cryptography requires some extra handling of the certificate and public keys that are supposed to be distributed by third parties. Thereby unauthorized activations of a user's alerting system 100 may be avoided.
[0051] The messages sent through both the open channel and the close channel may be generic and easy to alter when new features is being added. The protocol format on both the open as well as the closed channel may be the same to cut the development time and lower the complexity of the system 100.
[0052] The open channel may take as easy as possible messages, making the implementation on the internet service server 110 and on any possible third party platforms minimal. Minimal implementation for the open communication channel mean less compatibility problems with software not part of these system, as third parties may have their own software. The closed channel messages can be extended over time because updates can be released to both the alerting system controller 130 and the alerting system control server 121, compared to scripts and software developed by third parties. A solution according to some embodiments may be to releasing an Application Programming Interface (API).
[0053] Two arbitrary examples of common text-notation formats which may be used in different embodiments may be JavaScript Object Notation (JSON) and EXtensible Markup Language (XML). Both JSON and XML may have libraries for several different platforms, which helps parsing and enable a briefer implementation time. An advantage with using JSON is that it is self-describing and appropriate for software development.
[0054] The software running on the alerting system control server 121 and the alerting system controller 130 may be developed, e.g., in Java in some embodiments. An advantage with using Java is its multiplatform properties and widespread use.
[0055] An administrative interface may be implemented in, e.g., Hypertext Preprocessor (PHP). An advantage with using PHP may be that it facilitates integration with HyperText Markup Language (HTML) and may be used for a web-based administrative interface.
[0056] When the alerting system control server 121 receives a message from the alerting system controller 130, then this message is examined to see if it contains an Identity (ID), i.e., a unique identity reference of the alerting system controller 130. If it does not contain an ID packet, then an error message may be delivered to the sender and the message may be discarded. However, if the message contains an ID, then a database may be updated to record the fact that this alerting system controller 130 is connected to the system 100. After the database is successfully updated, an OK message may be sent back to the alerting system controller 130.
[0057] In some embodiments, a message, e.g., from a third party application may comprise a list of alerting system controller IDs. This may be a list of alerting system controllers 130 that may be activated to generate an alert for the user as requested by the third party application. For each ID in the list, the alerting system control server 121 firstly may check if the specified/identified alerting system controller 130 is online, if notit will continue to the next ID in the list. If the alerting system controller 130 according to the ID is online, the alerting system control server 121 performs the actions specified with the list of IDs.
[0058] An action may be identified by a numeric value that represent a specific task that the identified alerting system controller 130 is to execute. Each action value is translated into a command that is sent to the indicated client. This translation may be done by looking up a database entry, potentially based upon both the ID and the numeric action value in some embodiments. Using a database provides great control over the commands that may be initiated. Additionally, different third parties may be restricted to different sets of commands that they can request the alerting system controller 130 to execute. Some alerting system controllers 130 might not be able to perform a given command. If the action value that is requested for a specific alerting system controller 130 is allowed and can be performed, then this action value is translated into a command and sent to the specific client. The next ID may then be processed. This may then be continued until all of the IDs in the list have been processed. The next message in the queue can now be processed. It may be noted that the third party interface could be extended to support SIP messages, in some embodiments.
[0059] The administrative interface enables the administrator to read logs files and other data from the database. Via the administrative interface, the administrator can send test messages and commands to any specific identified alerting system controller 130. Overall, this administrative interface provides the administrator with an easy to use interface that can be used to control the system 100. This administrative interface can be accessed through a web-browser, via scripts, or via programs in different embodiments.
[0060] The messages that can be sent to/in the system 100 may defined by the JSON format and are easy to extend for further add-ons in some embodiments. There may be one set of messages for the open channel and one set for the closed channel in some embodiments. The open channel messages may be fixed and simple with as few options as possible in some embodiments. This may be done to make the message structure easy for third parties to follow, lowering the chance of failure. The closed channel messages may be flexible and extendable with control fields and communication in both directions, i.e., from the alerting system controller 130 to the alerting system control server 121 and the opposite, from the alerting system control server 121 to the alerting system controller 130. As the closed channel may be utilized inside the system 100, there is little danger of making the structure more complex with more options.
[0061] Some advantages with the described system 100 is that it is platform independent. The system 100 is able to be used regardless of the hardware or software the user uses for communication or alerting. Further, the system 100 is cloud-based. By having the majority of logic and computations in the cloud, i.e., the set of servers 120, rather than in the user's end device or the alerting system controller 130, program administration and software updates are facilitated. Further, the system 100 has a built-in security, compared to traditional alerting systems. Further the system 100 is compatible with current alerting systems if a user already has an alerting system at home, then the alerting system controller 130 may be able to connect to it and use it for alerting the user. Further, the described system 100 may be compatible with IoT devices, if a user would rather use a smart light bulb than an alerting system receiver, then it is be possible to implement this use case using the new product, in some embodiments.
[0062] Some embodiments of the invention may define a modular implementation approach, and make it possible to reuse legacy systems such as, e.g., standards, algorithms, implementations, components and products.
[0063]
[0064] To correctly alert the user of the incoming signal, the method 200 may comprise a number of actions 201-205. It is however to be noted that any, some, or all of the described actions 201-205, may be performed in a somewhat different chronological order than the enumeration indicates or be performed simultaneously or even be performed in a completely reversed order according to different embodiments. Also, some actions such as, e.g., actions 201 may be performed only within some alternative embodiments. Further, it is to be noted that some actions may be performed in a plurality of alternative manners according to different embodiments, and that some such alternative manners may be performed only within some, but not necessarily all embodiments. The method 200 may comprise the following actions:
[0065] Action 201 may be performed within some, but not necessarily all embodiments of the method 200. Action 201 comprises waiting for an incoming connection from the alerting system controller 130.
[0066] The incoming signal may comprise an ID of the alerting system controller 130 in some embodiments. Thereby, the alerting system control server 121 is informed about which alerting system controllers 130 that are connected to the alerting system 100.
[0067] Action 202 comprises receiving information that an internet service server 110 is receiving an incoming signal for the service associated with the user, or a user device of the user.
[0068] In some embodiments, the information may be received from the internet service server 110 over an open protocol channel.
[0069] Action 203 comprises generating a control signal for triggering an alerting system controller 130 to alert the user of the incoming signal for the service by activating an alerting device 140.
[0070] Action 204 comprises identifying the alerting system controller 130 and extract the address of the alerting system controller 130.
[0071] The current address of the alerting system controller 130 may be extracted from a database or register based on the identity of the alerting system controller 130.
[0072] Action 205 comprises sending the generated 203 control signal to the identified 204 alerting system controller 130, for activating the alerting device 140 and thereby alerting the user.
[0073] In some embodiments, the control signal may be sent to the identified 204 alerting system controller 130 over a closed protocol channel. Various cryptographic communication protocols may be utilized such as, e.g., Internet Protocol Security (IPsec), Kerberos, Internet Key Exchange (IKE or IKEv2), Point-to-Point Protocol (PPP), Transport Layer Security (TLS), Secure Sockets Layer (SSL), etc. This is merely a non-exhaustive list of some arbitrary examples.
[0074]
[0075] The alerting system control server 121 may communicate with the internet service server 110 via an open channel 310, and communicate with the alerting system controller 130 via a closed channel 320, in some embodiments.
[0076] For enhanced clarity, any internal electronics or other components of the alerting system control server 121, not completely indispensable for understanding the herein described embodiments have been omitted from
[0077] The alerting system control server 121 is configured for receiving information that an internet service server 110 is receiving an incoming signal for the service. Further the alerting system control server 121 is configured for generating a control signal for triggering an alerting system controller 130 to alert the user of the incoming signal for the service by activating an alerting device 140. The alerting system control server 121 is further configured for identifying the alerting system controller 130 and extract the address of the alerting system controller 130. Also, the alerting system control server 121 is configured for sending the generated control signal to the identified alerting system controller 130, for activating the alerting device 140 and thereby alerting the user.
[0078] The alerting system control server 121 may comprise one or more processors, for performing the method 200 according to at least some of the previously described actions 201-205.
[0079] Such processor may comprise one or more instances of a processing circuit, i.e., a Central Processing Unit (CPU), a processing unit, a processing circuit, a processor, an
[0080] Application Specific Integrated Circuit (ASIC), a microprocessor, or other processing logic that may interpret and execute instructions. The herein utilized expression processor may thus represent a processing circuitry comprising a plurality of processing circuits, such as, e.g., any, some or all of the ones enumerated above.
[0081] Furthermore, the alerting system control server 121 may further comprise at least one memory, according to some embodiments. The optional memory may comprise a physical device utilized to store data or programs, i.e., sequences of instructions, on a temporary or permanent basis. Further, the memory may be volatile or non-volatile.
[0082] The above described actions 201-205 to be performed in the alerting system control server 121 may thus be implemented through the one or more processors in the alerting system control server 121, together with computer program product for performing at least some of the functions of the actions 201-205. Thus a computer program comprising program code may perform the method 200 according to any, some, or all of the functions of the actions 201-205 for alerting a user of an incoming signal for a service associated with the user, when the computer program is loaded into a processor of the alerting system control server 121.
[0083] The computer program product mentioned above may be provided for instance in the form of a data carrier carrying computer program code for performing at least some of the actions 201-205 according to some embodiments when being loaded into the processor. The data carrier may be, e.g., a hard disk, a CD ROM disc, a memory stick, an optical storage device, a magnetic storage device or any other appropriate medium such as a disk or tape that may hold machine readable data in a non-transitory manner. The computer program product may furthermore be provided as computer program code on a server and downloaded to the alerting system control server 121 remotely, e.g., over an Internet or an intranet connection.
[0084]
[0085] To appropriately alert the user, the method 400 may comprise a number of actions 401-403.
[0086] Action 401 may be performed within some, but not necessarily all possible embodiments of the method 400. Action 401 comprises establishing a connection with the alerting system control server 121 in the set of servers 120.
[0087] Action 402 comprises receiving a control signal for alerting the user of the incoming signal for the service by activating an alerting device 140, from an alerting system control server 121 in a set of servers 120.
[0088] The control signal may be received from the alerting system control server 121 over a closed protocol channel in some embodiments.
[0089] Action 403 comprises sending the received 402 control signal to the alerting device 140, for activating the alerting device 140 and thereby alerting the user.
[0090] The control signal may be sent to the alerting device 140 via, e.g., WiFi, Ethernet, Bluetooth, relay, Z-wave, ZigBee, IPv6 over Low power Wireless Personal Area Networks (6LoWPAN), Wireless Highway Addressable Remote Transducer (HART) Protocol, Wireless Universal Serial Bus (USB), or any other appropriate communication interface.
[0091]
[0092] The alerting system controller 130 may communicate with the alerting system control server 121 via a closed channel 510 and communicate with the alerting device 140 via an alerting device interface 520.
[0093] For enhanced clarity, any internal electronics or other components of the alerting system controller 130, not completely indispensable for understanding the herein described embodiments have been omitted from
[0094] The alerting system controller 130 is configured for receiving a control signal for alerting the user of the incoming signal by activating an alerting device 140, from an alerting system control server 121 in a set of servers 120. Furthermore, the alerting system controller 130 is configured for sending the received control signal to the alerting device 140, for activating the alerting device 140 and thereby alerting the user.
[0095] Further, the alerting system controller 130 may comprise one or more processors, for performing the method 400 according to at least some of the previously described actions 401-403.
[0096] Such processor may comprise one or more instances of a processing circuit, i.e., a Central Processing Unit (CPU), a processing unit, a processing circuit, a processor, an Application Specific Integrated Circuit (ASIC), a microprocessor, or other processing logic that may interpret and execute instructions. The herein utilized expression processor may thus represent a processing circuitry comprising a plurality of processing circuits, such as, e.g., any, some or all of the ones enumerated above.
[0097] Furthermore, the alerting system controller 130 may further comprise at least one memory, according to some embodiments. The optional memory may comprise a physical device utilized to store data or programs, i.e., sequences of instructions, on a temporary or permanent basis. According to some embodiments, the memory may comprise integrated circuits comprising silicon-based transistors. Further, the memory may be volatile or non-volatile.
[0098] The above described actions 401-403 to be performed in the alerting system controller 130 may thus be implemented through the one or more processors in the alerting system controller 130, together with computer program product for performing at least some of the functions of the actions 401-403. Thus a computer program comprising program code may perform the method 400 according to any, some, or all of the functions of the actions 401-403 for alerting a user of an incoming signal for a service associated with the user, when the computer program is loaded into a processor of the alerting system controller 130.
[0099] The computer program product mentioned above may be provided for instance in the form of a data carrier carrying computer program code for performing at least some of the actions 401-403 according to some embodiments when being loaded into the processor. The data carrier may be, e.g., a hard disk, a CD ROM disc, a memory stick, an optical storage device, a magnetic storage device or any other appropriate medium such as a disk or tape that may hold machine readable data in a non-transitory manner. The computer program product may furthermore be provided as computer program code on a server and downloaded to the alerting system controller 130 remotely, e.g., over an Internet or an intranet connection.
[0100] The alerting system 100 for alerting a user of an incoming signal for a service associated with the user comprises an alerting system control server 121 in a set of servers 120, as illustrated in
[0101] The terminology used in the description of the embodiments as illustrated in the accompanying drawings is not intended to be limiting of the described methods 200, 400; alerting system control server 121 and alerting system controller 130. Various changes, substitutions and/or alterations may be made, without departing from the invention as defined by the appended claims.
[0102] As used herein, the term and/or comprises any and all combinations of one or more of the associated listed items. In addition, the singular forms a, an and the are to be interpreted as at least one, thus also possibly comprising a plurality of entities of the same kind, unless expressly stated otherwise. It will be further understood that the terms includes, comprises, including and/or comprising, specifies the presence of stated features, actions, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, actions, integers, steps, operations, elements, components, and/or groups thereof. A single unit such as, e.g., a processor, may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms such as via Internet or other wired or wireless communication system.