|
|
|
Particular communication feature |
Communication system control arrangement4720850
Abstract
In a switched integrated wideband and narrowband multiservices digital network (FIG. 1), the network control complex (612) includes a program-controlled call processing arrangement (800) that comprises a point-to-point call processing portion (8001) for handling point-to-point calls and a proxy vendor call processing portion (8002) for handling calls to broadcast program service vendors. For quick response to "channel change" requests from subscribers, the proxy vendor portion handles all calls within a single process (500). For ease of call control, the point-to-point portion handles each call via two processes (650, 660) one for each of the calling and called portions of each call. A message router (8000) receives messages from subscriber terminal equipment (400) requesting control functions for calls and routes them to the appropriate one of the proxy vendor and point-to-point processes. The message router also creates the point-to-point processes for new calls for which the processes are not yet in existence. Subscriber messages have two portions: a first portion requesting control functions for calls and a second portion identifying calls. Subscriber messages for both point-to-point and proxy vendor calls have identical first portions for requesting identical functions, thereby hiding the difference between the two call processing portions from subscribers. Only the second portions distinguish messages for point-to-point and proxy vendor calls. The called portions of proxy vendor call paths are pre-established. A resource management arrangement (803), which cooperates with call processing to establish call paths, comprises a point-to-point portion (8030) for establishing and controlling call paths for calling and called portions of point-to-point calls, and a proxy vendor portion (8031) for establishing and controlling calling portions of proxy vendor calls.
Claims
What is claimed is:
1. A call processing arrangement for generating requirements signals to establish calls in a communication system in response to receipt of message signals from terminal equipment, the arrangement comprising:
first program controlled call processing means responsive to receipt of first message signals having a first portion requesting establishment of calls and having a second portion identifying certain calls, for generating by a single process requirements signals to establish the certain calls;
second program controlled call processing means responsive to receipt of second message signals having a first portion requesting estabishment of calls and having a second portion identifying calls other than the certain calls, for generating by a plurality of processes requirements signals to establish each of the other calls, each process for generating requirements signals to establish an individual one of a calling and a called portion of a call; and
signal routing means responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first processing means and (b) to activate the processes of the second processing means and send second message signals to the processes of the second processing means;
the first and the second message signals having identical first portions to make requests from subscriber terminal equipment for call establishment independent of differences between the first and the second processing means.
2. The arrangement of claim 1 wherein the second portions of first message signals comprise identifiers of certain destinations of calls; and wherein
the second portions of second message signals comprise identifiers of other destinations of calls.
3. The arrangement of claim 2 wherein identifiers of certain call destinations comprise identifiers of broadcast service sources.
4. The call processing arrangement of claim 1 for generating requirements signals further to control established calls in a communication system in response to receipt of message signals from terminal equipment, wherein
the first means are responsive to receipt of first message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the certain calls, for generating by the single process requirements signals to control the certain calls; wherein
the second means are responsive to receipt of second message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the other calls, for generating by the plurality of processes requirements signals to control the other calls, each process for generating requirements signals to control an individual one of the calling and the called portions of a call; and
wherein the signal routing means are responsive to receipt of the first and second signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first processing means, and (b) to activate unactivated processes of the second processing means and send second message signals to activated processes of the second processing means;
the first and the second message signals having identical first portions for requesting identical subscriber call functions to make requests from subscriber terminal equipment for subscriber call functions independent of differences between the first and the second processing means.
5. The arrangement of claim 4 wherein
the second portions of second message signals comprise call numbers associated by the first call processing means and the subscriber terminal equipment with the certain calls; and wherein
the second portions of the second message signals comprise call numbers associated by the second call processing means and the subscriber terminal equipment with the other calls.
6. A call processing arrangement for a communication switching system having physical resources configurable to provide communications for terminal logical channels of the system and a resource management arrangement responsive to receipt of requirements signals for configuring the physical resources into (a) physical communication channels corresponding to logical communication channels and into (b) physical call paths between the physical channels corresponding to logical call paths, the call processing arrangement comprising:
first program controlled call processing means having a single process responsive to receipt of first message signals having first portions requesting control functions for calls and having second portions identifying calls to broadcast program sources for any one of the logical channels, for processing call information to generate the requirements signals for controlling the logical call paths for the calls between the one logical channel and a logical channel of a broadcast program source, independently of the physical resources;
second program controlled call processing means having a plurality of processes responsive to receipt of second message signals having first portions requesting control functions for calls and having second portions identifying point-to-point calls for any one of the logical channels, each one of the plurality of processes for processing call information to define the requirements signals for establishing and controlling the logical call path for an individual one of a calling and a called portion of one of the point-to-point calls between the one logical channel and another at least one logical channel, independently of the physical resources; and
signal routing means responsive to receipt of the first and second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first call processing means and (b) to establish unestablished processes of the second call processing means and send second message signals to established processes of the second call processing means;
the first and the second signals having identical first portions to make subscriber function requests from subscriber terminal equipment independent of differences between the first and the second call processing means.
7. A control arrangement for establishing calls in a communication system in response to receipt of message signals from terminal equipment, the arrangement comprising:
first program controlled means responsive to receipt of first message signals having a first portion requesting establishment of calls and having a second portion identifying certain calls, for establishing the certain calls by a single process;
second program controlled means responsive to receipt of second message signals having a first portion requesting establishment of calls and having a second portion identifying calls other than the certain calls for establishing each of the other calls by a plurality of processes, each process for establishing an individual one of a calling and a called portion of the call; and
signal routing means responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first means and (b) to activate the processes of the second means and send second message signals to the processes of the second means;
the first and the second signals having identical first portions to make requests from subscriber terminal equipment for call establishment independent of differences between establishment by the first and the second means of the certain and the other calls, respectively.
8. The arrangement of claim 7 wherein
the second portions of first message signals comprise identifiers of certain destinations of calls; and wherein
the second portions of second message signals comprise identifiers of other destinations of calls.
9. The arrangement of claim 8 wherein
identifiers of certain call destinations comprise identifiers of broadcast service sources.
10. The control arrangement of claim 7 further for controlling established calls in a communication system in response to receipt of message signals from terminal equipment; wherein
the first means are responsive to receipt of first message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the certain calls, for controlling the certain calls by the single process; wherein
the second means are responsive to receipt of second message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the other calls, for controlling each of the other calls by the plurality of processes, each process for controlling an individual one of the calling and the called portions of the call; and
wherein the signal routing means are responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send these to the first means and (b) to activate unactivated processes of the second means and send second message signals to activated processes of the second means;
the first and the second message signals having identical first portions for requesting identical subscriber call functions to make requests from subscriber terminal equipment for subscriber call functions independent of differences between control by the first and the second means of the certain and the other calls.
11. The arrangement of claim 10 wherein
the second portions of the first message signals comprise call numbers associated by the first call processing means and the subscriber terminal equipment with the certain calls; and wherein
the second portions of the second message signals comprise call numbers associated by the second call processing means and the subscriber terminal equipment with the other calls.
12. A control arrangement for establishing calls in a communication system having physical resources configurable to establish calls in response to receipt of message signals from subscriber terminal equipment, the arrangement comprising:
first program controlled call processing means responsive to receipt of first message signals having a first portion requesting establishment of calls and having a second portion identifying certain calls, for generating by a single process requirements signals to establish the certain calls;
second program controlled call processing means responsive to receipt of second message signals having a first portion requesting establishment of calls and having a second portion identifying calls other than the certain calls, for generating by a plurality of processes requirements signals to establish each of the other calls, each process for generating requirements signals to establish an individual one of a calling and a called portion of a call;
third means responsive to receipt of the requirements signals for directing configuration of the physical resources to establish the calls; and
signal routing means responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first call processing means and (b) to establish the processes of the second call processing means and send second message signals to the processes of the second call processing means;
the first and the second message signals having identical first potions to make requests from subscriber terminal equipment for call establishment independent of differences between the first and the second call processing means.
13. The control arrangement of claim 12 wherein the third means comprise
fourth means responsive to receipt of the requirements signals from the first call processing means for directing configuration of the resources to establish the certain calls; and
fifth means responsive to receipt of the requirements signals from the second call processing means for directing configuration of the resources to establish the calling and called portions of the other calls.
14. The control arrangement of claim 13 in a system having resources pre-configured to establish called portions of the certain calls, wherein
the fourth means comprise
means for directing configuration of the resources to establish the calling portions of the certain calls.
15. The control arrangement of claim 12 further for controlling established calls in the communication system in response to receipt of message signals from terminal equipment, wherein
the first means are responsive to receipt of first message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the certain calls, for generating by a single process requirements signals to control the certain calls; wherein
the second means are responsive to receipt of second message signals having a first portion requesting subscriber functions for calls and having a second portion identifying the other calls, for generating by a plurality of processes requirements signals to control each of the other calls, each process for generating requirements signals to control an individual one of a calling and a called portion of a call; wherein
the third means are further responsive to receipt of the requirements signals for directing configuration of the physical resources to control the calls; and wherein
the signal routing means are responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify the first message signals and send these to the first means, and (b) to establish unestablished processes of the second means and send other signals to established processes of the second means;
the first and the second message signals having identical first portions for requesting identical subscriber call functions to make requests from subscriber terminal equipment for subscriber call functions independent of differences between control by the first and the second means of the certain and the other calls, respectively.
16. The control arrangement of claim 15 wherein the third means comprise
fourth means responsive to receipt of the requirements signals from the first means for directing configuration of the resources to establish and control the certain calls; and
fifth means responsive to receipt of the requirements signals from the second means for directing configuration of the resources to establish and control the calling and called portions of the other calls.
17. The control arrangement of claim 16 in a system having resources pre-configured to establish called portions of the certain calls, wherein
the fourth means comprise
means for directing configuration of the resources to establish and control the calling portions of the certain calls.
18. A control arrangement for a communication switching system having physical resources configurable to provide communications for terminal logical channels of the system, the control arrangement comprising:
first program controlled call processing means having a single process responsive to receipt of first message signals having first portions requesting control functions for calls and having second portions identifying calls to broadcast program sources for any one of the logical channels, for processing call information to generate requrirements signals for controlling logical call paths for the calls between the one logical channel and a logical channel of a broadcast program source, independently of the physical resources;
second program controlled call processing means having a plurality of processes responsive to receipt of second message signals having first portions requesting control functions for calls and having second portions identifying point-to-point calls for any one of the logical channels, each one of the plurality of processes for processing call information to generate requirements signals for establishing and controlling a logical call path for an individual one of a calling and a called portion of one of the point-to-point calls between the one logical channel and another at least one logical channel, independently of the physical resources;
program controlled resource management means responsive to receipt of the requirements signals for configuring the physical resources into physical communication channels for the logical channels and into physical call paths between the physical channels for logical call paths; and
signal routing means responsive to receipt of the first and the second message signals from subscriber terminal equipment for processing the second portions of the received signals (a) to identify first message signals and send them to the first means and (b) to establish unestablished processes of the second means and send second message signals to established processes of the second means;
the first and the second message signals having identical first portions for requesting identical subscriber call functions to make requests from subscriber terminal equipment for subscriber call functions independent of differences between the first and the second call processing means.
19. The arrangement of claim 18 for a system having pre-established physical paths for logical call paths to certain ones of the terminal logical channels for the certain calls, wherein
the resource management means comprise:
first resource management means responsive to receipt of the requirements signals from the first call processing means for processing resource information both (a) to allocate physical resources for physical communication paths to the pre-established physical paths to the one logical channel for establishment of the logical channel, and (b) to direct establishing of connections between the allocated physical resources for control of the logical call paths; and
second resource management means responsive to receipt of the requirements signals from the second call processing means for processing resource information both (a) to allocate physical resources to logical channels and to logical call paths for establishment of the logical channels and paths, and (b) to direct establishing of connections between the allocated physical resources for control of the logical call paths;
the first and the second message signals having identical first portions for requesting identical subscriber call functions further to make requests from subscriber terminal equipment for subscriber call functions independent of differences between the first and the second resource management means.
20. The control arrangement of claim 19 wherein
the first call processing means generate requirements signals for establishing connections between the logical call paths and the logical channels for controlling the logical call paths; wherein
the second call processing means generate requirements signals for both (a) establishing the logical call paths, and (b) establishing logical and physical connections between the logical call paths and the logical channels for controlling the logical call paths; wherein
the first resource management means are responsive to receipt of the requirements signals from the first call processing means for processing network resource information (a) to establish resource management logical structures for the logical channels for establishment of the logical channels, (b) to allocate physical resources to the logical structures for physical channels connecting to the pre-established physical call paths for establishment of logical connections, and (c) to direct establishing of physical connections between the resources allocated to the logical structures and the pre-established paths for establishment of physical connections; and wherein
the second resource management means are responsive to receipt of the requirements signals from the second call processing means for processing network resource information (a) to establish resource management logical structures for the logical channels and the logical call paths for establishment of the logical channels and paths, (b) to allocate physical resources to the logical channel structures for physical channels and to the logical call path structures for physical call paths between the physical channels, for establishment of the logical connections, and (c) to direct establishing of physical connections between the resources allocated to the logical structures for establishment of the physical connections.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
The subject matter disclosed in this patent application relates to subject matter disclosed in application of H. R. Lehman et al. entitled "Digital Communication Network Architecture for Providing Universal Information Services", Ser. No. 809,196, filed on Dec. 13, 1985, and in application of L. B. Oberlander et al. entitled "Communication System Control Arrangement", Ser. No. 840,458, filed on even date herewith, both of which related applications are assigned to the same assignee as this application
TECHNICAL FIELD
The invention relates to the call processing and resource management portions of a communication system control arrangement, and particularly relates to the structure of the call processing portion and its cooperation with the resource management portion to provide different services to system subscribers by different means in a manner that is transparent to the subscriber terminal equipment.
BACKGROUND OF THE INVENTION
The control arrangement of a communication system is the intelligence that acts, generally in response to stimuli such as subscriber requests, to determine the configuration of system resources that is necessary to provide subscribers with desired communication services.
In systems that provide a variety of services to subscribers, it is typically a characteristic of control arrangements that interactions with the system that are required of subscriber terminal equipment to obtain a particular type of communication service are dependent upon the particular service type being sought, and each service type typically requires a different set of interactions. For example, the traditional control software of a telephone electronic switching system typically requires a subscriber to follow a particular protocol to control a standard telephone call, to follow a different protocol to control a conference call, and to follow yet another protocol to control a data call. This characteristic is generally a consequence of the system internally providing each type of service in a different manner, via different system structures each of which typically responds to and returns different stimuli.
A recognized disadvantage in the prior art is that communication systems typically are unable to provide different types of services by means of different mechanisms without making these differences visible to subscribers in their interactions with the system and to the subscribers' terminal equipment. This occurs, in part, because prior art control arrangements view the services differently and often force subscriber terminal equipment, and consequently the subscribers themselves, to also view them differently. This control arrangement characteristic requires that subscribers or their terminal equipment be aware of the types of services being provided, know which services fall into which service types, and remember a number of different interaction procedures to be able to obtain from the system a variety of different services. From the subscriber viewpoint, this makes the systems difficult and sometimes impractical to use. It also unduly complicates the design of subscriber terminal equipment.
While the above-described characteristics are disadvantageous to control apparatuses of conventional communication systems, they become even more so to control apparatuses of integrated services digital networks (ISDNs). Such networks seek to provide subscribers with many types of voice, data and, in some instances, video, communication services in integrated form, i.e., via a common network and a common interface to the subscribers. Yet, internally, the ISDNs provide the various services significantly through different communication handling--for example, call processing--procedures and through different physical subsystems, each one of which is optimized for the requirements of the particular service that it is providing. This makes it difficult to hide the differences from the subscribers and to provide them with an interface to the network that is common for all services and yet is simple.
The evolution of ISDN technology is young, and their system configurations and hardware are often changing. But to present subscribers or their terminal equipment with a new interface to the network with each major redesign of network internals is undesirable.
In summary, what the art requires but lacks is a control arrangement for communication systems in general, and for ISDN-type networks in particular, that presents a common and unvarying network interface to subscribers and their terminal equipment for a variety of services and across many network fabrics.
SUMMARY OF THE INVENTION
This invention is directed to solving these and other disadvantages of the prior art. In a specific illustrative embodiment, a subscriber terminal generates a multi-part message which, by way of example, specifies a customer-requested call function and a called destination. A message router advantageously examines the called destination portion of the message and routes call control signals to either a first or a second call processing arrangement. In doing so, the message router eliminates a need for the two call processing arrangements to process the multi-part message and therefore allows them to be available for serving other calls. The first call processing arrangement illustratively controls the processing of calls from subscribers to broadcast program sources (so-called "proxy vendor" calls), and significantly uses a single process to do so. Two processes, one for the calling end and another for the called end of a call, are used by the second call processing arrangement for processing calls from originating subscribers to destination subscribers (so-called "point-to-point" calls).
The two processing arrangements separately cooperate with an individual one of two segments of a resource management arrangement under control of requirements signals generated by the call processing arrrangements. Requirements signals of the single process used for proxy vendor calls activate an integrated services digital network (ISDN) to establish and control connections from the subscriber terminal through the network to an access point semi-permanently interconnected with a broadcast program source. Use of the access point allows calls to a broadcast program source to be established quickly, because the portion from the access point to the program source of the communication path between a subscriber and the program source is pre-established. Use of the access points also allows a plurality of subscribers to share a single path between the access point and the program source. Use of a single process to establish all calls to an access point avoids having to create a separate process for each call and the consequent context switches, and thus further speeds up the establishing of calls to broadcast service sources. For the point-to-point calls, requirements signals for the separate calling and called processes activate the ISDN network to establish and control the calling subscriber end and called destination end communication channels. Use of a separate process for each call end separates the involved call-handling task into two simpler tasks and thereby reduces the complexity of call processing system design. Advantageously, the division of call processing into the proxy vendor and point-to-point arrangements is hidden from the subscriber terminal equipment. The subscriber terminal equipment generates like messages to request call functions from either arrangement, the difference between the messages being the call destination information. Since the terminal equipment need not be aware of the fact that proxy vendor and point-to-point services are provided in the network by different mechanisms, terminal equipment design is greatly simplified.
Broadly according to the invention, a call processing arrangement of a communication system comprises first and second program controlled arrangements each for establishing, and preferably also controlling, different types of calls and each for establishing, and preferably also controlling, the calls differently from the other. The first arrangement receives first message signals having a first portion requesting establishment, and/or control of calls and having a second portion identifying certain calls--for example, calls to broadcast service vendor channels--and responds thereto by generating, by a single process, requirements signals to establish, and control, the certain calls. The second arrangement receives second message signals having a first portion also requesting establishment and/or control of calls, and having a second portion identifying calls other than the certain calls--for example, point-to-point calls--, and responds thereto by generating by a plurality of processes requirements signals to establish and control each of the other calls. Each process of the second arrangement generates requirements signals to establish and control one of a calling and a called portion of the call. The first and the second message signals have identical first portions to make requests from subscriber terminal equipment for call establishment and control independent of the differences between the two manners in which the call processing arrangements go about establishing and controlling calls.
The call processing arrangement advantageously also comprises a signal routing arrangement that cooperates with both call processing arrangements. It responds to receipt of the first and the second message signals from subscriber terminal equipment and significantly processes the second portions thereof to identify the first message signals, which it sends to the first call processing arrangement. The signal routing arrangement also activates--illustratively establishes--the processes of the second call processing arrangement, and sends second message signals to the activated processes. The signal routing arrangement has the advantage that it centralizes the decision-making function regarding which call processing arrangement is to process a call message signal, thereby eliminating duplication of effort, and consequent waste of processing time, that would result from each call processing arrangement having to process the second portion of each message signal to determine if it is responsible for responding to that message signal.
According to an illustrative embodiment of the invention, in a switched integrated multiservices digital network, a network control complex includes a program-controlled call processing arrangement that comprises (a) a point-to-point call processing arrangement for handling conventional point-to-point calls, and (b) a broadcast service vendor call processing arrangement for handling calls to broadcast program source channels. For quick response to "channel change" requests from subscribers, the broadcast service vendor call processing arrangement handles all calls to broadcast program source channels by a single process. Conversely, the point-to-point call processing arrangement handles each call via two processes, one for each of the calling and called portions of each call, thereby to subdivide and hence simplify the call control functions. The two call processing arrangements perform their call handling functions in response to receipt of subscriber messages. Each message has a message type portion that identifies the subscriber function (such as call setup, acceptance, hold, transfer, and clearing) being requested for the call, and a parameter portion that specifies, inter alia, the destination of the call--a destination directory number, for example. Messages to which the two call processing arrangements respond have identical message type portions for requesting identical subscriber call functions. In this way, requests from subscriber terminal equipment for subscriber call functions are made independent of differences between the two call processing arrangements.
A message router in the control complex receives the messages from subscriber terminal equipment and examines the parameters portion thereof to determine which call processing arrangement should receive the message. It then sends the messages to the appropriate one of the proxy vendor and point-to-point processes. The message router also creates the point-to-point processes for new calls, for which the processes do not yet exist, and then sends the messages thereto.
A resource management arrangement in the network control complex cooperates with the call processing arrangement to establish call paths through the network. It responds to receipt of the requirements signals from the two call processing arrangements for directing configuration of network physical resources to establish calls. Illustratively, the resource management arrangement comprises two portions, a first portion responsive to receipt of the requirements signals from the first call processing arrangement for directing configuration of the resources to establish, and preferably also control, the proxy vendor calls, and a second portion responsive to receipt of the requirements signals from the second call processing arrangement for directing configuration of the resources to establish, and preferably also control, the calling and called portions of the point-to-point calls. Illustratively, the system has resources pre-configured to establish called portions of the proxy vendor calls. For example, paths are semipermanently set up between a broadcast service vendor's premises and predetermined access points within the network, such as particular switch ports. Hence, the first resource management arrangement portion does not have to establish these paths for each of the proxy vendor calls, but directs configuration of the resources to establish only the calling portions of the proxy vendor calls--those leading from the calling subscriber to the access point. The separation of the resource management arrangement into the two portions is likewise hidden from subscribers and their terminal equipment.
In the disclosed illustrative embodiment, the proxy vendor resource management arrangement processes resource information both (a) to allocate physical resources for a physical communication path leading to the pre-established physical paths and corresponding to a logical channel, for establishment of the logical channel, and (b) to direct establishing of connections between the allocated physical resources for control of the pre-established logical call path. The point-to-point resource management arrangement processes resource information both (a) to allocate physical resources to both (i) logical channels and (ii) logical call paths, for establishment of the logical channels and paths, and (b) to direct establishing of connections between the allocated physical resources, for control of the logical call paths. Yet the control arrangement makes subscriber function requests that terminal equipment must generate independent of differences between the two resource management arrangement portions, by responding to identical subscriber call function requests for both the proxy vendor and the point-to-point calls.
Logical channels and call paths are abstract units independent of physical resources which implement them, while physical channels and call paths are collections of one or more physical resources that implement the logical channels and call paths. Correspondingly, logical connections are associations between logical or physical entities whose only existence may be in a database, while physical connections are actual physical couplings between physical entities.
These and other advantages and features of the present invention will become apparent from the following description of an illustrative embodiment of the invention, taken together with the drawing.
DETAILED DESCRIPTION
TABLE OF CONTENTS AND BRIEF DESCRIPTION OF THE DRAWINGS
Hardware Architectue--Network Overview (FIG. 1)
Hardware Architecture--Remote and Central Nodes (FIG. 2)
Call Processing Model--Overview (FIG. 3)
Control Architecture--Subscriber to Central Node Signaling Interface (Appendix A)
Control Software--Subscriber Interface
Control Software--Node Control Complex (FIG. 4)
Operating System
Database Management
Resource Management
Call Processing
Maintenance and Administration
Call Processing Architecture (FIG. 5)
Message Router (FIG. 6)
Point-to-Point Call Processing
Terminal Process (FIGS. 7-9)
Process States (FIGS. 10-16)
Proxy Vendor Call Processing
Proxy Vendor Process (FIGS. 17 and 18)
Process States (FIGS. 19-21)
Reset and Initialization
Resource Management Architecture
Overview (FIG. 5; Appendix B)
Point-to-Point Resource Management (FIGS. 22 and 23)
Lower Path Structure (FIG. 24)
Upper Path Structure (FIGS. 25-28)
Interface to Call Processing (Appendix C)
Proxy Vendor Resource Management (FIG. 29)
Lower Path Structure (FIG. 24)
Proxy Vendor Structure (FIG. 30)
Interface to Call Processing
Switch Control Interface (Appendix D)
HARDWARE ARCHITECTURE--NETWORK OVERVIEW (FIG. 1)
The illustrative control arrangement described herein is for use in a switching center of a communication system. A suitable communication system is, for example, the switched integrated wideband and narrowband multiservices digital network described in the patent application of H. R. Lehman, W. P. Lidinsky, H. E. Mussman, D. A. Spicer, and D. Vlack, entitled "Digital Communication Network Architecture for Providing Universal Information Services", Ser. No. 809,196, filed Dec. 13, 1985, and assigned to the same assignee as this application.
Shown in FIG. 1 and briefly described, that network provides all types of voice, data, and video services to subscribers. The network comprises a plurality of central node service areas 100, 101, each of which comprises a plurality of subscribers 102 served by a local central switching node 110. Subscriber interfaces 400 located at the subscribers' premises provide an interface between the network and the subscribers' terminal equipment (not shown). A central node 110 communicates with subscriber interfaces 400 through remote nodes 103, each of which interfaces a group of subscribers 102 to the central node 110. Local central nodes 110 are interconnected for communication by trunk facilities, either directly or via one or more toll nodes 111.
All communications in the network are transported on optical fibers: distribution fibers 105 interconnect a subscriber interface 400 with a remote node 103, feeder fibers 107 and a control bus extension 106 interconnect a remote node with a local central node, and trunk communication and interoffice signaling fibers 112 and 117, respectively, interconnect local central nodes with each other and with toll central nodes.
The fibers 105, 107, and 112 carry communication channels of two types: narrowband and wideband. For purposes of this application, "narrowband" and "wideband" are defined in terms of unidirectional (i.e., simplex) channel bandwidth. Hence, two channels of opposite direction are required to establish a bidirectional (for example a duplex) communication path. A narrowband channel is one having a bandwidth of up to and including 64 Kbps, and a wideband channel is one having a bandwidth exceeding 64 Kbps. Typically, a narrowband channel has a bandwidth of 64 Kbps or integral submultiples thereof, i.e., 32 Kbps, 16 Kbps, 8 Kbps, or 4 Kbps. Also typically, a wideband channel has a bandwidth of in excess of about 1.5 Mbps, as services requiring lesser bandwidth than 1.5 Mbps can generally be provided by a plurality of narrowband channels used together. Furthermore, a wideband channel typically has a bandwidth extending into the tens, and preferably hundreds, of Mbps, in order to provide video services such as high-quality interaction video transmissions, over a single wideband channel.
Each subscriber is provided with a plurality (typically 32) of narrowband channels and one or more wideband channels in each direction. Narrowband channels typically carry voice and data communications. The narowband channels are time-division multiplexed at subscriber premises into a single multiplexed channel. Wideband channels typically carry high-speed data and video communications.
In each direction of communication flow, one of the narrowband channels of each subscriber is dedicated to carrying signaling messages between the subscriber and the local central node. The signaling messages are used for establishing communication services on any and all of the subscriber's channels.
HARDWARE ARCHITECTURE--REMOTE AND CENTRAL NODES (FIG. 2)
Wideband and narrowband channels are handled by separate fabrics in the network. As shown in FIG. 2, each remote node 103 has a wideband digital switch 505 for establishing point-to-point and point-to-multipoint connections between wideband channels of feeder fibers 107 and wideband channels of distribution fibers 105. Each remote node 103 also has a narrowband multiplexer and demultiplexer 506 for combining multiplexed channels of distribution fibers 105 into highly-multiplexed channels of feeder fibers 107, and for separating highly-multiplexed channels of feeder fibers 107 into multiplexed channels of distribution fibers 105. A central node 110 has a wideband digital switch 606 for establishing point-to-point and point-to-multipoint connections between wideband channels of feeder fibers 107, and also between wideband channels of feeder fibers 107 and trunk fibers 112, and a narrowband digital switch 607 for establishing point-to-point and point-to-multipoint connections between narrowband channels of the highly-multiplexed channels of the feeder fibers 107, and also between narrowband channels of highly-multiplexed channels of feeder fibers 107 and trunk fibers 112.
Communications in the network are established in the network under central node control. The central node 110 includes for this purpose a control complex 612 which embodies the illustrative control arrangement of this application. The control complex 612 controls all switches, both within the central node 110 and within the remote nodes 103. Each switch 505, 506, and 607 has its own controller 507, 610, and 611, respectively, which receives control directives from the control complex and carries them out. For this purpose, the switch controllers 507, 610, and 611 are interconnected with the control complex 612 by a high-speed control communication bus 116 and extensions 106 thereof.
The network also provides communication connections between subscribers and other communication systems or communication sources, such as data transport networks, telephone networks, and video service vendors. These connections are established at the local central node, via an "external" interface 603. The connections are established through cooperation between the control complex 112 and the external interface 603. For this purpose, the external interface 603 is also coupled to the high-speed communication bus and communicates thereacross with the control complex 612.
The control complex 612 is illustratively implemented as a multiprocessor computer system. Processors 202-205 that make up the multiprocessor computer system are connected to, and communicate with each other via, the high speed bus 116. The bus 116 also enables the processors 205-205 to communicate with other parts of the described network, particularly with controllers 507, 610, and 611 of the switches of the central and remote nodes, and with the control complexes of other central nodes.
The principal functions of the control complex 612 are divided among the processors 202-205. The processors 205, 202, and 203-204 have principal responsibility for different functions, and each processor acts to support the other processors in their assigned functions while concentrating its efforts on performing its own principal functions. The processors 203-204 have responsibility for like functions, but for different subscribers 102.
The processors 202-205 include a plurality of remote module processors (RMPs) 203-204. The principal functions of the remote module processors 203-204 are call processing and, in support thereof, resource management. Each remote module processor 203-204 is dedicated to serving all of the call processing needs of subscribers 102 subtending one or more remote nodes 103. In order to perform the required call processing functions, a remote module processor 203-204 "owns" and controls the remote node or nodes subtended by its subscribers 102, the distribution channels connecting the subscribers 102 to the remote node or nodes 103, the feeder channels connecting the remote node or nodes 103 to the central node 110, and the central node wideband and narrowband switch 606 and 607 ports that serve those feeder channels.
Processors 202-205 also include an external interface processor (XIP) 202. Processor 202 is dedicated to establishing communication connections between central node 110 and other central nodes of the network as well as with other communication systems, such as the telephone or data transport networks. Hence, its principal functions are likewise call processing and, in support thereof, resource management. Processor 202 "owns" and controls trunks connecting central node 110 with other central nodes of the network, the central node wideband and narrowband switch 606 and 607 ports that serve these trunks, and the external interface 603 interfaces to other communication systems.
Finally, processors 202-205 include an administrative processor (AP) 205. Its principal functions are administration and maintenance: billing, measurements, network management, service evaluation, control complex program updates, and hardware and software integrity. For the performance of these functions, administrative processor 205 relies on cooperation with the other processors 202-204, which supply it with information and respond to its commands.
Often, two or more small central nodes, i.e., each serving a relatively small number of subscribers 102, share use of a single administrative processor 205. In such case, administrative processor 205 is located in one of the central nodes and is connected to buses 116 of the other nodes by bus extensions 106.
CALL PROCESSING MODEL--OVERVIEW (FIG. 3)
The central node control complex 612 is structured to view the network as a set of heterogeneous communication resources that provide connectivity among subscribers. The control of such a network involves: (1) routing and processing of calls, (2) management of shared network communication resources, and (3) billing, administrative, and maintenance functions.
So as not to impose a limited predefined set of services on subscribers, and to allow for future provision of as-yet unforeseen services, control complex 612 manipulates the network in such a way as to provide to subscriber interfaces 400 capability components out of which services can be built. In particular, control complex 612 provides a set of communication resources from which subscribers 102 can fashion services. Subscribers 102 develop whatever services, terminals, and human interfaces they feel are appropriate for their intended applications. They then acquire and control those network communication resources that they feel are necessary to interface their services to the network. A subscriber 102 acquires and controls these resources via signaling messages sent from its subscriber interface 400 over the narrowband signaling channel to control complex 612. Unlike stimulus-oriented signaling that requires several disjoint actions to invoke a feature, message-oriented signaling allows a complete service request to be contained in a single message.
The network provides subscribers 102 with a standard signaling interface--a set of signaling messages and associated parameters--through which they control their connectivity to other subscribers 102. From the point of view of subscriber interfaces 400, the network is one monolithic unit. The internal structure of the network is not visible to subscriber interfaces 400, and hence to subscribers' terminal equipment. In particular, subscriber interfaces 400 are not aware of the functional partitioning between a central node 110 and subtending remote nodes 103, and of the partitioning of nodes 103 and 110 into wideband and narrowband fabrics.
The view of the network that control complex 612 provides to subscribers 102 is graphically illustrated in FIG. 3. There are two kinds of network resources that a subscriber 102 can request and manipulate: calls (301-303) and conferences (304). Signaling messages passed between a subscriber interface 400 and control complex 612 constitute a dialogue about the creation, control, and destruction of calls and conferences. A call is a single-medium communication path between two points, such as a call (301) between two subscribers 102 (subscriber A and subscriber B). In this context, the word "medium" refers to the form of information (for example, narrowband voice, narrowband data, wideband data, or wideband video), and not to the transmission medium, which is always an optical fiber in this illustrative embodiment. Types of calls are either one-way (i.e., simplex incoming to the subscriber or simplex outgoing from the subscriber, requiring use of one channel) or two-way (i.e., duplex, requiring use of two channels). Call are established over, and carried by, subscribers' distribution channels (310). A conference (304) is a logical connector in the network that combines two or more calls (302, 303) into a larger, more complex structure. Each call participating in a conference connects to a port (311) of the conference. The connected calls have a common participant (subscriber A) who is the "owner" of the conference. A conference is connected by the calls to subscribers and/or to other conferences. Types of conferences are also one-way (simplex, requiring a single channel connection to each participating subscriber) or two-way (duplex, requiring both an upstream and a downstream channel connection to each subscriber, not shown). A simplex conference is a multicast, such as a broadcast or a narrowcast. A conference is also described by a count, which is the number of calls that the network guarantees may be combined by the conference. As the need arises, new conference types may be defined and added to the network.
Calls and conferences are assigned identifiers (CALLID or CONFID, respectively) from a common name space. More precisely, identifiers are assigned to the ends of a call rather than to the call itself--the two subscribers at opposite ends of a call refer to the call by independently chosen and usually different identifiers. A call or conference identifier is unique only with respect to the calls and conferences in which a single subscriber participates--two different subscribers may simultaneously use the same identifier to name different, unrelated calls.
The identifiers are used in all messages that refer to the calls or conferences, whether the message is sent by a subscriber interface of the control complex. When a call or conference is logically "created" by request of a subscriber interface 400, the subscriber interface allocates the identifier. When logically "created" by action of control complex 612, the control complex allocates the identifier. The most significant bit in each identifier is reserved to indicate the direction from which the identifier was allocated. Thus, identifiers of calls and conferences originated by a particular subscriber and identifiers of calls and conferences for which that subscriber is a destination are allocated from disjoint sets.
Each subscriber 112 has a fixed set of channels connecting it to the network--distribution channels 310 carried by the distribution fibers 105. A call may be connected to a channel, associated with a channel, or disassociated. If a call is connected to a channel, a physical connection exists and information can flow over the channel between the subscriber and the called party. One or more calls may be associated with a particular channel but not connected to it, in which case only a "logical" connection (association) exists and no information can flow over the channel. However, the subscriber is guaranteed the resources to maintain the connection up to central node 110. A call is disassociated if it is neither connected nor associated with a channel. Hence, to communicate via a call, a subscriber's interface 400 must arrange for the call to become associated with, and then connected to, one or more of the subscriber's channels (perhaps indirectly, via a conference). A channel may be restricted with respect to medium and/or direction. Often, a call might be associated with more than one of a subscriber's channels--for example, a duplex video call requires two wideband channels, one for input and one for output.
To use a conference (304), subscriber interface 400 of the owner (subscriber A) of the conference must request that control complex 612 associate and connect the conference with one or more of the subscriber's channels (310), in the same way as for a call. Calls (302, 303) to the other participants (subscribers B and C) of the conference are then associated with and connected to ports (311) on the conference, in much the same way in which calls are associated with and connected to channels.
For each combination of medium and direction, there is a default channel. Incoming calls are initially associated with the default channel or channels appropriate for the medium and direction of the call. Channel defaults are also applied in contexts in which the subscriber has requested association of a call or conference, but has neglected to say or imply with what. Illustratively, the default channels are the same for all subscribers. An alternative is to allow each subscriber to have different default channels; the default channels in that case are part of the subscriber's profile, stored in a database.
Calls and conferences are owned by one of their participating subscribers. The owner of a call or conference pays for it. Only the owner of a conference may address control requests to it. Conference participants other than the owner are made aware, via signaling messages, of its existence and the identity of its owner, but do not have detailed information about its structure (such as the identities of other non-owner participants, or even the number of participants. Non-owner participants of a conference do not have identifiers for the conference. However, each has an identifier for the call that connects it with the conference.
CONTROL ARCHITECTURE--SUBSCRIBER TO CENTRAL NODE SIGNALING INTERFACE (APPENDIX A)
As was mentioned previously, the central control complex and the subscriber interfaces interact by sending signaling messages to each other. Message signaling simplifies call processing of this network in comparison with standard telephony call processing. Since a message request from a subscriber contains complete information about that request, less interaction is needed between call processing and the subscriber interface to determine exactly what the subscriber wants. Also, since the message is complete, there is a decrease in the amount of state information that is needed to provide a context for interpreting and processing a request. Call processing software of the control complex does not have to determine the meaning of a subscriber's request based on internal state information retained as a result of previous interactions. However, it is still a function of call processing to determine if subscribers should be allowed to have access to the requested services.
The signaling messages provide functions to set up, hold, transfer, and clear calls and conferences. Subscriber interfaces send messages to the network in order to request that some action be taken on behalf of the associated subscriber. The control complex sends messages to subscriber interfaces to notify them of some event. Each message has a message type and a list of message parameter values. The message type specifies the general meaning of the message. This general meaning is made specific by the parameter values. The list of required parameter values depends on the message type. A suitable list of message types and parameters is defined by Recommendation I.451 formulated by the CCITT as part of the the Integrated Services Digital Network (ISDN) standard.
An alternative message set is presented in Appendix A and summarized below. The messages of the set are grouped according to the following categories:
1. Basic Call Operations
a. SETUP--Initiates (originates) a call from a subscriber's channel or channels.
b. INCOMING--Notifies the destination subscriber interface of an incoming call.
c. REORIG--Reoriginates a current call to a new destination.
d. ALERTED--Notifies the destination's central node that the destination (for example, the destination human subscriber) is being alerted.
e. ACCEPT--Requests the central node to associate a call with a channel or channels and connect the call thereto.
f. CLEAR--Requests the central node to tear down (end-to-end) a call.
g. STATUS--Report from the central node on the current state of a call.
2. Hold and Disassociate
a. HOLD--Places a call on hold, while retaining the channel or conference bridge association.
b. DISASSOCIATE--Disassociates a call from its channel or conference bridge.
3. Transfer
a. TRANSFER--Transfers a call to a new destination.
4. Conferences
a. CREATE CONF--Requests resources for a conference. (Requests that a conference bridge be inserted into a call path.)
b. MODIFY CONF--Requests a change in the amount of resources allocated for a conference.
c. ADD CALL--Adds (originates) a new party to a conference.
5. Initialization Messages
a. RESET NET--Notification from the central node that all calls for this subscriber have been cleared.
b. RESET CUST--Request to the central node that all calls for this subscriber be cleared.
6. Errors
a. ERROR--Notification of an illegal or undecipherable request.
For each message type, there is a list of parameters determined by that message type. Possible parameters are:
BILLING--Special billing specification (e.g., collect, credit card).
CALLID--Call identifier.
CARRIER--Specific carrier selection.
CHAN--Subscriber's logical channel number identifying a channel between a subscriber interface and a remote node. For DUPLEX calls, this is a pair of numbers giving the incoming and outgoing channel numbers.
CID--A call or conference identifier in a context where either is appropriate.
CONFID--Conference identifier.
COUNT--Indication of the number of participants (other than the conference owner) that may be connected in a conference. (This parameter does not impose a hard limit. If specified, the SETUP, CREATE CONF, and MODIFY CONF messages will preallocate resources for the specified number of participants, failing if these resources are not available. In SETUP and CREATE CONF, COUNT is used in cases where there is some knowledge of the eventual size of the conference, and where the conference should not be set up at all unless it can grow to this size.)
DIR--Direction of call (DUPLEX, SIMPLEX-IN, or SIMPLEX-OUT).
DN--Directory number.
ERROR--Code indicating why a subscriber request is considered to be an error.
FAILURE--Code indicating why a legal subscriber request could not be honored.
MED--Medium; a characteristic describing the user information being transmitted and received. Standardized values for this characteristic identify such media as "voice", "video", "interactive data", and "circuit-switched data." This characteristic indicates such attributes as the quality of the connection desired (e.g., to discriminate between possible voice encoding schemes), whether loss insertion should be done, and whether satellite delays are acceptable.
OPI--Optional parameters indicator. This parameter indicates which of the allowable optional parameters actually appear in the message.
REASON--Code indicating reason for termination.
RESET--Code indicating whether a reset message is a request or an acknowledgement.
STATUS--A field indicating the new status of a call or conference, and/or a status transition in a call or conference.
SUB--Subaddress (applied to a DN). The subaddress identifies a particular station, such as a telephone behind a PBX or a terminal or computer on a local area network.
TYPE--Indicates the type of incoming call (SIMPLE CALL, CONFERENCE, or TRANSFER).
USERINFO--User-supplied information of end-to-end significance only (such as the caller's name or a password).
XFERS--An abbreviated transfer history of an end of a call, specifying (at least) the DN of the original destination and of the last party to transfer. If the communication has never been transferred, XFERS is null.
CONTROL SOFTWARE--SUBSCRIBER INTERFACE
Subscriber interface 400 software is functionally divided into a call processing subsystem and a peripheral control subsystem. The functions provided by the call processing subsystem include responding to signaling messages received from the network, interfacing to subscriber terminal equipment, and responding to subscriber service requests.
The function of the peripheral control subsystem is to insulate the call processing subsystem from the details of the hardware of the subscriber interface. The peripheral control subsystem comprises device handlers, each of which provides a software interface to peripherals that are included in the subscriber terminal equipment, and a message handler that provides an interface to the narrowband signaling channel. The primary functions of the message handler include placing messages sent to it from the call processing subsystem into proper form for transmission to the central node control complex 612, and routing of messages received from the central node control complex 612 to appropriate subscriber interface software.
CONTROL SOFTWARE--NODE CONTROL COMPLEX (FIG. 4)
The central node control complex 612 software, which performs the functions necessary to provide multimedia connectivity among subscribers 102, is functionally divided into five subsystems. These are graphically shown in FIG. 4. The main subsystems are call processing (CP) 800 and maintenance and administration (M&A) 801, which together make up an application software layer 200. Subsystems provided in support of application software layer 200 are database management (DBM) 802 and resource management (RM) 803, which together make up a resources software layer 201. Resources layer 201 manages resources that are unique to the application. Further provided in support of application software layer 200, and also in support of resources layer 201, is a distributed operating system (OS) 804. The purpose of operating system 804 is to manage low-level resources that are independent of the application. Functionally, these subsystems parallel similar subsystems of telephony distributed electronic switching systems.
Because control complex 612 is implemented in a multiprocessor (202-205), the central node control complex software shown in FIG. 4 is distributed among processors 202-205. Each processor 202-204 typically includes a portion of each of the subsystems 800-804; consequently, FIG. 4 may also be considered to represent the control software present in each of the processors 202-204. The processor 205 is different in that it does not include call processing and resource management subsystems 800 and 803. Communications between the distributed pieces of software are provided across bus 116 by an inter-process communications facility of operating system 804.
As may be expected, distribution of application layer 200 subsystems 800-801 over processors 202-205 is not equal but follows the function of each processor. Thus, for example, each of the processors 202-204 typically includes little of the maintenance and administration software 801, while administrative processor 205 includes most of the software 801 but none of the call processing software 800.
OPERATING SYSTEM
Operating system 804 is a distributed switching operating system, for example a version of the operating system of the telephony 5 ESS.TM. switching system of AT&T Technologies, Inc. Operating system 804 provides a process environment for the other switching software subsystems. Operating system 804 provides three fundamental services to the other subsystems: process control, whereby a process can create and destroy other processes, wait on certain conditions to be satisfied, etc.; process communications, whereby any process can send messages to any other process; and timing, whereby a process can request that it be notified after a certain amount of time has elapsed. For the purpose of providing these services, operating system 804 manages the following low-level resources: processor real-time, process stack allocation/deallocation, memory management, and interprocess communication.
Operating system 804 provides services to the other subsystems through an interface of subroutine primitives. For the most part, services are implemented internally in each processor, with the exception of process communications between communicating processes that do not reside in the same processor 202-205. In this case, operating system 804 uses facilities of high-speed bus 116 to send messages between the portions of the operating system which reside in the processors in which the processes reside. These portions route the messages from the originating process to the intended destination process.
Insulating applications software layer 200 from knowledge of where (i.e., on which processor) certain software entities are located is accomplished by defining process identifiers in such a manner that the range of identifiers spans all processors. A single field within a process identifier, the "processor i.d." field, allows the destination processor to be directly addressed (as opposed to having to broadcast to all processors). Each processor has a version of a "send message" routine which checks whether the process identified by the process i.d. resides on this processor. If not, the message is sent out over high-speed bus 116. It is picked up therefrom by the destination processor. All processors have a message handler which checks for incoming messages and forwards them to the appropriate processes.
In order to insulate application software layer 200 from knowledge of absolute process i.d.'s for long-lived "system" processes, a special set of process i.d.'s is defined such that each special i.d. uniquely identifies one of these processes. Upon receipt of an interprocess message (either internal or external) the operating system 804 checks if the destination process i.d. is one of these special i.d.'s. If so, the operating system 804 translates the special i.d. into an actual process i.d. and then delivers the message to that process.
DATABASE MANAGEMENT
Unlike operating system 804, resources software layer 201 manages resources that are unique to the application. These resources can be broadly described as data resources, which are owned and managed by database management subsystem 802, and communication resources, which are owned and managed by resource management subsystem 803.
Though operating system 804 is responsible for memory management, it neither knows nor cares what information is stored in memory. This responsibility falls to database management subsystem 802. Subsystem 802 is responsible for the access, update, and integrity of data within control complex 612.
Database management subsystem 802 manages data about subscribers, network resources, and network resource usage, for use by the other network software subsystems. In particular, database management subsystem 802 manages data needed to map between each subscriber's directory number and its corresponding physical address on the appropriate remote node. Database management subsystem 802 also manages data describing the service capabilities of each subscriber. It further manages a representation of the current network configuration. This includes the current operational status of the various hardware components; this data is needed to allow the network to route around defective or otherwise unavailable components. Database management subsystem 802 also manages data about network resource usage, in the form of a transaction log containing information on when network resources were allocated and deallocated and showing which subscriber is to be billed for the resource usage. And finally, as a service to vendors of broadcast services, database management subsystem 802 maintains access right and usage information concerning broadcast services that may be initiated, i.e., called up, by subscribers.
For most of its clients, database management subsystem 802 provides an interface of subroutine primitives to access or update information. Also included in subsystem 802 are human interfaces for use by craft personnel to access and update system information.
Integrity of data is ensured by audits that compare stored data against physical information, where possible, or against other redundant information. Audits are scheduled to run periodically. In addition, certain audits may be invoked from a maintenance terminal by craft personnel.
RESOURCE MANAGEMENT
Resource management subsystem 803 manages the various physical resources of the network. Its responsibility is to insulate application software layer 200 from knowledge of the physical switching resources. In providing this function, resource management subsystem 803 routes calls, allocates communication paths, keeps track of the states of these paths, instructs switch controllers to make desired connections, routes messages between processes, and allows application software in one central node to communicate with application software in another central node.
Resource management subsystem 803 provides call processing subsystem 800 with a common interface to all switching units, thereby allowing call processing subsystem 800 not to be burdened with the operational details thereof. The interface comprises a set of primitives implemented as subroutine calls. This set of primitives is described further below and in Appendix C.
CALL PROCESSING
Application software layer 200 adapts the network hardware and software to providing particular services. Layer 200 comprises call processing subsystem 800, which provides network capabilities for which subscribers pay, and maintenance and administration subsystem 801, which supports call processing.
Call processing subsystem 800 is responsible for the establishment, management, and termination of subscriber calls, which are the smallest unit of connectivity between subscribers that are controllable by the subscribers. Call processing subsystem 800 handles requests from subscribers for communication services and collects the raw data needed by maintenance and administration subsystem 801 to produce subscriber bills.
Communication service requests are received from subscribers via the standard signaling interface with the subscriber interfaces. This interface is defined by the message set described above and in Appendix A.
Call processing subsystem 800 provides services to subscribers by calling primitives of resources software layer 201 and, in cases where there would be no value added by going through layer 201, by directly using primitives provided by operating system 804.
MAINTENANCE AND ADMINISTRATION
Maintenance and administration subsystem 801 supports call processing. The maintenance portion of subsystem 801 controls maintenance capabilities provided for fault detection and recovery, so as to safeguard the integrity of the network. Specific responsibilities in this arena include: initialization, fault detection, reconfiguration, and diagnosis of suspected faulty equipment. With regard to fault detection, maintenance and administration subsystem 801 provides subroutines for use by call processing subsystem 800 in reporting faults detected during normal processing. From these reported events, maintenance and administration subsystem 801 determines when a suspected faulty hardware unit should be taken out of service. Out-of-service equipment is then scheduled for diagnosis. Maintenance and administration subsystem 801 also schedules routine maintenance functions, including test calls (via loopback logic located at subscriber interfaces) and software audits. Maintenance and administration subsystem 801 is also responsible for communicating with central node craft personnel for manual invocation of maintenance functions.
The administration portion of maintenance and administration subsystem 801 provides billing, measurements, network management, service evaluation, and program update functions. The administration portion is also responsible for interfacing to regional support systems, and for interfacing to communication service vendors for update and retrieval of subscriber authorization and usage data stored in database management subsystem 802.
CALL PROCESSING ARCHITECTURE (FIG. 5)
Having examined the general characteristics and structure of the central node control complex and the software subsystems thereof, consider now the internal characteristics of call processing and resource management subsystems 800 and 803, and their interface with each other.
An illustrative implementation of call processing and resource management subsystems 800 and 803 is shown in FIG. 5. Subsystem 800 comprises two call processing structures: one for point-to-point and conference communications, referred to as point-to-point call processing 8001, and the other for communication vendor (for example, video channel provider) broadcast communications, referred to as proxy vendor call processing 8002. The existence of, and differences between, the two call processing structures are invisible to subscriber interfaces, and hence to subscriber terminal equipment.
MESSAGE ROUTER (FIG. 6)
An element of call processing that interacts with both structures 8001 and 8002 is a message router 8000. Message router 8000 is the first call processing component to process any message that is addressed to any part of call processing from a subscriber interface. A high-level flow diagram of the operation of the message router 8000 is shown in FIG. 6. The primary task of message router 8000 is to relay messages from subscriber interfaces to appropriate call processing structures, translating call and conference identifiers used by subscriber interfaces into process identifiers used by call processing. As shown in blocks 620-622 and 625, message router 8000 relays a received message either to point-to-point call processing 8001 or to proxy vendor call processing 8002, depending upon the call medium and direction and the destination directory number. As shown in blocks 623-624, message router 8000 creates a process to handle a new call or conference when a subscriber interface requests origination of a new point-to-point call or conference.
SETUP, CREATE CONF, and ADD CALL messages (which request origination of a new point-to-point call or conference or of a proxy vendor call) are handled by message router 8000 as follows:
1. The destination directory number, call medium (e.g., VIDEO, VOICE, or DATA) and call direction (SIMPLEX-IN, SIMPLEX-OUT or DUPLEX) are checked against a table of available proxy vendor services.
2. If the requested call does not match any of the available proxy vendor services, the call is treated as a point-to-point call. Use is made of the process control service provided by the operating system 804 to create a new call and/or conference terminal process and initialize it with information extracted from the received message. The CID used by the subscriber interface to name this call or conference is associated in a database with an identifier of the terminal process (TPID). The message is in error if the CID is found to be already in use.
3. If the requested call does match a proxy vendor service, the call is treated as a proxy vendor call. The originating subscriber's access rights to the service are checked in the database. Assuming that the subscriber has access to the service, the call identifier is associated with a proxy vendor call register in the database, and proxy vendor call processing 8002 is notified to set up the call.
Other subscriber messages referencing a call are handled by message router 8000 as follows:
1. The call or conference identifier is looked up in the database. If it is not found, the message is in error.
2. If the call or conference identifier is associated with a terminal process identifier, then the call or conference identifier names a point-to-point call or conference. The message is forwarded to the terminal process.
3. If the call identifier is associated with a proxy vendor call register, then the call identifier names a proxy vendor call. Proxy vendor call processing 8002 is notified to process the message, which is passed as an argument.
POINT-TO-POINT CALL PROCESSING
Point-to-point call processing 8001 is organized as a collection of terminal processes (650, 660, 670; see FIG. 7) which handle subscriber service requests. It is implemented in a one-process-per-subscriber-per-call form. Each message is processed by a terminal process as a transaction. A transaction is any element of data, control, signal, event, or change of state that causes, triggers, or initiates some action or sequence of actions. Each terminal process serves just one subscriber, and handles just one call or conference for that subscriber. In other words, a call terminal process carries out the processing functions for a given end of a call: there are two terminal processes per call, one for each subscriber's end of the call, whether or not the call is part of a conference. In addition, each conference is managed by a single conference terminal process. A conference logically connects the owner of the conference to the other conference participants. All the terminal processes that serve a given subscriber reside in the remote module processor 202-204 (see FIG. 2) that serves that subscriber. A conference terminal process resides in the processor 203-204 that serves the owner of the conference, along with the call terminal processes that manage the conference owner's ends of the calls that are a part of the conference. Terminal processes are created and destroyed as needed--that is, as calls and conferences are set up, transferred, or cleared. Thus, a subscriber who currently has no calls or conferences has no terminal processes.
A conference terminal process is spawned by a call terminal process when the call terminal process receives a message from a subscriber interface directing that the call be associated with a port on a new conference. There are two such message types:
CREATE CONF Requests that an existing call be associated with a port on the new conference.
SETUP (with the optional CONFID parameter) Requests that the new call being set up be initially associated with a port on the new conference.
TERMINAL PROCESS (FIGS. 7-9)
An illustrative terminal process 650 is shown in FIG. 7. Terminal process 650 has associated with it a transaction queue 651 in which transactions, such as messages received from subscribers, are placed. During its operation, terminal process 650 cycles through a loop. In each loop cycle, one transaction is read from the terminal process' queue 651. If queue 651 is empty, terminal process 651 gives up its stack and takes a real time break until a transaction arrives for it. When a transaction is successfully read from the queue 651, it is interpreted by a distributor 652, which then invokes out of a collection of routines 653 the appropriate transaction processing routine for the transaction.
In general, each input message type is handled by a different routine; the routines 653 correspond one-for-one to the messages listed in Appendix A. Alternatively, some groups of similar message types may be handled by a common function. Preferably, there is also a library of shared "service" subfunctions for performing common operations. The actions of the invoked routine generally include producing output--sending status messages to the subscriber interface and to the terminal process at the other end of the call to keep them informed of activities affecting the call, and making subroutine calls to other processes or subsystems, principally those of the resource management subsystem, to allocate/deallocate, associate/disassociate, and connect/disconnect resources required for the call--and updating the state (described below) of the terminal process, which reflects the state of the call. Some routines may wait for replies from specific other processes. Each transaction is processed to completion before the next transaction is retrieved from the queue, unless an error occurs.
The transactions are the same for all media types, and the actions that terminal process 650 takes in response to them are identical. The differences are hidden by the resources software layer 201.
Interactions of call and conference terminal processes 650 and 660, respectively, with other network entities are graphically illustrated in FIGS. 8 and 9, respectively.
As shown in FIG. 8, in the course of performing its functions, a call terminal process 650 communicates with: other entities of call processing subsystem 800, such as the call terminal process 750 at the other end of the call, a conference terminal process 660, and reset and initialization 8003; maintenance and administration subsystem 801; database management subsystem 802; resources management subsystem 803; and subscriber interface 400. Communications with subscriber interface 400, conference terminal process 660, call terminal process 750, and reset and initialization 8003 are conducted via messages, as are returns from resource management subsystem 803. Communications to subsystems 801-803 are conducted via subroutine calls.
As shown in FIG. 9, in the course of performing its functions, a conference terminal process 660 communicates with other entities of call processing subsystem 800, such as the call terminal processes 650 and 670 at the conference end of calls (A and B, respectively) participating in the conference, and reset and initialization 8003; maintenance and administration subsystem 801; database management subsystem 802; resources management subsystem 803; and subscriber interface 400. Communications with subscriber interface 400, call terminal processes 650 and 670, and reset and initialization 8003 are conducted via messages, as are returns from subsystem 803. Communications to subsystems 801-803 are conducted via subroutine calls.
Transactions serving as inputs to a terminal process include the following. From subscriber interface 400, a terminal process receives messages requesting that it perform control operations on the call or conference. The messages from subscriber interface 400 are relayed to the terminal process by message router 8000. From the terminal process at the other end of the call a call terminal process receives messages passing setup information for new calls, status information, reorigination requests to effect a call transfer, and notices of call clearing. From call terminal processes, a conference terminal process receives requests to become associated with the conference. And from a conference terminal process, associated call terminal processes receive status information. From resource management subsystem 803, the terminal process receives return codes from subroutine calls, and messages announcing changes in the call that were initiated by the network (for example, that a call is being cleared by maintenance due to a detected problem). From database management subsystem 802, a terminal process receives returns from subroutine calls. Reset commands come from a reset process set up for the subscriber (described below).
Events serving as outputs of a terminal process include the following. To the subscriber interface, a terminal process sends STATUS messages notifying the subscriber interface of changes in the call or conference. These include changes requested by notices of new calls received either from the subscriber or from the other side of a call for which the subscriber is a destination. To the call terminal process at the other end of the call, the call terminal process sends messages containing status information; such messages are delivered by the resource manager internal messages 8034. And to a conference terminal process, a call terminal process sends messages requesting association, messages giving notice of status changes (including disassociation, hold/unhold, and termination), and messages to initialize a new conference spawned from this call; such messages are delivered by the operating system 804. To resource management subsystem 803, the terminal process makes subroutine calls to request allocation or deallocation of communication resources, and to control allocated resources. The terminal process also issues requests to subsystem 803 to deliver messages to the terminal process at the other end of the call. To database management subsystem 802, the terminal process makes subroutine calls to request subscriber data, to update or access associations between call identifiers and terminal process identifiers, and to access a subscriber's reset state which encodes information about whether a subscriber is currently being reset. And the maintenance and administration subsystem 801, the terminal process makes subroutine calls to log billing and internal trace data.
A conference terminal process communicates with call terminal processes that are managing the conference owner's ends of calls that are associated with the conference. It passes requests and status information in both directions. Call terminal processes send association requests to the conference terminal process in order to become associated with a conference port. The conference terminal process then calls the appropriate resource management subsystem 803 primitive to establish the association. A clear (hangup) request from the subscriber interface to a conference terminal process is forwarded to the call terminal processes of all calls associated with the conference.
Consider now an example of the operation of a terminal process. The message router 8000 creates an originating terminal process in response to a messsage from subscriber interface 400 requesting that a new call or conference be set up (originated), but does not obtain a call register therefor. The message router 8000 then calls a point-to-point call processing function CPsetup, which obtains the call register and initializes the terminal process by filling the call register with appropriate data and sending a message to the new terminal process (via operating system message primitives) to tell the new terminal process the address of its call register. The originating terminal process then accesses the originating subscriber's service capability information in database management subsystem 802 and analyzes that information based on the request made. If the subscriber's request is valid, then the sequence of actions needed to set up the call is initiated.
First, the terminal process makes a subroutine call on resource management subsystem 803 to allocate the resources necessary for a path to connect the originating and destination subscribers (including a conference bridge in the case of a conference terminal process), and to pass an INCOMING message to the as-yet uncreated destination terminal process. This action causes resource management subsystem 803 to return to the originating terminal process a path identifier (PATHID), which is thereafter used by the originating terminal process to refer to the call in requests made to resource management subsystem 803. Resource management subsystem 803 also accesses routing and translation information on the destination subscriber in database management system 802. If resource management subsystem 803 detects that the call is destined for a customer who is not a subscriber to the network, the call is routed to the appropriate "external" interface to a communication system of which the customer is a subscriber. If the call is destined for a network subscriber, the destination subscriber is located and resource management in the destination subscriber's remote module processor is notified via a LOCATE message.
When the LOCATE message reaches the destination subscriber's remote module processor, the resource management subsystem 803 calls point-to-point call processing function CPincoming, which contains a call register for the (not yet created) destination terminal process, puts appropriate data in the call register to initialize the terminal process, creates the destination terminal process, and sends a message to the new terminal process to tell it the address of the call register. The destination terminal process is thereby given an initial description of the call, including the INCOMING message from the originating terminal process and a PATHID to use in referring to the call.
The destination subscriber's terminal process notifies the destination subscriber of the intended call. As soon as the destination subscriber accepts the call, the call path is fully connected and the call becomes "active". The terminal process monitoring the owner's (i.e., the subscriber's who is responsible for paying for this call) end of this call causes maintenance and administration subsystem 801 to record information concerning when this call starts and when it terminates. Until there are additional valid requests to change the call, made by one of the participating subscribers, the call data remains unchanged. This data remains active in maintenance and administration subsystem 801 until one of the subscribers issues a termination request.
When one of the subscribers does issue a termination request, its call end's terminal process makes a subroutine call on its processor's resource management subystem 803 to deallocate the resources that are allocated to its end of the call in order to clear the call, sends a status message to the subscriber interface to notify it that call clearing has been initiated, and sends a "far status" message to the terminal process on the other side of the call to inform it that the call is being terminated. The terminal process then changes its internal state to reflect these activities, and waits for an acknowledgment message from the terminal process on the other side of the call. Upon receipt of this message, the terminal process terminates.
When the terminal process on the other side of the call receives the "far status" message indicating call termination, it makes a subroutine call on its processor's resource management subsystem 803 to deallocate the resources that are allocated to its end of the call. It then sends a status message to the subscriber interface at its end of the call to notify it that call clearing has been initiated, and sends a "far status" message indicating call termination to the terminal process on the other side of the call. This far status message is the acknowledgement messsage awaited by that terminal process. The terminal process then changes its internal state to reflect these activities, and waits for a "call clear" message from the subscriber interface. Upon receipt of this message, the terminal process terminates.
PROCESS STATES (FIGS. 10-16)
The state of a call or conference terminal process represents the state of the call or conference. It is encoded as a combination of several state variables, which are stored in the terminal process' call register (see FIG. 15) or conference register (see FIG. 16) in processor memory. The register is allocated to the call or conference terminal process as part of its initialization.
Four state variables encode the state of a call terminal process: two variables encode the status of the terminal process' end (near end) of the call or conference, and two state variables encode the status of the other end (far end) of the call. Three state variables encode the state of a conference terminal process: two the status of the conference itself, and the other the status of the far end of calls involved in the conference. The state variable that encodes the far end status represents a compendium of the far end statuses of the calls that are involved in the conference.
The near end state variables of a call or conference are association class (ASCLASS) and connect status (CS.sub.-- STATUS).
The association class of the call relative to the near end subscriber indicates with what kind of object, if any, the call is associated. ASCLASS of a call is diagramed in FIG. 10. It can have the following four values:
cP.sub.-- CHAN state 1010--The call is associated with one or more channels at the near end. The channel or channels are given by state parameter CHAN.
cP.sub.-- DISAS state 1011--The call is not associated with any channel or conference port at the near end. The process is sent into this state from any other state by receipt from the subscriber interface of a DISASsociate message. The process makes the transition from the cP.sub.-- DISAS state 1011 to the cP.sub.-- CHAN state 1010 in response to receipt from the subscriber interface of either an ACCEPT or a HOLD message without the optional CONFID parameter.
cP.sub.-- CONF state 1012--The call is associated with a conference port at the near end. The conference must have at least one other call associated with one of its ports. The conference is identified by state parameter CONF. The process is sent into this state from any other state by receipt of a CNFSTAT message sent by the associated conference terminal process and accompanied by a parameter indicating that the call is associated with a nondegenerate conference. In the case of transition to the state 1012 from the state 1010 or 1011, the CNFSTAT message is the last message in a sequence of messages that began with one of the following messages from the subscriber: ACCEPT message containing a CONFID parameter, HOLD message containing a CONFID parameter, or a CREATE CONF message. The process undergoes a transition from state 1012 to state 1010 upon receipt from the subscriber of an ACCEPT or a HOLD message with an explicit CHAN parameter value.
cP.sub.-- DCONF state 1013--The call is associated with a conference port at the near end. The conference is identified by state parameter CONF. The conference is a degenerate conference, i.e., this call is the only call associated with a port on the conference. The process is sent into this state from any other state by receipt of a CNFSTAT message sent by the associated conference terminal process and accompanied by a parameter indicating that the call is associated with a degenerate conference. In the case of transition to the state 1013 from the state 1010 or 1011, the CNFSTAT message is the last message in a sequence of messages that began with one of the following message from the subscriber: ACCEPT message containing a CONFID parameter, HOLD message containing a CONFID parameter, or a CREAT CONF message. The process undergoes a transition from state 1013 to state 1010 upon receipt from the subscriber of an ACCEPT or a HOLD message with an explicit CHAN parameter value.
A conference ASCLASS variable can have one of only two values: ASSOCIATED with or DISASSOCIATED from a channel. However, its value can be deduced from the current value of conference CS.sub.-- STATUS, and hence there is no need to store it: if CS.sub.-- STATUS is INCOMING, HOLD, or CONNECTED, then ASCLASS is ASSOCIATED, and if CS.sub.-- STATUS is DISASSOCIATED, so is ASCLASS.
CS.sub.-- STATUS variable indicates the connection status of the call or conference relative to the near end subscriber. It is the CONNECT status reported to the subscriber interface by call processing via the STATUS message. The connect statuses of a call and of a conference are diagrammed in FIGS. 11 and 12, respectively. CS.sub.-- STATUS of a call or conference can have the following four values:
mGCS.sub.-- TERMINATED state 900--The subscriber at one of the two call ends has requested that the call, or conference, be terminated. Call, and conference, clearing is in progress. Logically, this state is also the NULL state of the call, or conference; the state when the call or conference terminal process, and hence the call or conference, does not exist. The process is sent into this state from any other state by receipt of a CLEAR message from the subscriber interface at this end of the call, or an FSTATUS message from the other side of the call indicating that the far end status is TERMINATED.
mGCS.sub.-- ACTIVE state 902--The call, or conference, is actually connected to the one or more channels or to the conference port with which it is associated. The process is sent into this state from TERMINATED state 900 by receipt of a SETUP message from the subscriber interface at this end of the call, and from any other state by receipt of an ACCEPT message from the subscriber interface.
mGCS.sub.-- HOLDING state 903--The call, or conference, is associated with, but is not connected to, a channel or conference port. The process is sent into this state from any other state but the TERMINATED state 900 by receipt of a HOLD message from the subscriber interface at this end of the call.
mGCS.sub.-- DISASSOCIATED state 904--The call, or conference, is not associated with or connected to any channel or conference port. The process is sent into this state from any other state but the TERMINATED state 900 by receipt of a DISASSOCIATE message from the subscriber interface at this end of the call.
In addition, the CS.sub.-- STATUS of a call can have the value:
mGCS.sub.-- INCOMING state 901--The call is an incoming call that has not yet been answered. It is associated with one or more default channels for its medium and direction. This state does not exist for a conference terminal process. The call terminal process is sent into this state from the TERMINATED state 900 by receipt of an INCOMING message from the other side of the call.
There is obvious redundancy between ASCLASS and CS.sub.-- STATUS. (For example, ASCLASS=cP.sub.-- DISAS implies CS.sub.-- STATUS=mGCS.sub.-- DISASSOCIATED, and vice versa.) Consequently, not all combinations of ASCLASS and CS.sub.-- STATUS values are legal.
The far end status state variables of a call terminal process are FS.sub.-- STATUS and FC.sub.-- STATUS. A conference has only the FS.sub.-- STATUS variable. For a call, FS.sub.-- STATUS encodes the status of the far end of the call, as reported to the near end's terminal process by the far end's terminal process and by the resource management subsystem 803. FS.sub.-- STATUS is just the FAR END status reported to the near end subscriber interface by call processing in the STATUS message. The far end status of a call is diagramed in FIG. 13. FS.sub.-- STATUS can have the following five values:
mGFS.sub.-- TERMINATED state 1100--The call has been cleared at the request of either end, or due to a failure in the network. Logically, this state is also the NULL state of the call; the state when the far end call terminal process, and hence the far end of the call, does not exist. The terminal process is sent into this state from any other state by receipt of a CLEAR message from the subscriber interface at its end of the call, or by receipt of an FSTATUS message from the other side of the call indicating that the far end status is TERMINATED.
mGFS.sub.-- PENDING state 1101--Call setup is in progress. The existence of the terminal process at the far end is not yet assured. This is the value of FS.sub.-- STATUS until a message is received from the far end terminal process, or until the resource management subsystem 803 notifies the near end terminal process that the call could not be set up. The terminal process is sent into this state from TERMINATED state 1100 by receipt of a SETUP message from the subscriber interface at its end of the call. Receipt of an FSTATUS message from the other side of the call indicating that the other end is PENDING maintains the terminal process in the state 1101.
mGFS.sub.-- ALERTED state 1102--The subscriber interface at the far end has begun alerting the human subscriber. The terminal process is sent into this state from the PENDING state 1101 by receipt of an FSTATUS (ALERTED) message from the other side of the call. While the terminal process is in this state 1102, receipt of an FSTATUS (ALERTED) message from the other side of the call maintains it in the state 1102, and receipt of an FSTATUS (PENDING) message from the other side of the call sends it into the PENDING state 1101.
mGFS.sub.-- CONNECTED state 1103--The far end of the call is connected to a conference port or to a subscriber channel. The terminal process is sent into this state from the TERMINATED state 1100 by receipt of an INCOMING message from the other side of the call indicating that the state of the other side of the call is CONNECTED. The terminal process is also sent into this state from any other state by receipt from the other side of the call of an FSTATUS (CONNECTED) message.
mGFS.sub.-- HELD--The far end of the call is not connected to a channel or conference port at the far end. If the subscriber at the far end of the call is the destination, that subscriber has already accepted the call. The terminal process is sent into this state from the TERMINATED state 1100 by receipt of an INCOMING message from the other side of the call indicating that the state of the other side of the call is HELD. The terminal process is also sent into this state from any other state by receipt from the other side of the call of an FSTATUS (HELD) message.
The conference FS.sub.-- STATUS is likewise represented by FIG. 13. However, for a conference, FS.sub.-- STATUS encodes a compendium of the statuses of the far end of all calls involved in the conference. The conference FS.sub.-- STATUS represents the highest-order far status state of any of the associated calls. The descending order of the far status states is: CONNECTED, HELD, ALERTED, PENDING, TERMINATED. Thus, if any one of the calls associated with the conference is in the CONNECTED state, the conference FS.sub.-- STATUS is CONNECTED. And only when all calls associated with the conference are in the TERMINATED state is the conference FS.sub.-- STATUS TERMINATED.
The state variable FC.sub.-- STATUS indicates whether the far end of the call is associated with a conference that is not degenerate, as reported by the far end's terminal process. It is just the far conference status reported to the near end subscriber interface by call processing in the STATUS message. The far end conference status of a call is represented in FIG. 14. FC.sub.-- STATUS can have the following three values:
NULL state 1410--the far conference status of a nonexistent call. This value is not recorded. Transition to this state is made by the process in response to receipt of either a CLEAR message from the subscriber or an FSTATUS message from the other end of the call indicating that the far end status is TERMINATED.
mGFC.sub.-- SIMPLE state 1411--The far end's ASCLASS is not CONF. The process assumes this state from the NULL state 1410 upon receipt of a SETUP message from the subscriber, or upon receipt of an INCOMING message from the other end of the call indicating that the ASCLASS value of the far end is any value but CONF. Receipt in the state 1411 of an FSTATUS message from the other end of the call indicating that the far end status is CONF sends the process into state 1412.
mGFC.sub.-- CONFERENCE state 1412--The far end's ASCLASS is CONF. The process assumes this state from the NULL state 1410 upon receipt of an INCOMING message from the other end of the call indicating that the ASCLASS value of the far end is CONF. Receipt in the state 1412 of an FSTATUS message from the other end of the call indicating that the far end status is any value but CONF sends the process into state 1411.
Other status information about the call or conference (for example, the directory numbers of the paticipating subscribers, the medium, the direction, etc.) is also stored in the call or conference register in the processor memory, as illustrated in FIGS. 15 and 16, respectively. This information includes call or conference status parameters and call or conference descriptors, and, in the case of a conference, a port parameter. The call or conference status parameters are:
CHAN--If the call or conference is associated with one or more channels at the near end (state variable ASCLASS is cP.sub.-- CHAN), CHAN names the one or more channels with which the call or conference is associated.
CONF--If the call is associated with a conference port at the near end (state variable ASCLASS is cP.sub.-- CONF or cP.sub.-- DCONF), CONF contains the identifier of the conference's terminal process (TPID), the CONFID of the conference, and the conference port's identifier(s). Because the CHAN and CONF status parameters are mutually exclusive, they are overlaid in the call register.
FARDN--The directory number of the subscriber at the far end of the call.
PATHID--The upper path (see below) identifier, obtained from the resource management subsystem 803, that names the call or conference. PATHID is used to communicate with the subsystem 803 about the call's or conference's resources, and to address the terminal process at the far end of the call via primitives provided by the subsystem 803.
CALLS--The number of calls associated with ports on the conference, i.e., the number of conference ports in use.
COUNT--The number of ports on the conference. CALLS may not exceed COUNT. CALLTPID must have at least as many elements as COUNT.
The call on conference descriptors are:
TPID--The call or conference process' TPID.
CUSTID--The internal subscriber identifier of the subscriber at the near end of the call or conference.
CALLID--The call identifier used to communicate with the subscriber interface about the call.
CONFID--The conference identifier used to communicate with the subscriber interface about the conference.
MED--The medium of the call or conference, chosen from the menu of media supported by the network. These include VOICE, DATA, and VIDEO, and optionally others.
CONFTYPE--The conference type. This is closely related to the medium of the conference. However, CONFTYPE distinguishes between such conference types as "silent video" and "video with audio".
DIR--The direction of the call or conference, relative to the subscriber at the near end. DIR distinguishes between duplex conferences, which are conferences in the usual sense, and simplex conferences, which are point-to-point (as opposed to service vendor) broadcasts. DIR takes the values:
mG.sub.-- DUPLEX--In the case of a conference, every participant can transmit to every other participant, and every participant can receive from every other participant (excepting, of course, participants on hold).
mG.sub.-- SIMPLEX-IN--This value does not exist for a conference.
mG.sub.-- SIMPLEX-OUT--In the case of a conference, the conference is a point-to-point broadcast, with the conference owner as source.
OWNER--An indicator of whether the subscriber at the near end owns, and is to pay for, the call. This variable controls the logging of billing data. It also enters into situations such as transfer requests, where policy restricts subscriber requests based on ownership. OWNER can take on the values:
cP.sub.-- OWNER--Originator of a standard billed call, or destination of a collect call.
cP.sub.-- NOTOWNER--Destination of a standard billed call, or originator of a collect call.
Other values can be added as necessary to handle such features as third party billing.
DN--The directory number associated with the near end of the call.
The conference port parameter is CALLTPID, an array of TPIDs identifying the terminal processes of the calls associated with the conference's ports. If a port is not in use, its CALLTPID entry has a null value.
PROXY VENDOR CALL PROCESSING
Proxy vendor call processing reduces the response time for accesses to service vendor services by eliminating the need for building a path through the network all the way from the vendor to the subscriber, and by integrating call processing functions with call destination (vendor) subscriber interface functions in a finite state machine call processing structure. Proxy vendor call processing also reduces the overall cost of giving subscribers access to a service, by sharing among the subscribers a single path from the vendor to a service access point within the network.
The proxy vendor structure provides access points within the network for certain vendor services, notably video broadcast services. Vendors contract for prearranged paths from their premises to these access points during specified time periods. These access points are near subscribers of the services, usually within remote nodes serving those subscribers.
In order to give subscribers fast response to broadcast services, the network responds to the subscribers' broadcast service requests on behalf of--as a proxy of--the broadcast service vendors. To provide this feature, the network performs the following functions:
1. Reserves network resources between vendors and their selected subscriber access points either permanently (similar to today's private or leased-time telephony facilities), or according to some prearranged set-up and tear-down schedules (in a similar fashion as channels are scheduled for the major broadcast networks today over the specialized video network), and makes the connection/disconnection from the vendors' premises to the access points according to the schedules.
2. Provides for the distribution and modification of subscriber access permissions.
3. Collects subscriber usage data on behalf of vendors for billing or study purposes.
4. Optionally performs billing functions on behalf of vendors.
5. Optionally answers subscriber servicerate queries on behalf of vendors.
To establish a proxy vendor service, a program vendor transmits requests to the maintenance and administrative processor over a communication connection. This connection is generally a data link; however, some vendors may instead wish to telephone a service representative located at a central node to place requests and provide information. In either case, the information exchanged is the same.
The vendor delivers its channels to the nearest central node, which distributes these channels to the requested access points, such as to selected remote nodes subtending the local central node and to other central nodes of the network.
To guarantee the availability of network resources at the time of need, the required resources must be reserved by each vendor for each program channel. For program channels that are to have permanently reserved resources, this is like obtaining a leased telephony line in the telephone system. However, in the network under discussion, it is possible for vendors to lease channels based on the number and duration of "time-slots" for which they wish to pay. Thus, the information that needs to be conveyed to the maintenance and administration processor includes:
1. Directory Number--Each vendor program channel is associated with a unique directory number, which the subscribers specify when they wish to view that program channel.
2. Access Points--For each program channel, the vendor specifies the access points which it wishes to reach. An access point may be a central node (and none of the remote nodes), or a central node and one or more remote nodes. This flexibility allows vendors to test-market their programming before committing to a large distribution. This capability also allows for "narrow-casting" down to the remote node level by choosing a subset of remote nodes that serves a specific interest group.
3. Schedule--For each program channel, the vendor specifies the schedule on which that channel is to be available at the specified access points.
4. Authorizations--Also for each channel, the vendor specifies a list of directory numbers of those subscribers authorized to view the channel. For each directory number in the list, the vendor may also specify a schedule of "time-slots" during which that subscriber is authorized access to that channel, thus allowing a subscriber to be authorized to watch one program but not another, even though the programs are being distributed on the same program channel (but at different times). This information can be provided at the time the channel reservation is established. However, it may also be provided (and previous authorizations may be changed) anytime thereafter, as long as the contract for channel reservation exists.
Once given the above information, a resource reservation and scheduling function of the maintenance and administration processor 205 determines the best route or routes by which to deliver the program channel to the specified access points. Specific feeder channels within the network do not need to be reserved; the resource reservation and scheduling function only needs to reserve any one of the available feeder channels to the access point for the time period in question. When a specific program channel is to be activated, the resource reservation and scheduling function requests that the central node to which the vendor is connected establish a call from the vendor's channel to the specified access point(s) according to the pre-established route(s).
The primary storage of authorization data is the maintenance and administration processor. Therefore, after the program channel has been connected to the access points, the subscriber authorizations are sent to the remote module processors that own the access points. These authorizations remain in effect until: (1) the channel is deactivated, or (2) unti they are explicitly changed by the vendor, or (3) until they are implicitly changed by the prearranged schedule of "time-slots" as described above. For real-time considerations, a proxy vendor services table (PVST) is kept in the database of each remote module processor. The PVST contains translation and access rights data for all proxy vendor services currently being provided at remote nodes controlled by the remote module processor. If a proxy vendor service is provided at several remote nodes among those controlled by the remote module processor, then that service will have several entries in the table. The PVST allows call processing to determine quickly whether a subscriber is authorized to receive a particular program channel. When a program channel is to be disconnected, the resource reservation and scheduling function requests that the feeder channel be freed and that authorizations for the program channel be discarded.
Optionally, as a service to vendors, the network can collect usage data on behalf of vendors to allow them to produce subscriber bills as well as gather statistics on their channel utilizations. An additional service that the network can perform is that of producing subscriber bills for the vendors, and possibly including these bills with the subscriber's other communication charges. This is an especially attractive service for small vendors who may not have automated billing systems.
The other aspect of usage data collection, that of statistical analysis, is important for vendors to measure the popularity of their programming material. This capability, combined with the ability to distribute channels to central nodes without necessarily distributing to remote nodes, allows vendors to test-market programs to various geographic areas at a lower initial cost. After analyzing the usage data, vendors know which (if any) remote nodes are candidates for connection on a full schedule basis. Likewise, this information allows vendors to assess the relative increase or decrease in popularity of any given program.
A subscriber interface requests connection to a proxy vendor service for its owner just as it would request any other service, using the same message protocol. The instance of proxy vendor call processing 8002 that controls the access point receives each such request and responds to it on behalf of the vendor, acting as the vendor's proxy. The received messages are handled and services are provided by proxy vendor call processing 8002 in much the same way as messages are handled and services are provided by point-to-point call processing 8001, the exception being that a single process within a remote module processor 203-204 handles all proxy vendor messages from, and proxy vendor service provision for, all subscribers served by that processor, i.e., handles the vendor's end of calls on behalf of all vendors serving those subscribers.
PROXY VENDOR PROCESS (FIGS. 17 AND 18)
A process 500 in which proxy vendor functions are executed is illustrated in FIG. 17. For ease of reference, this process is referred to as the proxy vendor process. (This is the same process used by the message router, and parts of the Resource Manager.) The proxy vendor process 500 includes the collection of routines 503 of proxy vendor call processing 8002, which routines 503 are called directly (i.e., without messages or context switches) by message router 8000 and resource management subsystem 803. When a message is received from a subscriber interface, message router 8000 checks the message parameters against the proxy vendor services table to determine if a proxy vendor service is being requested. Such a message might be, for example, a request to set up a call to a service vendor, or to perform some control operation on an already existing proxy vendor call. If the message is a request for a proxy vendor service, a proxy vendor call processing routine of the routines 503 that corresponds with the message is invoked, which routine then executes as a subroutine within the same process as message router 8000. Context switches are thus avoided. If the message is not a request for a proxy vendor service, it is forwarded by message router 8000 to the appropriate point-to-point terminal process.
Interactions of proxy vendor process 500 with other entities of the network is illustrated in FIG. 18. Events serving as input stimuli to proxy vendor process 500 are messages from subscriber interfaces 400, subroutine returns from systems 801-803, and messages from reset and initialization 8003 triggering subscriber reset. In performing its functions, proxy vendor process 500 calls on subsystems 801-803, and returns messages to subscriber interfaces 400.
The following types of messages from a subscriber interface potentially apply to a proxy vendor service:
SETUP--First service request of a new subscriber session. This is analogous to turning on a television and tuning it to some first channel.
REORIG--Request a new service when already receiving a service. This is a "channel-change".
CLEAR--Terminate a subscriber session. This is analogous to turning off a television set.
HOLD--Put the service on hold, without terminating the session or deallocating any resources. This might be a side effect of changing the subscriber channel with which the service is associated--for example, the service might be redirected from the subscriber's family room to a bedroom.
DISASSOCIATE--Put the service on hold, deallocating the resources for the connection from the subscriber premises to the remote node.
ACCEPT--Restore a held service to active use. This might also be used to change the subscriber channel on which the service is received.
Proxy vendor calls cannot be transferred, nor can they be associated with point-to-point conferences.
If, in order to perform the requested operation, switch operations must be performed, proxy vendor process 500 calls on resorce management subsystem 803 to perform the switch operation. When a previously requested switch operation pertaining to a proxy vendor call is completed, resource management subsystem 803 so signals proxy vendor process 500 by calling one of two proxy vendor call processing functions:
CREPLY--Signals completion of a CONNECT operation. Possible contexts include completion of a new call and completion of an ACCEPT operation reactivating a call previously put on hold or diassociated.
DREPLY--Signals completion of a DISCONNECT operation. Possible contexts include termination of a call; putting a call on hold or disassociating it; the first step of a disconnect-connect sequence, for the purpose of moving the call to a different subscriber channel; and subscriber reset.
When a SETUP message is received from a subscriber interface and message router 8000 determines that a proxy vendor service is being requested, the proxy vendor call processing SETUP routine invoked by message router 8000 accesses the service's PVST entry to determine whether the subscriber has access rights to the requested service, and whether usage information is to be collected. If the subscriber does have access, proxy vendor call processing requests that database management subsystem 802 store an identifier for the requested service. (This identifier is the index of the service's PVST entry, known as a Proxy Vendor Service Identifier or a PVSID). Subsystem 802 is also requested to store an identifier for the subscriber channel on which the service will be viewed (a SETUP message parameter). Both identifiers are stored under a key composed of the subscriber's identifier (CUSTID) and the CALLID specified in the SETUP message. Resource management subsystem 803 is then called to make the connection, and, if the PVST entry calls for usage information collection, a log entry is posted via maintenance and administration subsystem 801. When done, resource management subsystem 803 calls a reply routine that results in proxy vendor call processing sending a STATUS message to the subscriber interface to announce that the connection has been made.
When a REORIG message is received from a subscriber interface, database management subsystem 802 is queried for data stored under the key composed of the subscriber's CUSTID and the CALLID parameter of the REORIG message. It is an error if t |