|
Description  |
|
|
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to call processing systems, and more specifically, to a system and method for providing conference call features.
2. Related Art
Conference call capabilities are widely used in today's business and industry. Such capabilities allow a party to set up a telephone call in which numerous parties can participate in a meeting or conference via telephone. Through the use of
conference calling, meetings between various parties at various distant locations are routinely conducted without the need to expend time and money to travel to the meeting location.
In some offices, telephones are provided with the ability to set up a conference call. In such an office, the party setting up the conference calls each of the conference participants, one at a time. As each participant is called, he or she is
added to the conference. When all participants have been called, the conference call can begin. In other environments, an operator dedicated to handling conference calling functions is provided to set up the conference call. In such an environment,
the operator contacts each conference participant to set up the conference call.
SUMMARY OF THE INVENTION
The present invention is directed toward a system and method for providing call conferencing features with a call processing system. According to the invention, a conference call controller is provided to control setup, origination and
termination of the conference call. The conference participants are tied together on the conference call using a conference bridge. The conference bridge comprises a plurality of conference ports. The conference participants are connected to the
conference ports and the conference ports are connected together to form the conference within the conference bridge.
A user wishing to set up a conference call places a call to his or her carrier which is supported by the call processing system. An operator console elicits preliminary information from the caller pertaining to the date, time, anticipated
duration, and number of participants for the conference. The operator console forwards this information to the conference call controller which checks on the availability of those resources for the scheduled time. If available, the resources are
reserved and the conference call controller informs the operator console that the conference is scheduled.
The operator console then elicits specific information about the participants such as their names, their phone numbers and billing information for each leg of the conference call. This information is forwarded to the conference call controller
where it is stored in a participant database.
When it is time for the conference to begin, the conference call controller requests allocation of an operator console. The operator console is connected to a first conference port on the bridge. The conference call controller retrieves the
participant information from the participant database. Using this information, the conference call controller originates a call to a first conference participant via a second conference port on the bridge. When the call is completed, the first and
second conference ports are connected in the bridge. The conference call controller provides the operator console with participant information so the operator can query the participant as to his or her desire to participate.
Each of the other conference participants is contacted in a similar fashion. As each conference participant is originated and indicates a desire to participate, that participant's conference port is connected to the other conference participants
within the conference bridge.
One advantage of the invention is that multiple operator consoles can be allocated to the conference call during the setup phase. In this manner, two or more conference participants can be simultaneously contacted to minimize setup time.
Because the conference call controller controls the setup and origination, the integrity of the call control mechanism can be maintained while gaining the ability to speed call setup time.
Another advantage of the invention is that conference call controller handles the responsibilities of verifying and allocating resources, conference scheduling, and originating the call to each of the conference participants. As a result, the
operator console is available to perform other functions. Another advantage resulting from conference call controller handling such responsibilities is that dedicated conference call operators with special capabilities are not required to handle
conference calls.
Yet another advantage of the invention is that it interlaces to a call processing system having a switch-independent platform such as the network control processor. As a result, conference features and functions can be customized to accommodate
specific user or client needs. Customized services can be provided with minimal development effort--usually just a database change--and without additional hardware expenditures.
Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with reference to the accompanying drawings.
BRIEF DESCRIPTION
OF THE DRAWINGS
The present invention is described with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit(s) of a reference number identifies
the drawing in which the reference number first appears.
FIG. 1 is a high-level block diagram illustrating the architecture of a conventional telephone switching configuration.
FIG. 2 is a high-level operational flow diagram illustrating the manner in which the long-distance carrier provides long-distance telephone services to its subscribers.
FIG. 3 is a block diagram illustrating an enhanced call processing system.
FIG. 4 is a block diagram illustrating a relationship between customers and subscribers of the call processing system.
FIG. 5 is an operational flow diagram illustrating the steps involved in placing and completing a call using call processing system.
FIG. 6, which comprises FIGS. 7 and 8, is a high-level operational flow diagram illustrating the process that call processing system uses to process operator-assisted calls.
FIG. 7 is a high-level operational flow diagram illustrating the process that call processing system uses to process operator-assisted calls.
FIG. 8, which is a continuation of FIG. 7, is a high-level operational flow diagram illustrating the process that call processing system uses to process operator-assisted calls.
FIG. 9 is a high-level block diagram illustrating a system for providing conference calling features.
FIG. 10 is a block diagram illustrating the conference call controller in greater detail.
FIG. 11 is a block diagram illustrating a representative architecture of conference bridge.
FIG. 12 is an operational flow diagram illustrating the manner in which the conference call feature is implemented according to one embodiment of the invention.
FIG. 13 is a block diagram illustrating the allocation and scheduling phases of a conference call.
FIG. 14, which comprises FIGS. 15 and 16, is a flowchart illustrating the steps associated with allocation and scheduling a conference call according to one embodiment of the invention.
FIG. 15 is a flowchart illustrating the steps associated with allocation and scheduling a conference call according to one embodiment of the invention.
FIG. 16, which is a continuation of FIG. 15, illustrates the steps associated with allocation and scheduling a conference call according to one embodiment of the invention.
FIG. 17 is a dataflow diagram illustrating messages associated with the allocation and scheduling phases of a conference call.
FIG. 18 is a block diagram illustrating the components utilized during the setup phase of a conference call.
FIG. 19 is a high-level operational flow diagram illustrating the operations performed during the call setup phase of a conference call.
FIG. 20 is an operational flow diagram illustrating the initial setup of the conference call, in greater detail.
FIG. 21 is a flow diagram illustrating the allocation of an operator console to handle the conference call.
FIG. 22 is an operational flow diagram illustrating the steps associated with originating a participant and joining the participant in the conference.
FIG. 23 is a flow chart illustrating the steps associated with releasing an allocated operator console.
FIG. 24 is a data flow diagram illustrating messages used to set up the conference call according to one embodiment of the invention.
FIG. 25 is a block diagram illustrating the components utilized to provide operator assistance to an existing conference call.
FIG. 26 is an operational flow diagram illustrating the steps associated with providing operator assistance to an existing conference call.
FIG. 27 is an operational flow diagram illustrating the allocation and connection of operator console to the conference call.
FIG. 28 is an operational flow diagram illustrating the steps of adding an additional participant to the conference.
FIG. 29 is a data flow diagram illustrating the message traffic associated with providing operator assistance to a conference call.
FIG. 30 is a block diagram illustrating the components utilized during the completion phase of a conference call.
FIG. 31 is an operational flow diagram illustrating the steps associated with the completion phase of a conference call.
FIG. 32 is a data flow diagram illustrating the messages utilized during the completion phase of a conference call.
DETAILED DESCRIPTION OF THE EMBODIMENTS
1.0 Introduction and High-Level Overview
1.1 Standard Call Processing System
1.2 Enhanced Call Processing System
2.0 Conference Call Controller
2.1 Conference Call Allocation
2.2 Conference Call Setup
2.3 Operator Assistance
2.4 Conference Call Completion Phase
3.0 Conclusion
1.0 Introduction and High-Level Overview
According to one embodiment of the invention, the conference call controller operates in the environment of a call processing system. In order to provide the reader with a more complete understanding of the invention, two call processing systems
are first described. In Section 1.1 a standard call processing system is described. Section 1.2 describes an enhanced call processing system that utilizes a network control processor 304 to provide enhanced call processing features. In subsequent
sections of this document, the conference call controller 904 (illustrated in FIG. 9) is described in an embodiment wherein it is operational in the environment of the enhanced call processing system described in Section 1.2. A more detailed description
of this enhanced call processing system 302 can be found in co-pending patent application of common assignee, Ser. No. 08/136,211, filed on Oct. 15, 1993, the entire text of which is incorporated heroin by reference.
1.1 Standard Call Processing System
An example of a standard telephone switching configuration is illustrated in FIG. 1. FIG. 1 is a high-level block diagram illustrating the architecture of a conventional telephone switching configuration. Referring now to FIG. 1, the
configuration includes a matrix switch 102 and an operator console 108. A typical subscriber 114 to a long-distance carrier 112 may be a business, another carrier, or an individual user 106. Customer 110 may, for example, be a business or it may be a
carrier that is procuring enhanced services from a competitor long-distance carrier 112. Customer 110 may have its own customer switch 104 for routing calls between outside trunks and inside lines or instruments.
Users 106 (for example, humans talking on the telephone) place long-distance calls using long-distance carrier 112. The user 106 who places the call (calling party) is termed an originating user 106A. The user 106 to whom the call is placed
(called party) is termed a terminating user 106B.
Originating user 106A may place the call directly with long-distance carrier 112 where originating user 106A is a customer of long-distance carrier 112. Where originating user 106A subscribes to another carrier that is a customer 110 of
long-distance carrier 112, the call is routed through customer 110. Where originating user 106A is an end-user at a business that is a customer 110 of long-distance carrier 112 and that has its own switch 104, that originating user's call also gets
routed through customer switch 104. In the latter two cases, originating user 106A is deemed a "client" of customer 110.
Matrix switch 102 is provided as a switch to route calls between users 106. A call is routed from originating user 106A to terminating user 106B. Matrix switch 102 typically can route thousands of telephone calls simultaneously. An example of
matrix switch 102 is the commercially-available switch model DMS 250, manufactured by Northern Telecom, Inc. in Richardson, Tex., U.S. "DMS" is a registered trademark of Northern Telecom, Inc.
The manner in which long-distance carrier 112 provides long-distance services is now described. FIG. 2 is a high-level operational flow diagram illustrating the manner in which long-distance carrier 112 provides long-distance telephone services
to its subscribers 114. FIGS. 1 and 2 are now referred to in order to illustrate how long-distance carrier 112 provides direct-dial long-distance service and operator-assisted calling for users 106. Long-distance direct dialing is accomplished by
dialing one plus (1+) the called number. Operator-assisted calling can be placed by dialing zero plus (0+) the called number or by simply dialing zero (0).
The long-distance call is originated by user 106 and sent to matrix switch 102. This occurs in a step 202. The call is sent over two channels. These channels are an audio channel 122 and a signalling channel 124. Audio channel 122 carries the
audio portion of the call. The audio portion of the call is referred to as call audio 142. It is over audio channel 122 that the caller's voice (in other words, call audio 142) can be heard. Call audio 142 can be analog audio, digital audio, or other
information (for example, fax or modem signals) transferred among users 106.
Signalling channel 124 is used to transmit call data 144. Call data 144 includes information regarding the type of telephone call being made and other call handling parameters including called number, originating number (e.g., an automatic
number identification, or ANI), how the call was dialed (1+, 0+, 0), and the like. Call data 144 also provides call setup parameters to matrix switch 102.
An example of a signalling channel 124 is the industry standard common channel signalling system 7 (SS7) out-of-band signalling channel. SS7 is typically a 56 kilobit (kbit) link, and is commonly transmitted over a T-1 carrier. Typically, call
data 144 is a data packet comprising 30-40 bytes of data.
Matrix switch 102 accepts call data 144 to determine how to handle and route the call. This occurs in a step 204.
If the call requires operator assistance (for example, a collect call), operator call data 146 is provided to an operator console 108. This occurs in a step 206. Typically, operator call data 146 is transferred to operator console 108 over a
data link 126. Operator call data 146 includes information regarding the type of call and other information which matrix switch 102 knows regarding the call such as originating number, how the call was dialed, and the like.
Operator console 108 is typically a manual operator console which requires a human operator. The human operator answers the incoming call. The human operator then sends operator commands 128 to matrix switch 102 to complete the call. In the
case of a collect call this allows the operator to verify that the called party will accept the charges for the call. This occurs in a step 208.
If the call was instead a direct-dial call, matrix switch 102 uses call data 144 provided over signalling channel 124 to determine where to route the call. Matrix switch 102 then routes the call to the destination number. This occurs in a step
210.
There are a few drawbacks associated with this system used by the conventional long distance carrier. First, data link 126 over which operator call data 146 are transferred is often slower than desired and introduces unwanted delays in handling
the call.
A second drawback is that the human operator at operator console 108 only gets the information that matrix switch 102 decides to send. In other words, call handling is limited to the features and capabilities that are provided by the particular
matrix switch 102 that was purchased by the carrier.
Note, other manufacturers may provide matrix switches 102 with different features from those of the DMS 250. For example, other switches 102 may have a higher data rate link 126. However, long-distance carrier 112 is still limited to the
choices of matrix switches 102 that are commercially available, because it would be prohibitively expensive to design, develop and manufacture a custom matrix 102. Thus, the functionality and capabilities that can be provided by a long distance carrier
in this conventional system are limited to the functionality and characteristics provided by available matrix switches 102.
Because matrix switches 102 are costly to develop, they are typically designed to provide only those basic functions that all long-distance carriers are likely to desire. In this manner, the development costs of matrix switch 102 can be spread
among numerous long-distance carriers. The cost of developing and manufacturing a unique matrix switch 102 is too high to provide a custom switch for a single long-distance carrier, or for only a small group of long-distance carriers. As a result,
customer-unique and carrier-unique calling features and services cannot be provided.
Additionally, most manufacturers of matrix switches 102 are unable to modify existing matrix switches 102 to meet unique needs of the various long-distance carriers without a significant cost and significant time to implement.
An additional drawback is that it is typically expensive to provide operator positions to interface to matrix switch 102. This is because operator consoles can only interface to conventional matrix switches 102 via special operator ports. Most
conventional matrix switches provide a limited number of such operator ports. For example, the DMS 250 matrix switch 102 provides a capability of 384 operator console ports per switch. Thus, in this example, if more than 384 operator consoles 108 are
desired, at least one additional DMS 250 matrix switch must be purchased. At a cost of approximately $2 million per DMS 250 (1993 prices), the cost of additional operator positions is high.
Due to the high cost of available matrix switches 102, most, if not all, of the smaller long-distance carriers cannot afford to purchase or develop custom telecommunications switching equipment. As a result, these carriers cannot have their own
operator positions. Therefore, these carriers must obtain high-end services such as operator-assisted calling through carriers 112 who have such capabilities.
Additionally, for those long-distance carriers who do have matrix switches 102, such switches 102 cannot be easily (or cost-effectively) reconfigured, or customized, to meet unique call processing needs. Thus, the flexibility required to offer a
wide range of customer services and call handling capabilities cannot be provided to the customers and users of these call processing systems 112.
1.2 Enhanced Call Processing System
FIG. 3 is a block diagram illustrating an enhanced call processing system, Enhanced call processing system 302 provides a wide range of enhanced calling products and features to carriers and individual users. One or more carriers can use call
processing system 302 to obtain carrier-unique and customer-unique, customized products and features for their customers.
Call processing system 302 includes a network control processor (NCP) 304 and a matrix switch 306. Matrix switch 306 could be the same as matrix switch 102 (for example, a DMS 250). Alternatively, matrix switch 306 could be a simpler type of
switch as will be described below. Network control processor 304 is a unique combination of hardware, software structure and programs designed and developed to control calls being handled by call processing system 302.
Call processing system 302 can also include one or more operator consoles 308. Operator console 308 can be the same as operator console 108 used in the conventional system. However, in a preferred embodiment, operator consoles 308 provide
additional features not found in conventional operator consoles 108. For example, operator consoles 308 provide the capability to use customized scripts to present a carrier-unique interface. Scripts and other features of operator consoles 308 are
discussed throughout this document.
Types of operator consoles 308 can include a manual operator console (MOC) 332 and an automated voice response unit (VRU) 334. Manual operator console 332 provides the functionality required for a human operator to converse with the caller.
Automated voice response unit 334 does not require a human operator to handle operator-assisted calls. Automated voice response unit 334 includes stored voice or synthesized voice responses (automated scripts) to provide automated voice instructions to
the caller. For example, automated voice response unit 334 may instruct a caller 106A (originating user) to enter her calling card number.
An additional type of operator console 308 includes a customer service console 336. Customer service console 336 performs customer service related functions. These functions include giving credits for call problems and answering questions of
users 106 and long-distance carrier customers of call-processing system 302.
When a call is originated by originating user 106A, call audio 142 and call data 144 for the call are routed to call processing system 302. A key feature of call processing system 302 is that it enables call audio 142 on audio channel 122 to be
handled separately from call data 144.
FIG. 4 is a block diagram illustrating a relationship between customers and subscribers of the call processing system. Originating user 106A can be a client of a customer 110 of call processing system 302, or a direct subscriber 114 of call
processing system 302. Customer 110 can be a business or a carrier procuring enhanced services from call processing system 302. Originating user 106A may place a call directly to call processing system 302 or through customer switch 104. The detail of
customer 110 and users 106 is illustrated separately in FIG. 4 for clarity. The term subscriber 114 is used to generally refer to users 106 who are direct clients of call processing system 302 and/or to customers 100.
Calls are placed to terminating users 106B. Terminating users 106B may be subscribers 114, clients of customers 110, or any other destination to which a call is placed.
Network control processor 304 receives call data 144 via signalling channel 124. Network control processor 304 uses call data 144 to make call handling decisions. Examples of these decisions include whether operator assistance is required,
whether a number translation is required, how to bill the call, where the call should be routed, and the like. Also, when the call is originated, matrix switch 306 receives call audio 142 from the user 106 who placed the call.
Network control processor 304 then sends switch control data 322 to matrix switch 306. Switch control data 322 include data that controls call routing in matrix switch 306. For calls requiring operator assistance, network control processor 304
sends operator control data 324 to operator console 308. Operator control data 324 includes information on how to handle the operator-assisted call.
Call processing system 302 is best described in conjunction with an example illustrating how calls are handled. FIG. 5 is an operational flow diagram illustrating the steps involved in placing and completing a call using call processing system
302. Referring to FIGS. 3, 4 and 5, these steps are now described.
In a step 502, an originating user 106A initiates a call. In other words, a caller picks up the telephone and dials a telephone number of a called party (terminating user 106B). Examples of user 106 can include a human communicating via a
telephone instrument, a fax machine, or a modem. The only difference is that originating user 106A originates the telephone call, while terminating user 106B is the user to whom the call is placed.
The call can be routed directly to network control processor 304, or it could be routed to network control processor 304 via customer switch 104. In the latter case, customer switch 104 forwards call audio 142 and call dam 144 associated with
this call to call processing system 302. If a customer switch 104 is not in place, call audio 142 goes directly to matrix switch 306 at call processing system 302 and call data 144 to network control processor 304.
In a step 504, call processing system 302 receives call audio 142 and call data 144 for the call initiated in step 502. More specifically, matrix switch 306 receives call audio 142, and network control processor 304 receives call data 144.
In a step 506, network control processor 304 uses call data 144 to determine how to handle the call. Specific details regarding the manner in which network control processor 304 makes this determination are fully described in detail in the
network control processor section of this patent document.
In a step 508, network control processor 304 sends switch control data 322 to matrix switch 306. Switch control data 322 commands matrix switch 306 to route the call to the correct destination. For example, switch control data 322 may command
matrix switch 306 to route the call audio 142 to customer switch 104 at the terminating end and ultimately to terminating user 106B.
Network control processor 304 commands matrix switch 306 by sending switch control data 322 to matrix switch 306. The format and content of switch control data 322 depends on the type of matrix switch 306 utilized. Note that in some cases,
depending on the customer, a customer switch 104 at the terminating end may not be used. In these cases, the call is routed directly to terminating user 106B.
In a step 510, matrix switch 306 routes the call to terminating user 106B as instructed by network control processor 304 in step 508.
As a result of the functionality provided by network control processor 304, matrix switch 306 no longer controls the call as was the case with matrix switch 102 in the conventional system. Matrix switch 306 now simply functions as a passive
switch that is reconfigured based on switch control information 322 sent by network control processor 304.
Network control processor 304 receives all the call data 144 associated with the telephone call. There is no filtering or screening performed before data 144 is received by network control processor 304. Call data 144 can include, among other
call attributes, the originating number, the called number, and the route or circuits activated in customer switch 104. Thus, full control of the call and all its call audio 142 and call data 144 can be provided by call processing system 302.
A further high-level illustration of the functionality of call processing system 302 is now described with reference to the following example. In this example, an originating user 106A (FIG. 4) initiates a call requiring operator assistance.
FIG. 6, which comprises FIGS. 7 and 8, is a high-level operational flow diagram illustrating the process that call processing system 302 uses to process operator-assisted calls. Referring now to FIGS. 3, 4, 7, and 8, originating user 106A initiates an
operator assisted call as shown in a step 702.
In a step 704, call processing system 302 receives call audio 142 and call data 144. More specifically, matrix switch 306 receives call audio 142 and network control processor 304 receives call data 144.
In a step 706, network control processor 304 interprets call dam 144 and determines that originating user 106 originated a call requiring operator assistance. For example, in one embodiment, network control processor 304 could examine the called
number and determine that because the first number dialed is zero, the caller is requesting operator assistance.
In a step 708, network control processor 304 instructs matrix switch 306 to route call audio 142 to an operator console 308. If a human operator is not required, call audio 142 can be routed to an automated operator console (for example, an
automated voice response unit 334). In this case, the voice response unit 334 instructs the caller on how to proceed. These instructions are typically telephone keypad button sequences to be pressed by the caller to complete the call. An example of
this is where voice response unit 334 instructs the caller to enter a calling card number.
If a human operator is required to handle the call, the call audio 142 is routed to a manual operator console 332. In this case, the caller can converse with the operator. An example of this situation is where the caller is placing a collect
call.
Where matrix switch is a DMS 250, network control processor 304 simply instructs the DMS 250 to route the call to the console position assigned to operator console 308. Because operator console 308 only gets call audio 142, operator console 308
is treated as any other destination and can be identified by a terminating number.
In a step 710, network control processor 304 routes operator control data 324 to operator console 308 via a LAN 328. Operator control data 324 instructs operator console 308 regarding the handling of the call. Operator control data 324 is
determined by network control processor 304 when network control processor 304 receives call data 144.
There is a key distinction between call processing system 302 and the conventional system illustrated in FIG. 1. With the conventional system, special operator console ports are required to allow an operator console 108 to interface to matrix
switch 102. This is because control information had to be provided by matrix switch 102 to operator console 108.
However, according to call processing system 302, matrix switch 306 only has to transfer call audio 142 to operator console 308. The control information is provided by network control processor 304 in the form of operator control data 324.
Operator console 308 only gets call audio 142 from matrix switch 306. Therefore, operator console 308 can be treated as if it is any other terminating user 106B or customer switch 104. Thus, operator console 308 does not have to interface to matrix
switch 306 via a special operator console port. Therefore, the number of operator consoles 308 that can interface to matrix switch 306 is not limited to the number of operator console ports available on matrix switch 306.
Operator console 308 now has a connection with audio channel 122. As noted above, operator console 308 can be either a manual operator console 332 for a human operator, or an automated voice response unit 334.
If originating user 106A is placing a calling card call, originating user 106A is prompted by operator console 308 to enter the calling card number. The number is received and verified to ensure that it is a valid number. If the number is
invalid, the user is informed that the call cannot be completed. This occurs in a step 802 (illustrated in FIG. 8).
For valid calling card numbers and for collect calls, operator console 308 initiates the connection to the terminating user 106. This occurs as described in steps 804-808 as follows.
In a step 804, operator console 308 sends operator response data 326 to network control processor 304 via LAN 328 indicating that the call can be placed as requested. In response, network control processor 304 sends switch control data 322 to
configure matrix switch 306. This tells matrix switch 306 how to route the call. This occurs in a step 806.
In a step 808, matrix switch 306 is reconfigured to direct the call to the destination as instructed by network control processor 304.
For a collect call, the operator asks the called party whether they are willing to accept the charges. This occurs in a step 808.
If the called party is not willing to accept the charges, operator console 308 sends operator response data 326 to network control processor 304 indicating that the call should be terminated. This occurs in a step 810.
It should be understood that the two examples of placing a collect call and a calling card call are offered as examples only. These examples should not be interpreted to imply that the call processing system 302 is limited to only these types of
capabilities.
2.0 Conference Call Controller
In a preferred embodiment, the conference call controller is implemented in the environment of the enhanced call processing system described in Section 1.2 above.
The system and met | | |