The invention relates to distributed peer-to-peer networks, and in particular to call processing features handled by such networks.
Some modern communications solutions are based on VoIP (Voice-over IP (Internet Protocol)) technology, which involves the transmission of calls over a data network based on the IP. The communication is in the form of packet data and thus there is no fixed connection as there would be in the case of switched networks. The communication can be text, voice, graphics or video. In order to simplify IP communication problems, standards have been developed and adopted in the industry. Examples of such standards are H.323 (Packet based communication systems) and SIP (Session Initiation protocol). These standards are followed when designing new hardware and software. The SIP standard covers the technical requirements to set-up, modify and tear down multimedia sessions over the Internet. A multimedia communication session between two endpoints will be referred to as a call.
In conventional local telephone networks, for example an office environment, a central location such as a main switchboard or public exchange (PBX) controls routing of incoming calls, holds placed by extensions of the local telephone network, transferring of calls, etc. This type of call management has several disadvantages. For example the central location is responsible for overseeing and maintaining control of all traffic in the network. This results in the need for significant processing capability to reside in one location.
In the office environment example above call processing features such as placing a call on hold, retrieving a call from hold, blind or attended transfers are ultimately handled by the switchboard or PBX. When a call is placed on hold by a terminal, the call is held by the switchboard. When a call is transferred to another extension, the call is routed through the switchboard. This is the reason the switchboard needs to have significant processing capability. For an office of tens to hundreds of people the switchboard must be capable of handling multiple holds, transfers, etc. while still routing regular incoming and outgoing traffic
To ensure that a maximum load can be handled by the switchboard or PBX it is necessary to have more processing capability than is generally required at any given time. This results in a waste of processing capability at the expense of the customer using the local network.
In addition, with conventional systems communication and control protocol between a typical PBX and phone sets are proprietary. Therefore, customers are usually forced to buy PBX and phone sets from the same vendor. Furthermore, in a traditional PBX system, phone sets are usually “dumb”, all the intelligence and processing power are placed in the centralized PBX/Call Server, hence the up-front entry cost for a small system is high.
Scalability is another disadvantage of traditional PBX systems, as they typically have limited capacity, beyond which a significant upgrade would be required.
According to a first broad aspect of the present invention, there is provided a Bridge Call Appearance (BCA) Group comprising a plurality of interconnected peer-to-peer packet-based network devices adapted to collectively implement BCA call processing features in a distributed manner.
In an embodiment of the first aspect, the BCA call processing features comprise at least one of a group consisting of answering incoming calls, placing outgoing calls, placing a call on hold, retrieving a call from hold, performing a blind transfer, and performing an attended transfer.
In an embodiment of the first aspect, at least one peer-to-peer packet-based network device of the plurality of interconnected peer-to-peer packet-based network devices is designated as a primary network device and remaining peer-to-peer packet-based network devices are designated as secondary network devices, the secondary network devices adapted to provide support for the primary network device when the primary network device is unavailable, wherein the primary network device is adapted to act as an intermediary for protocol signalling involving a secondary network device in the BCA Group and an other device with which the secondary network device in the BCA Group is communicating.
In an embodiment of the first aspect, communication data is exchanged between the secondary network device in the BCA Group and the other device subsequent to establishing a network device-to-device connection, the primary network device remaining in contact with the secondary network device and the other network device to facilitate further protocol signaling as the intermediary between the network device in the BCA Group and the other device.
In an embodiment of the first aspect, communication data flows between the secondary network device in the BCA Group and the other device subsequent to establishing a network device-to-device connection in accordance with Real-time Transport Protocol (RTP).
In an embodiment of the first aspect, protocol signaling is performed in accordance with Session Initiation Protocol (SIP).
In an embodiment of the first aspect, the other device is a peer-to-peer packet-based network device internal to the BCA Group.
In an embodiment of the first aspect, the other device is external to the BCA Group.
In an embodiment of the first aspect, the primary network device and the secondary network devices are Voice over Internet Protocol (VoIP) telephone terminal sets.
In an embodiment of the first aspect, the primary network device and the secondary network devices are packet-based communication telephone terminal sets.
In an embodiment of the first aspect, the primary network device is designated as a secondary network device for a second primary network device in the BCA Group.
In an embodiment of the first aspect, the primary network device is assigned at least one backup primary network device and when the primary network device is not connected within the BCA Group, the at least one backup primary network device performs tasks that the primary network device would have performed if the primary network device was connected within the BCA Group.
According to a second broad aspect of the present invention, there is provided a peer-to-peer system comprising at least one BCA Group according to the first broad aspect, wherein at least one peer-to-peer packet-based network device is designated as a primary network device and remaining peer-to-peer packet-based network devices are designated as secondary network devices, the secondary network devices adapted to provide support for the primary network device when the primary network device is unavailable, and at least one access interface coupled to the at least one BCA Group, the at least one access interface providing access to communication networks external to the peer-to peer system.
In an embodiment of the second aspect, the at least one access interface is a thin trunk interface (TTI) for connecting peer-to-peer packet-based network devices of the at least one BCA Group to a public switched telephone network (PSTN) external to the peer-to-peer system.
In an embodiment of the second aspect, the at least one access interface is an interface for connecting peer-to-peer packet-based network devices of the at least one BCA Group within the peer-to-peer system to a packet-based network external to the peer-to-peer system.
In an embodiment of the second aspect, the primary network device and the secondary network devices are VoIP terminal sets.
According to a third broad aspect of the present invention, there is provided a method for operation of a BCA Group comprising a plurality of interconnected peer-to-peer packet-based network devices wherein at least one peer-to-peer packet-based network device is designated as a primary network device and remaining peer-to-peer packet-based network devices are designated as secondary network devices, the primary network device adapted to act as an intermediary for protocol signaling involving a secondary network device in the BCA Group and an other device with which the secondary network device in the BCA Group is communicating, the method comprising collectively implementing BCA call processing features in a distributed manner.
In an embodiment of the third aspect, the call processing feature is receiving an incoming call, the method comprising a calling device contacting the primary network device, the primary network device contacting the secondary network devices with notification of contact of the calling device, a first secondary network device responding to the contact of the primary network device, the primary network device arranging a connection between the calling device and the first secondary network device via protocol signaling, upon completion of a communication session over the connection between the calling device and the first secondary network device, terminating contact between the calling device and the primary network device and the primary network device terminating contact with the first secondary network device, and the first secondary network device notifying all network devices that the first secondary network device is currently idle.
In an embodiment of the third aspect, the call processing feature is placing an outgoing call, the method comprising the primary network device contacting the secondary network devices prior to contacting a called device to notify the secondary network devices of a possible communication session between the primary network device and the called device, the primary network device contacting the called device, the called device responding to the contact of the primary network device, the primary network device arranging a connection between the called device and the primary network device via protocol signaling, the primary network device contacting the secondary network devices to notify the secondary network devices that the primary network device is currently busy, upon completion of a communication session over the connection between the primary network device and the called device, terminating contact between the primary network device and the called device, and the primary network device notifying the secondary network devices that the primary network device is currently idle.
In an embodiment of the third aspect, the call processing feature is placing a call on hold, wherein a first secondary network device and an other device are currently engaged in a communication session, the method comprising the first secondary network device placing a call with the other device on hold, the first secondary network device handing over control of the call on hold to the primary network device, the primary network device terminating contact with the first secondary network device, and the first secondary network device notifying the secondary network devices of the location and status of the call.
In an embodiment of the third aspect, control of the call on hold includes any one of a group consisting of supplying music for the other device on hold and supplying voice messages for the other device on hold.
In an embodiment of the third aspect, the call processing feature is retrieving a call from hold, wherein the call is currently on hold between the primary network device and an other device, the method comprising a first secondary network device initiating retrieving the call on hold from the primary network device, the primary network device arranging a connection between the first secondary network device and the other device via protocol signaling between the primary network device and the other device upon completion of a communication session between a user of the other device and a user of the first secondary network device, terminating contact between the other device and the primary network device and the primary network device terminating contact with the first secondary network device, and after the primary network device terminates contact with the first secondary network device, the first secondary network device notifying all network devices that the first secondary network device has completed its involvement with the retrieving the call from hold call processing feature and contact between the first secondary network device and other devices has been terminated and the first secondary network device is currently idle.
In an embodiment of the third aspect, the primary network device network device terminates contact with a network device that originally placed the call on hold, and following the first secondary network device being connected to the other device, the first secondary network device informs the primary network device and secondary network devices that the first secondary network device has successfully picked up the hold.
In an embodiment of the third aspect, the call processing feature is a blind transfer to a peer-to-peer packet-based network device within a peer-to-peer system comprising at least the BCA Group, wherein a first secondary network device and an other device are currently engaged in a communication session, the method comprising the first secondary network device initiating transferring of a call from the other device to a transfer receiving network device, the first secondary network device placing the call on hold and handing over control of the call on hold to the primary network device, the first secondary network device contacting the primary network device to have the primary network device contact the transfer receiving network device, the primary network device contacting the transfer receiving network device and inviting the transfer receiving network device to accept the call from the other device currently on hold, the transfer receiving network device accepting the call, the primary network device arranging a connection between the other device and the transfer receiving network device via protocol signaling, upon connection of the other device and the transfer receiving network device, the primary network device terminating contact with the first secondary network device, after the primary network device terminates contact with the first secondary network device, the first secondary network device notifying all network devices that the first secondary network device has completed its involvement with the blind transfer call processing feature and contact between the first secondary network device and other devices has been terminated and the first secondary network device is currently idle.
In an embodiment of the third aspect, the call processing feature is an attended transfer to peer-to-peer packet-based network device within a peer-to-peer system comprising at least the BCA Group, wherein a first secondary network device and an other device are currently engaged in a communication session, the method comprising the first secondary network device initiating transferring of a call from the other device to a transfer receiving network device, the first secondary network device placing the call on hold and handing over control of the call on hold to the primary network device, the first secondary network device contacting the transfer receiving network device and the user of the first secondary network device introducing the call to the user of the transfer receiving network device, the first secondary network device placing the call with the transfer receiving network device on hold, the first secondary network device contacting the primary network device, passing control of the call with the transfer receiving network device currently on hold and having the primary network device arrange connecting the calls currently on hold, the primary network device contacting the transfer receiving network device and inviting the transfer receiving network device to accept the call from the other device currently on hold, the transfer receiving network device accepting the call, the primary network device arranging a connection between the caller device and the transfer receiving network device via protocol signaling, upon connection of the caller device and the transfer receiving network device, the primary network device terminating contact with the first secondary network device, and after the primary network device terminates contact with the first secondary network device, the first secondary network device notifying all network devices that the first secondary network device has completed its involvement with the attended transfer call processing feature and contact between the first secondary network device and other devices has been terminated and the first secondary network device is currently idle.
In an embodiment of the third aspect, the primary network device and the secondary network devices are VoIP terminal sets.
In an embodiment of the third aspect, the primary network device is assigned at least one backup primary network device and when the primary network device is not connected within the BCA Group, the at least one backup primary network device performs tasks of the primary network device that would have been performed by the primary network device if the primary network device was connected within the BCA Group.
In an embodiment of the third aspect, when the calling device cannot contact the primary network device, a backup primary network device that is known to be assigned to the primary network device is contacted to perform tasks that would have otherwise been performed by the primary network device if the primary network was available for contact by the calling device.
According to a fourth broad aspect of the present invention, there is provided a communication system comprising; a peer-to-peer network comprising; at least one BCA Group according to the first aspect, wherein a network device is designated as a primary network device and remaining network devices are designated as secondary network devices, the secondary network devices adapted to provide support for the primary network device when the primary network device is unavailable; and at least one access interface coupled to the at least one BCA Group, the at least one access interface providing access to communication networks external to the peer-to peer system; and at least one communication network external to the peer-to-peer network coupled to the peer-to-peer network via the at least one access interface; wherein the primary network device of the BCA Group acts as an intermediary for communication involving a secondary network device in the BCA Group and an other device with which the secondary network device in the BCA Group is communicating, wherein protocol signaling for establishing a network device-to-device connection between the other device and the secondary network device in the BCA Group is transmitted via the primary network device.
In an embodiment of the fourth aspect, the primary network device is assigned at least one backup primary network device and when the primary network device is not connected within the BCA Group, the at least one backup primary network device performs tasks of the primary network device that would have been performed by the primary network device if the primary network device was connected within the BCA Group.
According to a fifth broad aspect of the present invention, there is provided a VoIP terminal set for use in the BCA Group according to the first aspect.
According to a sixth broad aspect of the present invention, there is provided a computer usable medium for use in a network device having computer readable program code means embodied therein, the computer readable program code means for implementing BCA call processing features in a distributed manner for a BCA Group comprising a plurality of interconnected peer-to-peer packet-based network devices each equipped with the computer readable program code means.
In an embodiment of the sixth aspect, the computer useable medium further comprises computer readable program code means for assigning at least one backup primary network device to a primary network device and when the primary network device is not connected within the BCA Group, the at least one backup primary network device performing tasks of the primary network device that would have been performed by the primary network device if the primary network device was connected within the BCA Group.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
Preferred embodiments of the invention will now be described with reference to the attached drawings in which:
Embodiments of the invention provide a distributed peer-to-peer network Bridge Call Appearance (BCA) functionality for performing call processing features which are implemented locally on network devices.
Referring to
A BCA Group is considered to be a group of peer-to-peer packet-based network devices in which one or more of the network devices is designated to be an intermediary for protocol signaling of calls occurring within the BCA Group. For example, calls originating outside the BCA Group which are directed to a network device within the BCA Group have protocol signaling for establishing the call, maintaining the call, and disconnecting the call handled via the intermediary network device. In a similar fashion calls originating within the BCA Group which are directed to a network device outside the BCA Group have protocol signaling for establishing the call, maintaining the call, and disconnecting the call handled via the intermediary network device as well. Calls originating within the BCA Group for a network device within the BCA Group also require similar protocol signaling for establishing the call. A practical example of a use for such a BCA Group that would support BCA call processing features provided by embodiments of this invention is an office environment having a boss with several administrative assistants. The boss has a terminal set and the administrative assistants each have terminal sets. This group of terminal sets would be considered a BCA Group wherein the boss's terminal set is designated as a primary terminal set, to act as the intermediary as described above, and the terminal sets of the administrative assistants provide support for the boss's terminal set. When a call comes in for the primary terminal set all phones in the BCA ring simultaneously. If so desired, one of the administrative assistant terminal sets can accept responsibility for the call and the administrative assistant will then handle the call accordingly by conversing with the caller, placing the call on hold, transferring the call, or initiating other call processing features. Protocol signaling steps taken to deal with the call by the administrative assistant terminal set are handled via the boss's terminal set, as will be described in more detail below.
BCA Group 10 shows five network devices in the form of terminal sets 101,102,103,104,105 coupled to a network 30. The network 30 may be for example a LAN (Local Area Network). In the example of
In some embodiments, where more than one terminal set is designated as a primary terminal within a BCA group, a primary terminal may be designated as a secondary terminal for other primary terminals.
The terminal sets in the BCA Group do not physically need to be in close proximity. However, in some embodiments, it may be advantageous from a user's point of view that the terminal sets in the BCA Group are in close proximity. For example, in the office environment described above the administrative assistants are typically close to the boss and are often aware of the boss's activities. This familiarity allows the administrative assistants to provide knowledgeable support for the boss while using the administrative assistant terminal set.
Embodiments of the invention provide that the terminal sets in the BCA group maintain a listing of connectivity of the BCA terminal sets. For example, the primary terminal maintains a listing of the secondary terminals that are registered to the primary terminal. The primary terminal may also maintain a listing of other primary terminals for which it is acting as a secondary terminal. Each secondary terminal may maintain a listing of which primary terminals it is registered with and which other secondary terminals are registered with those primary terminals.
A terminal set has a user interface used to facilitate normal operation of the terminal set. The terminal set may include some or all of the following: keypads for dialing a number, keypads capable of being assigned to particular call features such as call forwarding, voice mail, transferring a call, etc, and a display for providing text or graphics information to a user of the terminal.
The user interface provides a user of the terminal set to display status of another terminal set. In particular, the user interface displays information regarding status of the designated primary terminal to a user of a designated secondary terminal that is supplied by messages sent from the primary terminal. For example, in some embodiments the user interface includes illuminated keypads. An illuminated keypad is used to answer a call and a manner of the keypad being illuminated indicates the status of the call. In some embodiments, the user interface includes a liquid crystal display (LCD) for displaying graphics or text information regarding the status of the call such as words indicating if a call is active, ringing, on hold, or being transferred as well as numbers indicating directory numbers or extensions related to the status of the call.
In some embodiments provided by the invention the BCA Group is set up by an administrator. For example, the administrator establishes a BCA Group by selecting a particular terminal set to be the primary terminal and selects other terminal sets to act as secondary terminals for the BCA Group. The information identifying the primary and secondary terminals included in the established BCA Group is then propagated to other terminal sets in the overall network using peer-to-peer information propagation techniques. In some embodiments the information is only propagated to those terminal sets that need the information, such as the primary and secondary terminals of the established BCA Group. In some embodiments, the information is propagated using techniques described in co-pending U.S. Patent Application entitled “INFORMATION DISTRIBUTION SYSTEM, METHOD AND NETWORK DEVICE, filed Sep. 30, 2004 <attorney docket number 50447-21>.
In some embodiments, the administrator uses the terminal set user interface to designate which terminals are primary terminals and which terminals are secondary terminals. In some embodiments, the administrator uses a web tool for accessing the terminals via the network 30 to designate which terminals are primary terminals and which terminals are secondary terminals.
Preferably, network devices used in the BCA Group are packet-based telephones such as IP (Internet Protocol) telephone terminal sets. Other examples are a video phone, a PDA (Personal Digital Assistants), a wireless device, a computer supporting peer-to-peer voice over packet-based communication or a wireless telephone that can be suitably programmed and configured to provide the BCA call processing features described below. In some cases, the terminal sets are for example IP phones such as that manufactured by Mitel, Nortel, Avaya, Siemens, NEC, Pingtel or 3COM.
BCA Group 10 comprises a plurality of interconnected peer-to-peer network devices 101,102,103,104,105 for collectively implementing BCA call processing features in a distributed manner.
Referring now to
The peer-to-peer network 20 is shown to have three BCA Groups. A first BCA Group BCA1220 is shown to include terminal sets 201,202,203,204, a second BCA Group BCA2221 is shown to include terminal sets 204,206,207,208,209, and a third BCA Group BCA3222 is shown to include terminal sets 211,212,213. In BCA1220, terminal set 201 is designated as a primary terminal and terminal sets 202,203,204 are designated as secondary terminals. In BCA2221, terminal set 206 is designated as a primary terminal and terminal sets 204,207,208,209 are designated as secondary terminals. In BCA3222, terminal set 211 is designated as a primary terminal and terminal sets 212,213 are designated as secondary terminals. The peer-to-peer network 20 also is shown to include two individual terminal sets 205,210. In some embodiments, the network 30 is the same network that all the terminal sets in the peer-to-peer network 20 are coupled to, i.e. the terminal sets in the respective BCA Groups BCA1220 and BCA2221 are coupled to network 30. In some embodiments the terminal sets of the BCA Group, such as terminal sets 211,212,213 of BCA3222 may be coupled to a local network 230 and that local network is coupled to network 30. In the example of
Connected to the network 30 as shown in
In some embodiments the peer-to-peer network 20 has a plurality of connections to an Internet Protocol (IP) network 60, possibly having as many connections as there are terminal sets coupled to the peer-to-peer network 20. In some embodiments, the IP network 60 includes a centralized server (not shown) which is used to route calls between nodes coupled to the IP network 60 and terminal sets coupled to the peer-to-peer network 20. In some embodiments the IP network 60 is a conventional network in which packetized data is transferred between network nodes. In some embodiments the IP network 60 is a Voice over IP (VoIP) network.
In some embodiments, an interface coupled to the network 30 is an Internet Protocol Interface (IPI) 50. The IPI 50 is coupled to IP Network 55. The IPI 50 acts as a device to limit the number of connections to the network 30. As opposed to having a permanent packetized protocol connection for every extension or terminal set of the peer-to-peer network 20, the IPI 50 functions to make a temporary connection between a terminal set external to the peer-to-peer network 20 (coupled to the peer-to-peer network 20 through IP network 55) and a terminal set within the peer-to-peer network 20.
In some embodiments the peer-to-peer network 20 has only IPI 50 and no TTI 40. In other embodiments the peer-to-peer network 20 has both IPI 50 and TTI 40. In some embodiments multiple IPIs 50 may be used. In some embodiments IP network 55 and IP network 60 are the same IP network.
Embodiments of the invention provide that the TTI 40 and/or the IPI 50 maintain a listing of connectivity of terminal sets in the peer-to-peer network 20. For example, in some embodiments, the interfaces 40,50 maintain listings of the primary and secondary terminals included in respective BCA Groups. The interfaces 40,50 may also maintain listings of primary terminals that act as a secondary terminals for other primary terminals. The information identifying the primary and secondary terminals included in BCA Groups is propagated to the interfaces 40,50 in the peer-to-peer network 20 using peer-to-peer information propagation techniques in the same manner as information is propagated between peer-to-peer terminals.
It is to be understood that the peer-to-peer network 20 of
In the following descriptions of BCA call processing features a device being called by a BCA terminal set or a device calling a BCA terminal set is referred to as “Terminal Device X”. In the following signaling call flows describing embodiments of the invention “Terminal Device X” is a terminal set exterior to the peer-to-peer network 20, TTI 40 or IPI 50 that is routing a call from exterior to the peer-to-peer network 20, a terminal set within the peer-to-peer network 20, or a terminal set within the same BCA group.
A first BCA Group call processing feature provided by embodiments of the invention is receiving an incoming call. In a general case of receiving an incoming call a user of Terminal Device X is calling a user of a primary terminal of the BCA Group. The primary and all secondary terminals will ring simultaneously. If the user of the primary terminal is unavailable to take the call, one of the secondary terminals can accept the call. For example, a first secondary terminal accepts the invitation from the primary terminal and the primary terminal then cancels any outstanding invitations to other secondary terminals in the BCA Group. The primary terminal serves as a signaling bridge to connect Terminal Device X with the first secondary terminal. The first secondary terminal notifies the other secondary terminals that it is connected with Terminal Device X. After a dialog between the users of Terminal Device X and a user of the secondary terminal has been completed the primary terminal arranges the disconnection of the secondary terminal and Terminal Device X.
Referring to
The following signal flow example uses Session Initiation Protocol (SIP) messaging. SIP is a request/response type of protocol. A first device sends a request to a second device. The second device responds to the request and further action results depending in the response of the second device. The SIP core standard (currently RFC 3261), which is incorporated herein by reference defines SIP requests and responses such as INVITE, BYE, OK, and ACK and the manner in which they are used.
As shown in
A second BCA Group call processing feature provided by embodiments of the invention is placing an outgoing call. In a general case of placing an outgoing call, a user of a BCA Group primary terminal is calling a user of Terminal Device X. The primary terminal sends a notification to all secondary terminals registered with the primary terminal that the primary terminal is trying to contact Terminal Device X. After a connection between Terminal Device X and the primary terminal is established the primary terminal sends confirmation to all the secondary terminals that connection has been made with Terminal Device X and the primary terminal is now busy. After a dialog between Terminal Device X and the primary terminal has been completed the primary terminal notifies all the secondary terminals that the primary terminal has completed the call with Terminal Device X and that the primary terminal is available.
Referring to
As shown in
A third BCA Group call processing feature provided by embodiments of the invention is placing a call on hold. In a general case of placing a call on hold a user of a BCA Group terminal places a call on hold from another terminal, internal or external to the peer-to-peer network. For example, it is assumed that a user of a first secondary terminal is connected to Terminal Device X and wishes to place the user of Terminal Device X on hold. In initiating placing the call on hold the first secondary terminal sends an invitation to the primary terminal it is registered with to accept control of the call on hold. The primary terminal sends an invitation to Terminal Device X to be placed on hold. After Terminal Device X accepts being placed on hold the primary terminal takes over control of the hold and establishes a one way connection with Terminal Device X.
Some embodiments of the hold call processing function are done this way to relieve a secondary terminal from streaming media, for example music-on-hold, while the call is placed on hold. The primary terminal will assume this responsibility. In a case where the secondary terminal has to monitor several primary terminals, this may help to reduce the load on the secondary terminal, hence improving the overall network scalability.
The one way RTP connection between the primary terminal and Terminal Device X allows the primary terminal to supply media such as music or voice messages to Terminal Device X while it is on hold. While the primary terminal plays music-on-hold to Terminal Device X, there is no media flowing between the primary terminal and the first secondary terminal. The first secondary terminal also notifies the rest of the BCA group that the call is being held at primary terminal.
Referring to
As shown in
In
A fourth BCA Group call processing feature is retrieving a call from hold. In a general case of retrieving a call from hold a user of a BCA Group terminal retrieves a call that is placed on hold by a first secondary terminal and currently on hold by the primary terminal. For example, a second secondary terminal sends an invitation to the primary terminal it is registered with to retrieve the call on hold. The primary terminal sends an invitation to Terminal Device X to take the call off-hold and to attempt to connect Terminal Device X with the second secondary terminal which is trying to pick up the call. At the same time, the primary terminal also sends a message to the first secondary terminal that originally put the call on hold to terminate that call, which has been replaced by the call from a second secondary terminal that is trying to pick up the held call. After Terminal Device X accepts the invitation, the primary terminal establishes a connection between Terminal Device X and the second secondary terminal that is picking up the call. After connection between Terminal Device X and the secondary terminal has been established, the second secondary terminal notifies all the secondary terminals and the primary terminal that it has retrieved the call from hold. After a dialog between a user of Terminal Device X and a user of the second secondary terminal has been completed the primary terminal still acting as the intermediary for signaling protocol between Terminal Device X and the second secondary terminal notifies the second secondary terminal that the user of Terminal Device X has terminated the call. The second secondary terminal then notifies all other BCA Group terminals that the call has been terminated and the first secondary terminal is available.
Referring to
As shown in
In another embodiment, in which BCA primary terminal 602 is picking up the held call, BCA primary terminal 602 simply sends a “BYE” message to BCA secondary terminal 603 that put the call on hold originally, to tear down that call (cid=2). It would then re-invite Terminal Device X 601, which essentially would take Terminal Device X 601 off of music-on-hold and resume 2-way media directly with BCA primary terminal 602. After this, BCA primary terminal 602 would notify (“NOTIFY/200 OK-Confirmed”) the secondary BCA terminals 602, 603 that it is taking the call.
Additional BCA Group call processing features include blind and attended transfers from one terminal in the BCA Group to another terminal. In a general case of transferring a call from a user of a BCA Group terminal to another terminal, a first step involves utilizing aspects of the hold call processing feature as described above. For example, a first secondary terminal uses the hold feature to place the call on hold while it performs the steps necessary to complete the transfer. In one embodiment of a blind transfer call processing feature the first secondary terminal sends an invitation to the terminal of a desired destination to accept the call. If the invitation is accepted the first secondary terminal transfers control of the call back to the primary terminal. The primary terminal sends an invitation to the terminal of the desired destination to connect the terminal of the desired destination with the call and upon acceptance of the invitation connects Terminal Device X and the terminal of the desired destination. Upon successfully establishing the connection the primary terminal sends notification of the successful connection to the first secondary terminal and then the first secondary terminal sends notification to the other BCA Group terminals that it has completed its function in the blind transfer and is again available.
In an attended transfer call processing feature the signal flow is similar to a blind transfer call processing feature, however provision is made for the user of the first secondary terminal to introduce the user of the outside terminal.
Referring to
As shown in
A second embodiment of a blind transfer call processing feature 707 from one terminal in the BCA Group to another terminal in the peer-to-peer network is shown in
Referring to
Initial steps of an attended transfer call processing feature process 800 of
Referring to
Initial steps of an attended transfer feature process 900 of
The particular examples described above with respect to
The use of RTP for communication between terminals in the various BCA Group call processing features is also noted to be one particular example of a protocol for such communication and it is to be understood that other protocols could be used for such communication in place of RTP.
The use of SDP for carrying media description between terminals in the various BCA Group call processing features is also noted to be one particular example of a protocol for such communication and it is to be understood that other protocols could be used for such communication in place of SDP.
An advantage of this type of BCA Group architecture is that Terminal Device X does not have to interact with multiple terminals within the peer-to-peer network. The use of the primary terminal as an intermediary allows Terminal Device X to interact with a single terminal for the sake of protocol signaling for initiating, maintaining and disconnecting from calls. As a result, terminals external to the peer-to-peer network can operate with any desired protocol and the BCA Group and/or peer-to-peer network can operate on the same protocol or a different and independent protocol for signaling between terminals of the peer-to-peer network. In some embodiments provided by the invention a protocol translator resides in any one of or all of the TTI, IPI, and/or the primary terminal of the BCA Group.
The signal flow charts described above are intended as examples of how call processing features may be implemented, in particular using SIP messaging. In some embodiments it may not be necessary to include all of the SIP commands or signals as described herein and in some embodiments there may be additional steps which are included to improve the BCA Group call processing features or add additional functionality to the features. It should also be understood that the ordering of steps as described herein are but examples of how the process may be implemented. Ordering of steps may have some deviation from those described above and still fall within the subject matter of the invention.
When terminal set 101 is initially connected to the network 30 it performs a peer discovery by executing the peer discovery module 1020. At this point terminal set 101 undergoes a discovery of peer network devices such as terminal sets 102, 103, 104, 105 and other network devices such as TTI 40 and IPI 50, by way of messages between terminal set 101 and terminal sets 102, 103, 104, 105, TTI 40 and IPI 50. Once the other terminal sets and network devices are discovered, information is exchanged between the terminal set 101 and the other terminal sets and network devices. In some embodiments, at least part of the information exchanged in the messages is included in a routing table.
In some implementations, a BCA primary network device such as a terminal set has one or more network device designated to serve as a backup BCA primary network device in the event that the BCA primary network device is unavailable to process a call. In particular, if a BCA primary network device is unavailable to process a call, the call is re-directed to one of its designated backup network devices and the designated backup network device receiving the re-directed call provides BCA and/or other types of call functionality for the BCA primary network device that is unavailable. In some embodiments, if the primary network device is unavailable and the secondary network devices registered with the primary network device are not available then the designated backup network device will not take over for the primary device. In some embodiments, the secondary network devices also have backup network devices.
On a more simplified level, each network device maintains an identification of designated backup network devices for itself and every other network device. In particular, when a new network device is added to the peer-to-peer network 20, the network device makes use of its peer discovery module 1020 to obtain routing information pertaining to other network devices in the peer-to-peer network 20 and makes use of the peer backup module 1040 to designate two other network devices as backup network devices.
Referring back to
The call-processing module 1005 interacts with the protocol stack 1045 to set up and tear down calls, and to set up media calls.
The call processing modules of a number of network devices collectively serve to deliver PBX-like (Private Branch Exchange-like) call processing capabilities in a distributed fashion without the need for a PBX (Private Branch Exchange). For example, the call processing module 1005 of terminal set 101 handles calls not only intended for terminal set 101 but also handles calls for other network devices for which it has been designated as a backup terminal set. This allows the BCA module 1010 to perform the functions of a backup primary terminal when terminal set 101 has been so designated.
The BCA module 1010 is responsible for handling the BCA call processing features described above such as receiving an incoming call, placing an outgoing call, placing a call on hold, retrieving a call from hold, and blind or attended transfers. The BCA module contains computer readable program code for performing steps described above in the signaling flow diagrams for enabling the BCA call processing features in a distributed manner for a BCA Group comprised of a plurality of interconnected peer-to-peer packet-based network devices.
Regarding processing at the destination network device, in one implementation at step 1150 the call is processed with a ringing signal being generated for answering of the call by a user of the BCA primary terminal or backup BCA primary terminals.
In a situation where the call is placed from a location outside the peer-to-peer network, TTI 40 or IPI 50 performs the actions of the originator network device described above. TTI 40 and IPI 50 maintain information in the same manner as the peer-to-peer terminals regarding which terminals are designated as primary terminal, secondary terminals, and back-up terminals for primary terminals. Therefore, when a call is originated outside the peer-to-peer network 20 the call enters the peer-to-peer network 20 through either TTI 40 or IPI 50. TTI 40 or IPI 50 then contacts the BCA primary terminal and if the BCA primary terminal is not connected to the network, then TTI 40 or IPI 50 looks up its routing information to determine which network device is to serve as a backup BCA primary terminal.
In the method of
In addition to BCA call processing features, other call processing functionality such as call forwarding, call park and pickup, call transfer, and paging, and other features such as time synchronization, backup features, and peer discovery, may be provided locally at network devices within a network. Such features and functionality are described in U.S. Provisional Patent Application No. 60/441,481 entitled “DISTRIBUTED PEER-TO-PEER CALL TRANSFER SYSTEM, METHOD AND TELEPHONE TERMINALS” and filed Jan. 22, 2003; U.S. Provisional Patent Application No. 60/441,121 entitled “DISTRIBUTED PEER-TO-PEER CALL FORWARDING SYSTEM, METHOD AND TELEPHONE TERMINAL” and filed Jan. 21, 2003; U.S. Provisional Patent Application No. 60/473,877 entitled “DISTRIBUTED PEER-TO-PEER CALL PARK AND CALL PARK PICKUP SYSTEM, METHOD AND TELEPHONE TERMINALS” filed May 29, 2003; U.S. Provisional Patent Application No. 60/518,646 entitled “PEER-TO-PEER DISCOVERY SYSTEM, METHOD AND NETWORK DEVICES” filed Nov. 12, 2003; U.S. Provisional Patent Application No. 60/523,703 entitled “PEER BACK-UP IN A DISTRIBUTED PEER-TO-PEER NETWORK: SYSTEM, METHOD AND NETWORK DEVICES” filed Nov. 21, 2003; U.S. Provisional Patent Application No. 60/523,140 entitled “TIME SYNCHRONIZATION OF NETWORK DEVICES IN A NETWORK: SYSTEM, METHOD AND NETWORK DEVICE” filed Nov. 19, 2003; and U.S. Provisional Patent Application No. 60/524,041 entitled “SYSTEM, METHOD AND NETWORK DEVICES FOR PAGING IN A NETWORK” filed Nov. 24, 2003, all of which are incorporated herein by reference. It is to be clearly understood that embodiments of the invention are also provided which only provide BCA call processing features.
Numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that within the scope of the appended claims, the invention may be practised otherwise than as specifically described herein.