Abstract:
A generic approach for identifying, authenticating, and correlating a received massage with a particular event and a particular recipient, regardless of the number of events, number of recipients and types of media used for the originally sent message, is achieved by the inclusion of a unique ID embedded in each originally sent message. Upon receipt of an incoming reply message, a parser extracts the unique ID information provided by the recipient from the message for correlation of the incoming message with the associated sent message.

Description:
FIELD OF THE INVENTION 
     The present invention relates to wireless communication and particularly to message identification, correlation, recipient authentication and reception confirmation for multiple events and multiple media environments with different message recipients. 
     BACKGROUND OF THE INVENTION 
     Existing message notification systems do not solve the message correlation problem. Current systems are unable to perform a correlation between message reception and message delivery in multi-media channels and multi-event environments. As used herein, media and media channel refers to, but is not limited to, landline phone service, cellular phone service, short message service (SMS), email, blackberry service, text pager service, and the like. 
     Prior solutions either do not offer the correlation capability among multiple responses with multiple events or they are based upon service provider proprietary technology valid only within limited domains. There is no generic solution useful to identify and correlate messages with multiple responses from different recipients. Particularly, there are no solutions that are independent of service providers. 
     The prior solutions are valid within the private domains. There is no prior solution capable of providing a generic approach. For example, a service offered by one carrier may be able to identify and correlate a message with which event the message should belong when there is only one event happening at a time. When there are multiple received messages for different events from a user, the system may have problems identifying and correlating these multiple messages. When service is only for one-way communication this is not a serious problem from a carrier&#39;s perspective. When a reply is not necessary, there is no demand for such an identification and correlation of messages. However, a generic approach is important for a service provider that offers service through a carrier&#39;s infrastructure. It is not practical to rely on a carrier for providing the information a service provider needs, especially when messages will be sent through multiple carriers and through other service providers. 
     When a message notification system sends a notification message through different media channels to notify a recipient of an emergency event, the system should be capable of distinguishing the reply messages from recipients sent via the different media channels. The system should identify which received message is correlated with the message delivered by the system. This message correlation feature correlates the message delivered by the system with a reply message. The message correlation feature allows the notification system to keep track of the progress of the message delivery and ensures message confirmation. Existing systems are not able to provide message reception and message delivery correlation with respect to an event, especially, in the presence of multiple-event occurrences in heterogeneous media-channel environments. In addition, the present invention is independent of particular service providers, in contrast to current systems which are heavily dependent on service providers. 
     The present invention provides unique advantages over the existing solutions by being capable of identifying, authenticating, and correlating multiple messages with different recipients for multiple events with multiple media. 
     SUMMARY OF THE INVENTION 
     The present invention provides a generic approach to authenticating the recipient&#39;s identity, confirming reception, identifying, and correlating a received message with the event and the recipient with which the received message is associated, regardless of the number of events, messages and types of media used by the originally sent message. 
     In order to develop a generic algorithm capable of correlating message delivery and message reception for multiple events with different message recipients, the algorithm has to be capable of distinguishing messages delivered with respect to a specific event, via different types of media channels, to the same recipient and correlating message reception from different media channels, and distinguishing different event-triggered messages. The message identification and message correlation is of significance, particularly in intelligent notification systems. 
     The generic identification and correlation approach for received messages through different media from multiple events is accomplished by utilizing the combination of a group of required information, including MessageID, EventID, RecipientID, and media address. 
     The present invention provides the following features not currently found in existing systems: the system is able to send a large quantity of messages to multiple different recipients. Each recipient may have more than one media channel for receiving messages, such as public switched telephone network (PSTN) phone call, email, short message service (SMS), pager and blackberry devices, and the like, from different service providers. The system is capable also of identifying bounced or returned or unreachable messages due to delivery failure or wrong media address. When the recipients reply to the messages, even replying to more than one message from different devices for the same event, the system is able to distinguish the multiple messages receiving acknowledgements from the same recipient and to record the message status. A detailed status report can be generated if necessary. 
     The present invention will be more clearly understood when the following description is read in conjunction with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a schematic block diagram of the outgoing process flow of messages. 
         FIG. 2  is a schematic block diagram of flow processing, identifying and correlating of reply messages. 
         FIG. 3  is a flow chart of a method of the process for preparing a message for transmission, including a unique ID. 
         FIG. 4  is a flow chart of a method of the processing of incoming reply messages. 
     
    
    
     DETAILED DESCRIPTION 
     In order to better understand the present invention it will be instructive to describe the functionality of each component of the system with reference to  FIG. 1  and  FIG. 2 : 
     Message Distribution Logic (MDL)  100 : 
     MDL  100  is the component responsible for generating unique MessageID, preparing required information for Voice Agent (VA)  108  and Data Agent (DA)  102  to deliver messages, storing information in corresponding database tables  104 , correlating messages across multiple events and multiple media, and performing identity authentication. 
     Data Agent/Parser (DA)  102 : 
     DA  102  is responsible for constructing the messages to be sent to recipients through different media, parsing the reply messages fetched from the email server  106 , identifying the MessageID, PIN in the message body, and recipient&#39;s media address. The DA  102  then sends the information in a status update report to the MDL  100  for further correlation and processing. 
     Voice Agent (VA)  108 : 
     VA  108  is responsible for managing voice message delivery through media server  110  to PSTN phone number and correlating call status with MessageID when call status is returned from the media server  110 . The VA  108  then sends the information in a status update report to the MDL  100  for further correlation and processing. 
     The functionality of supporting components which are acquired from existing resources are as follows: 
     Email Server  106 : 
     A generic Email Server  106  is used to deliver and receive text messages requested by Data Agent  102 . All messages, either sent through different media or service, such as SMS or email, are wrapped in standard Internet email format and delivered by this email server. 
     The functionality of the Email server  106  and its configuration in order to get the reply messages for further correlation, is important; however, this configuration does not require customized email server implementation.
         1. Set up a user account for TNS use. The user name of this account will be used to map different aliases to this particular user account. In TNS, this user account is “tns”.   2. For the system implementation, preferably a sendmail email server is chosen as the component responsible for delivering email. In the configuration responsible for “aliases” of the email server, it is necessary to add pattern matching rules, or so-called “local aliases” in the sendmail server, so messages with the particular local alias will be forwarded to a particular user account. For instance:
           tns:tns   fsisac:tns   demo:tns   
           Based on the rules above, messages with “to” address starts with “tns”, “fsisac” and “demo” will be forwarded to “tns” user account.       

     Media Server  110 : 
     Media server  110  is used as the entity controlling the voice call connections with the contracted telephone network carrier. Media Server  110  is supervised by the VA  108  to establish or terminate voice call connections, converts PSTN signals to common status messages then sends the messages back to VA  108 . 
     Database  104 : 
     The Database  104  is a storage device used to store the information associated with each event message in an individual folder along with the status of sent messages. 
     The configuration guideline of the different components with mandatory database fields and their functionality in order to achieve the unique capability of the present invention, requires the following database fields:
         1. EventID: this field may have data type in integer or string. This is used to represent a particular event that occurred which requires the sending of notifications.   2. RecipientID: this is used to represent a particular user registered in the notification system. This ID may be also used for other purposes, such as user ID.   3. MessageID: This is a system-wide unique ID used to represent a particular message sent.   4. Media address: This represents the address of a type of media, such as email address.       

     These mandatory fields may reside in different tables but it is the responsibility of the implementation to gather information from all these required fields. 
     In order to generate a system-wide unique MessageID, the MDL  100  uses a function generating unique sequence number from an Oracle database, for example, which is the database chosen in TNS, to generate a system-wide unique integer as the MessageID. 
     Having described the functionality of the components comprising the system, the operation of the system shown in  FIG. 1  and  FIG. 2  will now be described in conjunction with the flow charts in  FIG. 3  and  FIG. 4 .  FIG. 1  shows a schematic block diagram of the outgoing process flow of a message where Message Distribution Logic (MDL)  100  generates a unique MessageID for each message  301 . Referring now to  FIG. 3 , at  300  the MDL  100  receives a request to send notifications to a chosen group of recipients. At  301 , the MDL prepares the required information, generates the unique MessageID for each message, generates the EventID to represent such an event request, packages the information together then sends the packaged information to both or either Voice Agent  108 , at  306  and Data Agent  102 , at  302 , depending on the event request. For text-based messages, the MDL  100  sends the unique MessageID, along with other required information, including recipient&#39;s media address to a Data Agent/Parser (DA)  102 , in step  302 . The term media address refers to the particular media related address used to send a message to a recipient based on the media used to communicate with the recipient, such as email address. For voice message, the MDL  100  sends the unique MessageID, the associated phone number, the associated personal identification number (PIN), along wither other information to a Voice Agent ( 108 ). The MDL  100  also sends the information to a Database  104  where the information is stored. For instance, in the Database  104 , each message has its own record kept. The MessageID, RecipientID, EventID, and media address are the required information stored and the combination of these parameters will be used for further processing. The MDL  100  also tracks the message periodically. 
     The system is able to send a large volume of messages to multiple, different recipients having different message devices. Each recipient may have more than one media to receive messages, such as landline phone number, cellular phone number, email, SMS, a blackberry device, or the like from different service providers. The result is a platform and technology-independent, carrier-agnostic, and media-neutral capability. 
     Process in Voice Agent  108  after receiving the notification delivery request from the MDL  100 : 
     1. At  307 , once Voice Agent  108  receives the notification delivery request with required information from MDL  100 , Voice Agent  108  retrieves the mandatory information, such as phone number, and initiates the voice call command to Media Server  110 . At  308 , Media Server  110  is the component responsible for making call connections to telephone carriers to dial out to the target phone numbers. 
     2. At  309 , once a voice call is established end-to-end, Voice Agent  108  will be able to play the message while the phone is picked up. The voice message and process work as interactive voice response (IVR). Depending on the application requirement, different process can be defined to accommodate the demands.  FIG. 4  is a flow chart of the processing of incoming reply messages. During the call duration, at  409 , Voice Agent  108  is able to get the status information through dial tone multi-frequency (DTMF) codes responded by the recipients. If the IVR response requires the recipient to enter a PIN for identification authentication and reception confirmation, at  410  the Voice Agent  108  gets the PIN from DTMF codes while the recipient enters a PIN through the phone keypad. Other types of response may be collected as well, depending on the IVR flows. At  411 , Voice Agent  108  plays the voice message and collects the input PIN and recipient&#39;s response by interpreting the DTMF codes. 
     3. Since the Voice Agent  108  receives a PIN from the MDL  100 , Voice Agent  108  can perform authentication locally. Depending on the application requirement, the Voice Agent  108  may require the recipient to input the PIN, get authenticated then play the voice message. If the authentication fails, the message is not played. 
     4. After the call is finished, at  412  the Voice Agent gathers the collected response and results of authentication and reception confirmation, puts the information into a status update report message then, at  413 , sends this message back to the MDL  100 . 
     Process in Data Agent  102  after receiving the notification delivery request from the MDL  100 . Referring to  FIG. 3  and  FIG. 4 :
         1. At  302 , Data Agent  102  receives the notification delivery request with required information from MDL  100 . DA  102  extracts the information, such as the recipient&#39;s media address, MessageID, EventID, message subject, content, etc. At  303 , Data Agent  102  composes the message, embeds the MessageID in the “from address,” and makes the “from address” in the following format:
           tns+xxxxx @tns.telcordia.com   
           Where “xxxxx” is the MessageID from MDL  100  and “tns.telcordia.com” is the TNS domain name (in this example telcordia.com). The plus sign, “+”, is only a string separator acceptable for a Sendmail email server.   2. Depending on the requirements, there are two preferred methods of assigning the “from address” for the composed messages. The first method is to assign the string formed in the previous section as the “From address” in the composed message. The second method is to assign a customized “tag” as the “From address” and add one more parameter, “Reply To”, in the message header. The string formed in the previous section will be assigned to “Reply To”. The customized tag can be composed based on different demands in the following format:
           Tag_Name&lt;customized media address&gt;   
           For instance, a tag created for Verizon may look like the following:
           Verizon&lt;admin @verizon.com&gt;   
           Where “Verizon” is the Tag_Name and admin@verizon.com is the customized media address for Verizon.       

     Therefore, the “From address” in the composed message will look in either of the following formats:
         From: tns+xxxxx@tns.telcordia.com       

     or
         From: Verizonadmin@verizon.com   Reply To: tns+xxxxx@tns.telcordia.com       

     At  304 , Data Agent  102  sends the composed messages to the Email Server  106  for delivery to the recipient or recipients at  305 . 
     Referring to  FIG. 4 , when an authorized subscriber replies to a message, the incoming reply message  400  address is as this format: tns+xxxxx@tns.telcordia.com, regardless how the “From address” is formed in the sent message. 
     With the email server configuration as described above, at  401  when an incoming reply message arrives at the email server  106 , messages are forwarded to the corresponding user account or mail folder based on the aliases configuration at  402 . At  403 , Data Agent/Parser  102  then periodically opens the mail folder of this user account and retrieves the messages if there are any. At  404 , DA  102  parses the messages, and extracts the information, particularly looking for the embedded MessageID, the PIN contained in the message body and the recipient&#39;s media address. DA  102  also parses and identifies the same information for bounced messages. At  405 , DA  102  then collects the identified information and status, including identifying bounced messages, and sends the status update back to MDL  100 . Such a status update report typically contains the following information:
         A. MessageID, recipient&#39;s media address and PIN of a valid message   B. MessageID and recipient&#39;s media address of a bounced message
 
At  407 , MDL  100  receives status update report from either VA  108  or DA  102 , and correlates and verifies the reply message.
       

     Status update reports from VA  108  contain the information of whether the call goes through, the MessageID, and the corresponding phone number. MDL  100  stores the information and updates the status in the corresponding Database  104  fields. Based on this combination of information, MDL  100  will be able to correlate the voice message with the other messages sent through different media channels with the corresponding event and the associated recipient. MDL  100  then can realize the notification delivery status of this particular event to the associated recipient: whether the recipient is notified by any media, is the message delivery confirmed, is it delivered to the correct recipient with the correct PIN, or the status of delivery errors. 
     Status update reports from DA  102  contain the information of whether the message sent is bounced, the MessageID, the recipient&#39;s media address and the identified PIN. MDL  100  stores the information and updates the status in the corresponding Database  104  fields. At  408 , MDL  100  then verifies whether the identified PIN matches the record stored in the Database  104  to realize the identification of the associated recipient. Based on this combination of information, MDL  100  will be able to correlate the message with the other messages sent through different media channels with the corresponding event and the associated recipient. After this, MDL  100  can realize the notification delivery status of this particular event to the associated recipient: whether the recipient is notified by any means of media, is the message delivery confirmed, is it delivered to the correct recipient with the correct PIN, or the status of delivery errors. 
     Approach to Reply with PIN and Identify the PIN 
     The process for identifying the PIN from an email response requires a certain format and instruction. A random reply format will create unnecessary burdens for the data parser  102 . Subscribers are assumed to reply to the message with the PIN in the following steps: 
     Reply and make certain the “Reply To” address appears; 
     At the top, first line of the content in the reply message, insert the PIN (assume that the PIN is a 4-digit number) followed by a space or “enter”. For example, xxxx(Space or Enter). 
     In another example where the media is short message service (SMS), for each notification, the MDL  100  generates a unique ID (temporarily called MessageID) associated with a particular destination address and sends this information to the Data Agent/Parser  102 . The Data Agent/Parser  102  receives this information and generates a unique “From” address for the outgoing message in the format described above in conjunction with the email message. 
     For an SMS reply, only the “From” field remains. Embedding the MessageID into the field of the sent message guarantees the successful identification of the MessageID. When the subscriber replies to the message, the address will become the “To” address. A Data Parser in the DA  102  retrieves the messages from the mail folder and processes the messages to extract the MessageID and PIN information as described above. The PIN information is a unique secret identifier associated with each respective authorized recipient (similar to a PIN number associated with an ATM card) which is used by an authorized recipient to indicate receipt of a message and to indicate the identity of the responder. After the Data Parser in the DA  102  extracts the MessageID and PIN information, the Data Parser sends a status notification message to the MDL  100  confirming the identity of the authorized recipient responding to the original message. 
     The method and system for identification, authentication, and correlation is possible for multiple media channels including email, voice, and SMS services. 
     While there has been described and illustrated a system and method for identifying and correlating multiple messages to different recipients for multiple events, it will be apparent to those skilled in the art that variations and modifications are possible without deviating from the broad teachings and scope of the present invention which shall be limited solely by the scope of the claims appended hereto.