Patent Publication Number: US-5530742-A

Title: Intelligent communications networks

Description:
RELATED PATENT APPLICATIONS 
     This application is a file wrapper continuation (FWC) of application Ser. No. 08/311,015, filed Sep. 23, 1994, now abandoned, and is also related to copending commonly assigned application Ser. No. 08/311,759, also filed Sep. 23, 1994, now abandoned, and to copending commonly assigned application Ser. No. 08/311,751, also filed Sep. 23, 1994. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to a method of and a service node for providing services in an intelligent communications network. 
     2. Related Art 
     Before the advent of the stored program controlled (SPC) exchange, the Public Switched Telephone Network (PSTN) comprised electromechanical exchanges, such as Strowger and Crossbar exchanges, and electronic exchanges, such as TXE2 and TXE4 exchanges. However, even the most advanced of these types was only capable of performing a limited number of functions over and above merely switching a call, i.e. making a connection between an incoming channel or line and an outgoing channel. Furthermore, such additional functions were limited to operations for improving the performance of the network, for example, repeat attempt at reaching a destination number via an alternative outgoing route in the event that the first-choice route is busy. 
     SPC exchanges enabled customers to control various supplementary services via signals entered on their telephone keypad using the * and # buttons However, the introduction of a new service, or the modification of an existing service, meant that the control program had to be updated in each of the SPC exchanges. 
     The current concept of an intelligent communications network is based on a core of interconnected Main Digital Switching Units (MDSU&#39;s), with local exchanges connected to he MDSU&#39;s (usually with each local exchange connected to two MDSU&#39;s for network resilience in the event of an MDSU failure), and with services being provided and controlled by discrete service nodes at various positions in the network. 
     Each service node is connected to an MDSU of the network, which recognizes service access digits dialled by a customer and routes the call to the service node for the provision of the requested service for the customer. 
     BRIEF SUMMARY OF THE INVENTION 
     According to a first aspect of the present invention there is provided a service node for use in an intelligent communications network for providing services for customers, said service node comprising: 
     service defining means arranged to define a plurality of services; 
     a plurality of resources, each arranged to generate speech announcements in response to receipt of respective command signals and to provide an announcement finished signal when each generated speech announcement has been finished; 
     a switch arranged to connect the resources to incoming calls routed by the network to the service node; and 
     controlling means having a memory and arranged to respond to incoming calls to place details of the calls in respectively corresponding service queues, said controlling means receiving from the service defining means: 
     (a) a reserve resource request signal for reservation of a resource in respect of a call whose details have been passed to the service defining means by the controlling means from the top of a service queue, thereby associating the call with the service defining means, and to reserve an available one of the resources, 
     (b) a connection request signal for the reserved resource to be connected to the call and to control the switch, 
     (c) a command signal for the reserved resource to generate a corresponding speech announcement and to send the command signal to the reserved resource, 
     (d) a signal for disassociating the service defining means from the call and to store current details of the call in said memory, 
     (e) a signal indicating that the service defining means is ready to handle another call and to pass to the service defining means the call then at the top of a corresponding service queue, 
     and to receive from a reserved resource an announcement finished signal and to update details of the corresponding call and to pass the updated details from said memory to the bottom of a corresponding service queue. 
     Such a construction of service node enables efficient operation with the service defining means able to request a function without being involved in the management of that function, and the controlling means being responsible for selecting and relaying commands to a resource. 
     Preferably, the controlling means comprises a common resource handler having a first part responsive to receipt of the reserve resource request signal to reserve the available one of the resources, said first part also providing the identity of the reserved resource to be stored in said memory as a current detail of the call, and to provide a resource reserved signal. 
     Preferably, the common resource handler also has a second part responsive to receipt of an announcement command signal to reserve an available one of a plurality of dialogue identities, to provide the reserved dialogue identity to be stored in said memory as a current detail of the call in association with a stored reserved resource identity, and to send the announcement command signal to the reserved resource in association with a reserved dialogue identity. 
     According to a second aspect of the present invention there is provided a method of operating a service node in an intelligent communications network for providing services for customers, comprising the seeps of: 
     receiving at a switch of the service node a call routed to the service node by the network, identifying a requested service and placing details of the call in a corresponding service queue; 
     passing details of the call, when having highest priority in the service queue, to a service defining means of the service node when it is ready to process a call; 
     reserving an available one of a plurality of resources of the service node and associating the reserved resource with the call; 
     connecting the reserved resource to an incoming call by the switch in response to a command from the service defining means; 
     generating by the reserved resource a speech announcement corresponding to a command from the service defining means; storing details of a current call at the time of commanding the reserved resource and releasing the service defining means to process another call; 
     generating by the reserved resource an announcement finished signal and in response updating stored details of the call; 
     placing updated call details at the bottom of a corresponding service queue; and 
     maintaining the reservation of the resource in association with that call until the call is terminated or the service defining means determines that the reserved resource is no longer required. 
     Preferably, the step of reserving the available one of the resources comprises the substeps of actually or effectively removing by means of a first part of a common resource handler of the service node an available resources and providing by said first part an identity of the reserved resource and a resource reserved signal, storing said identity as a current detail of the call, and passing the resource reserved signal to the service defining means. 
     Preferably, there are included the steps of reserving by means of a second pare of the common resource handler an available one of a plurality of dialogue identities, providing by said second part a dialogue identity, forwarding, by said second part, an announcement command to the reserved resource in association with said dialogue identity, and storing said dialogue identity as a current detail of the call. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     A specific embodiment of a service node in accordance with the present invention will now be described by way of example with reference to the drawings in which: 
     FIG. 1 is a schematic diagram of a Service Logic Execution Environment of the service node; 
     FIG. 2 is a diagram showing the storage locations of a Call Instance used in services provided by the service node; 
     FIG. 3 is a diagram showing the processing of a Call Event; 
     FIG. 4 is a diagram showing initialization of the Call Instance; 
     FIG. 5 is a diagram showing the allocation of a resource to the Call Instance; 
     FIG. 6 is a diagram showing the connection of a speech path between the resource and a caller; 
     FIG. 7 is a diagram showing the command of the resource by an application; 
     FIG. 8 is a diagram showing the response of the resource; 
     FIG. 9 is a diagram showing the procedure when the application has finished; 
     FIG. 10 is a diagram showing the procedure when the call clears; and 
     FIG. 11 is a diagram showing the procedure when the resource clears down. 
    
    
     DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS 
     As can be seen in FIG. 1, the major part of the service node 90 of the present invention is the central control function which is designated the Service Logic Execution Environment (SLEE) 10 and which constitutes a controlling means of the present invention. 
     The SLEE 10 comprises a respective Application Programming Interface (API) process, 11a to 11n, for each of a plurality of Application Instances (constituting service defining means of the present invention), 12a to 12n, in each of a plurality of Application Types, 13a to 13n, a Call Modelprocess 14, a Scheduler process 15, and a handler process for each of a plurality of subsystems of the service node, namely SLEE Management System16, Switch 17, Billing System 18, a plurality of Intelligent Peripheral (IP) Resources 19 having a common handler 19H, and a plurality of Conversation Resources 20 having a common handler 20H. 
     In this specification the terms Intelligent Peripheral and Service Node areto be taken as having the same effective meaning, although, in practice, a Service Node is constituted by an intelligent Peripheral together with a switch 17. 
     In this embodiment, each of the IP Resources 19 is a speech applications platform (SAP) containing its own digit collection means. In alternative embodiments, there is a plurality of digit collection means which can be reserved and associated with a SAP as and when needed for services involving digit collection. 
     Each of the Conversation Resources 20 is a non-speech resource, i.e. a resource which is not connected to a port of the switch 17 and which is not arranged to send or receive signals from the customer (MF signals or speech). Examples of types of Conversation Resources 20 are personal identification number (PIN) validation, protocol conversion for when the service node needs to communicate with a remote resource or system, and management logic for managing entries in database 28. 
     For convenience, the above processes will generally be referred to by the process name, and each handler will be identified as 16H, 17H, etc. Handler 19H has an internal part 19Hint which interfaces signals between applications and a Shared Memory 21 of the SLEE, and an external part 19Hext which interfaces signals to and from the IP Resources 19. 
     Each of the component parts of the SLEE 10 is implemented as a UNIX (a trade mark of AT &amp; T) process on a platform which need not be described indetail but which is in the form of a multi-processor, multi-tasking, fault tolerant UNIX environment. Where appropriate, these processes comprise sub-processes for both-way communication of messages. Such sub-processes are well known to the skilled person in the art and will not be mentioned specifically, apart from Switch Message Handler 26, which constitutes a message receiving sub-process of the Switch Handler 17H. 
     The component processes of the SLEE 10 communicate with each other through a block of the Shared Memory 21 which they can all access. This arrangement of separate processes working in parallel greatly reduces the likelihood of serious bottlenecks. 
     Application Instances are started up by the SLEE Management System 16 at the initialization of the SLEE 10 and each new call entering the platform creates a new Call Instance 22 (FIG. 2) in the Shared Memory 21. 
     Each Call Instance 22 holds data specific to a respective call, and the various categories of data shown in FIG. 2 are Mapped IP Resources, MappedConversations, Switch Dialogues, Clearing Flags, Context Memory, Charge Record, and API Events. Some of these categories have more than one storage location in the Call Instance, e.g. IP Resource and API Events. 
     Each Application Type 13 can provide one or more defined services, and different calls (possibly using different services) can all share any one Application Instance 13 by being cue in and out as the application requires. The Context Memory of a Call Instance 22 is used by an application to keep track of the state that a call is in. 
     Multiple Application Instances 12 of the same Application Type 13 are provided in order that a number of calls using the same service can run inparallel. The Scheduler 15 of the SLEE 10 manages the allocation of calls to the Application Instances 12 so that call events can be processed. 
     As external events occur, the handlers queue them on their respective Call Instances 22. FIG. 3 shows the various seeps by which these call events are retrieved and sent to an application for processing. 
     The Scheduler 15 decides which service will be the next to run on the basisof the relative priorities of each Service Instance 23. These priorities are recalculated each time that the Scheduler 15 is activated such as to ensure that whilst all services will run at some time, those with higher service priorities (which are set by the SLEE Management System 16) will run more often. The Service Instance with the highest relative priority and with Executable Calls queued on it is chosen to be run (step 1). The Scheduler 15 retrieves the service&#39;s owning Application Type (step 2) and adds the Service Instance 23 to the bottom of the Service Queue 24 (step 3). A Blocking Semaphore in the Application Type 13 is increased by the Scheduler 15 (step 4), signaling that another call is ready to be processed by one of the Application Instances 12 belonging to this Application Type 13. When this happens, the next Service Instance 23 is moved off the queue 24 (step 5) and the next Call Instance 22 is removed from its Executable Call Queue 25 (step 6). The first API Event belonging to this Call Instance 22 is sent together with the call&#39;s Context Memory to the application to be processed (step 7). 
     The application performs the tasks necessary to act upon this event, and upon completion of those application tasks it issues an API Suspend command and then an API Provide Instruction command, and modifies the Context Memory (step 8) to reflect the change of state of the call. Any Management Events queued for the application are issued to it (step 9) before the process blocks on its semaphore (step 10) ready for the next call event. 
     The application sends the API Suspend command to the SLEE 10 to release (dissociate) the Call Instance 22 from the application, and sends the API Provide Instruction command to cause the application to become blocked ready for the next call. 
     There now follows a description of the processes which occur for a typical call scenario for a message recording service provided by the service node. Whilst there are many difference tasks that can occur, every call using the platform proceeds in a similar way to the following description. 
     Assume that a customer has subscribed to a network-based message recording service (hereinafter referred to as &#34;voicemail service&#34;), the platform (not shown) for which includes a database for storing deposited spoken messages and is associated with an MDSU of the PSTN. When the customer hasactivated the voicemail service, calls to the customer are automatically connected by the network to the platform and any desired spoken messages (hereinafter referred to as &#34;voicemail messages&#34;) are recorded for later retrieval by the customer, and the voicemail platform will send information about the voicemail messages (customer account number, caller&#39;s name) to the application in the service node for storage in the database 28, which increments the stored calls register associated with that account number and stores the name in association with an index representing the current position of that voicemail message in the voicemail platform database. 
     When the customer wishes to find out if he has any voicemail messages waiting for him, he dials the service access digits for gaining access to the voicemail service and the PSTN routes the call (regardless of where ithas originated on the network) to the service node. 
     Referring to FIG. 4, in which the steps are numbered starting from 11, whenthis call arrives at the service node the digits are passed via a signalinglink from the switch 17 to the Call Model 14 which recognizes the dialed service access digits for the voicemail service and, in response, creates and initializes a new Call Instance 22 (step 11) within the SLEE&#39;s Shared Memory 21 and maps the incoming call to its first IP Resource, namely IP Resource 0 (step 12). The actual IP resource will be the incoming channel on which the incoming call appears and it will be the identity of this channel that will be mapped to the IP Resource 0 location of the Call Instance 22. The Call Model 14 initializes the call&#39;s Charge Record by recording the incoming call or event with a time stamp (step 13) in the Charge Record location of the Call Instance 22. The SLEE 10 then puts an API Incoming Call event on the call&#39;s API Events queue (step 14) and queues the Call Instance 22 as an Executable Call on the appropriate Service Instance 23 (step 15). 
     The Scheduler 15 is triggered and the call event processing phase is entered, as described with reference to FIG. 5. 
     Referring to FIG. 5, when the Scheduler 15 decides that it is time for a call to execute, the SLEE 10 sends to the Application 13 the API Incoming Call Event from the Call Instance&#39;s API Events queue (step 16). The application receives this event, refers to a state table of events (not shown) and runs from the next following position, which in this case of a new call is from the beginning of the service. 
     The application will require the use of at least one IP Resource other thanIP Resource 0. First, it must reserve a resource on a free one of the call&#39;s application-mapped IP Resources (e.g. Resource 3) by sending an APIReserve Resource message to the SLEE 10 (step 17). The application will itself select the free IP Resource in the Call Instance 22 and ask the SLEE 10 to reserve a free resource and map its identify to the selected IPResource. The SLEE&#39;s Internal API Resource Handler 19Hint receives the message, finds a free (unused) resource of the correct type in the Free Resources store (Resource X) and maps it to the call by moving the resource identity from Free Resources to the Call Instance&#39;s IP Resource 3(step 18) In this step, the resource may be actually removed from Free Resources, or it may be effectively removed by setting a flag to mark thatresource as in use and not free. A success message is returned to the application as a return code (step 19). 
     To make use of the resource the application must connect its speech channelto that of the call as shown in FIG. 6. It does this by sending an API Connect message (step 20) with reference to the two resources it wants to connect (i.e. IP Resource 0, the incoming call, and IP Resource 3, the required resource). 
     The SLEE&#39;s API Switch Handler 17H receives the message, allocates (reserves) a free Switch Dialogue Id to the Call Instance 22 (step 21) anduses it to send a request for connection to the switch 17 (step 22). The switch 17 receives the request and connects the call to Resource X (step 23). It signals success back to a Switch Message Handler 26 of the SLEE 10(step 24). 
     Having reserved a resource, the application now communicates with it, for example in this scenario it requests that the resource play a recorded announcement to the customer. It does this, as shown in FIG. 7, by sendingan API IP Resource Command to the SLEE 10 with the announcement type included (step 25). The SLEE&#39;s External API Resource Handler 19Hext receives this message and sets up a dialogue with the resource by allocating an Id from the Free Dialogue Id&#39;s store to the call&#39;s Application IP Resource (step 28). It then associates this Dialogue Id with the command and sends it to the mapped resource (step 27). 
     Having sent such a command, the application will leave the resource to generate the announcement and proceed to handle another sail under the control of the Scheduler 15. To do this, the application must suspend the call by first sending an API Suspend command to the SLEE 10, and then sending an API Provide instruction command. 
     In this scenario, this first API Resource Command is for generating a &#34;Welcome&#34; announcement and for collecting twelve digits representing the customer&#39;s account number and personal identification number (PIN). 
     In FIG. 8, Resource X receives the application&#39;s command and starts generating the Welcome announcement, &#34;Welcome to Voicemail. Please enter your account number and PIN.&#34; (step 28). Resource X is arranged to identify digits received at any time after the start of the Welcome announcement, and to stop generating the announcement at the time that thefirst of these digits is received and recognized. 
     On receipt of the first digit, Resource X sends to the SLEE 10 an API Eventmessage including the value of the first received digit. This message is queued on the API Events section of the Call Instance 22. For the purposesof present invention it is sufficient to state that this application requires the first digit to perform an initial part of the account number processing, and that not all applications involving account numbers require the first digit for initial processing. The dialogue between the application and the Resource X has not yet finished, i.e. it remains open,so the Dialogue Id is permitted to remain associated with the Call Instance&#39;s IP Resource. 
     Normally, the customer will enter his eight digit account number and his four digit PIN within a timeout started at the beginning of the announcement, and when twelve digits have been collected the Resource X will send to the SLEE 20 (step 29) a Digits Collected message containing the digits, this message being associated with the same Dialogue Id as wassent to the Resource X by the SLEE 10 with the command. 
     If the customer had failed to enter twelve digits before the timeout, or iffor any other reason Resource X had not collected twelve recognized digits within the timeout, Resource X would have sent a Collection Failure message to the SLEE 10. 
     The application will deem the dialogue finished upon receipt of either the Digits Collected message or the Collection Failure message and will proceed to remove the Dialogue Id and to place it back in the list of freeDialogue Id&#39;s. 
     The SLEE&#39;s External IP Resource Message Handler 19Hext receives the messageand retrieves the Call Instance 22 by means of the association with the Dialogue Id (step 30). The message is then added to the Call Instance&#39;s API Events queue as an API IP Resource Message (Msg) event (step 31) and the Call Instance 22 itself is added to the list of Executable Calls of the owning Service Instance (step 32). The Scheduler 15 is now triggered once again. 
     When the Scheduler 15 decides that it is the call&#39;s turn once more, the APIIP Resource Msg event, and the message itself, are sent to the application (step 33), as shown in FIG. 9. 
     The application now proceeds to the next following state in the state tablefor the service and accesses a database 28 associated with that applicationtype using the collected account number to retrieve a PIN stored with the account number and to compare the retrieved PIN with the collected PIN. 
     If the PIN&#39;s match, the application accesses the database again to retrievethe customer style of address and the time (including date) when the last retrieve access was made, and to overwrite that time with the time of the present retrieval access. The application now sends a second API Resource command including two fields containing respective variable parameters, the first being the customer&#39;s address style and the second being the lastretrieval time (including date). The application then sends an API Suspend command and an API Provide Instruction command and waits for the Scheduler15 to send it details from the next selected Call Instance 22. 
     The SLEE 10 now allocates a new Dialogue ID, by the External IP Resource Handler 19Hext, and passes this second API Resource command to the Resource X in the same way as for the first API Resource command. On receipt, the Resource X generates an announcement having a number of fixedcomponents and a number of variable components, namely, &#34;Hello&#34; (fixed), &#34;Andy.&#34; (variable, the customer&#39;s style of address), &#34;You last used voicemail at&#34; (fixed), &#34;three thirty pm&#34; (variable), &#34;on the&#34; (fixed), &#34;tenth&#34; (variable), &#34;of&#34; (fixed), &#34;June.&#34; (variable). This provides a measure of security, because if the customer had not accessed voicemail onthat occasion he will now know that someone else was in possession of his PIN and can take steps to change his PIN. 
     When the Resource X has finished generating this second announcement it will send an API IP Resource Message to the SLEE 10 which will enter it inthe Call Instance&#39;s API Events queue. 
     When the application next processes this Call Instance it will go to the next state which is to inform the customer how many voicemail messages have been deposited in his voicemail store. The application accesses the database to retrieve the number of deposited voicemail messages and sends a third API Resource command including a field containing this number and another field containing the time. Again, the application then sends an API Suspend command and an API Provide Instruction command. 
     The SLEE 10 sends this third command to Resource X, which is still reservedfor this call, by allocating a free Dialogue ID in the same manner as before. 
     Resource X responds to this third command by generating an announcement comprising a plurality of components, two of which are variable components. The first component is &#34;Good&#34;, which is fixed. The second component is variable and is selected from &#34;Morning&#34;, &#34;Afternoon&#34;, or &#34;Evening&#34; depending upon the value in the time field of the received command, i.e. the Resource X has three time windows, midnight to midday, midday to 6:00 pm, and 6:00 pm to midnight, and makes the selection by comparing the time value with the window boundaries to determine the appropriate window and hence the corresponding component. The third component is &#34;Welcome to voicemail. You have&#34;, which is fixed. The fourth component is variable and is selected from a range of words (speech segments) corresponding to the possible number of voicemail messages in the voicemail message database, in other words, from &#34;no&#34; to, for example, &#34;twenty&#34;. The fifth component is &#34;new&#34;, which is fixed. The sixth component is variable and is selected from &#34;message&#34; or &#34;messages&#34; depending upon whether there is a single voicemail message or a plurality of voicemail messages or no voicemail messages. 
     In practice, the application will have further stages, e.g. asking the customer if he wants to know the names of the people who have deposited voicemail messages (when depositing a voicemail message they would have been asked to state their name), informing the customer of those names (possibly in association with voicemail message numbers), receiving the customer&#39;s selection and generating the voicemail message (by retrieval from the voicemail platform database), asking the customer if he wants to delete the voicemail message or leave it or archive it, and managing the voicemail message database in the event that the customer hangs-up (terminates his call) during generation of a deposited voicemail message. However, the skilled person in the art will understand the operation of the service node and its SLEE sufficiently without a detailed description of such further stages of the voicemail service. 
     When the application reaches a final state, e.g. has received from the customer a positive indication that he is terminating his access to the service or has received from the Resource X that a timeout has occurred, then it sends an API Finished signal to the SLEE 10. This is received by an API Finished Handler 27 of the SLEE 10 which commences to clear down the call. 
     First, the SLEE 10 must disconnect the speech paths. It allocates a free Switch Dialogue to the Call Instance 22 (step 35) and sends a message to the switch 17 requesting the disconnection of Resource X and the caller (step 36). The switch 17 performs the disconnection (step 37) and returns a Disconnection Complete message back to the SLEE 10 (step 38). 
     If Resource X is still in open dialogue with the SLEE 10 then it-must be cleared down. The SLEE 10 does this as shown in FIG. 10, by first sending the mapped IP Resource 3 into clearing by moving the mapped resource into the Call Instance&#39;s Clearing Resources location (step 39), and then sending a Clear Down message to Resource X (step 40). The incoming call iscleared in a similar way through the Call Model 14 and the call is marked as currently being cleared down (step 41). 
     Resource X receives the message and initiates its clear down procedure as shown in FIG. 11. When it has finished clearing down, it sends a Clear Down Complete message to the SLEE 10 (step 42). This message is received by the SLEE&#39;s External IP Resource Message Handler 19Hext which retrieves the Call Instance by means of the association with the Dialogue Id. This Dialogue Id is removed from the resource and placed back in the Free Dialogue ids store (step 43). The resource itself is moved out of the CallInstance 22 and back into the Free Resources store (step 44). 
     If this was the last resource to clear belonging to the call (i.e. the incoming call has also finished clearing) then The call is complete. The Charge Record is time stamped and then sent out to the Billing System 18 (step 45).