CROSS-REFERENCE TO RELATED APPLICATIONSThis application is filed concurrently with the following commonly-owned applications:
SYSTEM AND METHOD FOR PROVIDING SECURITY IN A TELECOMMUNICATION NETWORK, Ser. No. 09/477,193;
SYSTEM AND METHOD FOR ENABLING MULTICAST TELECOMMUNICATIONS, Ser. No. 09/477,298; and
SYSTEM AND METHOD FOR A VIRTUAL TELEPHONY INTERMEDIARY, Ser. No. 09/477,297.
TECHNICAL FIELD OF THE INVENTIONThis invention relates generally to the field of telecommunications, and more specifically to a system and method for maintaining a communication link.
BACKGROUND OF THE INVENTIONHistorically, telecommunications have involved the transmission of voice and fax signals over a network dedicated to telecommunications, such as the Public Switched Telephone Network (PSTN) or a Private Branch Exchange (PBX). Similarly, data communications between computers have also historically been transmitted on a dedicated data network, such as a local area network (LAN) or a wide area network (WAN). Currently, telecommunications and data transmissions are being merged into an integrated communication network using technologies such as Voice over Internet Protocol (VoIP). Since many LANs and WANs transmit computer data using Internet Protocol (IP), VoIP uses this existing technology to transmit voice and fax signals by converting these signals into digital data and encapsulating the data for transmission over an IP network. However, the integration of telecommunications and data transmissions is still ongoing, and many features that were available to users of traditional telecommunications networks have not been made available to users of VoIP and similar technologies.
SUMMARY OF THE INVENTIONIn accordance with the present invention, a system and method for maintaining a communication link is provided that substantially eliminates or reduces disadvantages or problems associated with previously developed systems and methods. In particular, the present invention contemplates a media termination point capable of serving as an intermediary between two or more telephony devices to maintain a connection with at least one telephony device while terminating the media streaming between the devices.
In one embodiment of the present invention, a method is provided for maintaining media streaming to a telephony device. The method includes establishing a media streaming link between a first telephony device and a second telephony device using a media termination point. The media streaming between the first telephony device and the second telephony device passes through the media termination point. The method further includes receiving a request to implement a telephony feature requiring media streaming termination between the first and second telephony devices.
The method also includes terminating the media streaming between the first telephony device and the media termination point while maintaining the media streaming between the second telephony device and the media termination point.
In another embodiment of the present invention, a communication network is provided that includes a first telephony device utilizing a protocol compatible with a telephony feature requiring media streaming termination, and a second telephony device utilizing a protocol incompatible with the telephony feature requiring media streaming termination. The communication network also includes a media termination point operable to maintain media streaming with the second telephony device after termination of media streaming between the first telephony device and the second telephony device to enable the telephony feature requiring media streaming termination between the first and second telephony devices.
Technical advantages of the present invention include a system and method for maintaining a communication link that allow telephony features requiring the termination of media streaming between the participating telephony devices to be extended to telephony devices that are incompatible with such a termination. According to the present invention, a media termination point may be logically inserted between two or more telephony devices to act as an intermediary between these devices. Signaling connections can then be maintained between the telephony devices and the media termination point while temporarily terminating media streaming between the telephony devices. Features that are enabled using such a media termination point include call hold, call transfer, call park and conference calls. Other technical advantages are readily apparent to one skilled in the art from the following figures, descriptions, and claims.
BRIEF DESCRIPTION OF THE DRAWINGSFor a more complete understanding of the present invention, and for further features and advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates an exemplary communications network in accordance with the present invention;
FIG. 2 illustrates an exemplary communication link between telephony devices using a virtual telephony device;
FIG. 3 illustrates another exemplary communication link between telephony devices using a virtual telephony device;
FIG. 4 illustrates a communication link between first and second telephony devices using a media termination point;
FIG. 5 illustrates the communication link of FIG. 4 after media streaming between the telephony devices has been terminated;
FIG. 6 illustrates the communication link of FIG. 4 after media streaming has been reestablished with a third telephony device; and
FIG. 7 illustrates a communication link between telephony devices using multiple media termination points.
DETAILED DESCRIPTION OF THE INVENTIONFIG. 1 illustrates anexemplary communication network10. Although a specific communication network is illustrated in FIG. 1, the term “communication network” should be interpreted as generically defining any network capable of transmitting telecommunication signals, data, and/or messages. In the illustrated embodiment,communication network10 includes a plurality of local area networks (LANs)20 interconnected using a wide area network (WAN)30. Each LAN20 is a computer data network that is further operable to transmit audio and/or video telecommunication signals. In the particular embodiment illustrated in FIG. 1, LANs20 are Internet Protocol (IP) networks. However, LANs20 may be any type of network that allows the transmission of audio and video telecommunications, as well as traditional data communications. Therefore, although subsequent description will primarily focus on IP telephony devices, it should be understood that other appropriate telephony devices, such as Voice over Frame Relay devices, are also included within the scope of this description.
LANs20 may be directly coupled to other IP networks including, but not limited to,WAN30 and any IP networks coupled to WAN30 (such as other LANs20 or the Internet40). Since all IP networks share a common method of transmitting data, telecommunication signals may be transmitted between telephony devices located on different, but interconnected, IP networks. In addition to being coupled to other IP networks, LANs20 may also be coupled to non-IP telecommunication networks through the use of gateways. For example, LAN20a is coupled to a private branch exchange (PBX)50 through agateway52. PBX50 represents analog and/or digital telephone systems used by businesses. PBX50 includes a plurality of extension telephones or subscriber sets54aand54bto which PBX50 directs incoming telephone calls. Gateway52 may be either an analog or a digital gateway depending on the type of PBX50 to which it is coupled. The operation of the gateways incommunication network10 is described in further detail below.
Another non-IP network to which LANs20 may be coupled is the Public Switched Telephone Network (PSTN)60. PSTN60 includes switching stations, central offices, mobile telephone switching offices, pager switching offices, remote terminals, and other related telecommunications equipment that are located across the country. For example, central offices (COs)62 connect telephone customers, such as residences and businesses, to PSTN60. In the illustrated embodiment, LANs20 are coupled to selected central offices62 through the use of gateways64, described below.
Central offices62 are coupled through along distance network66 that allows communication between residences and businesses coupled to central offices in different areas, such asCO62ain Dallas and CO62bin San Jose. The entity that owns the communication lines comprising long distance network66 (there are typically several different entities, each having their own communication lines) charges a fee for the use of these lines. However, one advantage of IP telephony is that a company owning (or leasing) LANs20 andWAN30 may avoid such fees for calls betweenLAN20aandLAN20bby usingWAN30 to transmit calls between the LANs.Internet40 may also be used to transmit calls.
IP networks transmit data (including voice and video data) by placing the data in packets and sending each packet individually to the selected destination. Unlike a circuit-switched network (like PSTN60), dedicated bandwidth is not required for the duration of a call or fax transmission over LANs20,WAN30 orInternet40. Instead, each telephony device sends packets across the network as they become available for transmission. This feature makes bandwidth available for other data when voice or fax data is not being transmitted.
The technology that allows telecommunications to be transmitted over an IP network may be referred to as Voice over IP (VoIP). IP telephony devices22-24 are coupled toLAN20ato allow such communication overLAN20a. IP telephony devices22-24 have the capability of encapsulating a user's voice (or other inputs) into IP packets so that the voice can be transmitted overLAN20a,WAN30 and/orInternet40. IP telephony devices may include telephones, fax machines, computers running telephony software (such as MICROSOFT NETMEETING), gateways, or any other device capable of performing telephony functions over an IP network.
An IP telephony device typically resembles a traditional digital PBX telephony device, but instead of connecting to a proprietary PBX port, the telephony device plugs into a LAN jack, such as an Ethernet jack. Alternatively, a user may plug a handset or headset directly into apersonal computer24 on LAN20 to form a virtual IP telephony device. An IP telephony device operates as a standard IP network device and typically has its own IP address (which may be assigned dynamically). IP telephony devices may be H.323-compliant, so that they can communicate with other H.323 devices, such as a device executing MICROSOFT NETMEETING. This feature is described in more detail below. IP telephony devices may also have the ability to handle data coding and decoding at the telephony device. This feature allows the telephony device to switch compression schemes on demand, such as switching between g.711 and G.723 compression.
Acall manager26acontrols IP telephony devices22-24 (asimilar call manager26bmay be located onLAN20b). Callmanager26ais an application that controls call processing, routing, telephone features and options (such as call hold, call transfer and caller ID), device configuration, and other telephony functions and parameters withincommunication network10. Callmanager26acan control all of the IP telephony devices onLAN20a, and it may also control IP telephony devices located acrossWAN30. For example,call manager26ais capable of controlling telephony devices onLAN20b. Thus,call manager26bmay be eliminated entirely or used as a redundant controller.
When a user wishes to place a call from one IP telephony device onLAN20ato another IP telephony device onLAN20a(an intra-LAN call), the calling telephony device transmits a signal to callmanager26aindicating the desired function and the telephony device to be called. Callmanager26athen checks on the availability of the called telephony device and, if available, sets up the call by instructing the originating telephony device to establish a media (audio and/or video) stream with the called (target) telephony device. The initial signaling betweencall manager26aand either the originating telephony device or the target telephony device is transmitted overLAN20a(and, if necessary, WAN30) using, for example, the Transmission Control Protocol (TCP).
The TCP layer in the transmitting telephony device divides the data to be transmitted into one or more packets, numbers the packets, and then forwards them individually to the IP network layer for transmission to the destination telephony device. Although each packet has the same destination IP address, the packets may travel along different paths to reach the intended destination. As the packets reach the destination telephony device, the TCP layer reassembles the individual packets and ensures that they all have arrived. Once TCP reassembles the data, it forwards the data to the destination telephony device as a single message.
Aftercall manager26ainitiates the call with signaling over TCP, a codec (coder/decoder) converts the voice, video or fax signals generated by the users of the telephony devices from analog voice signals into digital form. The codec may be implemented either in software or as special-purpose hardware in IP telephony devices22-24. In the case of an IP telephone, as the user speaks into the handset, the codec converts the analog voice signals into digital data. The digitally encoded data is then encapsulated into IP packets so that it can be transmitted overLAN20a.
The encapsulation may be performed by Real-Time Transport Protocol (RTP) running over User Datagram Protocol (UDP), or any other suitable communication protocol. As with TCP, UDP uses the Internet Protocol to get data packets from one computer to another. Unlike TCP, however, UDP does not provide sequencing and error-checking of the arriving packets. However, since UDP does not perform these functions, UDP operates faster than TCP and is useful when speed is more important than accuracy. This is true of media streaming since it is critical that the data be transmitted as quickly as possible, but it is not critical that every single packet is reassembled correctly (either its absence is negligible or its content can be extrapolated by the destination telephony device). Once UDP has received and reassembled the IP packets at the destination telephony device, a codec in the destination telephony device translates the digital data into analog audio and/or video signals for presentation to the user. The entire process is repeated each time that any call participant (or any other source) generates an audio, video, or fax signal.
In addition to intra-LAN calls, calls can also be placed to and received from non-IP telephony devices54,68 that are connected to PBX50 orPSTN60. Such calls are made through agateway52,64. Becausegateway52 performs similarly to gateway64, only gateway64 will be discussed in further detail. Gateway64 converts analog or digital circuit-switched data transmitted byPSTN60 to packetized data transmitted by LAN20, and vice-versa. When voice data packets are transmitted from LAN20, gateway64 retrieves the data contained in the incoming packets and converts this digital data to the analog or digital format used by the PSTN trunk to which gateway64 is coupled. Since the digital format for voice transmissions over an IP network is often different than the format used on the digital trunks ofPSTN60, the gateway provides conversion between these different digital formats, referred to as transcoding. Gateway64 also translates between the VoIP call control system and the Signaling System7 (SS7) protocol or other signaling protocols used inPSTN60.
For voice transmissions fromPSTN60 to LAN20, the process is reversed. Gateway64 takes the incoming voice transmission (in either analog or digital form) and converts it into the digital format used by LAN20. The digital data is then encapsulated into IP packets and transmitted over LAN20.
When making a call to a PSTN telephony device68 fromIP telephony device22 onLAN20a, the voice or fax signal generated by the user ofIP telephony device22 is digitized and encapsulated, as described above. The packets are then transmitted overLAN20ato gateway64. If more than one PSTN gateway64 is coupled toLAN20a,call manager26adetermines which gateway is to receive the transmission based on the telephone number (e.g., the North American Numbering Plan (NANP) number) of the PSTN telephony device. Gateway64 retrieves the IP packets and converts the data to the format (either digital or analog) used by the PSTN trunk to which the gateway is connected. The voice signals are then sent to PSTN telephony device68 overPSTN60. This process, and the reverse process, is continued betweenPSTN60 andLAN20athrough gateway64 until the call is complete.
Calls can also be made between an IP telephony device located on LAN20 and another IP telephony device located on another LAN20, acrossWAN30, or onInternet40. For example, a call may be placed betweenIP telephony device22 connected toLAN20aandIP telephony device25 connected toLAN20b. As discussed above, the analog voice or fax data is digitized and encapsulated into IP packets at the originatingIP telephony device22. However, unlike communications with telephony devices onPSTN60, gateway64 is not needed to convert the IP packets to another format. Instead, a router (or other similar device) directs the packets to the IP address of the targetIP telephony device25.IP telephony device25 then retrieves the data and coverts it to analog form for presentation to the user. Eithercall manager26aorcall manger26b(onLAN20b) may controlIP telephony device25.
When a call is placed to an IP telephony device, for exampleIP telephony device22, a call initiation request is first sent to callmanager26a. If the originating telephony device is an IP telephony device (e.g., an intra-LAN or inter-LAN IP call), the originating IP telephony device generates the call initiation request and sends the request to callmanager26a. If the originating telephony device is a non-IP telephony device, such as PSTN telephony device68,gateway64afirst intercepts the incoming call fromCO62a, and sends a call initiation request to callmanager26aindicating the IP telephony device that is being called. In either case, oncecall manager26areceives the call initiation request,call manager26asends a signal toIP telephony device22 offering the call to the telephony device.
IfIP telephony device22 can accept the call (e.g., it is not in use or under a Do Not Disturb instruction from the user),IP telephony device22 replies to callmanager26athat it will accept the call. Upon receiving this acceptance,call manager26atransmits a signal toIP telephony device22 to cause it to ring. The telephony device's user can then hear the ring and can take the telephony device “off-hook” to receive the call. Taking the telephony device off-hook may include, but is not limited to, picking up a handset, pressing the ringing line's button, pressing a speakerphone button, or otherwise indicating that the telephony device is ready to receive the incoming call. For the purposes of this application, the term “off-hook” is used to generically indicate a condition of a telephony device when it is ready to initiate or receive telecommunication signals. OnceIP telephony device22 has been taken off-hook,call manager26aestablishes an RTP audio and/or video stream betweenIP telephony device22 and the originating telephony device. If the originating telephony device is a non-IP telephony device, such as PSTN telephony device68, the data streaming occurs betweenIP telephony device22 and gateway64. Gateway64 then transmits the audio and/or video data to PSTN telephony device68.
One advantage associated with IP telephony devices is their ability to communicate and interact with any other IP device coupled to the IP network. For example, IP telephony devices may interact and communicate with other IP telephony devices, with non-IP telephony devices, and even with virtual telephony devices. A virtual telephony device may be implemented as software, firmware and/or hardware to interact with devices incommunication network10. Virtual telephony devices may be implemented as software or firmware on any existing or dedicated device on the IP network. For example,call manager26amay contain software for implementing one or morevirtual telephony devices28. Virtual device software or firmware may also be located on any other network device. The computer or other device on which the virtual telephony software is located includes a network interface, a memory to store the software, and a processor to execute the software.
Virtual telephony devices may be logically inserted between two or more telephony devices to act as an intermediary between the two telephony devices. Once such a relationship is set up, signaling and media streams that pass through the virtual telephony device may then be modified through address translation or data stream manipulation for various reasons before they are sent on to the destination device. Reasons for such modifications include providing network security, duplicating streams, dynamically redirecting streams, maintaining connections between devices, converting between data formats (e.g., A-Law to μ-Law), and injecting media.
In order for a call to be placed through a virtual telephony device, for example, a call placed toIP telephony device22 in LAN20 throughvirtual telephony device28,telephony device22 should be registered withvirtual telephony device28.Telephony device22 is instructed bycall manager26ato register withvirtual telephony device28 at a specified IP address and port.Telephony device22 signalsvirtual telephony device28 via TCP/IP indicating that it would like to register. Ifvirtual device28 accepts the registration request,telephony device22 sends a registration message tovirtual device28 using UDP/IP (or any other appropriate media transmission protocol). The registration message typically comprises information about the telephony device such as the telephony device's IP and media access control (MAC) addresses, the type of telephony device, and the codec(s) used by the telephony device.
FIG. 2 illustrates an exemplary communication link created usingvirtual telephony device28. It should be noted that although the TCP and UDP protocols are specifically identified in the following discussion, any other suitable signaling and media transmission protocols may be used.Virtual device28 initiates this communication link by first creating a logical connection totelephony device22. Creating this logical connection involves associating logical UDP and/or TCP ports of the virtual device withtelephony device22.Virtual device28 designates a TCP port (for example, port 2000) as the signaling port oftelephony device22, and designates a UDP port (for example, port 2100) as the streaming port oftelephony device22.Virtual telephony device28 may instructcall manager26ato send all signaling directed totelephony device22 tological port2000 ofvirtual device28. Likewise,virtual telephony device28 may instructcall manager26ato send all media streaming directed totelephony device22 from other telephony devices tological port2100 ofvirtual device28.Virtual telephony device28 will automatically forward any data that is subsequently sent to these ports totelephony device22.
In order to create a communication link betweentelephony devices22 and23, a logical connection is also made totelephony device23. For example,telephony device23 may be assigned a logical TCP port of 3000 and a logical UDP port of 3100 ofvirtual device28. Likewise,virtual device28 may also designate a TCP port (for example, port1000) as the signaling port ofcall manager26a(data is typically not streamed using RTP to and from call manager26, so a UDP port is usually not required).Virtual telephony device28 may then instructtelephony devices22 and23 (as well as any other registered telephony devices) to send all signaling directed to callmanager26atological port1000 ofvirtual device28. In this manner, UDP streaming betweentelephony devices22 and23, as well as TCP signaling between the telephony devices and call manager26, can be transmitted viavirtual device28.
FIG. 3 illustrates an alternative communication link betweentelephony devices22 and23. Although FIG. 2 shows the TCP signaling between IP telephony devices andcall manager26abeing directed throughvirtual device28, this signaling may also be directly transmitted betweencall manager26aandtelephony devices22 and23. In this case,virtual device28 is used only as an intermediary through which RTP streams betweentelephony devices22 and23 are sent usinglogical UDP ports2100 and3100.
The communication links illustrated in FIGS. 2 and 3 are used to enable a call betweentelephony devices22 and23 as follows.Telephony device23 initially sends a call initiation request via TCP to callmanager26aindicating a desire to communicate withtelephony device22. Callmanager26athen sends signaling information via TCP totelephony device22 indicating the incoming call fromtelephony device23. This TCP signaling betweentelephony device23 andcall manager26amay be passed throughvirtual device28, as illustrated in FIG. 2, or it may be directly transmitted betweentelephony device23 andcall manager26a, as shown in FIG.3. Iftelephony device22 accepts the call,call manager26aestablishes RTP media streaming betweentelephony devices22 and23 by signalingtelephony device23 to begin streaming media toport2100 ofvirtual device28.
When media packets are received atport2100,virtual device28 examines the packets and notes the source address of the data. This source address is the IP address oftelephony device23, for example, 200.50.10.2, and a particular logical port of the IP address. Sincetelephony device23 has registered withvirtual device28,virtual device28 then modifies the source address and port in the header of the IP packets coming fromtelephony device23 to the IP address and logical UDP port ofvirtual device28 that have been associated with telephony device23 (200.50.10.30, port3100).Virtual device28 then forwards the packets on totelephony device22. Since the header of each packet indicates the data stream originated fromport3100 ofvirtual device28, it appears totelephony device22 thattelephony device23 is actually located at this address and port.
A similar process is performed whentelephony device22 returns an RTP media stream in response to the media stream fromtelephony device23. Sincetelephony device22 believes thattelephony device23 is located atport3100 ofvirtual device28,telephony device22 directs its data streaming to this location. Whenvirtual device28 receives the IP packets atport3100,virtual device28 modifies the source IP address and port in the packets header from the actual port and IP address (200.50.10.1) oftelephony device22 toport2100 ofvirtual device28.Virtual device28 then forwards the packets totelephony device23 since the packets were received atport3100. Since the header of each packet indicates that the data stream originated fromport2100 ofvirtual device28, it appears totelephony device23 thattelephony device22 is actually located at this address and port. All subsequent RTP streams sent betweentelephony devices22 and23 are similarly passed through and modified byvirtual telephony device28.
Since all data that is sent between two or more IP telephony devices may be passed throughvirtual telephony device28,virtual telephony device28 can be used for other functions in addition to the address translation function described above. One such use is as a media termination point (MTP). An MTP is a form ofvirtual device28 that allows fully functional communications between telephony devices that use different types of call or control signaling, data compression formats, sizes of data payloads, audio/video sampling lengths, or any other communication parameters that are different between the telephony devices.
One such use of an MTP is as an intermediary between telephony devices to allow the features that callmanager26aprovides through proprietary signaling with certain IP telephony devices to be extended to telephony devices using other types of signaling, such as H.323 telephony devices. H.323 is a communications standard that specifies protocols and procedures for providing multimedia communication services (including real-time audio, video and data communications) over packet-switched networks, such as IP networks. The protocols specified by the H.323 standard include several types of audio and video codecs, RTP, and two signaling standards known as H.225 and H.245.
H.225 call control signaling is used to establish a connection between two or more H.323 telephony devices. Once the connection is established using H.225 signaling, H.245 streaming control signaling is used to manage the transmission of information between the telephony devices using RTP. H.245 signaling is used to transmit messages between the telephony devices that include information about the capabilities of each telephony device, instructions regarding the opening and closing of the logical channels over which the RTP media streams are transmitted, and information about flow-control.
Although many IP telephony devices are H.323-compliant, they do not necessarily use all of the protocols specified by the H.323 standard. For example, IP telephony devices may use a proprietary signaling protocol instead of H.225 and H.245 signaling. Proprietary signaling protocols often offer more features and flexibility than the protocols provided in the H.323 standard. Some of these telephony features include call hold, call transfer, call park, and call conferencing.
These features typically require that the media streaming connection between the participating telephony devices be temporarily terminated by closing the H.245 connection. However, an IP telephony device using H.225 signaling will typically “tear down” or terminate its side of a call if the H.245 connection to the telephony device is terminated. Therefore, once a feature such as hold is initiated by terminating the H.245 connection, a telephony device using H.225 signaling will drop out of the call and RTP media streaming cannot be reestablished with the telephony device without placing a new call to the telephony device (sending a new call initiation request). Thus, H.225 signaling has traditionally been incompatible with media streaming termination.
This problem can be solved by inserting an MTP into the call on behalf of the H.225 telephony device (or any other device using a protocol that is incompatible with media streaming termination). The call is then established by connecting the H.225 telephony device and the proprietary IP telephony device using the MTP as an intermediary. The MTP passes streaming media between the telephony devices as described above in conjunction with FIG.3. By employing such a connection, features such as hold or transfer can be initiated by a proprietary IP telephony device connected to an H.225 telephony device, without causing the H.225 telephony device to tear down the call.
FIG. 4 illustrates a communication link established between a proprietaryIP telephony device22 and an H.225telephony device44 using anMTP28. The communication link may be established by a processor executing call manager software stored on a computer-readable medium. The communications link includes a signaling link betweentelephony devices22,44 viacall manager26a, and a media streaming link betweentelephony devices22,44 viaMTP28. The communication link is established viaMTP28 such that the H.225 and H.245 signaling channels opened bytelephony device44 can be maintained after terminating a media stream betweentelephony device44 and telephony device22 (to allow the initiation of features such as call hold and transfer). H.225telephony device44 may be any type of device using H.225 signaling, including, but not limited to, IP and non-IP telephones, gateways coupling a packet-switched telephony network (such asLAN20a) toPBX50,PSTN60 or any other circuit-switched network, and computers executing H.323 software such as MICROSOFT NETMEETING. Additionally,telephony device44 may represent any other type of telephony device that uses any protocol incompatible with media streaming termination. For the purposes of this application, the term protocol means any format for transmitting data between two or more devices.
Assuming, as an example, that a call is originally placed bytelephony device44 totelephony device22, the communication link is initiated using H.225 signaling102 sent fromtelephony device44 to callmanager26a(a call initiated fromtelephony device22 would be placed in a similar manner, but using proprietary signaling). This H.225 signaling is a type of call initiation request that indicates a desire to set up a telephony device call withtelephony device22. Acall control module104 incall manager26areceives H.225signaling102 and determines thattelephony device22 is being called. Callcontrol module104 then signalstelephony device22 usingproprietary signaling106 to indicate the request fromtelephony device44.Telephony device22 signals callmanager26aback indicating whether it can accept the call. In this manner, a signaling link is created betweentelephony device44 andtelephony device22 viacall manager26a. Iftelephony device22 can accept the call, a media streaming link is created betweentelephony device44 andtelephony device22 usingMTP28.
Sincetelephony device44 uses H.225 signaling, amedia control module108 incall manager26adetermines thatMTP28 is needed (alternatively, each telephony device may include a form of media control module108).Media control module108 initiates anMTP manager110, which is a process running withincall manager26a.MTP manager110 provides access to and control over the various MTPs available fromcall manager26a. Although only oneMTP28 has been illustrated, numerous MTPs may be available throughcall manager26ato facilitate several incoming calls.MTP manager110 assignsMTP28 to the call and establishes streaming control channels totelephony device44,MTP28, andtelephony device22. In the case oftelephony device44, this control channel comprises an H.245signaling channel112. ForMTP28 andtelephony device22, this streaming control is performed through proprietary signaling channels114 (or any other type of signaling that supports media streaming termination).
Using control signaling112 and114,media streaming channels116 are established betweentelephony device44 andMTP28. Likewise,media streaming channels118 are established betweenMTP28 andtelephony device22. As described above in conjunction with FIG. 3,telephony device44 andtelephony device22 are then able to send RTP encapsulated media streams overchannels116,118 to each other viaMTP28.MTP28 receives the incoming media streams, notes the source address, and modifies the source address to the logical port ofMTP28 that is associated with the source device. This address modification can be performed by an address modification module ofMTP28.MTP28 then communicates the data stream to the destination device (this communication may be performed by a transmission module, such as a UDP/IP stack). Since the call betweentelephony device44 andtelephony device22 is connected usingMTP28,telephony device44 is effectively insulated fromtelephony device22, and features requiring the termination ofmedia streaming channels116 can be implemented, as described below.
FIG. 5 illustrates the communication link of FIG. 4 after a call hold feature has been initiated fromtelephony device22 to placetelephony device44 “on hold”. For the purposes of this application, a hold feature is a function that temporarily terminates audio and/or video communications between two or more calling parties, but does not disconnect the call signaling between the parties. It should be understood that the following description applies equally to any other telephony feature that requires the termination of media streaming between the participating telephony devices.
When the hold feature is initiated fromtelephony device22,media streaming channels118 betweenIP telephony device22 andMTP28 are terminated or “torn down.” However, becauseMTP28 has been implemented,media streaming channels116 betweenMTP28 andtelephony device44 may be maintained while still effectively terminating the media streaming betweentelephony device44 andtelephony device22. Sincemedia streaming channels116 are left open, H.245signaling channel112 is also left open, andtelephony device44 does not attempt to tear down H.225channel102, as described above. Thus, the connection betweentelephony device44 andtelephony device22 is maintained. Any media streaming received byMTP28 fromtelephony device44 may then be discarded. Once the hold feature is discontinued attelephony device22,media streaming channels118 can then be re-established betweentelephony device22 andMTP28 through signaling overcontrol channels114, as shown in FIG.4.
FIG. 6 illustrates a method of establishing media streaming with a third telephony device after initiation of the telephony feature requiring media streaming termination. For example, in the case of a call transfer feature, media streaming can be established between a third telephony device, such astelephony device23, andMTP28 to allow communication betweentelephony device44 andtelephony device23. When a call transfer feature is initiated fromtelephony device22, the media streaming betweentelephony device22 andMTP28 is terminated as described above.Telephony device22 signals callmanager26aand indicates that a connection is to be made betweentelephony devices23 and44. Callmanager26asignals telephony device23 to indicate the incoming call (note that for clarity, the signaling connection totelephony device23 is not shown). Iftelephony device23 can accept the call, then callmanager26ainstructstelephony device23 to begin media streaming to MTP28 (directed to the port associated with telephony device44) overmedia streaming channels120. Similarly, if a call conference feature had been selected fromtelephony device22, thenmedia streaming channels118 betweentelephony device22 andMTP28 could also be reestablished to create a conference call betweentelephony devices22,23 and44.
FIG. 7 illustrates an alternative communication link between two H.225 telephony devices (neither telephony devices uses signaling that supports media streaming termination). Such a communication link is established by providing each H.225 telephony device with anMTP28. Assuming, as an example, that a call is originally placed by H.225telephony device44 to H.225telephony device64a(a gateway supporting a connection to a PSTN telephony device), the communication link is initiated through H.225 signaling102 sent fromtelephony device44 to callmanager26a(a call initiated fromtelephony device64awould be placed in a similar manner). Callcontrol module104 incall manager26areceives H.225signaling102 and determines thattelephony device64ais being called. Callcontrol module104 then signalstelephony device64ausing H.225 signaling102 to indicate the request fromtelephony device44.Telephony device64asignals call manager26aback indicating whether it can accept the call. In this manner, a signaling link is created betweentelephony device44 andtelephony device64aviacall manager26a. Iftelephony device64acan accept the call, a media streaming link is established betweentelephony devices44 and64ausingMTPs28aand28b.
As with H.225telephony device44, H.225telephony device64amay be any type of device using H.225 signaling, including, but not limited to, IP and non-IP telephones, gateways coupling a packet-switched telephony network (such asLAN20a) toPBX50,PSTN60 or any other circuit-switched network, and computers executing H.323 software such as MICROSOFT NETMEETING. Additionally,telephony device64amay represent any other type of telephony device that uses any protocol incompatible with media streaming termination.
Since bothtelephony devices44 and64ause H.225 signaling,media control module108 incall manager26adetermines thatMTPs28aand28bare needed. As described above,media control module108initiates MTP manager110.MTP manager110 assignsMTP28atotelephony device44 andMTP28btotelephony device64a.MTP manager44 further establishes streaming control channels totelephony devices44,64aandMTPs28a,28b. In the case oftelephony devices44 and64a, these control channels are H.245 signalingchannels112. ForMTPs28aand28b, this streaming control is performed throughproprietary signaling114. Using control signaling112 and114,media streaming channels202 are opened betweentelephony device44 andMTP28a, andmedia streaming channels206 are opened betweentelephony device64aandMTP28b. Similarly, control signaling114 is used to openmedia streaming channels204 betweenMTP28aandMTP28b.
As described above in conjunction with FIG. 3,telephony device44 andtelephony device64aare then able to send RTP encapsulated media streams overchannels202,204, and206 to each other viaMTPs28aand28b. The only difference between the communication link of FIG.7 and that of FIG. 3 is that an extra MTP is added as an intermediary between the two telephony devices.MTP28areceives incoming media streaming fromtelephony device44, notes the source address, modifies the address to a logical port ofMTP28athat is associated withtelephony device44, and forwards the media stream toMTP28b.MTP28bthen performs the same address translation to modify the source address to a logical port ofMTP28bthat is associated withMTP28a, and forwards the media stream totelephony device64a. The same type of address translation occurs for media streaming fromtelephony device64adirected totelephony device44.
Since the call betweentelephony device44 andtelephony device64ais being connected usingMTP28aand28b,telephony device44 is effectively insulated fromtelephony device64a, and vice versa. Therefore, features requiring the termination of eithermedia streaming channels202 ormedia channels206 can now be implemented. If eithertelephony device44 ortelephony device64ainitiates such a feature,media streaming channels204 are temporarily terminated. Sincemedia streaming channels202 and206 are left open, H.245 signalingchannels112 with bothtelephony devices44 and64aare also left open, andtelephony devices44 and64ado not attempt to tear down H.225channels102. Therefore,media streaming channels204 can be reestablished when the feature is discontinued (or streaming channels can be established with another telephony device, as described above).
Although the present invention has been described with several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present invention encompass such changes, variations, alterations, transformations, and modifications as fall within the spirit and scope of the appended claims.