Communication system enabling external control of system terminals

Abstract: A communication system enables a system controller (100) to allocate to a first system endpoint (e.g., application processor 133 or 138) control over one or more components of a second system endpoint (e.g., terminal 111-114). In response to a valid control request signal received from the first endpoint identifying one or more components at the second endpoint over which control is requested, the controller sends an acknowledgment signal to the first endpoint indicating that control over the identified component(s) has been allocated to the first endpoint. In response to the acknowledgment signal, an endpoint interface enables the first endpoint to directly communicate with the second endpoint using a first endpoint originated control signal which simulates a controller originated control signal for controlling the identified components at the second endpoint. The controller then inhibits itself from controlling the identified component(s) at the second endpoint during the time when the first endpoint has been allocated to control over the identified component(s).

Description: Technical Field This invention relates to communication systems and, more particularly, to a communication system which enables intelligent adjunct processors to directly control system terminals. Background of the Invention In well-known communication systems, system controllers control both internal communications and external communications to system terminals. In certain systems, the system controller may also control adjunct apparatuses (voice mail systems, automatic call distributors, etc.) which provide new features and which may often require substantial communication interactions with the system controllers and terminals. Undesirably, providing these additional adjunct features may add significantly to the processing load which must be handled by the system controller. In some circumstances, this additional processing load may adversely affect the normal communication services provided by the system. What is desired is a communication system arrangement in which adjunct features may be provided without substantially adding to the processing load of the system controller. US-A-4 919 545 describes a system with plural nodes wherein an invocation node may get control over an object running on an execution code. The request for control is encrypted and sent from the invocation node to the execution node. If the request is accepted an encrypted reply is sent back to the invocation node. Summary of the Invention In accordance with the present invention, a controller of a communication system enables a first system endpoint (e.g., application processor) connected via an interface thereto to assume direct control over one or more components at a second system endpoint (e.g., terminal 114). In response to a valid control request signal received from the first endpoint identifying one or more components at the second endpoint over which control is requested, the controller sends an acknowledgment signal to the first endpoint indicating that control over the identified component(s) has been allocated to the first endpoint. In response to the acknowledgment signal, the endpoint (or terminal) interface enables the first endpoint to directly communicate with the second endpoint using an endpoint-originated control signal which simulates a corresponding controller-originated control signal for controlling the identified components at the second terminal. The controller then inhibits itself from controlling the identified component(s) at the second endpoint during the time when the first endpoint has been allocated to control over the identified component(s). Brief Description of the Drawing In the drawing, FIG. 1 is a block diagram of a communication system embodying the present invention; FIG. 2 is a table depicting the various phases of operation of the system shown in FIG. 1; FIG. 3 illustrates the message flow associated with the control negotiation in the system of FIG. 1; FIG. 4 shows the data transfer message flow between an application processor and a terminal; FIG. 5 illustrates a component control table and an uplink routing control table; FIG. 6 shows a flow chart describing the operation of the call and user interface Control Complex; and FIG. 7 shows a flow chart describing the operation of a terminal interface. General Description In the following description, elements of each figure have reference designations associated therewith, the most significant digit of which refers to the figure in which that element is located (e.g. 100 is located in FIG. 1). Shown in FIG. 1 is an illustrative block diagram of a communication system useful in describing the operation of the present invention. The system might, for example, be installed on the premises of a small business. The system includes a Control Unit (CU) 100 which connects to one or more Switching Network (e.g., Central Office (CO)) lines 134 via Interface 102, and which connects via Interface 104 to one or more facilities 131 to, illustratively, one or more NT2 compatible terminals such as 113 and 114, a Group 4 (G4) FAX Machine 111 and a Q.931-compatible terminal 112. Facility 131 may be, for example, a point-to-point facility (not shown) or a multipoint passive bus, as shown in FIG. 1. In addition, an Application Processor (AP) 133 is attached to CU 100 via facility 132 and Terminal Interface 105. The terminals 111-114, application processor 133 and remote application processor 138 may also, more generally, be referred to herein as endpoints. And terminal interfaces 104 and 105 may also, more generally, be referred to as endpoint interfaces. A remote Application Processor 138 may connect via a remote control unit 137, Switching Networks 136 and 135 and line 134 to Control Unit 100. Interface 102 operates in the same manner as Interface 105. Remote Control Unit 137, illustratively, may be implemented in the same way as Control Unit 100. Either local Application Processor 133 or Remote Application Processor 138 may each have one or more application programs which may request to directly control the terminals 111-114 in the manner described in subsequent paragraphs. For the purpose of the present description, Application Processors 133 and 138 may be viewed as control apparatuses or control terminals which may be allocated control over system terminals 111-114. In one embodiment AP 133 and AP 138 utilize a novel local protocol (NT2) and are identified to CU 100 either through administration of CU database 106 or via an NT2 identification procedure or both, as an NT2 compatible Application Processor. The NT2 is a local protocol which is a modified Q.931 protocol used for basic rate ISDN communications with a public or a private switching network. The NT2 protocol is used for controlling communications between NT2 or Q.931 compatible station terminals (e.g. 114) and the Control Unit 100 of the system. The NT2 local protocol is described in EP-A-0487234. The Q.931 protocol is defined by "The International Telegraph and Telephone Consultative Committee, Digital Subscriber Signalling System Number 1, Network Layer, Recommendation Q.931, Geneva, 1989." Briefly, the Q.931 protocol defines eight logical sets of codes, some of which are reserved, that are usable in different contexts. For example, Codeset Zero is defined by CCITT, and is the default codeset assumed at the beginning of each Q.931 message. The alternate Codesets of interest are Codeset 6, used by the local network to support additional functions beyond those available in Codeset 0, and Codeset 7 which carries information that is originated at one endpoint or terminal and is to be passed to the remote endpoint or terminal. Note, an end-point may include a voice terminal, a data terminal, an application processor, etc. The Q.931 protocol also defines standard mechanisms for switching between the various Codesets. These mechanisms are known as "shifts", and two varieties are defined: the locking shift and the non-locking shift. According to the procedures of Q.931, all messages are assumed to be coded in Codeset 0 until indicated otherwise by the presence of a shift element. This structure allows implementations to only apply treatment to codesets of interest, and pass other codesets to endpoints for further operations. The Codeset 7 shift is used to indicate that subsequent information in the message has end-to-end significance and is from one endpoint to another endpoint. The Codeset 6 information that follows the Codeset 7 shift indicator is the payload or data trailer that is to be delivered to the remote endpoint. Thus, every message originating from an application processor (e.g., AP 133) and destined for another terminal (e.g., 114) originates as a message containing Codeset 7 message (including embedded Codeset 6 elements, see 411 of FIG. 4), which is converted by an interface (i.e., 105) to a Codeset 6 message (see 413 of FIG. 4) for delivery to the other terminal (i.e., 114). Similarly, a response from terminal 114 would originate as a Codeset 6 message (see 414 of FIG. 4) and would be converted (reformatted) by Interface 104 into a Codeset 7 message (see 415 of FIG. 4) for delivery to receiving terminal (i.e., AP 133). For the purposes of describing the present invention it will be assumed that all facilities and terminals are NT2 compatible. Control Unit 100 is shown to include Call and User Interface Control Complex 103, CO Interface 102 and Terminal Interfaces 104 and 105 which intercommunicate over bus 117. Control unit 102 also includes well-known, but not illustrated, components such as a call control switch, program memory and data memory. The program memory provides instructions to CU 100 for controlling the switch to provide the standard communications functions of the system as well as the various operating features and functions of the system embodying the present invention. We describe a control negotiation and control allocation procedure which enables Call and User Interface Control Complex 103, to allocate control of one or more components at a system terminal to Application Processor 133 via Interface 105. The general operation may, illustratively, be described as follows. In a first operating mode, we assume that a service request message 121 is received from Terminal 114 via Facility 131. This service request message is received by Terminal Interface 104 and relayed, 116, to Control Complex 103. The Control Complex 103 accesses the administrative data base 106 and determines that the service request is for an Application Processor 133 provided service. The Control Complex 103 then transfers a message, 115, to Terminal Interface 105, which then transmits the message to Application Processor 133 via Facility 132. (Note, if the service request was for Application Processor 138 then the message path would be 111 and 139). Application Processor 133 recognizes the service request message and issues a response. In Case 1, the Application Processor 133 response is to honor the service request, and send a query message 122 via Facility 132 and Terminal Interface 105 to Control Complex 103 requesting terminal data (such as terminal ID, type, etc.) regarding originating Terminal 114. The control complex 103 responds with query response 123, containing the terminal data. The AP 133 then sends control request 140 requesting control of some or all of the components of terminal 114. Control ACK 125 is issued by control complex 103 allocating control of the requested terminal to the AP 133, thereby entering the data transfer phase of the operation. In Case 2, the response is to deny the control request 140, (after responding to query 123 with a control request 140) perhaps due to full utilization of the Application Processor 133 capacity, and to issue a "denial of service" message, 115, via Facility 132 and Terminal Interface 105 to Control Complex 103. Control Complex 103 then formats a message, 116, indicating denial of service to the originating Terminal 114, via Terminal Interface 104 and Facility 131. In a second operating mode the process may be originated by Application Processor 133. In Case 1, Application Processor 133 sends a Query, 122, to Control Complex 103 requesting terminal type and identification information. If the request is valid, Control Complex 103 sends a query response, 123, to Application Processor 133 providing dial plan, terminal type and identification information. In Case 2, in the second operating mode, we assume that Application Processor 133 has been preprogrammed with all the dial plan, terminal type, and identification information for all terminals 111-114 which connect to control unit 100. Following either the first or second operating mode, Application Processor 133 can request control over one or more components by transmitting control request 140 to a particular terminal. If Control Complex 103 determines that the control request is valid it sends a control Acknowledgment signal, 125, to Application Processor 133 allocating it control over the identified components of the terminal. Thereafter, Application Processor 133 acts like the Control Complex 103 with regard to control over those identified components at the terminal. All other components at that terminal remain under control of Control Complex 103. Under certain predefined conditions, Control Complex 103 can regain control from Application Processor 133 over components previously allocated thereto. Application Processor 133 can voluntarily relinquish control over the components of the terminal allocated to it by sending a control release signal to Control Complex 103. If the control release is valid, Control Complex 103 relinquishes Application Processor 133 from control of the allocated components of the terminal. Detailed Description With joint reference to FIGs. 1, 2 and 5 we describe the system messaging phases that are useful in understanding the operation of the invention. During Phase 1, all system components and subsystems are in the Initial state (206, 211, 216 and 221); that is, all system communication paths are set to the default condition and operate under control of Control Complex 103. During Phase 1 the Component Control Table 500 and Uplink Routing Control Table 520 indicate that all components of all terminals are under control of Control Complex 103. Phase 2 is entered at the request of the Application Processor 133, which, in our example, queries (207) Control Complex 103 for information about the components of terminal 114 which Application Processor 133 wishes to control for a particular application service. The Control Complex 103 responds (212) to queries from Application Processor 133. All routing information in each Routing Table 520 located at each terminal interface, remains set to the initial or default condition (217) and the terminals remain set to their initial condition (222). Phase 3 is entered when the Application Processor 133 requests control of specific endpoint components 208, of a particular terminal e.g., 114, from the Control Complex 103, and is granted that control 213. Again, the terminal interfaces and terminals remain at their initial conditions, 218 and 223, respectively. The final action of Phase 3 is for the Control Complex 103 to update the terminal routing tables 213, causing transition to Phase 4. Thus, both Component Control Table 500 and Routing Table 520 are updated to indicate which components at which terminals are controlled by the Control Complex 103 or an Application Processor. During Phase 4, communications between the Application Processor 133 and the terminal 114 operate in a direct transfer mode 209; that is, messages are directly sent to, and directly received from, the terminal interfaces 104 and 105 (via path 119) bypassing the Control Complex 103 for the duration of the transaction 219. Phase 4 is exited when the Application Processor 133 determines that the application service is complete, and advises the Control Complex 103. This takes the form of a control release request, a Phase 3 type request. At that time, the routing tables (500 and 520) and terminal allocations are returned to the initial state. This returns the system to Phase 1. With joint reference to FIGs. 1, 3 and 5, we describe the operations in more detail. Application Processor 133, in response to a terminal-originated service request or a self-initiated request, queries, in step 301, the Control Complex 103 for administrative information on the endpoint from Database 106 and negotiates for control of Terminal 114. The Query message 301, includes information identifying the terminal and its type. The Application Processor 133 accesses Database 106 to retrieve the specific terminal information that it needs to decide what type of control requests to issue. (For example, if a terminal has only a 24 line display, it does not make sense for Application Processor 133 to request control for line 50). Depending on the complexity of the control request, Application Processor 133 may send one or more Query messages 301 via Terminal Interface 124 to Control Complex 103. For example, Application Processor 133 may request control of one component (such as display lines 1 and 2) or a more complex request which includes display lines 1 and 2 along with soft-key buttons and specific error tones in an alerter. Note, that FIG. 3 assumes a simple control request, and, as such only one Query message 301 is sent from the Application Processor 133. Application Processor 133 may be preprogrammed with the terminal identity and type for all terminals 111-114 of the system. The Control Complex 103 retrieves the requested terminal information from its internal database 106 and responds to the Application Processor 133 by sending a Query Response message 303 to Terminal Interface 105 for each received Query message 301. The Query Response message 303 includes the terminal dial plan, type and identification which is passed from Terminal Interface 105 to the Application Processor 133. In our NT2 Protocol example, the Response message 303 is an NT2 Protocol message containing one or more Codeset 6 information elements including a query response and a data element containing the requested information about Terminal 114, including the Terminal 114 address and information defining the various components contained in Terminal 114. The Application Processor 133 evaluates the received terminal 114 component list, selects those components appropriate for execution by an application program of Application Processor 133. Application Processor 133 then sends one or more Control Request messages, in step 305, to Control Complex 103 via Terminal interface 105 to identify the terminal components and attributes of the component that the Application Processor 133 desires to control. In our NT2 protocol example, this Control Request message contains one or more Codeset 6 information elements defining the request list of Terminal 114 components to be directly controlled by the Application Processor 133 for the duration of the control span. These Control Request messages, 305, contain the component to be controlled (e.g. display, audibles) as well as control attributes (e.g. particular lines, all lines). The communication path between the Terminal 114 and the Application Processor 133 up to this point has been via internal communication paths 116 and 115, with Control Complex 103 providing the message processing services. After the Control Complex 103 receives and approves the component and control request list, it issues a Control Acknowledgment message, in step 307, to Application Processor 133 via Terminal Interface 105. The Control Complex 103 sends a Control Acknowledgement message in step 307 to Terminal Interface 124, for each Control Request message 305. These Control Acknowledgement messages 307 contain information as to whether or not the requested control was granted and reasons for failure if control is not granted. Control can not be granted, for example, if another Application Processor, such as 138, has control over the requested component. Assuming that control was granted, the Control Complex 103 sends an "Update Uplink Routing Control Table" message, in steps 309 and 310, to both Terminal Interfaces 104 and 105. In response, Terminal Interfaces 104 and 105 update their uplink routing control tables accordingly (shown by 520 in FIG. 5). Additionally, Control Complex 103 updates its own control table (shown by 500 in FIG. 5) to indicate the control allocation to Application Processor 133. For each Control Request message 305 that was acknowledged positively, a data transfer phase (Phase 4 of FIG. 2) is established and, in step 311, a data transfer is established directly between the Terminal Interface 105 and the Terminal Interface 104. This is shown by the Data Transfer Path 119. In our example, the Data Transfer messages 311 include NT2 protocol information elements (component, attributes) which are predicated by a Codeset 7 indicator, issued by Application Processor 133 via Interface 105. Such elements will not be processed by Control Complex 103, because its control table (500 of FIG. 5) indicates that those components have been allocated to AP 133. Interface 105 removes the message header and the resulting NT2 standard protocol messages are directly communicated to Terminal 114 via data transfer path 119 for the duration of the control span. Thus, for the duration of the application transaction the Application Processor 133 controls the allocated components of Terminal 114 in a manner equivalent to that normally exercised by the Control Complex 103. That is, the Application Processor 133 formats messages (signals) using the same NT2 protocol elements normally issued to the Terminal 114 by Control Complex 103 for those terminal components (or attributes) allocated to the Application Processor 133 for the execution of its application function. These standard NT2 protocol elements are predicated by a Codeset 7 indicator to Terminal Interface 105 which indicates that the following message elements are part of an authorized direct data transfer, and are eligible for direct transport via communication path 119 to interface 104. The benefit of this architecture is that the Application Processor 133 can execute its application transaction without involving the Control Complex 103 in either the details of the transaction, or in receiving, analyzing, reformatting, and retransmitting messages from Application Processor 133 to NT2 Terminal 114 and vice versa. This allows support of general purpose Application Transactions, provided by Application Processor 133, without updating the Control Complex 103. This is because Control Complex 103 need not know information about the application transaction itself, except that control of certain Terminal 114 components has been allocated to the Application Processor. Note that during the allocated control interval, Control Complex 103 may continue to provide normal communication services to Terminal 114 via all terminal components not previously allocated to Application Processor 133. As previously noted, there may be more than one Application Processor (e.g., 138) attached to the system, and that the Control Complex 103 may allocate Terminal components to it or others simultaneously so that several application transactions may be actively controlling different portions of Terminal 114 concurrently. Additionally, one Application Processor 133 may operate several different application transactions concurrently and would keep track of the components allocated to each application transaction. The control interval, i.e., the period of time during which Application Processor 133 can directly control selected Terminal 114 components via communication path 119, may be terminated in three ways. First, Application Processor 133 may signal completion of its functions using a Control Release message as shown in step 313. Control Complex 103 would then send the Update Routing Messages 314 and 315 to deallocate control over Terminal 114 components. (Note, message 314 may be part of an Acknowledgment message similar to 307). Second, Terminal 107 may signal a request for termination of the Application Transaction (see 604 of FIG. 6). Third, the Control Complex 103 may detect an event or condition of higher priority, or other unspecified means which cause it to override the allocated control (see 650 of FIG. 6) and to terminate the control interval. When the control interval is terminated, the Control Complex 103 issues an Update Uplink Routing Control Table 520 message, in Codeset 6 of the NT2 ISDN protocol which deallocates Application Processor 133 control of Terminal 114 components, (in table 520 of FIG. 5) and terminates its access to communication path 119 for communication with Terminal 114. Note that if Control Complex 103 decides to release control, it also does so by sending a Control Release message to Terminal Interface 105. This could happen, for example, if a process or application processor (e.g., 138) with higher priority requests control of a component which is currently allocated to by Application Processor 133. The Control Complex 103 may then decide to send a Control Release message to the Application Processor 133 identifying the terminal components whose control is to be returned to Control Complex 103. With joint reference to FIGs. 1, 3, and 6 we describe the data transfer message flow operation. FIG. 4 illustrates the details of the data transfer phase, step 311, as it pertains to the Application Processor 133, Terminal Interface 105, Control Complex 103, Terminal Interface 104 and Terminal 114. Data transfer phase is where Terminal Interface 105 directly communicates with Terminal Interface 104, via path 119, thereby bypassing Control Complex 103. At Terminal Interface 105, the decision as to where to route messages is made on the basis of the information in Routing Table 520 and the Codeset (described in detail in FIG. 7). Assuming that the data transfer phase has been established, Application Processor 133 may control the allocated components at Terminal Endpoint 114 component by sending a Codeset 7 Terminal Endpoint Message step 401 having Codeset 6 (NT2) Information Elements, step 403, embedded therein. At step 402, Terminal Interface 105 converts the Codeset 7 Terminal Endpoint Message, step 401, into NT2 Information Elements, step 403, and passes the NT2 Information Elements onto Terminal Interface 104. At step 404, Terminal Interface 104 passes the NT2 Information Elements, step 403, to Terminal 114. Similarly, at Terminal Interface 104, the decision where to route messages received from Terminal 114, is made on the basis of entries in Routing Table 520 and the Codeset described in FIG. 7). Assuming that data transfer phase has been established, Terminal Interface 104 may communicate directly with Terminal Interface 105. Terminal 114 sends NT2 Information Elements, step 405, to Terminal Interface 104. At step 406, after checking its Routing Table 520, Terminal Interface 104 converts the Codeset 6 (NT2) Information Elements into a Codeset 7 Application Message, and in step 407, passes the Codeset 7 message onto Terminal Interface 105. At step 408, Terminal Interface 105 passes the Codeset 7 Application Message, step 407, onto Application Processor 133. With joint reference to FIGs. 1, 3, 5 and 6 we describe the operation details of Control Complex 103. Control Complex 103 is that part of the Control Unit 100 that is responsible for controlling external devices (such as Terminals 111-114 and Application Processors 133 and 138). Control Complex 103 receives messages from: Terminal e.g., 114, via interface 104; Application Processor 133 via interface 105; and Remote Application Processor 138 via interface 102. After system initialization, Control Complex 103 waits in idle state 601 for external messages received in step 602 which are then processed according to the source of the message. Terminal requests for application services, steps 603 and 604, are passed to the selected application processor (i.e., either 133 or 138). In step 605, if an application request is received from an application processor, then in step 606 it is determined if it is a valid request. This is determined by comparing the request against entries in the Component Control table 500. If an invalid message is received then error condition handling is invoked (e.g., terminate the process), otherwise the type of application message is determined. Various types of application messages can be received including: query for system or terminal endpoint information, step 630, request for terminal control, step 640, and release of terminal control, step 620. Query Request (301) processing, steps 630-633, allow Application Processor 133 or 138 to obtain information about the system or a specific terminal (e.g., 114). Control Complex 103 validates the request in step 631. If invalid parameters are received error condition handling is invoked. Valid requests result in the Control Complex 103 accessing Database 106, in step 632, and formulating a Query response message (303) in step 633. In step 640, a terminal Control Request message (305) is received. This procedure allows the requesting Application Processor (e.g., 133) to obtain control of various terminal components and attributes (503 and 504 of Component Control Table 500). The Control Complex 103 validates the receive Control Request in step 641 and rejects invalid messages. A valid control request, step 642, contains the identity of the required terminal and various components (e.g., display, button) with their desired attributes (e.g., all buttons, 3 lines of display). In step 643, Control Complex 103 verifies that the specified components are available by checking the Component Control Table 500 in Database 106. A valid control request from an Application Processor is determined by comparing the terminal, component and attribute data in the message against the Routing Table 520. A control request is invalid if the Application Processor already has control over the requested item. If an invalid request is made, a reject response is given and the process is terminated. For a valid request, Control Complex 103, in step 645, notifies Terminal Interface 104 of the change in message routing (for the specified Terminal Endpoint and components). The Terminal Interface 104 then updates entries in its Routing Table 520. Thus, future messages received from the Terminal Endpoint 114 are filtered, using Routing Table 520, and passed via interface 119 directly to the desired Application Processor 133 via interface 105. In step 646 Control Complex 103 then sends a Control Acknowledgement message (307) to the requesting Application Processor 133. In an alternate embodiment, the Control Acknowledgment message or signal 103 may include the message 310 which updates Routing Table 520. Control release (313) processing enables an Application Processor 133 to release control of allocated components at one or more terminals. In step 620, a control release message signifies that the Application Processor 133 no longer requires access to the Terminal Interface 114. The Control Complex 103 determines the validity of the request by checking it against allocation made to Application Processor 133 in Component Control Table 500. If the request is invalid, a reject response is sent in step 626 and the process is terminated. If the request is valid, then in step 622, Control Complex 103 identifies the associated Terminal Interface 105 in the Database 106. In step 624 the Terminal Interface 105 is notified to restore the routing for the specified terminal, components (or attributes) in its Routing Table 520. Hence, future uplink messages from Terminal 114, associated with the specified terminal and components, are routed to the Control Complex 103 rather than to Terminal Interface 105, as previously. The Control Complex 103, in step 625, then updates its Component Control Table 520 to indicate the default routing (i.e., to Control Complex 103) and ownership of the specified terminal and components (or attributes). Under predefined conditions, Control Complex 103 may override and release control, for itself or for other control apparatuses, the control previously allocated to Application Processors. As noted, this may occur during a specific time period, error conditions, higher priority event, condition or application, etc. When a control override occurs, step 650, Control Complex 103 sends update routing messages (309 and 310), in step 624, to update Routing Table 520 at the affected Terminal Interfaces 104 and 105. Control Table 500 to reflect the change in control allocation. Thereafter, Control Complex 103 updates its Component Control Table 500 to reflect the change in control allocation. With joint reference to FIGs. 1 and 6 we describe the Component Control Table 500 and the Uplink Routing control Table 520 (also referred to as Routing Table 520). The Component Control Table 500 is stored in the Database 106 by the Control Complex 103 and provides centralized information indicating what (i.e., Control Complex 103, Application Processors 133 or 138), controls Terminals 111-114 of the system. This table 500 contains several fields for storing information associated with various terminals. The Terminal field 502 identifies the various terminals (e.g., 114) connected to Control Unit 100. The Component field, 503, identifies various components, at that terminal, that may be utilized by various applications (i.e. application processors). Typically, these components are dependent on the type of terminal and may include, for example, display, buttons, audibles, LEDs, etc. Associated with each component is a set of attributes, field 504, which detail the functions of the selected component. For example, the "display" component may have the following attributes: select all lines on the display, select line X, select lines X through Y, etc. The Routing field 501 specifies for each terminal 502, the combination of components 503 and attributes 504 which are assigned/associated with the control apparatuses (either Application Processor 133, Remote Application Processor 138 or Control Complex 103). Note, different attributes of the same component may be assigned to different control apparatuses. After system initialization, the default routing of all components is to the Control Complex 103. The Routing field 501 is updated as Application Processor requests are received and acknowledged. Thus, a Terminal 114 may have the "audible" component with the "all" attribute assigned to an external Application Processor 133, while the "LED" component (with "all" attribute) could be assigned to the Remote Application Processor 138. The Routing Table 520 is stored in each Terminal Interface 104 and 105. Each Routing Table 520, as previously described, specifies the routing of terminal messages. The received messages are filtered by the Terminal Interface, using the routing table 520, and identified "components" are passed to the appropriate control apparatus. The Routing Table 520 includes several fields. The Terminal field 526 is the same as that described with respect to field 502 of the Component Control Table 500. The Component field 527 is the same as that described with respect to field 503 of the Component Control Table 500. The Attribute field 528 is the same as field 504 of the Component Control Table 500. The Codeset 6/7 field 530 specifies where Codeset 6/7 received messages should be routed. For example, messages from the Application Processor 133 to the Terminal 114 would have Codeset 7 and be received by the Terminal Interface 105. The Routing Table 520 would indicate that the Codeset 7 message should be routed directly via path 119 to the destination Terminal Interface 104. With joint reference to FIGs. 1, 3, 4, 5 and 7 we describe the operation of typical Terminal Interfaces 104 and 105. As previously noted, CO Interface 102 operates in a similar manner to Interfaces 104 and 105 to interface CO line 134 to Control Unit 100. A terminal interface is used to process both messages to/from an application processor, e.g., 133, as well as messages to/from a terminal, e.g. 114. An application processor in fact may be considered to be a type of terminal. When the system is powered up, all of the terminal interfaces are in an idle state 701. In step 702, as part of the system initialization, each terminal interface is loaded with Terminal 114 information. The Routing Table 520 is initialized to default routing, i.e., all messages are routed to the Control Complex 103. Upon completion of initialization step 702, the terminal interface, in step 703, is put into a "Wait For Message" state i.e., the terminal interface does nothing but wait for messages to arrive. In step 704, once a message arrives, the terminal interface determines whether the message was sent from the Control Complex 103. If the message was sent from Control Complex 103, then in step 705 it is determined if the Routing Control table 520 should be updated. If the message is of type "Update Uplink Control Table" (309 or 310), the Terminal Interface, in step 707, updates its Routing Table 520 accordingly. In step 705, if the message is not of type "Update Uplink Control Table", the message is outputted by the interface, in step 706, to the Terminal for further processing. Such a message, for example, could have been a Control Complex 103 message to update an LED at Terminal 114. Following steps 706 and 707, the terminal interface returns to the "Wait For Message" state in step 703. In step 704, if the message was not received from Control Complex 103, the message must have been sent from a Terminal. The step 704 message, for example, could have resulted from a "Control Request" or a "Control Release" request as illustrated by 305 and 313, respectively, in FIG. 3 then control transfers to step 709. At step 709, the terminal interface first identifies the source of the terminal message. Next, in step 710, the terminal interface checks its Routing Table 520 to determine if the identified terminal has been allocated control over the component or attribute. If not, the message is sent in step 716 to Control Complex 103. In step 716, the message is sent to Control Complex 103 for further processing of the message. Such a message, for example, could have been a message reporting a button depression at a Terminal 114 which should be acted upon by Control Complex 103. The terminal interface then returns to the "Wait For Message" state, step 703. In step 710, if the terminal message is one over which the terminal has been allocated control over, then in step 711, the terminal interface checks for the Codeset this message belongs to. If the received message is Codeset 7 (i.e. NT2/ISDN user Terminal to user terminal message), processing continues at step 712, otherwise, processing continues at step 714. In step 712, the message needs to be passed directly to the routing destination (i.e. data transfer, for details see FIG. 4). In step 712, the Terminal Interface converts the Codeset 7 message header into a Codeset 6 message header and sends the resulting Codeset 6 message to the routing destination, in step 713. This results if the data transfer phase has been established and Application Processor 133, for example, sends a message via Interface 105, path 119 and Interface 104 to Terminal 114 to update a controlled component directly. Next, the Terminal Interface returns to the "Wait For Message" state, step 703. In step 714, the Terminal Interface received a Codeset 6 message from a Terminal. The message components and attributes are checked in Routing Table 520 to determine which control apparatus controls them (see 529 of FIG. 5). The routing destination could be the Control Complex 103, in step 716, if, for example, the message was a button message as shown in 529 of FIG. 5. Another routing destination, step 715, is selected if a data transfer phase has been established and Terminal 114 sends a button/keypad message to its controlling Remote Application Processor 138. In either case, the Terminal Interface will return to the "Wait For Message" state, step 703. While the disclosed embodiment describes using a particular protocol for signaling and data messages (i.e., Codesets 6 and 7), it should be understood that the present invention can be utilized with other types of signaling or messaging formats. Moreover, the Application Processor 133 could, in fact, be an intelligent system terminal which can be allocated control over components or attributes of other terminals of the system. Additionally, the operating characteristics of the application processor are deemed to apply, equivalently, to some or all of the application programs which may be resident in the application processor.

Claims: A communication system including a controller (100) for controlling communications between a plurality of system endpoints (111-114, 133) each connected through an interface (104, 105) and a communication path (131, 132) to said controller, said system comprising at said controller means (132) for receiving a control request signal (140) from a first endpoint (133) requesting allocation of control over one or more identified components at a second endpoint (114), means (103) responsive to a valid control request signal for transmitting a control acknowledgment signal (125) to said first endpoint indicating that control over said one or more components at said second endpoint has been allocated to said first endpoint, and at the interface (105) connected to said first endpoint, means responsive to the sending of said acknowledgment signal for enabling (309, 310) said first endpoint to communicate (311) via the communication path with said second endpoint using a first endpoint-originated signal which simulates a corresponding controller-originated signal used to control said one or more components at said second endpoint. The system of claim 1 wherein said controller includes means (103, 500) responsive to said valid control request signal for inhibiting said controller from controlling said one or more allocated components at said second endpoint except under predefined conditions. The system of claim 1 wherein said controller includes means (132) for receiving a query signal (122) from said first endpoint requesting information associated with said second endpoint and means (103) responsive to said query signal for accessing a database (106) and providing a query response (123) including said requested information to said first endpoint. The system of claim 1 wherein said system includes a second interface (104) connected to said second endpoint, means (103) responsive to said valid control request signal for sending an update routing control message (309) to said second interface to enable said second endpoint to communicate with said first endpoint using a second endpoint-originated signal which simulates a corresponding controller-originated signal. The system of claim 1 wherein said acknowledgment signal specifies a subset of a plurality of components at said second endpoint which are allocated for control by said first endpoint. The system of claim 5 wherein said first interface includes means (520) for storing said specified components and wherein said enabling means accesses said storing means to determine if a message received from said first endpoint should be sent to said controller or to said second endpoint. The system of claim 1 wherein said controller includes means (103) responsive to a control release signal (124) from said first endpoint for sending a signal to said first interface indicating one or more components at said second endpoint have been deallocated from control of said first endpoint and wherein said first interface means includes means for inhibiting said first endpoint from controlling said deallocated components at said second endpoint. The system of claim 1 wherein said first interface includes means for converting signals received from said first endpoint in a Codeset 7 format to a Codeset 6 format for transmission to said second endpoint to control said one or more components at said second endpoint. The system of claim 1 wherein said controller includes means responsive to a second endpoint request (121) for sending a service request signal to said first endpoint and wherein said first interface is responsive to said received service request message for sending said control request signal to said controller. An interface for use in a communication system for controlling communications between a controller (100) and a system endpoint (114) thereof and an apparatus (133) connected to said system, said interface comprising first means for transferring to said controller a control request signal (140) received from said apparatus requesting allocation of control over one or more identified components at said endpoint, second means for transferring to said apparatus a control acknowledgment signal (125) received from said controller endpoint indicating that control over said one or more components at said endpoint has been allocated to said apparatus, and means responsive to said acknowledgment signal for converting a format of an apparatus signal (311) used for controlling said one or more components at said endpoint to a format of a controller-originated signal and transferring said converted apparatus signal to said endpoint. The interface of claim 10 including means (520) for storing information identifying said allocated components and means for accessing said storing means and for determining if a message received from said apparatus should be sent to said controller or to said endpoint. The interface of claim 10 wherein said means for converting converts signals received from said apparatus in a Codeset 7 format to a Codeset 6 format for transmission to said endpoint to control said one or more components at said second endpoint. The interface of claim 10 wherein said second transferring means is responsive to a control release signal (124) received from said controller for sending a signal to said apparatus indicating one or more components at said endpoint have been deallocated from control by said apparatus and wherein said interface further includes means for inhibiting said first apparatus from subsequently controlling said deallocated components at said endpoint. A control unit for use in a communication system, said control unit including a controller (103) for controlling communications between a plurality of system endpoints each connected to an interface of said control unit, said control unit comprising at said controller means for receiving a control request signal (124) from a first endpoint (133) requesting allocation of control over one or more identified components at a second endpoint (114), means responsive to a valid control request signal for transmitting a control acknowledgment signal (125) to said first endpoint indicating that control over said one or more components at said second endpoint has been allocated to said first endpoint, and at the interface (105) connected to said first endpoint, means responsive to said acknowledgment signal for enabling said first endpoint to communicate with said second endpoint using a first endpoint-originated signal which simulates a corresponding controller-originated signal used to control said one or more components at said second endpoint.

Inventors: BAKER ALBERT D, BLACH HERIBERT JOSEPH, CABERWAL RAMESH, BAKER, ALBERT D., BLACH, HERIBERT JOSEPH, CABERWAL, RAMESH
Applicants: AT & T CORP, AT&T CORP.
Application year: 1993
Main classification: H04Q11
IPC codes: H04Q3, H04M11, H04L29, H04Q11