The present disclosure relates generally to digital communications and, more particularly, to digital notification systems and methods.
Communications systems are becoming increasingly sophisticated with the development of Internet-based communication modalities. The Internet-based communication modalities include email and instant messaging (IM), among others. While advances have been made in consolidating different communications services, there is an ongoing need for further consolidation.
The present disclosure provides systems and methods for providing notifications for incoming voicemail (VM) messages over an instant messaging (IM) transport. Briefly described, for some embodiments, among others, notifications for VM messages are generated, and the generated notifications are then transmitted to an IM contact address over an IM transport.
Other systems, devices, methods, features, and advantages will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, and be within the scope of the present disclosure.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
Reference is now made in detail to the description of the embodiments as illustrated in the drawings. While several embodiments are described in connection with these drawings, there is no intent to limit the invention to the embodiment or embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents.
Communications systems are becoming increasingly sophisticated with the development of Internet-based communication modalities. Of particular relevance, instant messaging (IM) has become a popular medium due to its near real-time conveyance of messages. While the IM transport is mostly used for near real-time IM chat sessions, these IM chat sessions are only one aspect of IM communications.
The present disclosure provides systems and methods for providing notifications for incoming voicemail (VM) messages over IM transport. In some embodiments, among others, the operating environment involves a subscriber that has both a digital VM mailbox and an IM account. In that operating environment, a VM agent mediates communications between a digital VM repository and the subscriber's IM client. The VM agent detects incoming VM messages to the subscriber's VM mailbox. When the subscriber receives a digital VM message, a notification for that VM message is generated. In some embodiments, the VM message notification is generated by the VM mailbox and conveyed to the VM agent. In other embodiments, the VM agent polls the VM mailbox and generates a VM message notification when a VM message is deposited to the VM mailbox.
The VM message notification is transmitted from the VM agent to an IM subscriber over an IM transport. So long as the IM subscriber is present online through an IM client, the IM subscriber, who is also the subscriber of the VM mailbox, receives the VM message notification in near-real-time via the subscriber's IM client. The various drawings show several embodiments of systems and methods for providing notification of VM messages using IM transport.
The embodiment of
In accordance with one embodiment, among others,
By way of example, the environment of
When configured as a subscriber to the digital VM repository 110 (hereinafter also referred to as “subscriber embodiments”), the VM agent 165 receives notifications from the digital VM repository 110 when new VM messages are stored at the digital VM repository 110. When configured as a watcher, or, more particularly, as a poller, of the digital VM repository 110 (hereinafter also referred to as “watcher embodiments” or “poller embodiments”), the VM agent 165 polls the VM repository 110 to determine whether new VM messages have been stored at the VM repository 110.
In the environment of
In the event that the intended recipient is unavailable to answer the telephone, the CO 175 directs the telephone call to the recipient's VM mailbox in the digital VM repository 110. Facilitated by the NAS/SIP server 120, the call is directed to the digital VM repository 110 through the Internet 150. The caller then leaves a VM message for the intended recipient at the digital VM repository 110.
For subscriber embodiments, the digital VM repository 110 provides a notification to the VM agent 165. The notification is indicative of a newly-deposited VM message. The VM agent 165 receives the notification and conveys that notification to the IM client 145 using known IM transport mechanisms. If the intended recipient is present online, then the notification over IM is displayed at the IM client of the intended recipient substantially in real time. If the recipient is not present online, then, for some embodiments, the notification by IM is stored at the IM server 130 for delivery to the IM client 145 upon login by the recipient.
For poller embodiments, the VM agent 165 polls the digital VM repository 110. Thus, when a new VM message has been deposited in the digital VM repository 110, the VM agent 165 detects the newly-deposited VM message when the digital VM repository 110 is next polled. In response to the newly-deposited VM message, the VM agent 165 determines the online presence of the recipient. If the recipient is present online, then the VM agent 165 generates an IM message having the notification. The generated IM message is then delivered to the IM client 145 and displayed to the recipient. If the recipient is not present, then the VM agent 165 waits until the recipient logs into the IM account. Thereafter, the VM agent 165 delivers the IM message to the IM client 145 for display to the recipient.
The presence determination logic 220 is configured to perform one or more of the functions of a “presence user agent” as defined in RFC 2778. The chat logic 230 comprises both IM message receive logic 232 and IM message transmit logic 234. The IM message receive logic 232 is configured to perform one or more functions of an “inbox user agent” as defined in RFC 2778. The IM message transmit logic 234 is configured to perform one or more functions of a “sender” as defined in RFC 2778. Since “presence user agent,” “inbox user agent,” and “sender” are known in the art, no further discussions are provided for the various functions of these components or their corresponding structural components.
The user interface logic 240 provides an interface to enable the recipient (or user) to access the various functions of the IM client 145. In one embodiment, among others, the user interface logic 240 generates a graphical user interface (GUI) that enables the user to select and manipulate various features associated with the IM client 145. Since those functions and features are known to those having skill in the art, further discussions of those functions and features are omitted here. The display logic 250 renders incoming and outgoing messages for display, so that the user can view those messages. The display logic 250, for some embodiments, further renders the GUI for display to the user at, for example, a computer monitor screen.
With the exception of the contact address 214 of the VM agent 165, the IM client 145 can be a conventional IM client, as known to those having skill in the art. For other embodiments, if the contact address 214 of the VM agent 165 is no different than the contact address of another IM user, then any conventional IM client can be used for the IM communications aspect of the disclosed systems and methods.
The VM agent 165 further comprises presence determination logic 320. The presence determination logic 320 is configured to perform one or more of the functions of a “presence user agent” as defined in RFC 2778. Thus, the presence determination logic 320 determines whether or not the various subscribers 312 in the subscriber list 310 are present on IM.
In addition to the subscriber list 310 and the presence determination logic 320, for some embodiments, the VM agent 165 further comprises IM logic 330, which includes VM message receive logic 332, VM message transmit logic 334, subscriber-message correlation logic 336, and notification logic 338. It should be appreciated that these various components need not be configured as sub-components of the IM logic 330 but, rather, may be configured as separate logic components within the VM agent 165.
The VM message receive logic 332 is configured to perform one or more functions of an “inbox user agent” as defined in RFC 3778. The VM message transmit logic 334 is configured to perform one or more functions of a “sender” as defined in RFC 3778. In that regard, when a VM message is deposited at the digital VM repository 110, and the digital VM repository 110 issues a notification of the newly-deposited VM message, the VM message receive logic 332 receives the issued notification. The subscriber-message correlation logic 336 is configured to correlate the notification with its corresponding subscriber 312. Since the VM message is deposited to a particular VM mailbox at the digital VM repository 110, the received notification provides an indication of the user that is associated with that particular VM mailbox. The received notification is then included in an IM message by the notification logic 338. That IM message is conveyed to the appropriate recipient through the VM Message transmit logic 334.
In other embodiments, the VM agent 165 polls the digital VM repository 110 for newly-deposited VM messages. When a newly-deposited VM message is detected, the subscriber-message correlation logic 336 correlates the VM message with its corresponding subscriber. Thereafter, the notification logic 338 generates an IM message that includes a notification of the newly-deposited VM message. The VM message transmit logic 334 delivers the generated IM message to the appropriate subscriber.
As shown in the embodiments of
Having described embodiments of systems for providing notifications of VM messages, attention is turned to
Continuing in
As shown in
Continuing in
As shown in
As shown in the embodiments of
The IM client 145, the VM agent 165, the contact list 210, the subscriber list 310, the presence determination logic 220, 320, the chat logic 230, the user interface logic 240, the display logic 250, the IM message receive logic 232, the IM message transmit logic 234, the IM logic 330, the VM message receive logic 332, the VM message transmit logic 334, the subscriber-message correlation logic 336, and the notification logic 338 may be implemented in hardware, software, firmware, or a combination thereof.
In the preferred embodiment(s), the IM client 145, the VM agent 165, the contact list 210, the subscriber list 310, the presence determination logic 220, 320, the chat logic 230, the user interface logic 240, the display logic 250, the IM message receive logic 232, the IM message transmit logic 234, the IM logic 330, the VM message receive logic 332, the VM message transmit logic 334, the subscriber-message correlation logic 336, and the notification logic 338 are implemented in software or firmware that is stored in a memory and that is executed by a suitable instruction execution system.
If implemented in hardware, as in an alternative embodiment, the IM client 145, the VM agent 165, the contact list 210, the subscriber list 310, the presence determination logic 220, 320, the chat logic 230, the user interface logic 240, the display logic 250, the IM message receive logic 232, the IM message transmit logic 234, the IM logic 330, the VM message receive logic 332, the VM message transmit logic 334, the subscriber-message correlation logic 336, and the notification logic 338 can be implemented with any or a combination of the following technologies, which are all well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.
Any process descriptions or blocks in flow charts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
The programs represented by the IM client software 145 and the VM agent software 165, which comprises an ordered listing of executable instructions for implementing logical functions, can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device, such as a computer-based system, processor-containing system, or other system that can fetch the instructions from the instruction execution system, apparatus, or device and execute the instructions. In the context of this document, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-readable medium can be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a nonexhaustive list) of the computer-readable medium would include the following: an electrical connection (electronic) having one or more wires, a portable computer diskette (magnetic), a random access memory (RAM) (electronic), a read-only memory (ROM) (electronic), an erasable programmable read-only memory (EPROM or Flash memory) (electronic), an optical fiber (optical), and a portable compact disc read-only memory (CDROM) (optical). Note that the computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured via, for instance, optical scanning of the paper or other medium, then compiled, interpreted or otherwise processed in a suitable manner if necessary, and then stored in a computer memory.
Although exemplary embodiments have been shown and described, it will be clear to those of ordinary skill in the art that a number of changes, modifications, or alterations to the invention as described may be made.