WO2000065786A1 - Global unified messaging system and method - Google Patents

Global unified messaging system and method Download PDF

Info

Publication number
WO2000065786A1
WO2000065786A1 PCT/US2000/010709 US0010709W WO0065786A1 WO 2000065786 A1 WO2000065786 A1 WO 2000065786A1 US 0010709 W US0010709 W US 0010709W WO 0065786 A1 WO0065786 A1 WO 0065786A1
Authority
WO
WIPO (PCT)
Prior art keywords
communications
data
node
message
route
Prior art date
Application number
PCT/US2000/010709
Other languages
French (fr)
Other versions
WO2000065786A9 (en
Inventor
Edison Tack-Shuen Tse
Sunyih Juang
Jin Jiang
Yiqing Tu
Original Assignee
Stanford Global Link Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stanford Global Link Corporation filed Critical Stanford Global Link Corporation
Priority to AU44768/00A priority Critical patent/AU4476800A/en
Publication of WO2000065786A1 publication Critical patent/WO2000065786A1/en
Publication of WO2000065786A9 publication Critical patent/WO2000065786A9/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/53Centralised arrangements for recording incoming messages, i.e. mailbox systems
    • H04M3/5307Centralised arrangements for recording incoming messages, i.e. mailbox systems for recording messages comprising any combination of audio and non-audio components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/64Distributing or queueing
    • H04Q3/66Traffic distributors
    • H04Q3/665Circuit arrangements therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2207/00Type of exchange or network, i.e. telephonic medium, in which the telephonic communication takes place
    • H04M2207/20Type of exchange or network, i.e. telephonic medium, in which the telephonic communication takes place hybrid systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/08Indicating faults in circuits or apparatus
    • H04M3/12Marking faulty circuits "busy"; Enabling equipment to disengage itself from faulty circuits ; Using redundant circuits; Response of a circuit, apparatus or system to an error
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/0012Details of application programming interfaces [API] for telephone networks; Arrangements which combine a telephonic communication equipment and a computer, i.e. computer telephony integration [CPI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/12Arrangements for interconnection between switching centres for working between exchanges having different types of switching equipment, e.g. power-driven and step by step or decimal and non-decimal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1305Software aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13093Personal computer, PC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13103Memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13106Microprocessor, CPU
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13141Hunting for free outlet, circuit or channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13164Traffic (registration, measurement,...)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13166Fault prevention
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13175Graphical user interface [GUI], WWW interface, visual indication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13179Fax, still picture
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13204Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1322PBX
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13299Bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13336Store & forward, messaging systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13339Ciphering, encryption, security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13352Self-routing networks, real-time routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13374Paging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13375Electronic mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/13389LAN, internet

Definitions

  • This invention relates generally to a system and method which permits a variety of different types of message to be sent to anywhere in the world, and in particular, to a system and method for delivering a variety of different message types over an integrated communications systems.
  • a variety of different communications systems are needed.
  • a facsimile machine may be used to communicate a facsimile message
  • an Internet connection and an e-mail software application may be used to communicate e-mail messages
  • a voicemail system may be used to communicate a voicemail message.
  • An obvious disadvantage is that the variety of different systems which are required may be expensive and it is often difficult to have access to all of these system at any one time. It is also undesirable to have to operate each of these different systems to communicate the different types of messages. Therefore, it is desirable to provide a system for communicating a variety of different messages over a single integrated communications network.
  • a message is not guaranteed to be received by the recipient.
  • the electronic message traverses the Internet, no entity is actually tracking the progress of the message to ensure that it is received.
  • the message may travel across a plurality of routers.
  • each router is only concerned with receiving the message and forwarding the message onto the next router.
  • the router does not perform any function to ensure that a successful communication occurs.
  • the message will typically be dropped and must be re-sent by the message source in order to ensure delivery. It is desirable, however, to provide a system which uses the Internet for communication, but ensures that a variety of different messages are being successfully communicated to the recipient.
  • the invention provides a messaging system and method which permits a variety of different messages to be communicated over a communications network.
  • the communications network may include a plurality of communications nodes and a plurality of different communications routes which interconnect the commumcations nodes. Due to the multiple communications routes, a message from an origination node to a destination node may be communicated over any of the communications routes depending on which commumcations route is currently able to handle the message communications. Thus, messages may be routed around a disabled communications route. Thus, in accordance with the invention, the delivery of the message is guaranteed.
  • the invention is global unified messaging system which permits the communication of messages having a variety of different data formats, such as facsimile messages, voice messages, electromc messages and the like.
  • the system ensures that any type of message originating from an originating node will be received by a destination node through the communications network because the communications network includes a plurality of different commumcations routes over which the message may be sent.
  • the system includes a method for dynamically routing the message over the plurality of communications routes to ensure successf l communication of the message from the origination node to the destination node.
  • the messaging system may divide a message into one or more encrypted electronic packets and each electromc packet may be communicated to the destination node over a different communications route so that the message is delivered more rapidly and the message do not congest a particular communications route.
  • Figure 1 is a diagram illustrating a global unified communications system in accordance with the invention.
  • Figure 2 is a diagram illustrating an example of a communications network of the system shown in Figure 1;
  • Figure 3 is a diagram illustrating more details of the multiple-IP o commumcations network of Figure 2 ;
  • Figure 4 is a diagram illustrating an example of the physical layout of a communications node in accordance with the invention.
  • FIG. 5 is a diagram illustrating the logical layout of the communications node of Figure 4; 5 Figure 6 is a diagrammatic functional view of the communications node in accordance with the invention;
  • FIG. 7 is a more detailed diagrammatic view of the communications node of Figure 6;
  • Figure 8 is a diagram illustrating details of the message exchange layer of o the communications node in accordance with the invention.
  • Figure 9 is a flowchart illustrating a method for generating a routing table in accordance with the invention.
  • Figure 10 is a flowchart illustrating a method for selecting a routing path in accordance with the invention.
  • 5 Figure 11 is a flowchart illustrating a method for electronic packet transmission in accordance with the invention.
  • the invention is particularly applicable to a global unified messaging system which uses the Internet to communicate the messages and it is in this context that the invention will be described. It will be appreciated, however, that the system and method in accordance with the invention has greater utility since the system may use other communication networks.
  • the invention as broadly described, is global unified messaging system which permits the communication of messages having a variety of different data formats, such as facsimile messages, voice messages, electronic messages and the like. It should be noted, however, that the invention is not limited to the particular different types of messages described below.
  • the system ensures that any type of message originating from an originating node will be received by a destination node through the communications network because the communications network includes a plurality of different communications routes over which the message may be sent.
  • the system also includes a method for dynamically routing the message over the plurality of communications routes to ensure successful communication of the message from the origination node to the destination node.
  • the system may fragment a message into one or more packets and each packet may be sent over a separate communications route.
  • FIG. 1 is a diagram illustrating a global communications system 30 in accordance with the invention in which an originating node 32 may communicate a variety of different messages to a destination node 34 over a communications network 36.
  • a single origination node and a single destination node are shown for clarity, the invention is not limited to a single origination node or a single destination node.
  • each communications node in the messaging system may operate as both a origination node and a reception node.
  • the origination and destination nodes may be physically located in remote geographic locations since messages may be communicated to any geographic location over the communications network 36.
  • a single communications node may both receive and send messages over the system 30.
  • the origination and destination nodes 32, 34 may each have a plurality of different products/services which send and/or receive (i.e., communicate) messages through the communications network 36.
  • each node may include a telephone 38, a facsimile machine 40, a desktop computer 42, a laptop computer 44, a cellular phone 46 and a pager 48 which communicate messages over the global messaging system.
  • the messages generated or received by these products/services may be communicated over an intermediary communications medium, such as a telephone network 50 or an Internet 0 connection 52, which is in turn connected to a central communications network 54.
  • the central communications network 54 may include one or more computer systems 56 interconnected together by the Internet so that the messages being communicated over the communications network may be dynamically routed through a variety of different communications routes, as described below, to 5 ensure that the message is successfully communicated from the origination node to the destination node.
  • a user connected to the origination node 32 may desire to send a facsimile o message to a user in Singapore.
  • the user connected to the origination node may generate the facsimile message by some conventional means and then request that the global communications system 30 send the facsimile message to Singapore.
  • the global messaging system may convert the facsimile message into a unified digital format, as described below, and request that the message be sent over the 5 communications network 36.
  • the communications network 36 may then determine, in real-time, an optimal routing path for the message over the one or more communications routes which make up the communications network, as described below, and send the message to the destination node which may be in Singapore.
  • the communications network 36 may include Internet communications routes 54 as well as conventional telephone line communications routes and, if the Internet cannot deliver the message in a timely fashion, the system 30 may automatically select to send the facsimile message from the least expensive originating country directly to Singapore over a conventional telephone line commimications route using typical facsimile technology.
  • the system 30 has a plurality of different communications routes which ensure that a message from the origination node 32 reaches the destination node 34 in a timely manner.
  • FIG 2 is a diagram illustrating an example of the communications network 36 of the system 30 shown in Figure 1.
  • each computer system 56 which makes up a portion of the communications network, may be a communications node which may receive and/or send messages over the system 30. Therefore, as shown in Figure 2, each computer system 56 may have one or more services or products 60, such as a facsimile machine, a desktop computer and a laptop computer, connected to it which may receive and/or send messages over the communications network 36.
  • the products and services and the communications node may be connected together.
  • the commumcations node and the communications network may be connected together using a variety of different conventional technologies, such as the Internet, a frame relay network, an ISDN or dial-up link, a leased telephone line or a TCP/IP connection.
  • the communications network 36 may include the computer systems 56 which are interconnected together by a plurality of commumcations routes in a communications mesh so that a message may be communicated between two communications nodes over a variety of different communication routes.
  • the system 30 has redundant commumcations routes to ensure message delivery.
  • the communications network 36 may dynamically route a message through the one or more communications routes to ensure timely delivery.
  • the communications network 36 also tracks each communicated message to ensure successful message communications and to permit a user of the system 30 to track his message.
  • each message may be encrypted and broken apart into a plurality of packets, as described below, so that it is difficult to intercept a message. Now, more details about the communications network will be provided.
  • FIG. 3 is a diagram illustrating more details of the multi-path commumcations network 36 in accordance with the invention.
  • a simple communications network containing three commumcations nodes (A, B and C) will be described although the invention typically has many more communications nodes interconnected together.
  • each communications node may have one or more computer systems so that each communications node may have multiple commumcations routes coming into and out of the communications node.
  • communications node A may have a first computer system 70 and a second computer system 72 each of which may have a different IP protocol address (EP1 and IP2) so that communications node A has two commumcations routes attached to it.
  • IP protocol address EP1 and IP2
  • communications node B may have two computer systems 74, 76, each with separate IP addresses
  • communications node C may have three computer systems 78, 80, 82, each also with separate IP addresses. Due to the multiple IP addresses at each communications node, multiple communications routes are available between each communications node. In accordance with the invention, data from any of the communications nodes to any other communications node may be routed along any of these communications routes.
  • the network topology shown above also permits multiple end-to-end connections between the communication nodes to provide multiple end-to-end communications paths so that data destined for a particular communications node may be routed over one of multiple communications paths.
  • the commumcation of a data packet from node A to node B as shown in Figure 3 may occur over multiple end-to-end communications paths.
  • the data packet may be sent from node A directly to node B (over one of the IP protocol addresses) or from node A to node C and then from node C onto node B.
  • This routing of data over any of the communications routes permits dynamic routing of the data based upon a variety of factors, such as cost of communications, reliability of that communications route currently, the network load of a communications route currently and the total capacity of each communications route.
  • the message may be routed either over any of the four communications routes which directly connect the two communications nodes (e.g., IP 1 to IP2, IPl to IPl, IP2 to IPl and IP2 to IP2) or over any of the communications routes which include communications node C.
  • the communications network shown in Figure 3 there may be sixteen different communications routes between communications node A and commumcations node B.
  • the system may include a feedback mechanism in which each communications node may feed back information about each other communications node and itself so that the system may avoid communicating messages through communications nodes which are, for example, congested or not operating.
  • each communications node may feed back information about each other communications node and itself so that the system may avoid communicating messages through communications nodes which are, for example, congested or not operating.
  • FIG 4 is a diagram illustrating an example of the physical layout of a communications node 90 of the system shown in Figure 1.
  • a communications node 90 may both send and receive messages and thus may be both the originating commumcation node 32 and the destination communications node 34 as shown in Figure 1.
  • the communications node 90 may include one or more computer systems which may be interconnected over a backbone network 92, such as an Ethernet local area network (LAN).
  • the communications node 90 may communicate with the communications network 36 over a communications medium, such as the Internet, via a router 94 owned by a first Internet Service Provider (ISP) connected to the backbone network.
  • ISP Internet Service Provider
  • the communications node 90 may include, for example, a communications station 96, a workstation 98, a communications server 100 and a backup server 102 interconnected together by the backbone network so they can share data and information.
  • a communications station 96 may include, for example, a communications station 96, a workstation 98, a communications server 100 and a backup server 102 interconnected together by the backbone network so they can share data and information.
  • the workstation 98 may permit a user to send and receive messages over the system as well as, for example, use an Internet phone product.
  • the communications server 100 may be connected, via a modem over a PPP protocol link, to a second Internet service provider (ISP) for redundancy so that, if the router 94 fails, messages may still be communicated.
  • ISP Internet service provider
  • the backup server 102 may also be connected, via a modem over a PPP protocol link, to another backup Internet service provider (ISP) for further redundancy.
  • ISP Internet service provider
  • the communications station 96 and the communications server 100 may have one or more telephone lines connected to them so that messages may be received over the telephone lines, such as facsimile messages.
  • the communications node 90 may communicate messages over both the Internet and over typical phone lines as needed so that a message can be communicated to the destination.
  • the various functionality within the communications node may be split up in a variety of different ways between the various computer systems. An example of the logical functional layout of the communications node 90 will now be described.
  • FIG. 5 is a diagram illustrating an example of the logical layout of the commumcations node 90 of Figure 4.
  • the communications station 100, the communications station 96 and the backbone network 92 are shown.
  • the backbone network 92 as described above, permit the communications station 96 and the communications server 100 to communicate with each other.
  • the communications station 96 and the communications server 100 may each include a message transport server 110 and a packet transport server 112.
  • the message transport server 110 may control the processing of each incoming and outgoing message while the packet transport server 112 may receive or send the incoming and outgoing messages over the communications network and begin to process them as described below in more detail.
  • incoming and outgoing messages may be split between the communications station 96 and the communications server 100 since both have the packet transport server 112 with multiple IP connections.
  • the message transport servers and packet transport servers may be interconnected to each other.
  • the communications station 96 and the communications server 100 may also each include a storage folder 114 for temporarily storing information about each message which may be then stored in a single SQL server database 116 which may be located, for example, in the communications server 100.
  • the communications server 100 may also include a task dispatch server
  • FIG 6 is a diagrammatic functional view of the communications node 90 in accordance with the invention.
  • the commumcations node 90 may include a presentation layer 120, a message exchange layer 122, a message unification layer 124, a task dispatching layer 126 and a packet exchange layer 128.
  • Each of these different logical layers of the communications node will be briefly described and then described in more detail below.
  • the functionality of each of these layers may be embodied in one or more pieces of software being executed by one or more of the computer systems shown in Figure 5.
  • the presentation layer 120 may receive a variety of different messages from a variety of different sources and thus act as an interface between the global messaging system in accordance with the invention and the messaging systems and the various messages being communicated.
  • the message exchange layer 122 may perform system administration and billing functions as well as ensuring that a message has the proper authorization to be sent over the global messaging system to ensure security.
  • the message unification layer 124 may convert the different messages with the different formats and protocols into a single unified message format to be communicated over the global messaging system, store the message in a digital format, and generate a task associated with the message.
  • the task dispatching layer 126 may schedule the message tasks, prioritize the message tasks as necessary, determine the routing of the message over the communications network, and if necessary, acknowledge receipt of an incoming message.
  • the packet exchange layer 128 may prepare the message for communication and send/receive the message.
  • the layers will be described for outgoing messages, but it should be noted that each of the layers may also receive messages and perform the appropriate processes to receive a unified message and output the appropriate message to the appropriate messaging system.
  • the presentation layer 120 may include interfaces to a variety of different sources for messages which may be communicated over the global messaging system.
  • a voice message source 130 such as voice over IP service
  • a facsimile message source 132 an e-mail source (e.g., MIME format) 134
  • a document source 136 which may include hypertext mark-up language (HTML) and text documents
  • HTTP hypertext mark-up language
  • the message exchange layer 122 may include third party computer telephony integration (CTI) devices 140 which receives the voice or facsimile messages and converts them into digital data messages and a message exchange server 142 which converts e-mail, HTML, documents and data into digital data. These two systems may also authenticate the identity of the message source and confirm that the sender/receiver of the message is a customer of the umfied messaging system.
  • CTI computer telephony integration
  • the message exchange layer 122 may also include an administrative system 144 and a database 145.
  • the database 145 may store a variety of information about the messages passing through the global messaging system, such as the owner of the message, the task assigned to that message and the like.
  • the administrative system 144 may further include a system administration unit 146 for ensuring the global messaging system is operating properly, a billing/accounting unit 148 for tracking the billing of the messages to users, and a system management unit 150 for periodically checking the characteristics of the system, such as the backlog of messages which may be waiting to be sent and the like.
  • the message unification layer 124 may perform various functions such as security functions, storage functions, and generating task types.
  • the message unification layers 124 may include a message unifier 152 which receives the various types of messages from the CTI devices 140 and the message exchange server 142 and generates unified digital messages which may be transmitted over the global messaging system.
  • the message unifier may append header information, such as the sender and his address, onto the message and remove any other information not needed to transmit the message.
  • the unified messages may be stored in a storage unit 154 which may be a hard disk drive, an optical drive, a tape drive or any other type of suitable media for storing the unified messages.
  • the task dispatching layer 126 may perform various functions such as scheduling each task which may be to send or receive an individual message, prioritization of the tasks to ensure that priority messages are sent promptly, load control to ensure that the messages being sent over the communication routes, as described above, connecting the particular communications node to the rest of the global messaging system are being properly utilized, routing to ensure that a message is transmitted through the communications path which best matches its criteria, such as cost or time, and acknowledgment to acknowledge to other layers of the system receipt of the outgoing message.
  • the task dispatching layer may include a task scheduler 156 and a router 158.
  • the task scheduler may schedule the tasks generated by the message umfier 152 wherein each task may be a separate message being sent or received by the global messaging system.
  • the task scheduler may also be connected to the database 145 so that information about each scheduled task may be entered into the database so that the client may be charged and other data about the load on the system may be later analyzed.
  • the task scheduler 156 may also be connected to the router 158 which determines, for each task, the appropriate communications route through which the message may be communicated. The task scheduler and the router will be described in more detail below with reference to Figure 7.
  • the packet exchange layer 128 may perform various functions, such as communication of the umfied messages, controlling the flow of the messages being communicated over each communications route attached to the communications node, and load balancing to ensure one of the commumcations routes attached to the communications node is not overloaded.
  • the packet exchange layer 128 may include an electronic packet unit 160 and a packet transmission unit 162.
  • the electronic packet unit 160 may, at times, divide a unified message from the storage 154, based on instructions from the task scheduler 156, into smaller pieces which may be communicated over different commumcations routes as described below, generate appropriate headers for each smaller piece so that the unified message may be reconstructed at the reception communications node, and encrypt each piece of the message.
  • the encrypted pieces of the message are then forwarded to the packet transmission unit 162 which communicates the encrypted pieces of the message, based on instructions from the router 158, over the global messaging system to the reception communications node.
  • a message may be received from an authenticated user by the communications node.
  • the commumcations node may convert the incoming message, which may be in a variety of different formats, into a unified digital format, schedule a task to send the message and determine the routing of the message over the communications routes connected to the communications node. Based on the determined routing, the communications node may split up the message into smaller pieces of data, which may be encrypted. In accordance with the invention, each smaller piece of encrypted data may then be communicated to the reception commumcations node over a possibly different communications route. When the communications node receives pieces of a message, it may reconstruct the message from the encrypted pieces and distribute the message to the appropriate person based on the information in the header of the message.
  • FIG 7 is a more detailed diagrammatic data flow view of the commumcations node 90 and in particular the router 158, the electronic packet generator 160 and the packet transmission unit 162.
  • the router 158 may communicate with the task scheduler 156 shown in Figure 6 and one or more tasks associated with each message to be sent or received by the particular communications node generated by the task scheduler may be placed into a task queue 170 in the router 158.
  • the task queue may contain a list of the pending tasks for the communications node which are then routed to the appropriate destination communications node by the router 158 which will now be described.
  • the router may also include a routing table 172, a destination decider 174, an SChannel task queue 176, a task queuing and routing unit 178, a DChannel dispatch and traffic controller 180, a server table 182, and a routing path decider 184.
  • a routing table 172 a destination decider 174
  • SChannel task queue 176 a task queuing and routing unit 178
  • DChannel dispatch and traffic controller 180 a server table 182
  • a routing path decider 184 a routing path decider 184.
  • a facsimile message destined for Singapore may be sent to a communications node in Singapore and then locally faxed to the recipient.
  • the Singapore commumcations node is currently unable to accept incoming messages, then the message may be sent to a China communications node and then faxed directly to Singapore.
  • the commumcations node may transmit the facsimile over a telephone line directly to Singapore which incurs long distance telephone charges.
  • there may therefore be a variety of different communications paths to the communications node which may include a variety of different technologies, such as the Internet or facsimile machines.
  • the message is guaranteed to reach its destination.
  • the destination decider 174 may receive information, such as cost of each communications path, facsimile balance information which indicates the current facsimile capacities of the destination communications node, and the most recent status of the destination commumcations node as provided by the feedback mechanism as described below.
  • the cost of the commimications path depends on the method for communications since transmission over the Internet is considerably less expensive than a long distance facsimile transmission. In most cases, the communications node attempts to communicate the message using the least expensive communications path to maximize the profit margin for each message being communicated.
  • the least expensive commumcations path such as the direct Internet connection to a communications node in the destination country
  • a more expensive commumcations path may be used, such as sending the message to a commumcation node is a neighboring country and then transmitting the message via facsimile from the neighboring country to its destination.
  • the destination decider 174 may also take advantage of oddities in global telephone rates. For example, it is often less expensive to call from another country into Japan than to make a call between, for example, Tokyo and Osaka due to high telephone call rates within Japan.
  • the destination decider may compile a complete list of communication routes to all location in the global messaging system and load that complete list into the routing table 172 while the rest of the system is handling the message traffic.
  • the destination decider may also update the information in the routing table from time to time as needed in the background so that the processing of the messages is not interrupted by the determination of the destinations.
  • the information in the routing table 172 and the information from the task queue 170 may be fed into the task queuing and routing unit 178 which takes the next task from the task queue and places the task into the SChannel task queue 176 which schedules the message represented by the task to be communicated to a particular destination communications node based on the information in the routing table.
  • the task is passed on to the DChannel dispatch and traffic controller 180.
  • the DChannel dispatch and traffic controller 180 may determine the appropriate communications routes over which to send the packets of the message to the destination communications node.
  • the DChannel dispatch and traffic controller may receive information from the server table 182 which may contain a list of communications routes which are suggested communication routes at the particular time since the list in the server table may be updated constantly based on traffic information from the routing path decider 184.
  • the routing path decider may, based on traffic status information about the communications network, as described below, decide the appropriate routing (forwarding) path and calculate the DChannel traffic control information which is then written into the server table.
  • the server table information is then used by the DChannel dispatch and traffic controller to enter the tasks into a DChannel task queue 190 as described below to schedule the packets of the message to be communicated over the one or more communications routes.
  • the DChannel dispatch and traffic controller may also ensure that a particular DChannel is not being overloaded (traffic control) and may re-route some traffic to other DChannels as needed to control congestion problems. For each SChannel (commumcations node), there may be several DChannels which represent the different communications routes (IP addresses), as shown in Figure 3, which may connect the originating communications node and the destination communications node.
  • the tasks that are entered into the DChannel task queue 190 have been assigned one or more particular commumcation routes over which portions of the message will be commumcated. In particular, the division of the message into multiple smaller uniform sized packets has been determined and the communications route that each packet may use has also been determined.
  • the tasks in the queue are matched up with the actual message in the storage and the information is passed onto the electronic packet generator 160 which will now be described.
  • the electronic packet generator 160 may include a compressor 192, a encrypter 194 and a fragmenter 196.
  • the electronic packet generator may compress the message as much as possible to reduce the total amount of data in the message, encrypt the message for security and divide the message into one or more electronic packets.
  • the compressor 192 may get the next task from the DChannel task queue and compress the data in the corresponding message.
  • the compression may be accomplished using any well- known conventional compression method and the invention is not limited to any particular compression technique.
  • the compressed message is passed onto the encrypter 194 which may encrypt the message.
  • the encryption may be accomplished using a variety of different well- known encryption techniques, such as RSA's Public Key User Authentication and Symmetric Key Encryption.
  • the encryption may be based on Microsoft's Cryptography application program interfaces (APIs).
  • APIs application program interfaces
  • the encrypted message may then be passed onto the fragmenter 196.
  • the fragmenter may, based on current Internet traffic information, divide the encrypted message into one or more electronic packets which may be stored in a database 198.
  • Each packet of a message may also include a header so that the individual packets which make up the message may be reconstructed once received at the destination communications node.
  • each electronic packet of a message may be communicated over a different communications route depending on traffic conditions.
  • each electromc packet may be assigned to a particular commumcations route and then the routing of each electronic packet may be stored in a Packet DChannel queue 200.
  • the routing information in the Packet DChannel queue and the actual packets in the database 198 may be forwarded to the packet transmitter 162 which will now be described in more detail.
  • the packet transmitter 162 may include a bank of transmission units 202 which has one or more transmission units (TU1, TU2, ...TUn). Each transmission unit may be responsible for communicating packets over a particular communications route. Each transmission unit may obtain traffic information about the particular communications route and then attempt to communicate the packets.
  • each transmission unit may simultaneously communicate the electronic packets assigned to its communications route to the destination communications node.
  • the transmission units may also receive data about traffic problems in their particular communications route which may be passed on to a traffic status repository 204 which will now be described.
  • the traffic status repository 204 may continuously contain updated traffic information about the communications routes in the global messaging system so that the communications node may properly assign messages and packets to communication routes which are not currently suffering from traffic problems.
  • the traffic status repository may receive traffic information about various different portions of the global messaging system. For example, it may receive information about traffic problems over particular communication routes from the transmission units.
  • the traffic status repository may also receive traffic information from a network collector 206 which may collect Internet traffic status information from other communication nodes so that the communications nodes in the global messaging system share traffic information with each other.
  • the traffic status repository 204 may also receive information from a DChannel Explorer 208 which continuously tests each broken DChannel (communications route) associated with the communications node for a quality connection.
  • the traffic status repository may collect the traffic status information and provide the information to the routing path decider 184 to optimize communications route being taken.
  • the traffic problems may be caused by a variety of different problems. For example, traffic problems may occur if a communications node has crashed and cannot receive any messages, if a communications route has been disabled for some reason, if the entire Internet network crashes, or if a particular DChannel has too much data currently being communicated over it.
  • each communications node may continuously monitor the traffic of its environment and the rest of the global messaging system so that messages may be routed around traffic problems to ensure that every message is communicated to its destination. Now, more details of the message exchange layer of a commumcations node will be described.
  • FIG 8 is a diagram illustrating details of the message exchange layer 122 of the communications node in accordance with the invention.
  • the message exchange layer may receive a variety of different messages, such as a voice message 210, a facsimile message 212, an electronic mail message (email) 214 and a file transfer protocol (FTP) message 216.
  • FTP file transfer protocol
  • each message the various portions of the message are separated out and analyzed.
  • each message may include authentication information 218, destination information 220, type information 222 and the actual data 224.
  • the authentication information 218, which is used to determine if the message sender is a current customer of the global messaging system, is checked for authentication 226 by well-known techniques, and the authenticated customer information may be passed onto the task queue 170.
  • the destination and message type information 220, 222 may be passed onto a mapper 228 which uses the message type and destination information to determine the appropriate destination communications node within the messaging system of the message. For example, a message destined for China may be assigned to a communications node in China since the messaging system does not have any communications nodes in Cambodia.
  • the mapper may also use information from a broadcasting and customization database 230 to help identify the proper destination communications node of the message. The results of the mapping may be fed into the task queue 170.
  • FIG. 9 is a flowchart illustrating a method 240 for generating a routing table in accordance with the invention for a particular message to a particular destination in a particular country.
  • the routing table is generated based on a cost table 242 which will be briefly described here.
  • the cost table may include information about each country code in the world and the area code delivery cost from each communications node in the global messaging system.
  • the cost table may, for example, contain a plurality of data elements in which each data element may have a structure such as structure ⁇ itemlD, countrycode, areaCode, serverlD, deliveryCost, backupFlag
  • the cost table may contain a data element which identifies, for example, the appropriate communications node (serverlD) and its associated cost (deliveryCost).
  • serverlD the appropriate communications node
  • deliveryCost the cost of the cost table 242 based on the deliveryCost information. This may be the least cost method for delivery of a message from a particular communications node to a particular destination in a particular country.
  • step 246 the next least cost country, area code pair data element is retrieved for the cost table.
  • the current data element is analyzed to determine if it is an appropriate communications node for the particular message.
  • the fax balance value i.e., total facsimile capacity for the particular communications node
  • a predetermined maximum threshold fax balance value (Threshold_Fax_Balance)
  • the method rejects the current data element representing a particular communications node and returns to step 246 so that the data element representing another communications node may be retrieved and analyzed.
  • step 254 it is determined if a value equal to the number of successful electronic packets recently sent to the particular destination communications node divided by the total number of electronic packets sent to the destination commumcations node (E_Pak_successful/E_Pak) during a predetermined time is greater than a minimum threshold E_Pak_successfi ⁇ l value to determine if the percentage of successful electronic packet communications is above some mimmum level. If the percentage of successful electronic packet communications is not above the mimmum, another pair is selected in step 246 and the new data element representing a new communications node is analyzed.
  • step 256 it is determined whether a value equal to the total number of successfully communicated tasks to the destination communications node divided by the total number of tasks (count_task_ack/count_task) for the particular destination communications node over a predetermined time is greater than a mimmum acknowledged task value (Threshold Task). If the percentage of acknowledged tasks is not greater than the mimmum value, then the method loops back to step 246 and another pair is retrieved and analyzed.
  • step 258 it is determined whether a value equal to the successful tasks over the acknowledged tasks (count_succ_task/count_task_ack) for the particular destination commumcations node over a predetermined time, such as ten minutes, is greater than a mimmum threshold successful task value (Threshold succ) to determine if the percentage of successful tasks is greater than the mimmum. If the percentage of successful tasks is not greater than the minimum, then the method loops back to step 246 so that another pair may be retrieved and analyzed. If the percentage of successful tasks is greater than the minimum value, the pair is entered into the routing table.
  • step 248 ensures that at least one data element (representing a particular communications route) is entered into the routing table 250 for each destination country and area code.
  • a routing table for each destination communications node is generated.
  • the data element in the routing table for each destination communications node may have a structure, such as structure
  • FIG. 10 is a flowchart illustrating a method 260 for selecting a routing path in accordance with the invention in order to determine an appropriate Channel over which to transmit a message and to update traffic information about each DChannel.
  • the method analyzes each DChannel.
  • step 262 the first possible DChannel is selected and the successful delivery ratio and the smoothed trip time from a local site information is determined.
  • step 264 a decision about the current status of the DChannel is determined.
  • step 266 the method retrieves another DChannel in step 266 and loops back to step 262 to test that new DChannel. If the status of the DChannel is bad (i.e., there is a problem with the particular DChannel), then in step 268, the particular DChannel is closed, a DChannel Counter is decremented (indicating that there are fewer DChannels to select from) and a DChannel probe process is activated which will now be described.
  • the DChannel probe process analyzes the bad DChannel continually over predetermined time periods since the DChannel may eventually return to the good status and be returned to the available DChannels. Thus, in step 270, a DChannel probe test is performed and in step 272, the status of the DChannel is tested again. If the DChannel status is still bad the method loops back to step 270 and the DChannel probe test is repeated after some predetermined time interval until the status changes. Once the status changes to "Good" for the particular DChannel, the DChannel Counter is incremented and the DChannel is re-opened for use in step 274 and the method loops back to step 262 to test other DChannels.
  • the method in step 276 may determine if DChannelCount is greater than zero (i.e., there are other available DChannels to transmit data), the method loops back to step 262. If there are no other DChannels available, then the method retrieves the successful delivery ratio and the smoothed trip time from the traffic status table in step 278 and determines a forwarding path 20 (through one or more communications nodes) in step 280 based on this information. If no forwarding path for the particular message is determined, then the method sets the commumcation node to send an event to update the routing table with this information in step 282.
  • the communications node may communicate the message over more expensive communications paths, such as using a conventional facsimile machine or a facsimile board in a computer to transmit the message directly to the destination phone number.
  • the message is guaranteed to be delivered to the recipient unlike conventional e-mail messages in which there is never any guarantee that the message has been commumcated successfully.
  • the method sets the selected forwarding path in step 284.
  • FIG 11 is a flowchart illustrating a method 300 for electronic packet transmission in accordance with the invention.
  • Each electronic packet may have a structure, such as struct ep ⁇ short TaskType, unsigned TaskID, unsigned short TotalSegs, //total number of segments/packets in this task unsigned short SegNo, //sequence number of particular segment unsigned PacketLengthn, //length of packet char UrgentFlag, //Urgent Data Flag unsigned CkSum, //checksum value int DestinationServerlD, //ID of destination server TASKINFO HEADER Tasklnfo, //Info, of the task IPADDR SourcelP, //IP address of source
  • IPADDR DestinationIP //IP address of destination unsigned char *EP-Data //variable length data
  • the electronic packet structure may thus include a header containing information so that the electromc packets associated with a particular message may be reconstructed from the electronic packets.
  • the packet transmission process may use the various data in the packet DChannel queue 200 as described above which contains the packets destined to be communicated over particular DChannels.
  • each transmission unit associated with each DChannel may retrieve an electronic packet for the appropriate queue for that DChannel and send the electronic packet to its destination.
  • each transmission unit determines whether the transmission was successful based on whether the transmission unit received an acknowledgment signal from the destination. If the transmission was successful for a particular transmission unit, then the method returns to step 302 and the transmission unit retrieves another electronic packet and sends it.
  • the unsuccessful electronic packet may be rerouted to the next DChannel be placing it in the packet DChannel queue 200 for the next DChannel in step 306 so that the electronic packet is retried for each DChannel associated with the commumcations node.
  • the transmission method may also be affected by changes in the routing table since the routing table may change the routing of particular messages. In addition, since the routing table is continuously updated, the transmission method constantly receives routing information which may change the DChannels being used, for example. Thus, in step 308, it is determined if there is a routing table change event. If there is not a routing table change, then the method loops back to step 308 to continuously checks for a routing table change.
  • the method may delete the electronic packets to be communicated over that communications route from the packet DChannel queue and send the task containing those deleted electronic packets back to the task queue to be reassigned to a new communications route in step 310. In this manner, it is ensured that the electronic packets are successfully communicated over the DChannel or rerouted to another DChannel to ensure successful commumcation of every message.
  • the customer may transmit a facsimile message to an origination communications node which may contain the user's identification number, the destination phone number (Dphonenumber) and the content of the facsimile message.
  • the origination communications node may receive the facsimile over a CTI device, such as a GammaLinkTM fax board.
  • the communications node may check that the user's identification is valid during an authentication process, digitize the facsimile message content and encrypt the facsimile message.
  • the communications node may enter a task into the task queue for the facsimile delivery based on the task type, task priority and other factors and store the digitized facsimile content into a storage.
  • the task queue routing process may occur which routes the task through a particular communications node.
  • the communications node may select a next task (the facsimile message) from the task queue and identify a Dphonenumber in the task information. Based on the country code and area code of the Dphonenumber, the communications node chooses, from the routing table, the destination communications node.
  • the communications node may send the task to the appropriate SChannel task queue to send the task over the Internet to the destination communications node.
  • the DChannel dispatch and traffic controller may select a best routing path through a communications route to the destination communications node based on the information in the server table. The task may then be passed on to the packet exchange layer.
  • the packet exchange layer may perform routing path decision processes on the task.
  • the communications node may, based on the selected best routing path, send the task to the appropriate DChannel task queue.
  • the digitized facsimile message from the storage is retrieved, compressed and encrypted.
  • the encrypted message is segmented into multiple electromc packets and each packet is sent to the packet DChannel queue to be communicated over one or more DChannels as described above.
  • the packet transmission layer may then pick up the packets from the packet DChannel queue and attempt to send the packets through the Internet to the destination communications node.
  • the electronic packet will not be successfully communicated and the electronic packet is sent back so that it may be sent through a different DChannel which does not have the traffic problems.
  • the unsuccessful electronic packet will continue to cycle through the system until it is successfully communicated over a DChannel.
  • the total time of the transaction and the DChannel used is recorded and sent to the traffic status updater to update the traffic status as needed. Now, the reception of a message will be briefly described.
  • the packet exchange layer of the communications node may process the incoming message.
  • the packet exchange layer may receive the multiple elecfromc packets. If the electronic packets are for a new task, as determined based on the header information, a new task is generated. Once all of the electronic packets for the particular task are received, as determined by the information in the header of each electronic packet, the electronic packets are recombined together and decrypted to generate the incoming facsimile message which is entered into a facsimile message queue. Then facsimile message may then be sent, via the same CTI device such as the GammaLinkTM facsimile board, to the recipient and an acknowledgment signal is sent back to the originating commumcations node.
  • CTI device such as the GammaLinkTM facsimile board

Abstract

The invention is a messaging system and method which permits the communication of messages having a variety of different data formats, such as facsimile messages, voice messages, electronic messages and the like. The system ensures that any type of message originating from an originating node will be received by a destination node through the communications network because the communications network includes a plurality of different communications routes over which the message may be sent. The system includes a method for dynamically routing the message over the plurality of communications routes to ensure successful communication of the message from the origination node to the destination node. In accordance with another aspect of the invention, the messaging system may divide a message into one or more encrypted electronic packets and each electronic packet may be communicated to the destination node over a different communications route so that the message is delivered more rapidly and the message does not congest a particular communications route.

Description

GLOBAL UNIFIED MESSAGING SYSTEM AND METHOD
Background of the Invention
This invention relates generally to a system and method which permits a variety of different types of message to be sent to anywhere in the world, and in particular, to a system and method for delivering a variety of different message types over an integrated communications systems.
In order to typically send a variety of different messages, such as a facsimile message, an e-mail message or a voicemail message, a variety of different communications systems are needed. For example, a facsimile machine may be used to communicate a facsimile message, an Internet connection and an e-mail software application may be used to communicate e-mail messages and a voicemail system may be used to communicate a voicemail message. An obvious disadvantage is that the variety of different systems which are required may be expensive and it is often difficult to have access to all of these system at any one time. It is also undesirable to have to operate each of these different systems to communicate the different types of messages. Therefore, it is desirable to provide a system for communicating a variety of different messages over a single integrated communications network. In some communications systems, such as electronic mail, a message is not guaranteed to be received by the recipient. In fact, as the electronic message traverses the Internet, no entity is actually tracking the progress of the message to ensure that it is received. For example, the message may travel across a plurality of routers. Typically, each router is only concerned with receiving the message and forwarding the message onto the next router. Thus, once the message has passed through the router, the router does not perform any function to ensure that a successful communication occurs. In addition, if the router becomes congested, the message will typically be dropped and must be re-sent by the message source in order to ensure delivery. It is desirable, however, to provide a system which uses the Internet for communication, but ensures that a variety of different messages are being successfully communicated to the recipient.
Thus, it is desirable to provide a messaging system and method which solves the problems associated with conventional messaging systems and it is to this end that the present invention is directed.
Summary of the Invention
The invention provides a messaging system and method which permits a variety of different messages to be communicated over a communications network. The communications network may include a plurality of communications nodes and a plurality of different communications routes which interconnect the commumcations nodes. Due to the multiple communications routes, a message from an origination node to a destination node may be communicated over any of the communications routes depending on which commumcations route is currently able to handle the message communications. Thus, messages may be routed around a disabled communications route. Thus, in accordance with the invention, the delivery of the message is guaranteed.
The invention is global unified messaging system which permits the communication of messages having a variety of different data formats, such as facsimile messages, voice messages, electromc messages and the like. The system ensures that any type of message originating from an originating node will be received by a destination node through the communications network because the communications network includes a plurality of different commumcations routes over which the message may be sent. The system includes a method for dynamically routing the message over the plurality of communications routes to ensure successf l communication of the message from the origination node to the destination node. In accordance with another aspect of the invention, the messaging system may divide a message into one or more encrypted electronic packets and each electromc packet may be communicated to the destination node over a different communications route so that the message is delivered more rapidly and the message do not congest a particular communications route.
Brief Description of the Drawings
5 Figure 1 is a diagram illustrating a global unified communications system in accordance with the invention;
Figure 2 is a diagram illustrating an example of a communications network of the system shown in Figure 1;
Figure 3 is a diagram illustrating more details of the multiple-IP o commumcations network of Figure 2 ;
Figure 4 is a diagram illustrating an example of the physical layout of a communications node in accordance with the invention;
Figure 5 is a diagram illustrating the logical layout of the communications node of Figure 4; 5 Figure 6 is a diagrammatic functional view of the communications node in accordance with the invention;
Figure 7 is a more detailed diagrammatic view of the communications node of Figure 6;
Figure 8 is a diagram illustrating details of the message exchange layer of o the communications node in accordance with the invention;
Figure 9 is a flowchart illustrating a method for generating a routing table in accordance with the invention;
Figure 10 is a flowchart illustrating a method for selecting a routing path in accordance with the invention; and 5 Figure 11 is a flowchart illustrating a method for electronic packet transmission in accordance with the invention.
Detailed Description of a Preferred Embodiment
The invention is particularly applicable to a global unified messaging system which uses the Internet to communicate the messages and it is in this context that the invention will be described. It will be appreciated, however, that the system and method in accordance with the invention has greater utility since the system may use other communication networks. The invention, as broadly described, is global unified messaging system which permits the communication of messages having a variety of different data formats, such as facsimile messages, voice messages, electronic messages and the like. It should be noted, however, that the invention is not limited to the particular different types of messages described below. The system ensures that any type of message originating from an originating node will be received by a destination node through the communications network because the communications network includes a plurality of different communications routes over which the message may be sent. The system also includes a method for dynamically routing the message over the plurality of communications routes to ensure successful communication of the message from the origination node to the destination node. The system may fragment a message into one or more packets and each packet may be sent over a separate communications route. Now, the global commumcations system in accordance with the invention will be described.
Figure 1 is a diagram illustrating a global communications system 30 in accordance with the invention in which an originating node 32 may communicate a variety of different messages to a destination node 34 over a communications network 36. Although a single origination node and a single destination node are shown for clarity, the invention is not limited to a single origination node or a single destination node. In fact, each communications node in the messaging system may operate as both a origination node and a reception node. The origination and destination nodes may be physically located in remote geographic locations since messages may be communicated to any geographic location over the communications network 36. In the actual system, a single communications node may both receive and send messages over the system 30. As shown, the origination and destination nodes 32, 34 may each have a plurality of different products/services which send and/or receive (i.e., communicate) messages through the communications network 36. For example, as shown in Figure 1, each node may include a telephone 38, a facsimile machine 40, a desktop computer 42, a laptop computer 44, a cellular phone 46 and a pager 48 which communicate messages over the global messaging system. The messages generated or received by these products/services, such as pager messages, facsimile messages, voicemail messages and the like, may be communicated over an intermediary communications medium, such as a telephone network 50 or an Internet 0 connection 52, which is in turn connected to a central communications network 54. The central communications network 54 may include one or more computer systems 56 interconnected together by the Internet so that the messages being communicated over the communications network may be dynamically routed through a variety of different communications routes, as described below, to 5 ensure that the message is successfully communicated from the origination node to the destination node. An example of the operation of the system will now be provided.
In operation, a user connected to the origination node 32, which may be located, for example, in Palo Alto, California, may desire to send a facsimile o message to a user in Singapore. The user connected to the origination node may generate the facsimile message by some conventional means and then request that the global communications system 30 send the facsimile message to Singapore. The global messaging system may convert the facsimile message into a unified digital format, as described below, and request that the message be sent over the 5 communications network 36. The communications network 36 may then determine, in real-time, an optimal routing path for the message over the one or more communications routes which make up the communications network, as described below, and send the message to the destination node which may be in Singapore. Once the message is received by the destination node, it is converted back into a facsimile format message and delivered to the user in Singapore. During the communications process, a feedback mechanism ensures that the message is received. In this example, the communications network 36 may include Internet communications routes 54 as well as conventional telephone line communications routes and, if the Internet cannot deliver the message in a timely fashion, the system 30 may automatically select to send the facsimile message from the least expensive originating country directly to Singapore over a conventional telephone line commimications route using typical facsimile technology. Thus, as described below in more detail, the system 30 has a plurality of different communications routes which ensure that a message from the origination node 32 reaches the destination node 34 in a timely manner. Now, the communications network 36 in accordance with the invention will be described.
Figure 2 is a diagram illustrating an example of the communications network 36 of the system 30 shown in Figure 1. In this example, each computer system 56, which makes up a portion of the communications network, may be a communications node which may receive and/or send messages over the system 30. Therefore, as shown in Figure 2, each computer system 56 may have one or more services or products 60, such as a facsimile machine, a desktop computer and a laptop computer, connected to it which may receive and/or send messages over the communications network 36. The products and services and the communications node may be connected together. The commumcations node and the communications network may be connected together using a variety of different conventional technologies, such as the Internet, a frame relay network, an ISDN or dial-up link, a leased telephone line or a TCP/IP connection. The communications network 36, as shown in Figure 2, may include the computer systems 56 which are interconnected together by a plurality of commumcations routes in a communications mesh so that a message may be communicated between two communications nodes over a variety of different communication routes. Thus, even if one of the computer systems 56 crashes or is not available for Internet communications, there are other communications routes which are still available so that the system 30 has redundant commumcations routes to ensure message delivery. In addition, even if a computer system cannot communicate with the Internet, a user connected to that disabled computer system may still receive a facsimile message, for example, since the message may be communicated over a telephone line using typical facsimile technology available at the communications node. In addition, as described below in more detail, the communications network 36 may dynamically route a message through the one or more communications routes to ensure timely delivery. The communications network 36 also tracks each communicated message to ensure successful message communications and to permit a user of the system 30 to track his message. To ensure security of the messages, each message may be encrypted and broken apart into a plurality of packets, as described below, so that it is difficult to intercept a message. Now, more details about the communications network will be provided. Figure 3 is a diagram illustrating more details of the multi-path commumcations network 36 in accordance with the invention. For purposes of illustration, a simple communications network containing three commumcations nodes (A, B and C) will be described although the invention typically has many more communications nodes interconnected together. As shown in Figure 3, each communications node may have one or more computer systems so that each communications node may have multiple commumcations routes coming into and out of the communications node. For example, communications node A may have a first computer system 70 and a second computer system 72 each of which may have a different IP protocol address (EP1 and IP2) so that communications node A has two commumcations routes attached to it. Similarly, communications node B may have two computer systems 74, 76, each with separate IP addresses, and communications node C may have three computer systems 78, 80, 82, each also with separate IP addresses. Due to the multiple IP addresses at each communications node, multiple communications routes are available between each communications node. In accordance with the invention, data from any of the communications nodes to any other communications node may be routed along any of these communications routes.
The network topology shown above also permits multiple end-to-end connections between the communication nodes to provide multiple end-to-end communications paths so that data destined for a particular communications node may be routed over one of multiple communications paths. For example, the commumcation of a data packet from node A to node B as shown in Figure 3 may occur over multiple end-to-end communications paths. In particular, the data packet may be sent from node A directly to node B (over one of the IP protocol addresses) or from node A to node C and then from node C onto node B. This routing of data over any of the communications routes (either between individual nodes or end-to-end) permits dynamic routing of the data based upon a variety of factors, such as cost of communications, reliability of that communications route currently, the network load of a communications route currently and the total capacity of each communications route.
For example, if a message is originating from communications node A and being received at commumcations node B, the message may be routed either over any of the four communications routes which directly connect the two communications nodes (e.g., IP 1 to IP2, IPl to IPl, IP2 to IPl and IP2 to IP2) or over any of the communications routes which include communications node C. Thus, for the communications network shown in Figure 3, there may be sixteen different communications routes between communications node A and commumcations node B. Thus, there are multiple communications routes to and from each communications node in order to ensure that a message is successfully communicated between the communications nodes regardless of any problems in any portion of the communications network or any particular communications route. To avoid problem spots in the commumcations network, the system, as described below in more detail, may include a feedback mechanism in which each communications node may feed back information about each other communications node and itself so that the system may avoid communicating messages through communications nodes which are, for example, congested or not operating. Now, an example of the physical layout of a communications node in accordance with the invention will be described.
Figure 4 is a diagram illustrating an example of the physical layout of a communications node 90 of the system shown in Figure 1. As described above, a communications node 90 may both send and receive messages and thus may be both the originating commumcation node 32 and the destination communications node 34 as shown in Figure 1. The communications node 90 may include one or more computer systems which may be interconnected over a backbone network 92, such as an Ethernet local area network (LAN). The communications node 90 may communicate with the communications network 36 over a communications medium, such as the Internet, via a router 94 owned by a first Internet Service Provider (ISP) connected to the backbone network. The communications node 90 may include, for example, a communications station 96, a workstation 98, a communications server 100 and a backup server 102 interconnected together by the backbone network so they can share data and information. In addition to these computer systems, there may also be, for example, a uninterrupted power supply (UPS) system 104 and printers 106. The workstation 98 may permit a user to send and receive messages over the system as well as, for example, use an Internet phone product. The communications server 100 may be connected, via a modem over a PPP protocol link, to a second Internet service provider (ISP) for redundancy so that, if the router 94 fails, messages may still be communicated. The backup server 102 may also be connected, via a modem over a PPP protocol link, to another backup Internet service provider (ISP) for further redundancy. The communications station 96 and the communications server 100 may have one or more telephone lines connected to them so that messages may be received over the telephone lines, such as facsimile messages. Thus, the communications node 90 may communicate messages over both the Internet and over typical phone lines as needed so that a message can be communicated to the destination. The various functionality within the communications node may be split up in a variety of different ways between the various computer systems. An example of the logical functional layout of the communications node 90 will now be described.
Figure 5 is a diagram illustrating an example of the logical layout of the commumcations node 90 of Figure 4. For purposes of this description, the communications server 100, the communications station 96 and the backbone network 92 are shown. The backbone network 92, as described above, permit the communications station 96 and the communications server 100 to communicate with each other. The communications station 96 and the communications server 100 may each include a message transport server 110 and a packet transport server 112. The message transport server 110 may control the processing of each incoming and outgoing message while the packet transport server 112 may receive or send the incoming and outgoing messages over the communications network and begin to process them as described below in more detail. In this example, incoming and outgoing messages may be split between the communications station 96 and the communications server 100 since both have the packet transport server 112 with multiple IP connections. The message transport servers and packet transport servers may be interconnected to each other. The communications station 96 and the communications server 100 may also each include a storage folder 114 for temporarily storing information about each message which may be then stored in a single SQL server database 116 which may be located, for example, in the communications server 100. The communications server 100 may also include a task dispatch server
118 which controls whether the communications station 96 or the communications server 100 may process a particular message. When a message is first received by either message transport server 110, the job of receiving or sending the message is assigned a task number which is stored in the SQL database 116 so that the task dispatch server 118 may assign the task to whichever one of the packet transport servers 112 is available. Now, the functional elements of the communications node 90 which, among other things, processes the messages will be described.
Figure 6 is a diagrammatic functional view of the communications node 90 in accordance with the invention. As shown, the commumcations node 90 may include a presentation layer 120, a message exchange layer 122, a message unification layer 124, a task dispatching layer 126 and a packet exchange layer 128. Each of these different logical layers of the communications node will be briefly described and then described in more detail below. The functionality of each of these layers may be embodied in one or more pieces of software being executed by one or more of the computer systems shown in Figure 5. The presentation layer 120 may receive a variety of different messages from a variety of different sources and thus act as an interface between the global messaging system in accordance with the invention and the messaging systems and the various messages being communicated. The message exchange layer 122 may perform system administration and billing functions as well as ensuring that a message has the proper authorization to be sent over the global messaging system to ensure security. The message unification layer 124 may convert the different messages with the different formats and protocols into a single unified message format to be communicated over the global messaging system, store the message in a digital format, and generate a task associated with the message. The task dispatching layer 126 may schedule the message tasks, prioritize the message tasks as necessary, determine the routing of the message over the communications network, and if necessary, acknowledge receipt of an incoming message. Finally, the packet exchange layer 128 may prepare the message for communication and send/receive the message. For purposes of clarity below, the layers will be described for outgoing messages, but it should be noted that each of the layers may also receive messages and perform the appropriate processes to receive a unified message and output the appropriate message to the appropriate messaging system.
In more detail, the presentation layer 120 may include interfaces to a variety of different sources for messages which may be communicated over the global messaging system. For example, there may be a voice message source 130 such as voice over IP service, a facsimile message source 132, an e-mail source (e.g., MIME format) 134, a document source 136 which may include hypertext mark-up language (HTML) and text documents, and a data source 138. In accordance with the invention, messages from each of these message sources may be communicated over the unified messaging system. The message exchange layer 122 may include third party computer telephony integration (CTI) devices 140 which receives the voice or facsimile messages and converts them into digital data messages and a message exchange server 142 which converts e-mail, HTML, documents and data into digital data. These two systems may also authenticate the identity of the message source and confirm that the sender/receiver of the message is a customer of the umfied messaging system. The message exchange layer 122 may also include an administrative system 144 and a database 145. The database 145 may store a variety of information about the messages passing through the global messaging system, such as the owner of the message, the task assigned to that message and the like. The administrative system 144 may further include a system administration unit 146 for ensuring the global messaging system is operating properly, a billing/accounting unit 148 for tracking the billing of the messages to users, and a system management unit 150 for periodically checking the characteristics of the system, such as the backlog of messages which may be waiting to be sent and the like.
The message unification layer 124 may perform various functions such as security functions, storage functions, and generating task types. The message unification layers 124 may include a message unifier 152 which receives the various types of messages from the CTI devices 140 and the message exchange server 142 and generates unified digital messages which may be transmitted over the global messaging system. For example, the message unifier may append header information, such as the sender and his address, onto the message and remove any other information not needed to transmit the message. The unified messages may be stored in a storage unit 154 which may be a hard disk drive, an optical drive, a tape drive or any other type of suitable media for storing the unified messages. As the message unifier 152 generates the umfied message format, it may also schedule the message to be send using the task scheduler in the task dispatching layer 126 which will now be described. The task dispatching layer 126 may perform various functions such as scheduling each task which may be to send or receive an individual message, prioritization of the tasks to ensure that priority messages are sent promptly, load control to ensure that the messages being sent over the communication routes, as described above, connecting the particular communications node to the rest of the global messaging system are being properly utilized, routing to ensure that a message is transmitted through the communications path which best matches its criteria, such as cost or time, and acknowledgment to acknowledge to other layers of the system receipt of the outgoing message. In more detail, the task dispatching layer may include a task scheduler 156 and a router 158. The task scheduler may schedule the tasks generated by the message umfier 152 wherein each task may be a separate message being sent or received by the global messaging system. The task scheduler may also be connected to the database 145 so that information about each scheduled task may be entered into the database so that the client may be charged and other data about the load on the system may be later analyzed. The task scheduler 156 may also be connected to the router 158 which determines, for each task, the appropriate communications route through which the message may be communicated. The task scheduler and the router will be described in more detail below with reference to Figure 7.
Finally, the packet exchange layer 128 may perform various functions, such as communication of the umfied messages, controlling the flow of the messages being communicated over each communications route attached to the communications node, and load balancing to ensure one of the commumcations routes attached to the communications node is not overloaded. The packet exchange layer 128 may include an electronic packet unit 160 and a packet transmission unit 162. The electronic packet unit 160 may, at times, divide a unified message from the storage 154, based on instructions from the task scheduler 156, into smaller pieces which may be communicated over different commumcations routes as described below, generate appropriate headers for each smaller piece so that the unified message may be reconstructed at the reception communications node, and encrypt each piece of the message. The encrypted pieces of the message are then forwarded to the packet transmission unit 162 which communicates the encrypted pieces of the message, based on instructions from the router 158, over the global messaging system to the reception communications node.
In operation, a message may be received from an authenticated user by the communications node. The commumcations node may convert the incoming message, which may be in a variety of different formats, into a unified digital format, schedule a task to send the message and determine the routing of the message over the communications routes connected to the communications node. Based on the determined routing, the communications node may split up the message into smaller pieces of data, which may be encrypted. In accordance with the invention, each smaller piece of encrypted data may then be communicated to the reception commumcations node over a possibly different communications route. When the communications node receives pieces of a message, it may reconstruct the message from the encrypted pieces and distribute the message to the appropriate person based on the information in the header of the message. Now, more details of the communications node 90 in accordance with the invention will be described. Figure 7 is a more detailed diagrammatic data flow view of the commumcations node 90 and in particular the router 158, the electronic packet generator 160 and the packet transmission unit 162. As described above, the router 158 may communicate with the task scheduler 156 shown in Figure 6 and one or more tasks associated with each message to be sent or received by the particular communications node generated by the task scheduler may be placed into a task queue 170 in the router 158. Thus, the task queue may contain a list of the pending tasks for the communications node which are then routed to the appropriate destination communications node by the router 158 which will now be described.
In addition to the task queue 170, the router may also include a routing table 172, a destination decider 174, an SChannel task queue 176, a task queuing and routing unit 178, a DChannel dispatch and traffic controller 180, a server table 182, and a routing path decider 184. Each of these portions of the router will now be described in more detail. As the task is received by the task queue, it is necessary to determine how the message represented by the task may be communicated to its destination based on certain criteria, such as timeliness, cost and network congestion. As described above, there may be more than one route to any communications node to provide redundancy so it is necessary to determine the appropriate routes based on current information. For example, the destination decider 174 may determine, using various factors, the appropriate destination communications node for the message.
For example, a facsimile message destined for Singapore may be sent to a communications node in Singapore and then locally faxed to the recipient. However, if the Singapore commumcations node is currently unable to accept incoming messages, then the message may be sent to a China communications node and then faxed directly to Singapore. In worst case and possibly at the highest cost, if the Internet which connects the communications nodes is not operating so that all of the communications nodes are isolated from each other, the commumcations node may transmit the facsimile over a telephone line directly to Singapore which incurs long distance telephone charges. For each commumcations node, there may therefore be a variety of different communications paths to the communications node which may include a variety of different technologies, such as the Internet or facsimile machines. Thus, in any case, the message is guaranteed to reach its destination.
The destination decider 174 may receive information, such as cost of each communications path, facsimile balance information which indicates the current facsimile capacities of the destination communications node, and the most recent status of the destination commumcations node as provided by the feedback mechanism as described below. The cost of the commimications path depends on the method for communications since transmission over the Internet is considerably less expensive than a long distance facsimile transmission. In most cases, the communications node attempts to communicate the message using the least expensive communications path to maximize the profit margin for each message being communicated. However, if the least expensive commumcations path, such as the direct Internet connection to a communications node in the destination country, is not available, then a more expensive commumcations path may be used, such as sending the message to a commumcation node is a neighboring country and then transmitting the message via facsimile from the neighboring country to its destination. The destination decider 174 may also take advantage of oddities in global telephone rates. For example, it is often less expensive to call from another country into Japan than to make a call between, for example, Tokyo and Osaka due to high telephone call rates within Japan. Therefore, if a message is destined for Osaka and there is a communications node in Tokyo from which the message may be sent to Osaka, it is probably less expensive to send the message to China and then communicate the message directly to the Osaka telephone number without passing through Tokyo. In accordance with the invention, the destination decider may compile a complete list of communication routes to all location in the global messaging system and load that complete list into the routing table 172 while the rest of the system is handling the message traffic. The destination decider may also update the information in the routing table from time to time as needed in the background so that the processing of the messages is not interrupted by the determination of the destinations.
The information in the routing table 172 and the information from the task queue 170 may be fed into the task queuing and routing unit 178 which takes the next task from the task queue and places the task into the SChannel task queue 176 which schedules the message represented by the task to be communicated to a particular destination communications node based on the information in the routing table. Once the task has been scheduled into the SChannel task queue, the task is passed on to the DChannel dispatch and traffic controller 180. Among the information passed to the DChannel dispatch and traffic controller is the number of standard sized packets which will make up the message corresponding to the task so that, for example, for a message containing 100 packets, the individual packets may be simultaneously routed through more than one communications route to the destination node, as described below, so that the 100 packets do not clog a single communications route. The DChannel dispatch and traffic controller 180 may determine the appropriate communications routes over which to send the packets of the message to the destination communications node. The DChannel dispatch and traffic controller may receive information from the server table 182 which may contain a list of communications routes which are suggested communication routes at the particular time since the list in the server table may be updated constantly based on traffic information from the routing path decider 184. The routing path decider may, based on traffic status information about the communications network, as described below, decide the appropriate routing (forwarding) path and calculate the DChannel traffic control information which is then written into the server table. The server table information is then used by the DChannel dispatch and traffic controller to enter the tasks into a DChannel task queue 190 as described below to schedule the packets of the message to be communicated over the one or more communications routes. The DChannel dispatch and traffic controller may also ensure that a particular DChannel is not being overloaded (traffic control) and may re-route some traffic to other DChannels as needed to control congestion problems. For each SChannel (commumcations node), there may be several DChannels which represent the different communications routes (IP addresses), as shown in Figure 3, which may connect the originating communications node and the destination communications node.
The tasks that are entered into the DChannel task queue 190 have been assigned one or more particular commumcation routes over which portions of the message will be commumcated. In particular, the division of the message into multiple smaller uniform sized packets has been determined and the communications route that each packet may use has also been determined. Using the information in the DChannel task queue 190 and the actual message which is contained in the storage 154, the tasks in the queue are matched up with the actual message in the storage and the information is passed onto the electronic packet generator 160 which will now be described. The electronic packet generator 160 may include a compressor 192, a encrypter 194 and a fragmenter 196. Generally, the electronic packet generator may compress the message as much as possible to reduce the total amount of data in the message, encrypt the message for security and divide the message into one or more electronic packets. Thus, based on the information in the DChannel task queue and the actual message contained in the storage 154, the compressor 192 may get the next task from the DChannel task queue and compress the data in the corresponding message. The compression may be accomplished using any well- known conventional compression method and the invention is not limited to any particular compression technique. Once the message has been compressed, the compressed message is passed onto the encrypter 194 which may encrypt the message. The encryption may be accomplished using a variety of different well- known encryption techniques, such as RSA's Public Key User Authentication and Symmetric Key Encryption. In one embodiment of the invention which operates on computer system using a Microsoft operating system, the encryption may be based on Microsoft's Cryptography application program interfaces (APIs). The encrypted message may then be passed onto the fragmenter 196. The fragmenter may, based on current Internet traffic information, divide the encrypted message into one or more electronic packets which may be stored in a database 198. Each packet of a message may also include a header so that the individual packets which make up the message may be reconstructed once received at the destination communications node. As described above, each electronic packet of a message may be communicated over a different communications route depending on traffic conditions. Therefore, each electromc packet, based on traffic information, may be assigned to a particular commumcations route and then the routing of each electronic packet may be stored in a Packet DChannel queue 200. The routing information in the Packet DChannel queue and the actual packets in the database 198 may be forwarded to the packet transmitter 162 which will now be described in more detail. The packet transmitter 162 may include a bank of transmission units 202 which has one or more transmission units (TU1, TU2, ...TUn). Each transmission unit may be responsible for communicating packets over a particular communications route. Each transmission unit may obtain traffic information about the particular communications route and then attempt to communicate the packets. If the packets cannot be communicated over the particular communications route due to traffic problems, the transmission unit associated with that communications route takes the entire task from which those packets are generated and recycles the task by transmitting the task back to the task queue 170 so that the task may be again go through the process as described above to be communicated over a different communications route. If there are no traffic problems, then each transmission unit may simultaneously communicate the electronic packets assigned to its communications route to the destination communications node. The transmission units may also receive data about traffic problems in their particular communications route which may be passed on to a traffic status repository 204 which will now be described.
The traffic status repository 204, which may be a database or a document, may continuously contain updated traffic information about the communications routes in the global messaging system so that the communications node may properly assign messages and packets to communication routes which are not currently suffering from traffic problems. The traffic status repository may receive traffic information about various different portions of the global messaging system. For example, it may receive information about traffic problems over particular communication routes from the transmission units. The traffic status repository may also receive traffic information from a network collector 206 which may collect Internet traffic status information from other communication nodes so that the communications nodes in the global messaging system share traffic information with each other. The traffic status repository 204 may also receive information from a DChannel Explorer 208 which continuously tests each broken DChannel (communications route) associated with the communications node for a quality connection. The traffic status repository may collect the traffic status information and provide the information to the routing path decider 184 to optimize communications route being taken. The traffic problems may be caused by a variety of different problems. For example, traffic problems may occur if a communications node has crashed and cannot receive any messages, if a communications route has been disabled for some reason, if the entire Internet network crashes, or if a particular DChannel has too much data currently being communicated over it. Thus, each communications node may continuously monitor the traffic of its environment and the rest of the global messaging system so that messages may be routed around traffic problems to ensure that every message is communicated to its destination. Now, more details of the message exchange layer of a commumcations node will be described.
Figure 8 is a diagram illustrating details of the message exchange layer 122 of the communications node in accordance with the invention. As shown, the message exchange layer may receive a variety of different messages, such as a voice message 210, a facsimile message 212, an electronic mail message (email) 214 and a file transfer protocol (FTP) message 216. For each message, the various portions of the message are separated out and analyzed. For example, each message may include authentication information 218, destination information 220, type information 222 and the actual data 224. The authentication information 218, which is used to determine if the message sender is a current customer of the global messaging system, is checked for authentication 226 by well-known techniques, and the authenticated customer information may be passed onto the task queue 170. If the user has not been authenticated, the message is rejected and the system admimstrator is notified to identify any problems, such as an expired account or the like. The destination and message type information 220, 222 may be passed onto a mapper 228 which uses the message type and destination information to determine the appropriate destination communications node within the messaging system of the message. For example, a message destined for Tibet may be assigned to a communications node in China since the messaging system does not have any communications nodes in Tibet. The mapper may also use information from a broadcasting and customization database 230 to help identify the proper destination communications node of the message. The results of the mapping may be fed into the task queue 170. The data 224 of the message may be stored in the storage 154 and a link between the data in the task queue 170 and the data in the storage 154 is generated so that message data associated the task generated in the task queue may be identified later. Now, a method for generating a routing table in accordance with the invention will be described. Figure 9 is a flowchart illustrating a method 240 for generating a routing table in accordance with the invention for a particular message to a particular destination in a particular country. The routing table is generated based on a cost table 242 which will be briefly described here. The cost table may include information about each country code in the world and the area code delivery cost from each communications node in the global messaging system. The cost table may, for example, contain a plurality of data elements in which each data element may have a structure such as structure { itemlD, countrycode, areaCode, serverlD, deliveryCost, backupFlag
}
For each country and area code, the cost table may contain a data element which identifies, for example, the appropriate communications node (serverlD) and its associated cost (deliveryCost). In step 244, therefore, the least cost sorted country and area code pair are retrieved from the cost table 242 based on the deliveryCost information. This may be the least cost method for delivery of a message from a particular communications node to a particular destination in a particular country. Next, in step 246, the next least cost country, area code pair data element is retrieved for the cost table. In step 248, it is determined whether the last country, area code pair has been retrieved and, if so, it is entered into the routing table 250. If the last pair has not been retrieved, then the current data element is analyzed to determine if it is an appropriate communications node for the particular message. In particular, in step 252, it is determined if the fax balance value (i.e., total facsimile capacity for the particular communications node) for the destination commumcations node is greater than a predetermined maximum threshold fax balance value (Threshold_Fax_Balance) to determine if the destination communications node can handle the additional traffic. If the fax balance value of the particular destination communication node is greater than the maximum value (indicating that the particular destination communications node cannot handle any additional traffic), then the method rejects the current data element representing a particular communications node and returns to step 246 so that the data element representing another communications node may be retrieved and analyzed.
If the fax balance of the destination communications node is less than the maximum value, then in step 254, it is determined if a value equal to the number of successful electronic packets recently sent to the particular destination communications node divided by the total number of electronic packets sent to the destination commumcations node (E_Pak_successful/E_Pak) during a predetermined time is greater than a minimum threshold E_Pak_successfiιl value to determine if the percentage of successful electronic packet communications is above some mimmum level. If the percentage of successful electronic packet communications is not above the mimmum, another pair is selected in step 246 and the new data element representing a new communications node is analyzed. If the percentage of successful electronic packet communications is above the minimum, then in step 256, it is determined whether a value equal to the total number of successfully communicated tasks to the destination communications node divided by the total number of tasks (count_task_ack/count_task) for the particular destination communications node over a predetermined time is greater than a mimmum acknowledged task value (Threshold Task). If the percentage of acknowledged tasks is not greater than the mimmum value, then the method loops back to step 246 and another pair is retrieved and analyzed.
If the percentage of acknowledged tasks is greater than the mimmum value, then in step 258, it is determined whether a value equal to the successful tasks over the acknowledged tasks (count_succ_task/count_task_ack) for the particular destination commumcations node over a predetermined time, such as ten minutes, is greater than a mimmum threshold successful task value (Threshold succ) to determine if the percentage of successful tasks is greater than the mimmum. If the percentage of successful tasks is not greater than the minimum, then the method loops back to step 246 so that another pair may be retrieved and analyzed. If the percentage of successful tasks is greater than the minimum value, the pair is entered into the routing table. In this manner, various characteristics of each destination commumcations node is tested to ensure that the most reliable, least cost routing is achieved. As a default, step 248 ensures that at least one data element (representing a particular communications route) is entered into the routing table 250 for each destination country and area code. As a result of the testing described above, a routing table for each destination communications node is generated. The data element in the routing table for each destination communications node may have a structure, such as structure
{ itemlD, countryCode, areaCode, serverlD
}
Now, a method for selecting a routing path in accordance with the invention will be described. Figure 10 is a flowchart illustrating a method 260 for selecting a routing path in accordance with the invention in order to determine an appropriate Channel over which to transmit a message and to update traffic information about each DChannel. In general, the method analyzes each DChannel. Thus, in step 262, the first possible DChannel is selected and the successful delivery ratio and the smoothed trip time from a local site information is determined. Based on this information, in step 264, a decision about the current status of the DChannel is determined. If the status of particular DChannel, based on the derived information is acceptable, then the method retrieves another DChannel in step 266 and loops back to step 262 to test that new DChannel. If the status of the DChannel is bad (i.e., there is a problem with the particular DChannel), then in step 268, the particular DChannel is closed, a DChannel Counter is decremented (indicating that there are fewer DChannels to select from) and a DChannel probe process is activated which will now be described.
The DChannel probe process analyzes the bad DChannel continually over predetermined time periods since the DChannel may eventually return to the good status and be returned to the available DChannels. Thus, in step 270, a DChannel probe test is performed and in step 272, the status of the DChannel is tested again. If the DChannel status is still bad the method loops back to step 270 and the DChannel probe test is repeated after some predetermined time interval until the status changes. Once the status changes to "Good" for the particular DChannel, the DChannel Counter is incremented and the DChannel is re-opened for use in step 274 and the method loops back to step 262 to test other DChannels.
Returning to step 268, at which the bad DChannel was closed and the probe process was activated, the method in step 276 may determine if DChannelCount is greater than zero (i.e., there are other available DChannels to transmit data), the method loops back to step 262. If there are no other DChannels available, then the method retrieves the successful delivery ratio and the smoothed trip time from the traffic status table in step 278 and determines a forwarding path 20 (through one or more communications nodes) in step 280 based on this information. If no forwarding path for the particular message is determined, then the method sets the commumcation node to send an event to update the routing table with this information in step 282. In the remote site mode, the communications node may communicate the message over more expensive communications paths, such as using a conventional facsimile machine or a facsimile board in a computer to transmit the message directly to the destination phone number. In this manner, even if there is no communications route through the Internet to the destination, the message is guaranteed to be delivered to the recipient unlike conventional e-mail messages in which there is never any guarantee that the message has been commumcated successfully. If a forwarding path was found, then the method sets the selected forwarding path in step 284. Now, a method for electronic packet transmission in accordance with the invention will be described.
Figure 11 is a flowchart illustrating a method 300 for electronic packet transmission in accordance with the invention. To better understand this method, an example of the format of an electronic packet in accordance with the invention will now be briefly described. Each electronic packet may have a structure, such as struct ep { short TaskType, unsigned TaskID, unsigned short TotalSegs, //total number of segments/packets in this task unsigned short SegNo, //sequence number of particular segment unsigned PacketLengthn, //length of packet char UrgentFlag, //Urgent Data Flag unsigned CkSum, //checksum value int DestinationServerlD, //ID of destination server TASKINFO HEADER Tasklnfo, //Info, of the task IPADDR SourcelP, //IP address of source
IPADDR DestinationIP, //IP address of destination unsigned char *EP-Data //variable length data
The electronic packet structure may thus include a header containing information so that the electromc packets associated with a particular message may be reconstructed from the electronic packets. The packet transmission process may use the various data in the packet DChannel queue 200 as described above which contains the packets destined to be communicated over particular DChannels. In step 302, each transmission unit associated with each DChannel may retrieve an electronic packet for the appropriate queue for that DChannel and send the electronic packet to its destination. Next, in step 304, each transmission unit determines whether the transmission was successful based on whether the transmission unit received an acknowledgment signal from the destination. If the transmission was successful for a particular transmission unit, then the method returns to step 302 and the transmission unit retrieves another electronic packet and sends it. If the transmission was not successful, then the unsuccessful electronic packet may be rerouted to the next DChannel be placing it in the packet DChannel queue 200 for the next DChannel in step 306 so that the electronic packet is retried for each DChannel associated with the commumcations node. The transmission method may also be affected by changes in the routing table since the routing table may change the routing of particular messages. In addition, since the routing table is continuously updated, the transmission method constantly receives routing information which may change the DChannels being used, for example. Thus, in step 308, it is determined if there is a routing table change event. If there is not a routing table change, then the method loops back to step 308 to continuously checks for a routing table change. If there has been a routing table change (e.g., a particular commumcations route has become congested or unavailable), then the method may delete the electronic packets to be communicated over that communications route from the packet DChannel queue and send the task containing those deleted electronic packets back to the task queue to be reassigned to a new communications route in step 310. In this manner, it is ensured that the electronic packets are successfully communicated over the DChannel or rerouted to another DChannel to ensure successful commumcation of every message. Now, an example of a facsimile transmission in accordance with the invention will be described.
To better understand the invention, an example of a facsimile message being communicated over the global messaging system in accordance with the invention will be described. It should be noted, however, that the invention is not limited to facsimile messages. First, the customer may transmit a facsimile message to an origination communications node which may contain the user's identification number, the destination phone number (Dphonenumber) and the content of the facsimile message. The origination communications node may receive the facsimile over a CTI device, such as a GammaLink™ fax board. At the message exchange layer, the communications node may check that the user's identification is valid during an authentication process, digitize the facsimile message content and encrypt the facsimile message. In the message unification layer, the communications node may enter a task into the task queue for the facsimile delivery based on the task type, task priority and other factors and store the digitized facsimile content into a storage.
At the task dispatching layer, the task queue routing process may occur which routes the task through a particular communications node. In particular, the communications node may select a next task (the facsimile message) from the task queue and identify a Dphonenumber in the task information. Based on the country code and area code of the Dphonenumber, the communications node chooses, from the routing table, the destination communications node. Next, the communications node may send the task to the appropriate SChannel task queue to send the task over the Internet to the destination communications node. Next, the DChannel dispatch and traffic controller may select a best routing path through a communications route to the destination communications node based on the information in the server table. The task may then be passed on to the packet exchange layer.
The packet exchange layer may perform routing path decision processes on the task. In particular, the communications node may, based on the selected best routing path, send the task to the appropriate DChannel task queue. Next, the digitized facsimile message from the storage is retrieved, compressed and encrypted. Next, the encrypted message is segmented into multiple electromc packets and each packet is sent to the packet DChannel queue to be communicated over one or more DChannels as described above. The packet transmission layer may then pick up the packets from the packet DChannel queue and attempt to send the packets through the Internet to the destination communications node.
If the DChannel selected for the packet has a traffic problem, such as a bad Internet connection, the electronic packet will not be successfully communicated and the electronic packet is sent back so that it may be sent through a different DChannel which does not have the traffic problems. The unsuccessful electronic packet will continue to cycle through the system until it is successfully communicated over a DChannel. After each successful communication of a message, the total time of the transaction and the DChannel used is recorded and sent to the traffic status updater to update the traffic status as needed. Now, the reception of a message will be briefly described.
Upon receiving a message from another communication node, the packet exchange layer of the communications node may process the incoming message. In particular, the packet exchange layer may receive the multiple elecfromc packets. If the electronic packets are for a new task, as determined based on the header information, a new task is generated. Once all of the electronic packets for the particular task are received, as determined by the information in the header of each electronic packet, the electronic packets are recombined together and decrypted to generate the incoming facsimile message which is entered into a facsimile message queue. Then facsimile message may then be sent, via the same CTI device such as the GammaLink™ facsimile board, to the recipient and an acknowledgment signal is sent back to the originating commumcations node.
While the foregoing has been with reference to a particular embodiment of the invention, it will be appreciated by those skilled in the art that changes in this embodiment may be made without departing from the principles and spirit of the invention, the scope of which is defined by 20 the appended claims.

Claims

Claims:
1. A communications apparatus for communicating data representing a plurality of different types of messages having different protocols over a communications medium from an origination node to a destination node, the apparatus comprising: one or more different physical communication routes between the origination node and the destination node through a mesh of other nodes over which data may be communicated between the origination node and the destination node to form multiple end-to-end communication routes between the 0 origination node and the destination node; and a controller in the origination node for dynamically communicating different types of messages from the origination node to the destination node over a selected physical commumcation route at a predetermined time, the controller further comprising means for generating information for each physical 5 communications route, the information including reliability information, current load of the communication route at the predetermined time, a capacity of the communication route and a cost of communication data over the communications route, and means for selecting a particular communications route for a particular message by comparing the cost, reliability, current load and capacity information o for the one or more different communications routes.
2. The apparatus of claim 1 , wherein each communication route further comprises one or more communications paths from a node to another node in the mesh so that data is communicated over a plurality of communications 5 paths between a plurality of nodes between the origination node and the destination node.
3. The apparatus of claim 2, wherein the origination node further comprises means for dividing the data into a plurality of data packets and means for communicating each data packet over a different communications path between the origination node and the destination node so that a particular communications path is not congested with the plurality of data packets.
4. The apparatus of claim 3, wherein said dividing means further comprises means for compressing each piece of data to be communicated over the communications system to generate compressed data, means for encrypting the compressed data to generate encrypted data and means for fragmenting the encrypted data into a plurality of data packets.
5. The apparatus of claim 4, wherein the fragmentation means further comprises means for generating a header for each data packet, the header including information necessary to associate the data packets with each other so that the data represented by the plurality of data packets may be reconstructed 5 from the plurality of data packets.
6. The apparatus of claim 5, wherein the destination node further comprises means for reconstructing a piece of data based on the received data packets from the origination node, the reconstructing means comprising means for o reading the header of each data packet in order to reconstruct the piece of data.
7. The apparatus of claim 1, wherein the controller further comprises means for converting the plurality of messages having different formats into a unified digital format for communications over the communications apparatus. 5
8. The apparatus of claim 7, wherein the plurality of messages comprise voicemail messages, facsimile messages, electronic mail messages, documents and digital data
9. The apparatus of claim 8, wherein the controller further comprises means for receiving feedback from the plurality of nodes in the mesh to determine the availability of a particular node and wherein the selecting means further comprises means for selecting a communications route through the particular node based on the availability of the node.
10. A method for communicating data from an origination node to a destination node over a commumcations network, the communications network having one or more end-to-end communications routes between the origination node and the destination node, each communications route having one or more Internet protocol communications paths, the method comprising: selecting a particular end-to-end communications route between the origination node and the destination node from the one or more communications routes in the computer network based on predetermined criteria to ensure delivery 5 of the data from the origination node to the destination node; and selecting a particular Internet protocol communications path for each selected end-to-end communications route.
11. The method of claim 10, wherein selecting the communications o route comprises generating information for each physical communications route, the information including reliability information, current load of the communication route at the predetermined time, a capacity of the communication route and a cost of communication data over the commumcations route and selecting a particular commimications route for a particular message by comparing 5 the cost, reliability, current load and capacity information for the one or more different communication routes.
12. The method of claim 11 further comprising dividing the data into a plurality of data packets and communicating each data packet over a different communications path between the origination node and the destination node so that a particular communications path is not congested with the plurality of data packets.
13. The method of claim 12, wherein said dividing further comprises compressing each piece of data to be communicated over the communications system to generate compressed data, encrypting the compressed data to generate encrypted data and fragmenting the encrypted data into a plurality of data packets.
14. The method of claim 13, wherein the fragmentation further comprises generating a header for each data packet, the header including information necessary to associate the data packets with each other so that the data represented by the plurality of data packets may be reconstructed from the plurality of data packets.
15. The method of claim 14 further comprising reconstructing a piece of data based on the received data packets from the origination node, the reconstructing comprising reading the header of each data packet in order to reconstruct the piece of data.
16. The method of claim 10 further comprising converting the plurality of messages having different formats into a unified digital format for communications over the commumcations method.
17. The method of claim 16, wherein the plurality of messages comprise voicemail messages, facsimile messages, electronic mail messages, documents and digital data.
18. The method of claim 17 further comprising receiving feedback from the plurality of nodes in the mesh to determine the availability of a particular node and wherein the selecting further comprises selecting a communications route through the particular node based on the availability of the node.
19. A communications network for communicating data between a origination node and a destination node over the communications network, the communications network comprising: one or more communications routes between the origination node and the destination node, each communications route passing through one or more 0 intermediate communications nodes so that an end-to-end communications route between the origination node and the destination node is established; each communications route having one or more Internet protocol communication paths connecting two communications nodes within the communications route; and 5 a router which routes data from the origination node to the destination node over the communications network, the router comprising means for selecting a communications route between the origination node and the destination node based on predetermined criteria to ensure and an end-to-end connection between the origination node and the destination node and means for selecting a particular o Internet protocol communications path based on predetermined criteria.
20. The communications network of claim 19, wherein the router further comprises means for generating information for each physical communications route, the information including reliability information, current 5 load of the communication route at the predetermined time, a capacity of the communication route and a cost of communication data over the communications route, and means for selecting a particular communications route for a particular message by comparing the cost, reliability, current load and capacity information for the one or more different communication routes.
21. The communications network of claim 20, wherein the origination node further comprises means for dividing the data into a plurality of data packets and means for communicating each data packet over a different communications path between the origination node and the destination node so that a particular commumcations path is not congested with the plurality of data packets.
22. The communications network of claim 21 , wherein said dividing means further comprises means for compressing each piece of data to be 0 communicated over the communications system to generate compressed data, means for encrypting the compressed data to generate encrypted data and means for fragmenting the encrypted data into a plurality of data packets.
23. The communications network of claim 22, wherein the 5 fragmentation means further comprises means for generating a header for each data packet, the header including information necessary to associate the data packets with each other so that the data represented by the plurality of data packets may be reconstructed from the plurality of data packets
o 24. The communications network of claim 23, wherein the destination node further comprises means for reconstructing a piece of data based on the received data packets from the origination node, the reconstructing means comprising means for reading the header of each data packet in order to reconstruct the piece of data. 5
25. The commumcations network of claim 19, wherein the controller further comprises means for converting the plurality of messages having different formats into a unified digital format for commumcations over the communications network.
26. The communications network of claim 25, wherein the plurality of messages comprise voicemail messages, facsimile messages, electronic mail messages, documents and digital data.
27. The communications network of claim 26, wherein the controller further comprises means for receiving feedback from the plurality of nodes in the mesh to determine the availability of a particular node and wherein the selecting means further comprises means for selecting a communications route through the particular node based on the availability of the node.
28. An apparatus for communicating a variety of messages having different protocols and formats over a commumcations medium, the apparatus comprising: a presentation layer which receives a plurality of messages to be communicated over the communications medium, the messages having a plurality of different formats and protocols; a message unification layer for converting the plurality of messages into a unified data format and for storing the messages in a database; a task scheduling layer for scheduling the communication of the plurality of messages; a routing layer for determining the routing of each message through a communications network, the communications network comprising one or more different physical communication routes between the origination node and the destination node through a mesh of other nodes over which data may be communicated between the origination node and the destination node to form multiple end-to-end communication routes between the origination node and the destination node; and a task dispatcher for selecting a communications route for a message and for communicating the message from the origination node to the destination node over the selected communications route.
29. The apparatus of claim 28 further comprising a controller in the origination node for dynamically communicating different types of messages from the origination node to the destination node over a selected physical communication route at a predetermined time, the controller further comprising means for generating information for each physical communications route, the information including reliability information, current load of the communication route at the predetermined time, a capacity of the communication route and a cost of communication data over the communications route, and means for selecting a particular commumcations route for a particular message by comparing the cost, reliability, current load and capacity information for the one or more different communication routes. 5
30. The apparatus of claim 29, wherein each communication route further comprises one or more communications paths from a node to another node in the mesh so that data is communicated over a plurality of communications paths between a plurality of nodes between the origination node and the o destination node.
31. The apparatus of claim 30, wherein the origination node further comprises means for dividing the data into a plurality of data packets and means for communicating each data packet over a different communications path 5 between the origination node and the destination node so that a particular communications path is not congested with the plurality of data packets.
32. The apparatus of claim 31 , wherein said dividing means further comprises means for compressing each piece of data to be communicated over the communications system to generate compressed data, means for encrypting the compressed data to generate encrypted data and means for fragmenting the encrypted data into a plurality of data packets.
33 The apparatus of claim 32, wherein the fragmentation means further comprises means for generating a header for each data packet, the header including information necessary to associate the data packets with each other so that the data represented by the plurality of data packets may be reconstructed from the plurality of data packets.
34. The apparatus of claim 33, wherein the destination node further comprises means for reconstructing a piece of data based on the received data packets from the origination node, the reconstructing means comprising means for reading the header of each data packet in order to reconstruct the piece of data. 5
35. The apparatus of claim 28, wherein the controller further comprises means for converting the plurality of messages having different formats into a unified digital format for communications over the communications apparatus.
o 36. The apparatus of claim 35, wherein the plurality of messages comprise voicemail messages, facsimile messages, electronic mail messages, documents and digital data.
37. The apparatus of claim 36, wherein the controller further comprises 5 means for receiving feedback from the plurality of nodes in the mesh to determine the availability of a particular node and wherein the selecting means further comprises means for selecting a communications route through the particular node based on the availability of the node.
38. The apparatus of claim 31 , wherein the task dispatcher further comprises a first queue for scheduling a message to be communicated over a particular commumcations route based on predetermined criteria, a second queue for scheduling each data packet of a message to be communicated over a particular commumcations path, and means for recycling data packets for each communications path which cannot be communicated over that commumcations path.
PCT/US2000/010709 1999-04-26 2000-04-20 Global unified messaging system and method WO2000065786A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU44768/00A AU4476800A (en) 1999-04-26 2000-04-20 Global unified messaging system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29940699A 1999-04-26 1999-04-26
US09/299,406 1999-04-26

Publications (2)

Publication Number Publication Date
WO2000065786A1 true WO2000065786A1 (en) 2000-11-02
WO2000065786A9 WO2000065786A9 (en) 2002-01-10

Family

ID=23154665

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/010709 WO2000065786A1 (en) 1999-04-26 2000-04-20 Global unified messaging system and method

Country Status (2)

Country Link
AU (1) AU4476800A (en)
WO (1) WO2000065786A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093886A3 (en) * 2001-05-15 2003-06-19 Avaya Technology Corp Method and apparatus for automatic notification and response
US7734731B2 (en) 2004-03-18 2010-06-08 Avaya Inc. Method and apparatus for a publish-subscribe system with third party subscription delivery
US8868659B2 (en) 2001-05-15 2014-10-21 Avaya Inc. Method and apparatus for automatic notification and response

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0662763A2 (en) * 1994-01-06 1995-07-12 AT&T Corp. Integrated electronic mailbox
WO1996018256A2 (en) * 1994-12-09 1996-06-13 British Telecommunications Public Limited Company Multi-processor environments
EP0848560A2 (en) * 1996-12-13 1998-06-17 Siemens Business Communication Systems, Inc. Method and system for increasing quality of service at or below a treshold cost
EP0942554A2 (en) * 1998-01-27 1999-09-15 Moore Products Co. Network communications system manager

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0662763A2 (en) * 1994-01-06 1995-07-12 AT&T Corp. Integrated electronic mailbox
WO1996018256A2 (en) * 1994-12-09 1996-06-13 British Telecommunications Public Limited Company Multi-processor environments
EP0848560A2 (en) * 1996-12-13 1998-06-17 Siemens Business Communication Systems, Inc. Method and system for increasing quality of service at or below a treshold cost
EP0942554A2 (en) * 1998-01-27 1999-09-15 Moore Products Co. Network communications system manager

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CONANT G E: "MULTILINK PPP: ONE BIG VIRTUAL WAN PIPE", DATA COMMUNICATIONS,US,MCGRAW HILL. NEW YORK, vol. 24, no. 13, 21 September 1995 (1995-09-21), pages 85 - 88,90, XP000526197, ISSN: 0363-6399 *
PATEL A ET AL: "A technique for multi-network access to multimedia messages", COMPUTER COMMUNICATIONS,NL,ELSEVIER SCIENCE PUBLISHERS BV, AMSTERDAM, vol. 20, no. 5, 1 July 1997 (1997-07-01), pages 324 - 337, XP004126688, ISSN: 0140-3664 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093886A3 (en) * 2001-05-15 2003-06-19 Avaya Technology Corp Method and apparatus for automatic notification and response
US8868659B2 (en) 2001-05-15 2014-10-21 Avaya Inc. Method and apparatus for automatic notification and response
US9124643B2 (en) 2002-06-26 2015-09-01 Avaya Inc. Method and apparatus for a publish-subscribe system with templates for role-based view of subscriptions
US7734731B2 (en) 2004-03-18 2010-06-08 Avaya Inc. Method and apparatus for a publish-subscribe system with third party subscription delivery

Also Published As

Publication number Publication date
WO2000065786A9 (en) 2002-01-10
AU4476800A (en) 2000-11-10

Similar Documents

Publication Publication Date Title
US7020132B1 (en) Scalable architecture for transmission of messages over a network
US6618747B1 (en) Electronic communication delivery confirmation and verification system
US7698446B2 (en) System verifying if an email request passed a policy check before initiating an interactive telephony session
US6208638B1 (en) Method and apparatus for transmission and retrieval of facsimile and audio messages over a circuit or packet switched network
RU2395116C2 (en) System and method of recovery in emergency situations and control for e-mail system
US5712907A (en) Pro-active message delivery system and method
US7272662B2 (en) Systems and methods for routing messages to communications devices over a communications network
US5826034A (en) System and method for transmission of communication signals through different media
US20070086439A1 (en) Methods and apparatus to perform outdial communication services
US20070116234A1 (en) Methods and apparatus for preserving access information during call transfers
CN101663868A (en) Different and independence extendible messenger service (MS) content stores on redundant, geography
CA2531010A1 (en) Messaging system
US20070115921A1 (en) Apparatus and methods for subscriber and enterprise assignments and resource sharing
US6728771B2 (en) Generic transport option for transporting messages in relay or broadcast mode via combinations of ISDN B-channels or D-channels
WO2000065786A1 (en) Global unified messaging system and method
US7802010B1 (en) Computer network method and system for guaranteed messaging service
WO2001027772A1 (en) Load balancing via message source selection
US7230944B1 (en) System and method of host routing when host computer is within a home network and/or a complementary network
US6865182B2 (en) Data transfer method including recognizing identical messages and communication apparatus using the method
US20050004975A1 (en) Adaptive connection for data transmission
KR100907407B1 (en) Internet Networking Method for Reserving and Sending Massive Message
CN100379200C (en) System and method for processing information in a data flow
JP2001503928A (en) Data transmission system and method for sending facsimile
JP2001024707A (en) Multimedia packet communication terminal and multimedia packet communication network
WO2001088653A2 (en) An e-mail management system for wireless pcd

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: C2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): GH GM KE LS MW SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

COP Corrected version of pamphlet

Free format text: PAGES 1/11-11/11, DRAWINGS, REPLACED BY NEW PAGES 1/11-11/11; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP