Switch controller for a telecommunications network

Information

  • Patent Grant
  • 6480597
  • Patent Number
    6,480,597
  • Date Filed
    Friday, June 12, 1998
    27 years ago
  • Date Issued
    Tuesday, November 12, 2002
    23 years ago
Abstract
The present invention is a switch controller that provides an interface between a public switched telephone network and intelligent services network components. The switch controller controls the operation of one or more programmable switches that accept calls from the public switched telephone network. Intelligent service network components are used for enhanced service processing, interconnection to external networks, and other call functions. The switch controller includes a switch controller application program. Within the switch controller application program are multiple routines that perform call processing. The design of the switch controller application program hides vendor-specific processing and service-specific processing from routines not needing the vendor-specific and service-specific details.
Description




TECHNICAL FIELD OF THE INVENTION




The present invention relates generally to providing an interface between components within a telecommunications network.




BACKGROUND OF THE INVENTION




Telecommunications service providers desire to offer enhanced services to customers. However, current technology is expensive and available only to handle large call volumes. As a result, some telecommunications service providers cannot offer enhanced services. Even if a telecommunications service provider can offer enhanced services to a calling area, the telecommunications service provider must charge rates substantially higher than other services in order to compensate for the cost of equipment.




Enhanced services are telecommunications network products that offer features that differ from traditional dial-1 service. Telecommunications network products are services provided by telephone companies that are carried on telecommunications networks. A widely known telecommunications network product is dial-1 long distance voice service which allows a customer to dial a 1 plus a ten digit number from his or her home telephone, talk to a party who answers the telephone on the line of the ten digit number dialed, and pay for the telephone call when billed at the end of the month.




Although dial-1 is popular, other services, referred to as enhanced services, are sometimes preferable. Some enhanced services allow customer calling and payment options that differ from traditional dial-1 service. For example, debit calling allows an individual to make a call from a phone other than their home phone and charge the call to the debit account. With debit calling, also referred to as prepaid calling, a customer puts funds in an account and has those funds debited each time a telephone call is made. Another calling and payment option is collect calling in which the call is billed to the receiving party's account. However, enhanced services are not limited to other calling and payment options. Enhanced services can provide a customer with information such as access to news and weather. Another enhanced service is 1-800-MUSICNOW which gives a telephone caller the ability to select and listen to music and then order a recording of the music by entering selections in response to menu prompts using the keypad of the telephone.




Enhanced services are possible because intelligent services networks (ISNs) within telephone companies telecommunications networks have advanced capabilities needed to process the enhanced service calls. Much of the advanced capability is provided by two particular components within the intelligent service network, the automatic call distributor (ACD) which provides the call switching and queuing functions and the intelligent service network applications processor (ISNAP) which provides monitoring and control of queued calls for the ISN.




Unfortunately, ACDs are typically only available with capacity to handle a large call volume. In addition, ACDs are generally very expensive. Because the ACD is generally expensive, the ACD typically determines the size and capacity of an ISN. Many smaller sized telecommunications carriers and private entities desire to employ ISN capability, but do not have sufficient call volumes to justify the expense of a traditional large-scale ACD. The ISN architectures that are available today cannot be scaled to the appropriate port capacity for small or moderate call volumes. This prohibits both small and large companies from utilizing ISNs where they are commonly needed. Although smaller switches are available, they are not capable of performing many ACD functions needed for enhanced services.




Another problem encountered with a large-scale ACD-based ISN is the development cost and cycle of ACDs. Often the deployment of new services for the ISN or enhancement to existing services on the ISN require modifications to the ACD. The ISN service provider must subject itself to the ACD vendor's development costs and time.




SUMMARY OF THE INVENTION




The present invention is an intelligent services network (ISN) that uses a switch controller. The switch controller controls the operation of one or more programmable switches which provide switching functionality between the telecommunications network and components on the ISN. The programmable switches perform the switching functionality traditionally performed by automated call distributors (ACDs) at a lower cost and allow for more flexibility in sizing for smaller call volumes. In addition, the switch controller provides an interface to other components on the ISN that provide interface with callers and other networks to provide enhanced service functionality and access to data and services of other networks. The switch controller performs many functions for the interface to other components on the ISN traditionally performed by (ACDs) including call routing and call queuing. However, unlike ACDs, service logic programs within the switch controller provide these functions. Service logic programs provide greater efficiency and allow the switch controller to be easily upgraded to handle new enhanced services. The switch controller also performs the functions traditionally performed by the intelligent service network applications processor (ISNAP) including monitoring and control of queued calls. In addition, the switch controller performs other functions needed for enhanced service call processing, such as functions needed for prepaid call processing.




Use of switch controllers and programmable switches in place of ACDs allows an ISN to be scaled to an appropriate port capacity for the entity desiring to provide enhanced telecommunications services. To scale an ISN to a needed port capacity, programmable switch ports can be added or removed without having to modify the switch controller or add more switch controllers. In addition, switching functions for remote programmable switches can be controlled by the switch controller. This allows a programmable switch at one ISN to be connected to a programmable switch at another ISN. Interconnection between programmable switches enables one ISN to automatically backup another ISN. An ISN can receive calls from another ISN without call transfer over the public switched telephone network.




A scalable ISN architecture allows small service providers to deploy an ISN that suits their needs. It also allows any service provider to deploy ISNs in a greater number of locations, such as in foreign countries, where a large-scale ISN may not be economically practical. Also, as the volume of traffic handled by an ISN grows, additional programmable switches may be added at marginal expense. To expand the capacity of an ACD-based ISN, a second ACD would be needed which is extremely expensive and often prohibitive. Even if a high call volume ISN is desired, an ISN with a switch controller and programmable switches can be implemented with the same capacity as an ISN with an ACD at a significantly lower cost.




An additional benefit of implementing an ISN using a switch controller and programmable switches is that because the switch controller uses service logic programs to provide enhanced services, the switch controller can be easily upgraded to handle new enhanced services. As a result, development time and costs are reduced.




Further features and advantages of the invention, as well as the structure and operation of various embodiments of the invention, are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements. The drawing in which an element first appears is indicated by the leftmost digits in the corresponding reference number.











BRIEF DESCRIPTION OF THE FIGURES





FIG. 1

is a block diagram of a switch controller environment according to one embodiment of the present invention;





FIG. 2

is a block diagram of a multipurpose intelligent service network according to one embodiment of the present invention;





FIG. 3

is a block diagram of a switch controller hardware configuration according to one embodiment of the present invention;





FIG. 4

is a block diagram of a switch controller application program according to one embodiment of the present invention;





FIG. 5

is a block diagram of an intelligent service network message interface according to one embodiment of the present invention;





FIG. 6

is a block diagram of a call control function according to one embodiment of the present invention;





FIG. 7

is a block diagram of the call state machine interface according to one embodiment of the present invention;





FIG. 8

is a flowchart of call state machine processing according to one embodiment of the present invention;





FIG. 9A

is a block diagram of dynamic detection point processing according to one embodiment of the present invention; and





FIG. 9B

is a block diagram of detection point processing based on state according to one embodiment of the present invention.











DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS





FIG. 1

is a block diagram of a switch controller environment


102


according to one embodiment of the present invention. Switch controllers


112




a


,


112




b


, . . .


112




n


are within intelligent service network ISNs


108




a


,


108




b


, . . .


108




n


to provide access for a call initiated via a public switched telephone network (PSTN)


106


to ISN components


116




a


,


116




b


, . . .


116




n


(


116


) also within ISNs


108


. Except as otherwise noted, when elements of the switch controller environment


102


are referred to generally, they will be referred to with a number designation and not a letter designation.




Switch controllers


112


are the central point of control and interface within ISNs


108


. The switch controllers


112


are interconnected to programmable switches


110


to provide commands to control programmable switches


110




a


,


110




b


, and


110




n


. The LANs, WANs, and routers (or any other connectivity)


114


are connected to switch controllers


112


and the ISN components


116


to provide connectivity between the switch controllers


112


and the ISN components


116


. Exemplary ISN components


116


include manual operator consoles (MOCs), automated response units (ARUs), databases, and protocol converters. The MOCs and ARUs are personal computers (PCS) that interact with a caller to provide operator services, customer services, and other enhanced services. Databases contain stored information and may be a single database or multiple databases connected to and controlled by a server system. Protocol converters are connected to external networks and resources


118


and provide protocol conversion and other processing necessary for interface between the PSTN


106


and external networks and resources


118


. Intelligent service networks


108


are described in further detail in copending U.S. patent application Ser. No. 09/096,936, filed Jun. 12, 1998, entitled, “Intelligent Service Network Using a Switch Controller” incorporated herein by reference. The ISN components


116


will be described in further detail with respect to FIG.


2


.




The switch controller environment


102


includes components external to ISNs


108


. In addition to one or more ISNs


108




a


,


108




b


, . . .


108




n


, the switch controller environment


102


includes one or more calling devices


104




a


,


104




b


, . . .


104




n


(


104


), such as a telephone, a public switch telephone network (PSTN)


106


, and external networks and resources


118


. The calling device


104


used by the caller is connected to PSTN


106


. The PSTN


106


provides switching and connectivity to the ISNs


108


. The ISNs


108


may provide enhanced service functionality, network integration, and other functions. Network integration is illustrated using exemplary ISN component


116




b


that is connected to external networks and resources


118


. External networks and resources


118


include financial processors, information databases, and Internet facilities. Exemplary ISN component


116




b


provides an interface to one of the external networks and resources


118


. In addition to providing connectivity to external networks and resources


118


, the ISN components


116


provide enhanced service call processing. Exemplary enhanced services include manual operator service, prepaid calling, calling card, 1-800-COLLECT, and 1-800-MUSICNOW.




The ISN environment


102


can best be described referencing the processing of a typical call. The exemplary call will be for a service that requires human operator intervention. The call is placed by a caller using a calling device


104


A. Calling devices


104


are any devices that can place or receive a call. Exemplary calling devices


104


include telephones, facsimile machines, and personal computers.




The call is received by PSTN


106


. The PSTN


106


comprises multiple telecommunications networks including local exchange networks and interexchange networks. A local exchange network comprises switches and termination equipment within a localized area. An example of a local exchange network is a local telephone operating company network, such as Bell Atlantic. An interexchange network comprises a plurality of switches, also referred to as exchanges, distributed throughout a geographic area large enough to process long distance telephone calls. For example, a national interexchange network comprises switches located throughout the nation. When the call is routed to either a local exchange network or an interexchange network, the call is routed to one or more switches within the network.




The PSTN


106


is interconnected to a programmable switch


110


A within an ISN


108


A. Programmable switches


110


have basic switching matrices that provide switching functionality for access to ISNs


108


. An ISN


108


A may include one or more programmable switches


110


interconnected to one switch controller


112


A or to additional switch controllers


112


B-


112




n


. Configurations of ISNs are illustrated in more detail in copending U.S. patent application Ser. No. 09/096,936, filed Jun. 12, 1998, referenced above. Programmable switches


110


are dumb switches that can connect ports and process calls based on external commands. Examples of programmable switches


110


include those built by Excel and Summa Four. Excel programmable switches


110


come in sizes ranging from 512 ports to 8,000 ports.




The ISN


108




a


has a sizable architecture because the number of programmable switches


110


and the configuration of the programmable switches


110


can vary depending on the desired port requirement of the ISN


108




a


. Programmable switches


110


manufactured by Excel can support various signaling systems such as Signaling System Number 7 (SS7) and can be connected directly to the signaling network of a PSTN


106


. If multiple programmable switches


110


are interconnected to one or more switch controllers


112


, connections between the programmable switches


110


and the switch controllers


112


may be via a LAN (not shown), such as an Ethernet LAN, using transmission control protocol/internet protocol (TCP/IP). The TCP/IP is used by various data networks including many Internet servers.




Each of the programmable switches


110


is connected to the PSTN


106


via voice telephony trunks, also referred to as lines. Typical telephony trunks are capable of carrying high speed digital data.




The voice trunk connectivity between the programmable switches


110


and the PSTN


106


includes equipment that provides signaling functionality. Equipment within telecommunications networks send signals to each other to communicate information for call processing, such as the origination and destination information, current state of the call processing, equipment being used for the processing, etc. Even if equipment is in-service, if it is incapable of signaling to other equipment, it cannot be used for call processing. Because of the importance of signaling to call processing, sophisticated signaling techniques are used, such as signaling system number 7 (SS7) protocol. Specialized equipment within the telecommunications network (not shown) provides SS7 functionality. Signaling System Number 7 may be implemented using Token ring LANs (not shown) connected to a signal transfer point (not shown). If the programmable switch is not capable of SS7 signaling or other signaling used by the PSTN


106


, the ISN


108


architectures may include a signaling gateway between the signaling transfer point and the programmable switches


110


to facilitate in conversion between the signaling used by the programmable switches


110


and the signaling used by the PSTN


106


. The current industry standard of SS7 protocol is published in the International Telecommunications Union (ITU) Signaling System Number 7 (SS7) Integrated Services Digital Network (ISDN) User Part (ISUP) NCT1.113 (1995) document and the International Telecommunications Union (ITU) Signaling System 7 (SS7) Message Transfer Part (MTP) NCT 1.111 (1992) document which are incorporated herein by reference in their entirety.




Exemplary switch controller


112




a


is connected to programmable switches


110


to provide external commands to control call processing. The switch controller


112




a


provides the commands to exemplary programmable switch


110




a


carrying the exemplary call to perform call processing functions. When the programmable switch


110




a


receives the call from the network it sends a message to the switch controller


112




a


. The switch controller


112




a


determines the call processing needed and returns commands to the programmable switch


110




a.






In addition, the switch controller


112




a


provides access to ISN components


116


. The switch controller


112




a


interfaces with ISN components


116


via LANS, WANs, routers (or any other connectivity)


114


using network information distribution system (NIDS) sequenced packet protocol (NSPP) on top of user datagram protocol/internet protocol (UDP/IP). The NSPP is a session oriented packet exchange protocol that is implemented over UDP/IP. It is designed to allow rapid information exchange between client applications and NIDS server processes. The use of TCP/IP between switch controller


112


A and the programmable switch


110


A and the use of NSPP/UDP/IP for communications via LANs, WANs, routers (or any other connectivity)


114


illustrate exemplary protocols but communication is not limited to these protocols.




The ISN components


116


include components that provide enhanced service functionality and connectivity to external networks and sources


118


. The ISN components


116


will be described in further detail with respect to FIG.


2


.





FIG. 2

is a block diagram


202


of a multipurpose ISN


203


. The multipurpose ISN


203


illustrates exemplary ISN components


116


that may be included in ISNs


108


. The switch controller


112




a


has the capability to interface with the various types of ISN components


116


in order to process calls.




In addition to the ISN components


116


and the switch controller


112




a


, the multipurpose ISN


203


includes one or more programmable switches


110




a


,


110




b


. . .


110




n


(


110


) that provide an interface via connections to the PSTN


106


. The programmable switches


110


are interconnected to the exemplary switch controller


112




a


. The switch controller


112




a


is connected to the ISN Ethernet LAN


214


which is one embodiment of LANs, WANs, and routers (or any other connectivity)


114


. Except as otherwise noted, when elements of the multipurpose ISN


203


are referred to generally, they will be referred to with a number designation and not a letter designation.




Various types of ISN components


116


include intelligent peripherals, databases and servers, protocol converters


232


, and personal computer (PC) systems that provide configuration and management of the switch controller


112




a


and/or the programmable switches


110


. The switch controller


112




a


includes the capability to interface with the different types of ISN components


116


as will be described in further detail with respect to FIG.


4


.




Connected to both the programmable switches


110


and the ISN Ethernet LAN


214


are intelligent peripherals including manual operator consoles (MOCs)


210




a


,


210




b


, . . .


210




n


(


210


), automated response units (ARUs)


204




a


,


204




b


, . . .


204




n


, and other intelligent peripherals


212




a


,


212




b


, . . .


212




n


(


212


). The MOCs


210


are PC workstations that are operated by live operators or call center agents to provide operator services, customer services, and other enhanced services requiring human operator intervention. The MOCs


210


are housed in an Operator Network Center (ONC) (not shown). An ONC is a site that houses the MOCs


210


. The ONC may be physically remote from the other components of the multipurpose ISN


203


. The MOCs


210


are connected to a distinct ONC LAN which is also an Ethernet LAN. The ONC LAN and the ISN Ethernet LAN


214


are connected via routers, and essentially operate as a single LAN, shown as the ISN Ethernet LAN


214


in FIG.


2


. The ONC LAN also includes various servers for system monitoring, booting (system initialization), and other applications.




The ARUs


204


are comprised of network audio servers (NASs)


206




a


,


206




b


, . . .


206




n


and automated call processors (ACPs)


208




a


,


208




b


, . . .


208




n


. The ARUs


204


are used to provide automated operator services and interactive voice response services. The ACPs


208




a


,


208




b


, . . .


208




n


(


208


) are high performance personal or midrange computers that perform intelligent application processing to determine which services to provide. The NASs


206




a


,


206




b


, . . .


206




n


(


206


) are specialized computers equipped with telephony ports which provide audio responses and collect caller input via dual tone multifrequency (DTMF) signals and voice recognition based on commands provided by the ACP


208


. The ACPs


208


communicate with the NASs


206


via LANs, WANs, and routers (or any other connectivity)


114


. Each ARU


204


and MOC


210


is connected to one or more programmable switches


110


via voice trunks. Both MOCs


210


and ARUs


204


are also referred to as agents. Other intelligent peripherals


212




a


,


212




b


, . . .


212




n


(


212


) can be used in an ISN to provide various call services. Other intelligent peripherals


212


are also connected to one or more programmable switches


110


via voice trunks.




Additional examples of ISN components


116


are NIDS servers


216




a


,


216




b


, . . .


216




n


(


216


) and the NIDS database


218


. The NIDS servers


216


are connected to the ISN Ethernet LAN


214


and to the NIDS database


218


. A NIDS database


218


stores data related to call processing such as customer accounts and routing translations. When an ISN component


116


, such as an ARU


204


or a MOC


210


, receives a call, it may query a NIDS server


216


via the ISN Ethernet LAN


214


for data stored in the NIDS database


218


. In addition, NIDS servers


216


receive data from mainframe-based systems


224


to be used during real time call processing. Mainframe databases and a data distribution system (DDS)


224


are connected to a token ring LAN


222


. The token ring LAN


222


is connected to the NIDS servers


216


. Order entry and data management functions are performed within mainframe based systems


224


. Mainframe computers are used as the databases of record for call processing data. The DDSs distribute call processing data stored in mainframe computers over a token ring LAN


222


to each NIDS server


216


. In addition, other service application database servers


220




a


,


220




b


, . . .


220




n


(


220


) are connected to the ISN Ethernet LAN


214


and to the token ring


222


. An exemplary other service application database server


220


is a server to process prepaid calls.




The ISN components


116


also include protocol converters


232




a


,


232




b


, . . .


232




n


that convert between various telecommunications protocols. Protocol converters


232


provide protocol conversion between different protocols such as TCP/IP, NSPP on top of UDP/IP, and packet switching protocols, such as X.25. Exemplary components that perform protocol conversion are the advanced intelligent network gateway (AIN) described in U.S. patent application Ser. No. 08/967,339, filed Oct. 21, 1997, now U.S. Pat. No. 6,229,819, entitled, “Advanced Intelligent Network Gateway”, and the validation gateway described in U.S. patent application Ser. No. 08/956,220, filed Oct. 21, 1997, now U.S. Pat. No. 6,160,874, entitled, “Validation Gateway,” incorporated herein by reference. The capabilities of the components described in the previously referenced applications are not limited by the examples given and are defined by the scope of the claims in the applications.




Protocol converters


232


are connected to external networks and resources


118


. Exemplary external networks and resources


118


include financial processors with credit card information, the Internet, and other databases, such as those used in processing international calls.




Additional ISN components


116


include computers for system management


226


, force management


228


, and provisioning/configuration


230


. Each of these systems may be implemented on a different computer, such as a PC workstation, as is shown in FIG.


2


. Alternately, they can be embodied on the same computer workstation, and can even be the same process and GUI. System management


226


includes system monitoring of the switch controller


112


A and the programmable switches


110


, collection of alarms, call state monitoring, call state triggering, resource monitoring, and resource state triggering. Force management


228


is the management and monitoring of a ONC's work force (i.e. agents). Force management


228


receives a download of statistical and historical agent information through the interface and uses the information to monitor and manage the agent population supported by the switch controller


112




a


. Provisioning and configuration


230


includes the provisioning and configuration of programmable switch resources


110


(i.e. ports), ARU


204


, MOC


210


, and other intelligent peripheral


212


resources, and other resources. Computers that perform system management


226


, force management


228


, and provisioning/configuration


230


, are connected to the ISN Ethernet LAN


214


. This provides an interface to the switch controller


112


.




Additional information concerning ISN components


116


is provided in copending U.S. patent application Ser. No. 08/956,232 filed Oct. 21, 1997, now U.S. Pat. No. 6,188,761, entitled, “A System and Method for Providing Operator and Customer Services for Intelligent Overlay Networks,” incorporated herein by reference.





FIG. 3

is a block diagram of the hardware configuration of an ISN


108


. The switch controller


112


, programmable switches


110


, and ISN components


116


of the present invention are preferably implemented using computer systems as shown in

FIG. 3. A

computer system includes a processor, such as processor


304


connected to bus


316


. Also connected to bus


316


is main memory


306


(preferably random access memory, RAM) and secondary storage devices


308


. The secondary storage devices


308


include, for example, a hard drive


310


and a removable storage medium drive


314


(such as a disk drive, for example).




The application programs of these components are preferably computer programs that reside in main memory


306


while executing. When executing, the computer programs enable the computer system to perform the features of the present invention as discussed herein. Thus, the application program represents a controller of the computer system (and of the processor


304


). Alternately, the application program is predominately or entirely a hardware device, such as a hardware state machine.




In one embodiment, the present invention is a computer program product (such as removable storage medium


314


, representing a computer storage disk, compact disk, etc.) comprising a computer readable media having control logic recorded thereon. The control logic, when loaded into main memory


306


and executed by processor


304


, enables the processor


304


to perform the operations described herein.





FIG. 4

is a block diagram of switch controller application program


402


. The switch controller application program


402


resides in memory of the switch controller


112


. The switch controller application program


402


may reside in main memory


306


or in a secondary memory device


308


such as the hard disk


410




a


or the removable medium


314


. The switch controller application program


402


resides in memory while executing. The switch controller application program


402


is executed by processor


304


.




The switch controller application program


402


comprises multiple routines. Software routines, also referred to as functions and processes, are elements of a computer program or application program. Software routines are sub-sets of a computer program or application program (i.e., groups of lines of code) that perform one or more functions. The software routines within the switch controller application program


402


form the computer software code of the switch controller application program


402


and reside in memory while executing. Software routines are processed by processor


304


during processing of the switch controller application program


402


.




The software routines of the switch controller


112


are categorized into five functions: programmable switch support function


404


, call control function


406


, service control function


408


, resource control function


410


, and management interface function


412


. Communication between the software routines of the switch controller


112


is performed using switch controller application programmer interface (SCAPI) messages. The switch controller application programmer interfaces and SCAPI messaging is described in further detail in copending U.S. patent application Ser. No. 09/096,937, filed Jun. 12, 1998, entitled, “Switch Controller Application Programmer Interface” incorporated by reference herein.




The programmable switch support function


404


provides an interface between switch controller


112




a


and a programmable switch


110




a


. The programmable switch support function


404


translates messages between a generic switch controller application programmer interface (SCAPI) message format and programmable switch API message format, manages message header/trailer requirements, and controls connectivity to the programmable switch


110


. The generic SCAPI message format is used for messages transmitted between the routines of the switch controller application program


402


within the switch controller


112




a


. Further description of the programmable switch support function is provided in Table 1 below.












TABLE 1











Switch Support Module Functions












Function




Description









Translation of Switch




One to one translation between Switch






Controller “generic”




Controller API message format and Excel






messages to/from Excel




message format. ISUP messages are passed






specific format




unmodified to the Call Control process. The







programmable switch support function







encodes and decodes the matrix specific







message set, extracts call processing







information from the messages, and







encodes/decodes the messages in the generic







Switch Controller API (SCAPI) format.






Manage Excel message




Hides switch-specific interface details, such






header/trailer




as API message framing, checksum, retries,






requirements




sequence numbers. For messages sent to the







programmable switch, generate the framing







and sequence numbers required for each







message and generate the trailing checksum.






Routing of translated Excel




Switch management and status messages are






messages to the appropriate




routed to the System Control process. Call






process




Control messages are routed to the Call







Control Process. Switch alarm messages are







routed to the System Management Interface







process.






Controlling connectivity




Initiate and manage redundant TCP/IP socket






to the Excel switch (Switch




connections to the active and standby switch






management)




matrix CPUs. Responding to Excel switch







“poll” messages. Comparing consecutive







“poll” messages for a change in state which







requires notification to the System Control







process.






Implementing “macro”




“Initialize” macro request, which attempts a






switch control functions for




connection to the switch, compares the latest






the System Control Process




poll information to the initialization paramet-







ters and possibly performs the following







steps:







Setting the internet protocol (IP)







address of each Switch CPU.







Downloading the system software.







Re-connecting to the switch matrix.







Compare the status returned in the poll







message and acknowledge the System







Control.







Report any errors to the System







Control.







Configure macro request, which provides:







An ordered list of configuration files







are read and parsed in a serial fashion.







As the file is parsed, Excel







configuration messages are encapsulated







with the appropriate header and trailer and







transmitted to the switch.







All errors are reported to the System







Control, indicating that the affected re-







sources did not configure properly.







Once all files are parsed, acknowledge







the System Control process.














The call control function


406


provides service independent call processing. The call control function


406


is designed generically and is not service specific. Service specific features are handled by the service control function


408


. The call control function


406


includes a call state machine that is used for call processing. The call state machine performs call processing by analyzing call processing information with respect to the current state as defined by the basic call state machine model. The call state machine will be described in further detail with respect to

FIGS. 6 and 7

.




The call control function


406


performs various functions including but not limited to: detecting an incoming call, creating an originating call model, collecting originating dial digits, requesting analysis of the digits, selecting trunk groups, creating a terminating call model, composing and sending messages to the terminating agent or party, detecting Integrated Services Digital Network User Part (ISUP) messages, detecting disconnect signals, and triggering enhanced services. The ISUP messages are described in further detail with respect to FIG.


5


. The call processing functions performed by the call control function


406


are described in further detail in Table 2.












TABLE 2











Call Processing Functions of Call Control Function












Function




Description









Detect incoming call




Arrival of initial setup message from the net-







work (e.g., initial address message IAM)






Originator allocation




Creating Originating call model (may be







basic call state model)






Receive digits




Collecting originator dialed digits (from IAM)






Translate digits




Request analysis of the digits to determine an







Operator group to handle the incoming call






Router




Select the right trunk group






Terminal allocation




Creating Terminating Call Model






Signal terminating agent




Compose and send messages to the terminating







agent






Detect answer




Detect answer message; Collect billing data






Detect disconnect




Detect disconnect message; Collect billing data






Trigger features and




Analyze static criteria in order to initiate fea-






services




ture and service processing allow per call cri-







teria to be set via a well defined set of rules in







order to initiate feature and service processing














The call control function


406


allocates a region of memory, referred to as a call data block. The call data block is used as transient storage for call data. Data in the call data block is accessible to the other switch controller application program


402


functions. Use of the call data block allows the service specific processing to be performed by a function, specifically the service control function, that is separate from the call control function


406


. The call data block is a table within resource management


422


. Data in the call data block is accessed using resource management application programmer interfaces. The call data block will be described in further detail in copending U.S. patent application Ser. No. 09/096,939, filed Jun. 12, 1998, entitled “A System and Method for Resource Management” incorporated by reference herein in its entirety. Data stored by the call data block is described further in Table 3.












TABLE 3











Call Data Block Information












Call Data Block







Information




Description









Call Identifier




A unique ID which is given to a call within the







network






Call State




The call state (e.g., call setup, speech, etc.)






Leg Identifiers




ID of legs in the call






Leg States




States of legs in the call






Originating Call Model




A pointer to the call record associated with the






Record Pointer




originating call model






Terminating Basic Call




A pointer to the call record associated with the






Model Record Pointer




terminating call model






Billing Time Points




Time stamps generated during a call that are







used to determine the appropriate charge to be







billed to the customer.






Call Statistics




Statistics for total calls handled by the call con-







trol function 406 for a specified period of time.







Call statistics are useful for performance







information and capacity requirements.














As shown in Table 3 above, billing time point data is stored in the call data block. Billing time point data is one or more time stamps that are generated during the call. The time stamps indicate that progress of the call which is used to determine the appropriate charge to be billed to the customer. For example, if a customer's call proceeds to an agent position but the agent does not complete processing, the customer may be billed differently than both a customer that simply initiated a call but did not proceed to an agent position and a customer that completed a call. The billing time points stored in the call data block are shown in Table 4 below.












TABLE 4











Billing Time Points












Time Stamps







Generated




Description









TP1




The time Switch Controller detects an incoming call






TP4




The time a call is offered to an Agent Position






TP6




The time the Agent port is done with the call






TP6




The time which Switch Controller detects an Answer






TP7




The time which Switch Controller detects







Re-organization DTMS sequence






TP7




The time which Originator Disconnects






TP7




The time which Terminator Disconnects






TP7




The time which call Park Timer expiration






TP7




The time Switch Controller transfers a call to another







Switch Controller if there are no Manual (or







Automated) Operators to handle the incoming call














Call statistics are also stored in the call data block


1


(shown in Table 3). Call statistics are calculated for total calls handled by the call control function


406


for a specified period of time. An exemplary call statistic is the number of calls processed successfully by the call control function


406


. Call statistics are useful for performance information and capacity requirements. Additional call statistics are shown in Table 5 below.












TABLE 5









Call Statistics Maintained by the Call Control Module























Call attempt notification






Calls receiving Congestion Treatment






Calls processed successfully






Billing timepoints






Processor outage statistics






Busy Hour Statistics






Total number of calls that were in queue and got abandoned due to timeout






Time before call was answered






Operator statistics (operator connect time, type of call, number of






transfers)






Real time statistics (queue statistics, agent status)






Total number of trunk group congestions














A subset of the call statistics is alarm and notification data. Alarm and notification data is collected and used to produce the call statistics shown in Table 5 above. Alarm and notification data tracked by the call control function


406


is shown in Table 6 below.












TABLE 6











Alarms and Notifications Tracked by the






Call Control Function













Alarm/








Notification




Alarms and Notifications




Configurable






Type




Tracked




Components









Call




Queue timeout




Severity Level,






Abnormally




Queue overflow




Alarm Description,






released




No route available




Action







All routes busy




Recommendation







Vacant destination number (DN)







(no translation)







Protocol timeout







System failure







Invalid Call State







Long Call Disconnect






Call Control




Low memory






Failure




Message Buffer High Water Mark







Corrupt Call State







Call congestion







Switch outage







Queue Congestion







Resource Congestion






Invalid





Severity Level,






Event/Message





Alarm Description,








Action








Recommendation






Recovery





Severity Level,






Mode





Alarm Description,








Action








Recommendation














The service control function


408


includes a switch service process


414


which is an interface to the ISN components


116


and one or more service logic programs that provide enhanced service call processing. The service logic programs include group select


416


, call queuing


418


, and other service logic programs


420




a


,


420




b


, . . .


420




n.






The use of service-specific service logic programs within the service control function


408


hides service-specific features from the remaining call processing functions. Service logic programs provide flexibility to the switch controller


112


design because new services can be added by simply adding a service logic program rather than modifying the call control function


406


and functions that interact with the call control function


406


.




The group select service logic program


416


assists in routing calls by identifying groups of ports associated with the type of ISN component


116


needed to process the call. For example, if a call requires processing with an intelligent peripheral, such as a manual operator console


210


, the group select service logic program


416


determines the groups of ports on the programmable switches


110


associated with manual operator consoles. As shown in

FIG. 2

, intelligent peripherals have voice circuit connections with ports on the programmable switches


110


. Programmable switch


110


ports are grouped by the type of intelligent peripheral to which the port terminates. The group selected service logic program


418


determines the port groups of the intelligent peripheral type needed to process the call. The type of intelligent peripheral required is determined by analyzing the incoming digits.




A second service logic program used for call routing is the call queue service logic program


418


. After the type of ISN component


116


needed to handle the call is determined, the call queue service logic program


418


uses an algorithm based on availability to determine which group, among the groups corresponding to the needed type of ISN component


116


, should receive the call. The call queue service logic program


418


has the capability to send the call immediately to an available ISN component


116


or to queue the call to a group. Queuing a call holds the call for a period of time and perhaps apply treatment (i.e., play music). Call queues are managed based on thresholds such as a threshold number of calls that may be in a queue. If a call comes into an ISN


108


and all of the queues for the type of ISN component


116


needed to process the call have the number of calls specified by the threshold, the call will be transferred to another ISN


108


or the caller will be denied the ability to place the call. The call queue SLP


418


generates the commands needed to hold the call in queue on the programmable switch


110


, determines call treatment, determines how long a call should be queued, determines when a queued call should be dropped, and determines if a queued call should be transferred.




Additional information about each of the processes within the service control function


408


is provided below in Table 7.












TABLE 7











Processes of the Service Control Function













Process




Description




Major Functions









Switch




The Switch Service process serves




NIDS session maintenance






Service




as the interface process between




Transmission control (TC)






Module




ISN components and the other




message encode and de-







processes within the Switch




code -- Messages to ACP







Controller. This process




and MOC are converted







implements NIDS server interface




from internal SCAPI







towards ISN MOC and ARU




format to TC format.







clients




Routing of TC message to/








from internal Switch Con-








troller processes:








Call processing related TC








message from ACP and








MOC are passed to Opera-








tor Service Logic process








within the Switch








Controller.








Agent status related








messages are passed to








System Control Process








within the Switch








Controller








Service Logic Program








Interface








Send and receive modules








that provide timing and








interface with UDP/IP and








TCP client






Group




Group select process implements




Maintain ISN component






Select




business-specific algorithm for




groups per product or






Module




selecting ISN component groups to




service supported.







handle incoming calls. Group




Analyze incoming call







selection of ISN components




parameter such as access







provides the ability to route




number to select a group.







incoming calls to the correct type




Maintain group statistics.







of ISN component based on the




Map terminal identifier







incoming call parameters such as




(TID) to a voice port.







access number. The call control







function requests this process to







obtain groups that are associated







with ISN components that can







handle a particular incoming call.







This process consults its internal







group select tables and returns the







group identifier.






Call




The process checks the availability




Determine using algorithm






Queu-




of ports on the ISN components




if port available






ing




within a group. It implements the




If no port available, queue






Module




logic to queue the process when no




call and set timer







port is immediately available. The




If port becomes available







call control function requests this




before expiration of timer,







process for an available port within




allow call to proceed







a specific group.




If timer expires, release call








Notify the call control








module








Every queue is configured








with a queue timer that de-








termines the maximum








duration the call can wait








in the queue








Queue parameters such as








length of the queue and








queue timer are configur-








able as well as changeable








through a System








Management Console






Opera-




This process receives call




Sending/receiving call






tor




processing related messages from




processing SCAPI mess-






Service




the Switch Service process. These




ages to/from switch service






Logic




operator specific features are




process






Module




implemented in this process as




Implements state event







service state event machines. These




machines for operator ser-







state event machines interact with




vices such as conference,







the generic call control state event




transfer, etc.







machines within the Call Control




Interact with call control







process to implement operator




function to implement oper-







specific features such as confer-




ator specific features







ence, blind transfer and third-party







call.






Net-




This process implements network




Called SubHeld Timer is






work




specific features such as Called




started when the called






Service




SubHeld Timer and Called




party releases. Call is not






Logic




SubAnswer Timer. Called SubHeld




actually released until the






Module




Timer and Called SubAnswer




timer expires. Before the







Timer are timers used during call




timer expires, the called







processing to hold the call for a




party can reconnect.







period of time.




Called SubAnswer Timer








defines the duration of








“ring No Answer” state








on the terminating end.






Prepaid




The Prepaid Service Logic Pro-




Prepaid timer logic. Timer






Service




gram implements the processing




started for the duration spe-






Logic




for prepaid service that resides




cified by the Prepaid ACP,






Pro-




within the switch controller




Active calls will be inter-






gram





preted at a configurable








time before the expiry of








this timer








Warning announcement is








initiated by this process








at the expiration of warning








timer








When a prepaid call termi-








nates, this process:








Cancels prepaid timer








Encodes Prepaid Call








Completion message








Interfaces with transmission








control protocol (TCP)








client process within the








switch service to send the








Prepaid Call Completion








message to Prepaid Service






Auto-




This process implements the trunk




Automatic Trunk Testing:






matic




test and product test requirements.




Recognize an incoming test






Trunk





call by specific pattern in






Routing





the called number field and






Service





route it to a pre-configured






Logic





test port. After this connec-






Pro-





tion, the Automatic Trunk






gram





Test equipment at either








end may exchange in-band








test tones to measure loss,








voice quality, echo etc.








Call Simulation and Pro-








duct Testing: Allow test








calls to be set up from test








trunks. The incoming test








call parameters such as








relevant SS7 fields and








other service parameters








such as card number, can








be set up via specific








screens on the System








Management Console.








Allow specific trunks to be








taken in and out of service








for testing








Allow test Operator Group








and assignments from Sys-








tem Management Center








(SMC) for Operator Train-








ing and product testing














The resource control function


208


includes two processes. The first is the system control process


424


, which is in charge of monitoring the states of a call and service-related resources. This system control process


424


is centrally aware of the resource state and general health of the switch controller. The system control process


424


is described in further detail in Table 8 below.












TABLE 8











System Control Module Functions












Resource




Function Preferred









Agents




Agent Registration







Dynamic Agent Status Update







Initiates switch download and configuration







when enough agents are logged in







Instructs the call queue process when an agent







becomes available






Programmable




Receives Programmable Switch Alarms and






Switch




updates the status of affected resources







Maintains the Programmable Switch Configuration







map







Initiates programmable switch resource “discovery”







process to synch up internal resource map with the







currently active state at the programmable switch







matrix







receives “resource delete” or “resource







update” messages from the system network







management protocol (SNMP) agent and if they are for







switch resources, instructs the programmable switch







support function to communicate to the switch matrix







receives “Get resource status” messages







and interacts with programmable switch support







function to initiate querying of the switch matrix






Switch




Maintains the Switch Controller state of operation,






Controller




including recovering:







a “Switch Controller Ready” message







from process manager which may initiate a switch







download and configuration operation







When enough agents have logged in,







instructs the programmable switch to accept incoming







calls via programmable switch support function







Monitors resources, initiates incoming call







throttling mechanism when the resource utilization







exceeds configured threshold






System Wide




Monitors system-wide abnormal events and reports







to System Management Console







Capacity Overload is monitored of the







capacity of the







Processor







Process table







Memory







Shared Memory







Inbound/Outbound trunks







IMT trunks, and







Operator position







Abnormal System Events are monitored







such as failure during







Initialization







Configuration







Activation, and







Run time faults/invalid events







Forced clearing of resources are monitored,







such as







Programmable switch channel purges,







and







Call Control function initiated purges














The second is the resource management process


422


. Exemplary switch controller resource management functionality includes management of both system-related resources such as message queues and a call data block table, as well as network resources such as the programmable switch matrices and agent resources. The resource management process


422


is described in further detail in copending U.S. patent application Ser. No. 09/096,939, filed Jun. 12, 1998, entitled “A System and Method for Resource Management” referenced above. A summary of resource management


422


functions are provided in Table 9 below.












TABLE 9









Resource Management Functions

























Static and dynamic resource allocations







Read and Write access to resource data







Cross referencing between related resources







Data integrity







Create and manage message queues







Create and manage agent and group tables







Create and manage call-related information







Create and manage switch resources















The management interface function


412


includes two functional areas of monitoring control. The system monitoring functionality encompasses the generation of system alarms which allows a system management console (SMC) to monitor the status and run-time operation of the switch controller software. The management interface function


412


also includes the process manager


426


, which is responsible for initial startup and health of individual processes which make up the switch controller


112


. In addition, the management interface function


216


provides interfaces to the external management systems, including the system management system


226


, the force management system


228


, and the provisioning/configuration system


230


. Additional description of the processes within the management interface function


412


are provided in Table 10 below.












TABLE 10











Management Interface Function













Process




Description




Function









System




The Switch Controller System




Alarm monitoring






Man-




Management design includes the




Real Time monitoring






agement




two main functional areas: (1)




System Management






Inter-




monitoring and (2) control. The




Console






face




system monitoring functionality




SNMP Agent Data







encompasses the generation of




Processing







system alarms, which allow the







System Management Console to







monitor the status and run-time







operation of the Switch Controller







software modules. The Switch







Controller system monitoring







functionality is implemented using







several software interfaces and







system processes. The system







control functionality uses a system







network management protocol







(SNMP) agent design and







provides the system administrator







with the ability to control Switch







Controller resources during run-







time operation of the Switch







Controller.






Process




The Process Manager is




This is the parent process






Mana-




responsible for the initial startup




for all the other Switch






ger




and health of the individual




Controller processes. This







processes which make up the




process supports a UNIX







Switch Controller. Once the




Curses based HMI interface







Process Manager starts up, it




that is used to start up and







determines the initialization,




shutdown the Switch Con-







configuration, and activation order




troller. Commands are also







for each process within the Switch




supported to start up or







Controller. A configuration file is




shutdown any specific pro-







read and internal initialization is




cess within the Switch Con-







performed. After initialization is




troller. On startup, this pro-







complete, this process is ready to




cess reads its configuration







accept system operation




file that provides System







commands through a human




Information as well as indi-







machine interface (HMI) interface.




vidual process related







These commands are used to start




information.







up and shut-down the Switch







Controller. In addition, this







process also monitors the health of







the individual processes through a







heart-beat mechanism.






Force




This interface is used to monitor




Switch Controller provides






Man-




and manage the Agent population




the API to allow an external






agement




supported by the Switch




Force Management System






Inter-




Controller.




to query agent-related infor-






face





mation. The API set allows








down-load of statistical and








historical agent information








through a Force Manage-








ment specific interface.






Switch




The switch configuration utility is




The Switch Configuration






Con-




a stand-alone utility that provides




utility will provide the abil-






figura-




a user-friendly way of creating




ity to configure the follow-






tion




switch configuration files. This




ing entities/resources:






Utility




utility is not responsible for




Programmable switch load







changing the state of resources




file/system configuration







inside the programmable switch.




Timing Synchronization







Changing the state of resources is




Card Configurations







performed by the System




Span Configuration







Management Interface. The




Logical Span ID







output of this utility is Switch




Span framing parameters







Configuration file.




PCM encoding








configuration








DSP Configuration








Assignments








Tones








Announcement File








Download assignment








Conference Port








requirements/assignment








Channel/Trunk group








Configuration








CIC assignment -- Trunk








group assignment








PPL download/








configuration/assignment








Protocol/PPL assignments








Outsize/Insize








configuration








Answer supervision








configuration








Release supervision








configuration








SS7 Configuration








Links








Linksets








Routes








Stacks














The process manager


426


is the parent process for the other switch controller application program


402


processes. The process manager


426


is responsible for the initial start-up and shutdown of the switch controller


112


. Initial start-up is performed in part by reading a process manager configuration file. Provided below in Table 11 is the information included in the process manager


426


configuration file.












TABLE 11











Process Manager Configuration File














Type of Information




Parameters











System Information




Number of processes








List of Processes








Activation order








Process startup Retry limit and Retry timer








Shared memory size








Number of queues







Process Information




name of process








number of instances of the process to run








well-known message queue ID








heartbeat send interval








command line arguments
















FIG. 5

is a block diagram of the ISN message interface


502


. The ISN message interface


502


illustrates the external interfaces of the switch controller


112


. The switch controller


112


communicates with the programmable switch


110


via TCP/IP over either a direct cable connection or a LAN (not shown). The switch controller


112


sends messages in an application programmer interface (API) messaging format that is specified by the programmable switch


110


vendor. For example, if an Excel programmable switch is used, then an Excel API is used. The Excel programmable switch API is described in a document entitled, “Excel API specification revision 5.0.”




The programmable switch


110


uses ISUP messaging in communications with the PSTN


106


. The ISUP messaging is part of SS7, and references a layer of SS7 messaging used to perform ISN type services. The switch controller


112


controls functions needed for call set-up including performing call processing and allocating facilities, such as programmable switch


110


channels and ports and ISN components


116


.












TABLE 12











ISUP Messages Sent Between the Programmable Switch






and the Switch Controller













Abbre-








viation




Message Name




Description









IAM




Initial Address




The Initial Address Message contains the







Message




digits identifying the called and calling








parties, the type of network connection








required, the characteristics of the calling








party (payphone, etc.), and the








characteristics of the call type (voice,








data, fax, etc.). For inbound calls, the








switch controller is mainly concerned








with the called and calling party numbers








which identify the product and operator








group required to support the call.






ACM




Address Complete




The Address Complete Message







Message




contains the backwards acknowledgment








through the network that the requested








facilities in the IAM have been provided








and where compromises were made








(satellite hops, etc.). Additionally, the








ACM indicates to the intermediate nodes








that voice should be provided in the








backwards direction of the call.






ANM




Answer Message




The Answer Message indicates that the








call has been answered by the called








party and indicates to the intermediate








nodes that two way voice path should be








provided.






REL




Release Message




The Release message indicates that one








party in the call has requested to release








the connection. Additionally, the REL








message may contain various cause








codes which indicate the reason for the








termination of the call (normal and many








possible abnormal conditions).






RLC




Release Complete




The Release Complete message indicates








that a request for REL is granted from








the previous nodes in the call and that








the resources assigned to the call shall be








released.






SUS




Suspend Message




The suspend message indicates








temporary suspension of an active call.






RES




Resume Message




Follows a suspend message to indicate








that suspended call is resumed.














The switch controller


112


communicates with each ISN component


116


via NSPP/UDP/IP over the ISN Ethernet LAN


214


. The NSPP messaging is used to implement an API referred to as transmission control (TC) messaging. The TC messages include messages needed for communication between the switch controller


112


and the various ISN components


116


to handle a call. For example, for a switch controller


112


to route a call to a particular ARU


204


port, the switch controller


112


sends a “Call Offered” TC message to that ARU


204


. The messages that are part of the TC API are included in the table below.












TABLE 13











TC Messages














Message initiating








component →







message reviewing






TC Message




component




Description









TC_Call




Switch Controller →




New Call offered to the






Offered




MTOC/ACP




platform






TC_Release




MTOC/ACP → Switch




To release a call leg







Controller






TC_Conference




MTOC/ACP → Switch




Conference in a terminating







Controller




party






TC_Call Park




MTOC/ACP → Switch




Park an active call and start







Controller




call park time






TC_Count




MTOC/ACP → Switch




Connect an originator and







Controller




terminator and drop off








operator






TC_Logon




MTOC/ACP → Switch




Logon an Operator







Controller






TC_Layoff




MTOC/ACP → Switch




Logoff an operator







Controller






TC_Update




MTOC/ACP → Switch




Update status of Operator







Controller




(Ready/Not Ready)






TC_On_Hold




MTOC → Switch




Hold the specified leg (on







Controller




and off hold)






TC_Off_Hold




MTOC → Switch




Take a leg off hold







Controller






TC_Answer




Switch/Controller →




Answer indication from the







ACP/MTOC




terminating party






TC_Observe




Supervisor Console →




To observe a specific







Switch Controller




operator














The Switch Controller communicates with system management


226


via NSPP/UDP/IP over the ISN Ethernet LAN


214


. A system management (SM) API is used for messaging. Either a customized protocol or a simple network management protocol (SNMP), which is an industry standard messaging protocol for network management, may be used.




The switch controller


112


communicates with force management


228


via NSPP/UDP/IP over the ISN Ethernet LAN


214


. A force management (FM) API that is specified by the vendor of the force management system


228


is used for messaging.





FIG. 6

illustrates a block diagram of the call control function


406


. The call control function


406


comprises a call state machine


604


and a signaling protocol state machine


602


. The call state machine


604


performs call processing by analyzing call processing information with respect to the current state as defined by the basic call state machine model. The call state machine


604


will be described in further detail with respect to FIG.


7


. The signaling protocol state machine


602


manages the states of resources used for calls, such as programmable switch


110


ports and trunks and ISN component


116


ports. State transitions are triggered by ISUP messages received from the PSTN


106


and from TC messages received from ISN components


116


.




Similar to the service logic programs which hide service-specific features, the protocol state machines


602


hide programmable switch


110


protocol state-logic. Hiding service-specific state logic and programmable switch protocol state logic enables the switch controller


112


to be a generic platform flexible to work with multiple programmable switch


110


vendors and easily modifiable to handle new services.




The protocol state machines


602


hide protocol specific details such as message details (e.g. transmit IAM) from the generic call state machine


604


. The protocol state machine


602


design allows multiple programmable switch


110


signaling protocols, such as Excel API and Summa


4


signaling protocol, to be supported by the same switch controller


112


. In addition, the protocol state machines


602


can accept trunks configured for different protocol variants e.g. UK ISUP, ANSI ISUP.




The call control function


406


has separate instances of the protocol state machines


602


for each resource, such as a programmable switch trunk. Because the protocol state event machines


602


are resource/trunk-specific, a call state machine


604


interacts with multiple protocol state machines


602


to control a call.





FIG. 7

is a block diagram of the call state machine


604


interface. The call state machine


604


interfaces with the programmable switch support function


404


(via the protocol state machine


602


not shown in

FIG. 7

) and the service control function


408


. The protocol state machine


602


and the service control function


408


hide all non-generic call processing functions from the call state machine


604


resulting in flexibility to handle non-generic call processing without changes to the call state machine


604


and with minimal isolated changes to other switch controller application


402


routines.




The call state machine


604


comprises two state machines for the originating and terminating legs of a call. A exemplary call is established between a calling party using calling device


104




a


and a receiving party using calling device


104




b


via an ISN


108




a


. The leg between the calling party using calling device


104




a


and ISN


108




a


is the originating leg. The leg between the ISN


108




a


and the receiving party using calling device


104




b


is the terminating leg. The call state machine


604


includes two separate state machines for the originating and terminating legs. The originating state machine


704


represents the state, referred to as the originating call state


708




a


,


708




b


,


708




c


,


708




d


, . . .


708




n


, of the originating leg of the call. The terminating state machine


706


represents the state, referred to as the terminating call state,


710




a


,


710




b


,


710




c


,


710




d


, . . .


710




n


, of the terminating leg of the call. A global state variable provides the state of a leg of a call. An originating global state variable tracks which of the originating call states


708


is associated with the originating leg of a call at a particular time. A terminating global state variable tracks which of the terminating call states


710


is associated with the terminating leg of a call at a particular time.




The separate originating and terminating state machine design allows for independent control of the originating and terminating legs. Functions such as splitting, merging and joining the originating and terminating legs of a call can be accommodated.) As a result, the separate originating and terminating state machine design provides a base for implementation of products requiring separate control of the originating and terminating legs such as multi-party conference and holding/waiting of calls. The separate originating and terminating state machine design also allows for the ability to perform call accounting and statistics per leg.




State changes occur because of detection point arming and processing resulting from a received event. Further description of state changes is provided with respect to

FIGS. 9A-9D

.




The call state machine


604


is modeled based on standard call states which are described in further detail in the International Telecommunications Union (ITU) specifications Q.1224, http://www.itu.ch/itudoc/itu-t/rec/q/q1000 up/q1218.html incorporated by reference herein. Originating call states


708


associated with the originating state machine


704


are described in further detail with respect to Table 14 below. Originating call states


708


indicating failure are described in further detail with respect to Table 15 below.












TABLE 14











Originating Call States












Originating Call State




Description









O_Null




Initial state for originating call model, allocates







internal resources






Authorize_Origination









Determines if originating Party has the author-






Attempt




ity to set up the call, based on the attributes







known so far






Collect_Information




Collects the routing and address digits required







to complete the call






Analyze_Information




Analyzes and/or translates the collected digits







according to the dialing plan to determine rout-







ing address and call types (e.g., a route list is







returned)






Select_Route




Interprets routing address and call






Authorize_Call_Setup




It verifies the authority of the calling party to







place this particular call






Send_Call




It sends an indication to set up a call to the







specified called party ID to the terminating







call model






O_Alerting




It waits for the terminating party to answer






O_Active




Connection is established between calling party







and called party. It collects accounting data.







Basic call cal be put on hold by service logic






O_Suspended




Basic call is suspended and waiting for







responses from terminating call or service logic






O_Exception




Exception event encountered






















TABLE 15











Originating Call States Indicating Failure












Originating Call







State




Description









Origination




The incoming call cannot be serviced in the Switch






Denied




Controller. For example, the access code is not







recognized






Collect_timeout




The Collect Timeout event is detected when







enough information to process the call was not







received by the Switch Controller. For example,







IAM did not contain enough information to







originate a call






Invalid




Invalid information received (e.g., Wrong number






Information




format)






Authorize




Unable to select a route. Unable to determine a






Route Failure




correct route, no more routes on the route list






Active Failure




Abnormal condition during active call (e.g.,







Hardware failure)






Suspend Failure




Failure to successfully disconnect the call






Route Failure




e.g., No more routes left to try






Route Busy




Selected route is busy






Calling Party




Calling Party has been disconnected






Disconnect






Reconnect




Originating party goes offhook before the







re-answer timer expires














Terminating call states


710


associated with the terminating state machine


706


are described in further detail with respect to Table 16 below. Terminating call states


710


indicating failure are described in further detail with respect to Table 17 below.












TABLE 16











Terminating Call States












Terminating Call







State




Description









T_Null




Initial state of the Terminating Call Model






Authorize




Verification of authority to route the call to the






Termination




terminating access






Attempt






Select_Facility




Busy/Idle status of the terminating access is







determined






Present Call




Terminating resource informed of the incoming call






T_Alerting




Terminating party alerted. Waiting for answer by







terminating party






T_Active




The terminating party has accepted the call






T_Suspended




Terminating party disconnects






T_Exception




Exception event encountered






















TABLE 17











Terminating Call States Indicating Failure












Terminating Call State




Description









Termination Denied




occurs when the authority to route the call to







the terminating user is denied; not applicable







for Day 1






Presentation Failure




e.g. C party termination failure






Call Rejected




not applicable for Day 1






Active Failure




abnormal events during active call (e.g.,







hardware failure)






Suspend Failure




failure to successfully disconnect the call















FIG. 8

is a flowchart of call state machine processing


802


. Call state machine processing


802


is described with respect to establishing an exemplary call between a calling party using calling device


104




a


and a receiving party using calling device


104




b


via ISN


108




a


. In order to establish the exemplary call, both an originating leg between calling device


104




a


and ISN


108




a


and a terminating leg between ISN


108




a


and calling device


104




b


must be established. In the exemplary call, an ISN component is immediately available and the call does not need to be queued. Call state machine processing


802


will be described with respect to relationships drawn between the switch controller application program


402


functions and call states shown in FIG.


7


.




In


806


, an ISUP message is sent from calling device


104




a


to the programmable switch


110




a


. The ISUP messages used to establish a call are described in further detail in Table 12 above.




In


808


, a programmable switch API message is sent from the programmable switch


110




a


to switch controller


112




a


. The programmable switch API message is received by the programmable switch support function


404


. The programmable switch API message varies based on the programmable switch vendor as discussed with respect to FIG.


5


. The protocol state machine


602


manages the programmable switch


110


specific details of call processing as discussed with respect to FIG.


6


.




In


810


, a first SCAPI message is sent from the programmable switch support function


404


to the call control function


406


. The receipt of the first SCAPI message is an event that is processed by the call control function


406


. The receipt of the first SCAPI message causes the originating global state variable to be set to originating call state 1


708




a.






In


812


, a second SCAPI message is sent from the call control function


406


to the service control function


408


as the result of processing associated with originating call state 1


708




a


. The second SCAPI message causes processing of the group select service logic program


416


to identify groups of ports connected to ISN components


116


of the type capable of processing the incoming call. A response to the second SCAPI message is received indicating that ISN component


116




a


is available to process the call. The response causes the originating global state variable to reflect that originating call state 3


708




c


is the state of the originating leg of the call.




In


814


, the ISN interface


414


is processed to send a TC message to an ISN component


116




a


that is available to process the incoming call. Processing of the call queue service logic program


418


is not needed because in the exemplary call, ISN component


116




a


was available immediately.




In


816


, a third SCAPI message is sent from the originating state machine


704


to the terminating state machine


706


to indicate that a terminating leg will be needed for an incoming call.




The third SCAPI message is the result of processing associated with originating call state 3


708




c


. The terminating global state variable reflects that terminating call state 2


710




b


is the state of the terminating leg of the call.




In


818


, a fourth SCAPI message is sent from the call control function


406


to other service logic programs


410


. The fourth SCAPI message is the result of processing associated with terminating call state 2


710




b


. The fourth SCAPI message inquires as to whether a TC message was received from ISN component


116




a


to establish a terminating leg for the call.




In


820


, a TC message is received from ISN component


116




a


by the service control function


408


requesting a terminating leg for the call. The TC message is processed by the ISN interface


414


. One or more of the other service logic programs


420


inquire the ISN interface


414


and determine that a TC message was received requesting a terminating leg for the call. The other service logic programs


420


that inquired respond to the fourth SCAPI message indicating that a TC message was received requesting a terminating leg for the call. The response to the fourth SCAPI message causes the terminating global state variable to reflect that terminating call state n


710




n


is the state of the terminating leg of the call.




In


822


, a fifth SCAPI message is sent from the call control function


406


to the programmable switch support function


404


to request a channel for the terminating leg of the call. The fifth SCAPI message results from processing associated with terminating call state n


710




n.







FIGS. 9A and 9B

illustrate two types of processing that cause call state changes. Call state changes may be based on dynamic detection point processing


902


or static detection point processing


906


. A detection point is a point in the processing of a call state at which the modifying features of the processing performed as a result of the call state are informed of an event the call control function


406


is about to process. The modifying features are features within the lines of code processed as a result of a call state that cause a state change.




A modifying feature may respond to notification of an event the call control function


406


is about to process with one of three actions: (1) trigger itself which will cause the call control function


406


to perform processing based on the event and the current state, (2) allow extension of call processing to a service logic program, or (3) override processing as a result of the incoming event, preempting processing that would be performed as a result of the incoming event and performing processing not associated with the incoming event. Therefore, processing is based on a current state of a call and an incoming event received unless the processing associated with an incoming event is preempted. An example of preempting processing of an incoming event is preempting call processing to reestablish a failed connection with a programmable switch


110




a.






A modifying feature triggers itself causing the call control function


406


to perform processing when the detection point is armed. A detection point is armed when a pointer or other notification means in software indicates that processing is to be performed. A detection point may be armed dynamically as shown in

FIG. 9A

or detection point processing may be based on static arming of the detection point as shown in FIG.


9


B.





FIG. 9A

illustrates dynamic detection point processing


902


. Dynamic detection point processing


902


occurs as the result of a detection point arming message


904


sent from a service logic program within the service control function


408


to the call control function


406


. The detection point arming message


904


informs the call control function


406


to arm a detection point during call set-up. The detection point arming message


904


provides a detection point identifier that can be analyzed using data stored in memory pointed to by a pointer associated with the detection point identifier.




Dynamic detection point processing


902


allows a detection point to be armed for only the particular call being processed. After call set-up is complete for the call, the detection point is no longer armed unless another detection point arming message


904


is sent. Dynamic detection point processing


902


allows service logic programs to cause the call control function


406


to perform functions for particular calls as directed by the service logic program.





FIG. 9B

illustrates static detection point processing


906


. Static detection point processing


906


is performed using configuration file


908


. Configuration file


908


is system wide. Detection points armed in the configuration file


908


are armed for all calls processed by the call control function


406


. The configuration file


908


stores arming information based on possible received events and current call states as indicated by a global state variable. When an event is received, an event handler is processed which handles initial processing needed to identify event and initiate further processing. The event handler includes an associated detection point identifier which identifies the current detection point and can be used to determine whether a detection point is armed.




While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, not limitation. Thus the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.



Claims
  • 1. A switch controller, comprising:a programmable switch support providing an interface to a programmable switch; a call control establishing a connection between two ports on said programmable switch; a service control interfacing with an intelligent service network component; a resource control monitoring the state of a call and service related resources; and a management interface providing an interface to external management systems wherein the switch controller provides external commands to the programmable switch to control call processing.
  • 2. The switch controller of claim 1, wherein said call control comprises:one or more protocol state machines; and a call state machine.
  • 3. The switch controller of claim 1, wherein said call control comprises:an originating state machine, wherein said originating state machine tracks an originating state of one or more possible originating states for an originating leg of a call; and a terminating state machine, wherein said terminating state machine tracks a terminating state of one or more possible terminating states for a terminating leg of a call.
  • 4. The switch controller of claim 1, wherein said service control comprises:a switch service process; and one or more service logic programs.
  • 5. The switch controller of claim 4, wherein one of said one or more service logic programs is one of:a group select module; a call queuing module; an operator service logic module; a network service logic module; a prepaid service logic program; or an automatic trunk routing service logic program.
  • 6. The switch controller of claim 1, wherein said resource control comprises:a resource management process; and a system control process.
  • 7. The switch controller of claim 1, wherein said management interface comprises:a process manager.
  • 8. The switch controller of claim 7, wherein said management interface further comprises one of:a system management interface; a force management interface; or a switch configuration utility.
  • 9. A method for processing a call by a switch controller, comprising:processing a switch controller application programmer interface message by a call control function within a switch controller application program, wherein said call control function comprises a call state machine, wherein the call has a call state which is one of a plurality of possible call states of said call state machine; and modifying a value of a global state variable associated with said call state to identify groups of ports enabling processing of the call, wherein the switch controller interfaces with an intelligent service network component.
  • 10. The method of claim 9, wherein processing further comprises:(i) identifying an event associated with receipt of said switch controller application programmer interface message; (ii) identifying a detection point associated with said event and said state of the call; and (iii) determining whether said detection point is armed.
  • 11. The method of claim 10, wherein processing further comprises the of:(iv) performing processing by said call control function if said detection point is armed.
  • 12. The method of claim 10, further comprising the following to be performed before processing:receiving a programmable switch application programmer interface message by a programmable switch support function within said switch controller application program; and sending said switch controller application programmer interface message from said programmable switch support function to said call control function.
US Referenced Citations (14)
Number Name Date Kind
4928304 Sakai May 1990 A
5541917 Farris Jul 1996 A
5544163 Madonna Aug 1996 A
5673299 Fuller et al. Sep 1997 A
5706437 Kirchner et al. Jan 1998 A
5790173 Strauss et al. Aug 1998 A
5825857 Reto et al. Oct 1998 A
5826030 Herbert Oct 1998 A
5912961 Taylor et al. Jun 1999 A
5920621 Gottlieb Jul 1999 A
5937042 Sofman Aug 1999 A
6058181 Hebert May 2000 A
6108337 Sherman et al. Aug 2000 A
6188761 Dickerman et al. Feb 2001 B1
Non-Patent Literature Citations (1)
Entry
Sammon et al, Personal web-based teleconferencing method and system, Aug. 23, 2001.