GB2531109A - Session handling in a communications network - Google Patents

Session handling in a communications network Download PDF

Info

Publication number
GB2531109A
GB2531109A GB1512929.9A GB201512929A GB2531109A GB 2531109 A GB2531109 A GB 2531109A GB 201512929 A GB201512929 A GB 201512929A GB 2531109 A GB2531109 A GB 2531109A
Authority
GB
United Kingdom
Prior art keywords
session handling
session
processor
rule
handling rule
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB1512929.9A
Other versions
GB201512929D0 (en
GB2531109B (en
Inventor
Zachar Mihaly
Kmetti Oszkar
Szabo Sandor
Kondor Viktor
Velencei Tibor
Morvay Gabor
Kovacs Balint
Ursinyi Otto
Vendeg Balazs
Grof Szabolcs
Csinsi Karako
Szokovacs Robert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GAMMA TELECOM Ltd
Original Assignee
GAMMA TELECOM Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GAMMA TELECOM Ltd filed Critical GAMMA TELECOM Ltd
Publication of GB201512929D0 publication Critical patent/GB201512929D0/en
Publication of GB2531109A publication Critical patent/GB2531109A/en
Application granted granted Critical
Publication of GB2531109B publication Critical patent/GB2531109B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1096Supplementary features, e.g. call forwarding or call holding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1046Call controllers; Call servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1073Registration or de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1076Screening of IP real time communications, e.g. spam over Internet telephony [SPIT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42153Administration or customisation of services by subscriber

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

An apparatus for dynamically checking the validity of session handling rules in a telecommunications system receives a request for a session handling rule from a function of the telecommunications system, the function being configured to receive and handle sessions within the system, and the request comprising a subscription identifier and previous routing data for the session. A processor retrieves a session handling rule from a memory, based on the subscription identifier, and determines whether the retrieved session handling rule is valid based on the retrieved rule and the previous routing data. Implementation of the retrieved session handling rule is prevented if it is determined to be invalid, for example, if it introduces errors or loops. The previous routing data may comprise an origin for the session or diversion data indicating an entity from which the session has been previously diverted. Provisioning a database for storing session handling rules is also disclosed.

Description

Intellectual Property Office Application No. GB1512929.9 RTN4 Date:5 February 2016 The following terms are registered trade marks and should be read as such wherever they occur in this document: Blu-ray Intellectual Property Office is an operating name of the Patent Office www.gov.uk/ipo Session Handling in a Communications Network
TECHNICAL FIELD
The present invention relates to the field of session handling in a communications network, and in particular to provisioning a session handling database with session handling rules.
BACKGROUND
In a communications network, a user has a subscription that is associated with an identifier. For example, an E.164 number is an identifier that is associated with a subscription. A communications service provider might allow the owner (the subscriber) of a subscription to set session handling rules that can be applied to both incoming and outgoing sessions. In many cases, a session may be a voice call, but it will be realised that other types of session (such as video calls) require the application of session handling rules. Session handling rules might relate to, for example, call routing, voicemail, announcement playing, call queuing, time control, geographic control, call recording, busy notification, email notification, call whisper (in which one of the parties may be given information about the other party) and Interactive Voice Response.
Taking the example of call routing, a subscriber may have more than one device on which a call can be received. If one device is a fixed line telephone, and the other device is a mobile telephone, a session handling rule may be set up so that an incoming call will ring first on the fixed line telephone and, if it is not answered within a predetermined time, is then transferred to the mobile telephone. This is a very simple example of call routing. More complex session handling rules can be set up that take into account factors such as the time of day, the date, whether the subscriber is engaged in another call, whether the subscriber's calendar shows that the subscriber is in a meeting and so on. The call routing rule is triggered when an incoming call is associated with the subscription identity. The database is queried to determine if any session handling rules are present that are associated with the subscription and, if so, the session handling rules are extracted and applied to the call. Of course, it will be appreciated that session handling rules may be similarly applied to outgoing calls and these are obtained from the database in the same way when an outgoing call is associated with a subscription identifier that has corresponding session handling rules.
In order for a session handling rule to be applied it must first be provisioned in the database and associated with the subscription identifier. Session handling rules are typically provisioned manually by an operator. For example, a list of session handling rules to be applied to a subscription identifier is sent to a provider that handles the subscription, and a human operative at the provider enters the session handling rules into a database and validates the session handling rules to ensure that they do not contain contradictions, loops or other errors. This is a slow, time consuming process and is prone to errors.
SUMMARY
It is an object to provide a more efficient way of provisioning a session handling rules database.
According to a first aspect, there is provided a method of provisioning a database for storing session handling rules in a communication network. A session handling database provisioning device receives an electronic file from a remote node. The electronic file comprises a plurality of rules for session handling relating to a communications subscription identifier. The electronic file is parsed to identify each rule of the plurality of rules. Each rule is categorized according to a rule type and each rule is then provisioned in the database according to the rule type.
An advantage of the method described above is that large numbers of complex rules can be provided in a single document and easily provisioned in a session handling rules database with little or no input required from a human operative.
Optional examples of the identifier of a communications subscription include any of an E.164 number, a Session Initiation Protocol Identifier and a proprietary subscription identifier. For example, a call to an E.164 number may be forked to one of a number of devices according to the rules currently in place, but the E.164 number is associated with the subscription.
The electronic file optionally comprises a plurality of rules for session handling relating to a plurality of communications subscription identifiers, the rules for session handling to be applied to each communications device identified by the plurality of communications subscription identifiers. An advantage of this is that a number of subscription identifiers may be provisioned with the same session handling rules.
As an option, the session handling database provisioning device, prior to provisioning each rule in the session handling database, performs a check to determine that each rule is valid. This may be, for example, in a sandbox environment, and ensures that rules that will not work cannot be provisioned in the session handling database.
As an option, the session handling database provisioning device, prior to provisioning each rule in the session handling database, performs a check to determine that the plurality rules when executed are valid. This allows a check to ensure that the rules, when executed run together, do not cause loops or other undesirable effects.
In the event that a rule or the plurality of rules is not valid, an error response is optionally sent to the remote node.
Optional examples of session handling rule categories include any of call routing, voicemail, announcement playing, call queuing, time control, geographic control, call recording, busy notification, email notification, call whisper and Interactive Voice Response. It will be appreciated that other types of category may be used.
As an option the electronic file is an Extensible Markup Language electronic file.
According to a second aspect, there is provided a session handling database provisioning device for use in a communication network. The session handling database provisioning device is provided with an in/out device arranged to receive an electronic file, the electronic file comprising a plurality of rules for session handling relating to a communications subscription identifier. A processor is arranged to parse the electronic file to identify each rule of the plurality of rules. The processor is further arranged to categorize each rule according to a rule type and provision each rule in a session handling database according to the rule type.
The session handling database provisioning device optionally further comprises the session handling database.
As an alternative option, the session handling database provisioning device is provided with a transmitter arranged to send each rule to a remote session handling database.
As a further option, the processor is arranged to select the remote session handling database from a plurality of remote session handling databases. This allows a plurality of databases to be used, allowing more efficient network architectures to be built and also providing some redundancy in the system.
The identifier of a communications device optionally includes any of an E.164 number, a Session Initiation Protocol Identifier, and a proprietary subscription identifier, The electronic file optionally comprises a plurality of rules for session handling relating to a plurality of communications subscription identifiers, the rules for session handling to be applied to each communications subscription identified by the plurality of communications subscription identifiers. This allows many subscription identifiers to be provisioned using a single electronic file.
As an option, the processor is further arranged to, prior to provisioning each rule in the session handling database, perform a check to determine that each rule is valid. This ensures that rules that will not work or are invalid cannot be provisioned in the session handling database.
As a further option, the processor is arranged to, prior to provisioning each rule in the database, perform a check to determine that the plurality rules when executed are valid. This allows a check to ensure that the rules, when executed run together, do not cause loops or other undesirable effects.
The session handling database provisioning device is optionally provided with a response transmitter arranged to, in the event that a rule or the plurality of rules is not valid, send an error response to a remote node.
According to a third aspect, there is provided a computer program comprising computer readable code which, when run from a computer readable medium in the form of a memory in a processor on a session handling database provisioning device, causes the session handling database provisioning device to perform the method as described above in the first aspect.
According to a fourth aspect, there is provided a computer program product comprising a computer readable medium and a computer program as described above in the third aspect, wherein the computer program is stored on the computer readable medium.
According to an aspect of the invention, there is provided an apparatus for checking the validity of session handling rules in a telecommunications system, the apparatus comprising: a receiver configured to receive a request for a session handling rule from a function of the telecommunications system, the function being configured to receive and handle sessions within the telecommunications system, and the request comprising a subscription identifier and previous routing data for the session; a processor configured to retrieve a session handling rule from a memory, based on the subscription identifier; wherein the processor is further configured to determine whether the retrieved session handling rule is valid based on the retrieved session handling rule and the previous routing data and to prevent implementation of the retrieved session handling rule if it is determined to be invalid.
Optionally, the previous routing data comprises an origin for the session, and wherein the processor is configured to determine that the retrieved session handling rule is invalid if a number of sessions with the same origin within a particular time period exceeds a threshold value.
Optionally, the previous routing data comprises diversion data indicating an entity from which the session has been previously diverted, and wherein the processor is configured to determine that the retrieved session handling rule is invalid if the indicated entity corresponds to a destination associated with the retrieved session handling rule.
Optionally, the diversion data comprises a last diverting line identity.
Optionally, the processor is configured to control a transmitter to transmit data notifying the function that the retrieved session handling rule is invalid.
Optionally, the processor is configured to store the previous routing data for a period of time at least as long as the duration of the session.
Optionally, the processor is configured to use the stored previous routing data to determine whether subsequent session handling rules are valid.
According to another aspect of the invention, there is provided a method for dynamically checking one or more session handling rules in a telecommunications system, the method comprising: receiving, by a receiver, a request for a session handling rule from a function of the telecommunications system, the function being configured to receive and handle sessions within the telecommunications system, and the request comprising a subscription identifier and previous routing data for the session; retrieving, by a processor, a session handling rule from a memory, based on the subscription identifier; determining, by the processor, whether the retrieved session handling rule is valid based on the retrieved session handling rule and the previous routing data; and preventing, by the processor, implementation of the retrieved session handling rule if it is determined to be invalid.
Optionally, the previous routing data comprises an origin for the session, and wherein the processor determines that the retrieved session handling rule is invalid if a number of sessions with the same origin within a particular time period exceeds a threshold value.
Optionally, the previous routing data comprises diversion data indicating an entity from which the session has been previously diverted, and wherein the processor determines that the retrieved session handling rule is invalid if the indicated entity corresponds to a destination associated with the retrieved session handling rule.
Optionally, the diversion data comprises a last diverting line identity.
Optionally, the processor controls a transmitter to transmit data notifying the function that the retrieved session handling rule is invalid.
Optionally, the processor is configured to store the previous routing data for a period of time at least as long as the duration of the session.
Optionally, the stored previous routing data is used to determine whether subsequent session handling rules are valid.
According to another aspect, there is provided a computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out any method mentioned above.
According to another aspect, there is provided a carrier containing the computer program above, wherein the carrier is one of an electronic signal, optical signal, radio signal, or non-transitory computer readable storage medium.
BRIEF DESCRIPTION OF DRAWINGS
Figure 1 illustrates schematically an exemplary network architecture; Figure 2 illustrates schematically in a block diagram an exemplary session handling database provisioning device; Figure 3 illustrates schematically in a block diagram an exemplary subscriber device; Figure 4 illustrates schematically in a block diagram a database; Figure 5 is a flow diagram showing a method for provisioning rules in a database; and Figure 6 is a flow diagram showing a method for dynamically validating rules.
DETAILED DESCRIPTION
Figure 1 shows an exemplary network or telecommunications system architecture. A session handling database provisioning device 1 is provided that is capable of receiving an electronic document that contains session handling rules relating to session handling. The session handling rules are associated with a subscription identifier. The session handling database provisioning device 1 provisions these session handling rules in a database 2. When a call is subsequently received, the call is associated with the subscription identifier. A function 3 that handles the call uses the subscription identifier to query the database and determine whether any session handling rules should be applied to the call. It will be appreciated that many such functions may be present, and the session handling rules may be applied to outgoing calls identified by the originating subscription identifier.
In a typical network that uses Session Initiation Protocol (SIP) signalling, calls are handled by a Back-to-back User Agent (B2BUA). The B2BUA may act as a User Agent server (UAS) from the point of view of incoming calls and the User Agent client (UAC) for outgoing calls. The B2BUA not only handles SIP signalling but also prepares and tears down the media path between the caller and an application component as required by any session handling rules, or between the caller and the destination. The B2BUA also handles inbound dialogue establishment, provides call management, allows network interworking and can provide a hiding function for network intervals to, for example, hide network topology. For more information on SIP and the B2BUA, see RFC 3261.
When the B2BUA receives an incoming call, it signals other entities in turn that may need to have some involvement with the call. This is typically done after retrieval of rules data from the database 1. The first entity that the B2BUA contacts is typically a Call Control application, which processes further routing of the call, implements diversion logic, instructs other functions to play announcements, ring tones and error announcements and so on. The Call Control application may use session handling rules that have been provisioned in the database 2.
Other entities that may need to obtain session handling rules from the database include, for example, a call control function, a call queue function, a voicemail recording function, and a whisper function. Of course, it will be appreciated that this list is not exhaustive. For the sake of simplicity, Figure 1 shows a function 3 that requires a session handling rule from the database 2 to apply to a call.
In order to provision the session handling rule, rather than an operative entering session handling rules manually for a subscription identifier, the provisioning device 1 receives a single electronic file, for example in an Extensible Markup Language (XML) format. The electronic file is parsed to identify each session handling rule and to categorize the session handling rules. The session handling rules are then provisioned in the database 2 and associated with the subscription identifier.
The network operator provides the subscriber (or more typically, the administrator of the subscription) with instructions on the format for writing session handling rules in the XML file. The subscriber then determines the required session handling rules for handling calls relating to a subscription and writes the XML file according to the instructions. Where the session handling rules are identical to those already provided for another subscription, the XML document for the other subscription may be re-used with correct the information identifying the subscription. It is also possible that a single XML file may be used to identify more than one subscription, to reduce the number of XML files that need to be sent where several subscriptions are provided with the same rules - Of course, the electronic file may be in any suitable format, but the use of a non-proprietary format such as XML ensures that the subscriber can generate the XML file regardless of the type of device that the subscriber is using to generate the XML file.
The XML file containing a plurality of session handling rules relating to the subscription identifier is sent to the session handling database provisioning device 1. The session handling database provisioning device 1 parses the information contained in the XML file. The session handling database provisioning device 1 has knowledge of the format for writing session handling rules, so it is able to identify each session handling rule in the XML file, categorize it and provision the session handling rules in the session handling database 2.
The session handling database provisioning device 1 may also perform checks on the session handling rules to ensure that they are valid. Individual session handling rules can be checked to determine that they will operate in the way expected. Groups of session handling rules may also be checked to ensure that the session handling rules will operate together without causing, for example, loops or other undesirable outcomes. These checks may be undertaken at the provisioning device 1. There are various ways of preforming checking. For example, checking may be performed by checking the session handling rules individually to ensure that no flows are left with an uncompleted branch, and that a terminating node does not generate a route back to the start of the session handling rule set and hence establish a loop. Some checking may additionally or alternatively be performed in a sandbox environment.
Turning now to Figure 2, there is illustrated schematically in a block diagram an exemplary session handling database provisioning device 1. The session handling database provisioning device 1 is provided with an in/out device to receive an electronic file such as an XML file from a subscriber. Examples of an in/out device include a DVD drive, a Universal Serial Bus (USB) port, and a receiver. Typically a receiver will be used allowing a subscriber to use a remote node to upload the XML file containing the session handling rules relating to the subscription identifier.
A processor 5 is provided that parses the XML file to identify each session handling rule and to translate the session handling rule into a format usable by the database 2.
Parsing may be performed using a set of parsing session handling rules 6 stored in a non-transitory computer readable medium in the form of a memory 7. The processorS may also be configured to check the validity of the session handling rules in the XML file. If so, then the processor uses validity checking session handling rules to check whether the session handling rules are valid. In the event that the session handling rules are invalid, then an error message may be sent using a transmitter (not shown for all examples, but an example is the in/out device 4) to a remote node that sent the XML file. In such circumstances then provisioning of the session handling rule in the database 2 (i.e. by transmitting the session handling rule from the transmitter 8) may be prevented. The processor 5 may generate an error message that includes information identifying the nature of any error and possible suggestions to fix the error.
In an embodiment, the session handling database provisioning device 1 is provided with the database 2. However, in a typical network it is much more likely that the database 2 is located remotely from the session handling database provisioning device 1. In this case, the session handling database provisioning device 1 is provided with a transmitter 8 for transmitting the session handling rules associated with the subscription identifier to the database 2, in a format usable by the database 2. In many networks, more than one database 2 may be available in order to provide scalability, redundancy and more efficient communication. This is discussed in more detail below.
The memory 7 may be used for storing a computer program 9 which, when executed by the processor 5, causes the session handling database provisioning device 1 to behave as described above and perform the steps shown in Figure 4. Note that the computer program 9 may be provided from an external medium 10, such as a carrier wave, a flash drive, a CD-ROM or any other suitable form.
Figure 3 illustrates schematically in a block diagram a subscriber device 11 for providing a set of session handling rules in an electronic file to a session handling database provisioning device 1. Examples of a subscriber device 11 include a personal computer, a tablet, a laptop, a smartphone and so on.
The subscriber device 11 is provided with a data entry device such as a keyboard, mouse, or other means for entering data. This allows a user to enter data relating to the subscription identifier and the session handling rules to be applied to the subscription identifier.
A processor 13 is provided to use entered data to generate an electronic file (such as an XML file) in a suitable format for sending to the session handling database provisioning device 1.
A transmitter 14 is provided for sending the generated electronic file towards the session handling database provisioning device 1.
A non-transitory computer readable medium in the form of a memory 15 is provided for storing a computer program 16 which, when executed by the processor 13, causes the subscriber device to behave as described below. Note that the computer program 16 may be provided from an external medium 17, such as a carrier wave! a flash drive, a CD-ROM or any other suitable form.
Figure 4 is a block schematic diagram of a database 2, which may be the database 2 of Figure 1. The database comprises a transmitter 22 and a receiver 24 configured respectively to transmit and receive data from other entities in the telecommunications system. The transmitter 22 and receiver 24 are in electrical communication with a microprocessor 26, which is in turn in electrical communication with a memory 28.
The memory 28 may comprise a non-transitory computer readable medium for storing a computer program 30 which, when executed by the processor 26, causes the database to behave as described herein. Note that the computer program 30 may be provided from an external medium 32, such as a carrier wave, a flash drive, a CD-ROM or any other suitable form.
Figure 5 is a flow diagram that shows exemplary steps occurring at a session handling database provisioning device 1.
Si The session handling database provisioning device 1 receives XML (or other format) file data at the I/O 4 that contains a plurality of session handling rules associated with a subscription identifier. The session handling rules may define a call plan (where the session relates to a call) to be used for calls to and from any devices associated with the subscription identifiel.
S2 The XML file is parsed by the processors to identify each session handling rule of the plurality of session handling rules and convert each session handling rule into a format usable by the database 2.
S3 The session handling rules may be categorized by the processor 5 according to session handling rule type in order to ensure that the session handling rules are correctly provisioned in the session handling database.
S4 Checks are performed by the processor to determine if the session handling rules, either individually or in groups, are valid. Examples of invalid session handling rules are those which cause loops, do not work, or are not compatible with other session handling rules. Multiple checks may be made on different groups of session handling rules. If the session handling rules are determined to be invalid, then the method pioceeds to step S5, if the session handling rules are determined to be valid, then the method proceeds to step S6.
S5 As the session handling rules received in the XML file are invalid, an error message is transmitted to the originator of the XML file. The error message may include some guidance as to which session handling rules are invalid, or which groups of session handling rules are invalid. The error message may also offer a suggestion on how to fix any invalid session handling rules. In addition, the session handling rule is prevented from being provisioned in the database 2 by the provisioning device 1.
That is, the provisioning device 1 will not transmit the session handling rule to the database 2. As such, the telecommunications system is unchanged and does not include a session handling rule in which there is an error.
S6 The session handling rules are transmitted by the transmitter 8 to the database 2 in a format usable by the database and provisioned in the database 2. The session handling rule is associated with the subscription identifier of the relevant subscription account. The session handling rules can subsequently be applied to any call that uses the subscription identifier. When a session handling function 3 receives a call or other media data, it transmits a query to the database 2 requesting session handling rules for handling the call. The query includes the subscription identifier.
More than one session handling database may be available, for example to build redundancy or scalability into a network. In this case, the data provisioned to the database 2 is replicated in one or more further databases. When calls are received at the function 3, a request is transmitted to one of the databases, based on a load balancing condition. In exemplary methods and apparatus, the database to be used by the function 3 may be predefined for a given subscriber.
The session handling database provisioning device 1, when parsing the XML file, effectively identifies individual session handling rules in the file and translates them into a form suitable for storing in the database 2. This allows a subscriber to write a set of session handling rules in a user-friendly format without having to learn the network operator's system. It also ensures that the network operator does not need to disclose potentially confidential information about the topography of the network operator's backend.
In use, a user with the subscriber device 11 may be presented with one of several ways of establishing a call plan. For example, a Graphical User Interface (GUI) may be provided. The user can drag and position icons relating to different aspects of the call plan and how they relate to one another. The information entered by the user is translated to the electronic file (as described above, it may be written as an XML file).
Before the call plan is finalised, the XML file may be sent to the session handling database provisioning device 1 or to an associated computer device which performs checks on the XML file to ensure that the session handling rules are valid and do not create any errors or loops. Information is exchanged between the session handling database provisioning device 1 and the subscriber device 11. This is a dynamic process which allows the session handling database provisioning device 1 to send a message to the subscriber device 11 and alert the user about any errors in the call plan as the call plan is being constructed. An advantage of this is that the user does not need to finalise the call plan until he knows that it is valid, and there is no need for manual checks by a human operator at the backend to determine if the call plan submitted using the XML file is valid or will cause problems when executed. The session handling database provisioning device 1 may not accept an XML file detailing a call plan until it is satisfied that the XML file is error-free and that executing the call plan will not cause problems in the telecommunications system.
In exemplary methods and apparatus, the telecommunications system may be configured to determine whether a session handling rule introduces errors or loops dynamically. That is, the telecommunications system may be configured to determine whether a particular call might introduce an error or loop while the system is in operation.
The method detailed in Figure 4 may represent a set up phase of the telecommunications system in which session handling rules are provisioned in the database 2 before calls are received. Figure 6 shows a flow diagram for a method of dynamically checking session handling rules within a live telecommunications system.
SlO The function 3 of the live telecommunications system receives a call.
S12 The function 3 transmits a request to the database 2 for session handling rules to apply in order to handle the call. The request comprises previous routing data, such as data indicating an origin of the call, data indicating whether the call has been previously diverted and a subscription identifier. The data indicating whether the call has been previously diverted may comprise data indicating the entity (or number) from which the diversion was made. This indication may be an Integrated Service Digital Network User Part (ISUP) parameter, such as a last diverting line identity. Other types of data may be used to provide the diversion data and last diverting line identity is only
one example.
S14 The receiver 24 of the database 2 receives the request from the function 3 and the processor 26 creates temporary data relating to the call in the memory 28. The temporary data comprises the information provided in the request, namely the subscription identifier, the origin of the call and whether it has been previously diverted.
The temporary data may be stored in the database 2 for the duration of the call.
S16 The database 2 retrieves a session handling rule from the memory 28 for handling the call. The session handling rule may be retrieved based on the subscription identifier and may be one of the session handling rules provisioned during set up.
S18 The processor 26 of the database 2 determines whether the retrieved session handling rule is valid based on the temporary data stored in the memory 28. In exemplary methods and apparatus, the processor 26 compares one or more destinations associated with the retrieved session handling rule and determines whether the rule is valid based on those one or more destinations.
For example, if one or more destinations associated with the rule correspond to the last diverting line identity received in the request from the function 3 then the processor determines that the rule is invalid, as it may instigate a loop. This represents a dynamic assessment of rule validity, as the last diverting line identity may change under a number of different conditions.
In other exemplary methods and apparatus, the processor 26 may determine whether the retrieved session handling rule is valid based on origin data received in the request.
For example, the processor may determine that a loop has occurred if the origin data received in the requests of a number of calls within a particular timeframe is the same.
That is, if the number of calls having the same origin within a particular time period exceeds a threshold value then the processor 26 may determine that the rule is invalid, as a loop has occurred. This may be useful, for example, if the fact that the call has been previously diverted is not visible to the function 3. This may occur if the diverted call is from behind a Private Branch Exchange (PBX). In other exemplary methods and apparatus, the diverting route of a call may be convoluted and may include multiple entities, in which case the last diverting line identity may not correspond to the destination associated with the retrieved rule. In such circumstances, origin data may be used, as set out above.
Therefore, in exemplary methods and apparatus, the processor may determine whether the rule is valid based on the data indicating whether a call has been diverted and/or the origin data received in the request. This data may be dynamic data that changes with a particular call.
S20 If the session handling rule is determined to be invalid, e.g. if it results in a loop, the processor 26 controls the transmitter 22 to transmit an error message to the function 3. The function 3 does not process the call and the retrieved and invalid session handling rule is not implemented. The call may therefore be dropped. In addition, the function 3 may transmit an error message to the subscriber device 11 to notify the subscriber of the problem with the call/rule.
S22 If the retrieved session handling rule is determined to be valid then the processor 26 controls the transmitter 22 to transmit the retrieved session handling rule to the function 3, which handles the call according to the session handling rule.
The process of Figure 6 may be undertaken for each session handling rule associated with a call.
It is noted that the steps set out above in respect of Figure 6 may be appended to one or more of the steps of Figure 5. In exemplary methods and apparatus, one or more steps of Figure 5 may represent a set up phase in which the session handling rules for session handling are determined before the telecommunications system goes live, and one or more steps of Figure 6 may represent the dynamic checking of session handling session handling rules while the system is live.
Note that in the description above, the session handling rules are associated with a subscription identifier rather than a device identifier. This is because, in practice, the session handling rules are applied to a subscriber rather than an individual device, and a subscriber may have more than one device. However, any type of subscription identifier may be used. Examples include an E.164 number, a SIP identifier or a proprietary identifier. It will be appreciated that a device identifier may be associated with a subscriber identifier in which case a device identifier could be used provided that it can uniquely identify the subscription.
A computer program may be configured to provide any of the above described methods. The computer program may be provided on a computer readable medium.
The computer program may be a computer program product. The product may comprise a non-transitory computer usable storage medium. The computer program product may have computer-readable program code embodied in the medium configured to perform the method. The computer program product may be configured to cause at least one processor to perform some or all of the method.
Various methods and apparatus are described herein with reference to block diagrams or flowchart illustrations of computer-implemented methods, apparatus (systems and/or devices) and/or computer program products. It is understood that a block of the block diagrams and/or flowchart illustrations, and combinations of blocks in the block diagrams and/or flowchart illustrations, can be implemented by computer program instructions that are performed by one or more computer circuits. These computer program instructions may be provided to a processor circuit of a general purpose computer circuit, special purpose computer circuit, and/or other programmable data processing circuit to produce a machine, such that the instructions, which execute via the processor of the computer and/or other programmable data processing apparatus, transform and control transistors, values stored in memory locations, and other hardware components within such circuitry to implement the functions/acts specified in the block diagrams and/or flowchart block or blocks, and thereby create means (functionality) and/or structure for implementing the functions/acts specified in the block diagrams and/or flowchart block(s).
Computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instructions which implement the functions/acts specified in the block diagrams and/or flowchart block or blocks.
A tangible, non-transitory computer-readable medium may include an electronic, magnetic, optical, electromagnetic, or semiconductor data storage system, apparatus, or device. More specific examples of the computer-readable medium would include the following: a portable computer diskette, a random access memory (RAM) circuit, a read-only memory (ROM) circuit, an erasable programmable read-only memory (EPROM or Flash memory) circuit, a portable compact disc read-only memory (CD-ROM), and a portable digital video disc read-only memory (DVD/Blu-ray).
The computer program instructions may also be loaded onto a computer and/or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer and/or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block diagrams and/or flowchart block or blocks.
Accordingly, the invention may be embodied in hardware and/or in software (including firmware, resident software, micro-code, etc.) that runs on a processor, which may collectively be referred to as "circuitry," "a module" or variants thereof.
It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved. Moreover, the functionality of a given block of the flowcharts and/or block diagrams may be separated into multiple blocks and/or the functionality of two or more blocks of the flowcharts and/or block diagrams may be at least partially integrated. Finally, other blocks may be added/inserted between the blocks that are illustrated.
The skilled person will be able to envisage other embodiments without departing from the scope of the appended claims. For example, the examples above relate to a call plan and describe call routing, but it will be appreciated that a call is an example of a session and that the techniques equally apply to an type of session handling, for example where the session is a video call.
The following abbreviations have been used in the above description: B2BUA Back-to-back User Agent SIP Session Initiation Protocol UAC User Agent client UAS User Agent server USB Universal Serial Bus XML Extensible Markup Language

Claims (17)

  1. CLAIMS: 1. An apparatus for checking the validity of session handling rules in a telecommunications system, the apparatus comprising: a receiver configured to receive a request for a session handling rule from a function of the telecommunications system, the function being configured to receive and handle sessions within the telecommunications system, and the request comprising a subscription identifier and previous routing data for the session; a processor configured to retrieve a session handling rule from a memory, based on the subscription identifier; wherein the processor is further configured to determine whether the retrieved session handling rule is valid based on the retrieved session handling rule and the previous routing data and to prevent implementation of the retrieved session handling rule if it is determined to be invalid.
  2. 2. An apparatus according to claim 1, wherein the previous routing data comprises an origin for the session, and wherein the processor is configured to determine that the retrieved session handling rule is invalid if a number of sessions with the same origin within a particular time period exceeds a threshold value.
  3. 3. An apparatus according to claim 1 or 2, wherein the previous routing data comprises diversion data indicating an entity from which the session has been previously diverted, and wherein the processor is configured to determine that the retrieved session handling rule is invalid if the indicated entity corresponds to a destination associated with the retrieved session handling rule.
  4. 4. An apparatus according to claim 3, wherein the diversion data comprises a last diverting line identity.
  5. 5. An apparatus according to any preceding claim, wherein the processor is configured to control a transmitter to transmit data notifying the function that the retrieved session handling rule is invalid.
  6. 6. An apparatus according to any preceding claim, wherein the processor is configured to store the previous routing data for a period of time at least as long as the duration of the session.
  7. 7. An apparatus according to claim 6, wherein the processor is configured to use the stored previous routing data to determine whether subsequent session handling rules are valid.
  8. 8. A method for dynamically checking one or more session handling rules in a telecommunications system, the method comprising: receiving, by a receiver, a request for a session handling rule from a function of the telecommunications system, the function being configured to receive and handle sessions within the telecommunications system, and the request comprising a subscription identifier and previous routing data for the session; retrieving, by a processor, a session handling rule from a memory, based on the subscription identifier; determining, by the processor, whether the retrieved session handling rule is valid based on the retrieved session handling rule and the previous routing data; and preventing, by the processor, implementation of the retrieved session handling rule if it is determined to be invalid.
  9. 9. A method according to claim 8, wherein the previous routing data comprises an origin for the session, and wherein the processor determines that the retrieved session handling rule is invalid if a number of sessions with the same origin within a particular time period exceeds a threshold value.
  10. 10. A method according to claim 8 or 9, wherein the previous routing data comprises diversion data indicating an entity from which the session has been previously diverted, and wherein the processor determines that the retrieved session handling rule is invalid if the indicated entity corresponds to a destination associated with the retrieved session handling rule.
  11. 11. A method according to claim 10, wherein the diversion data comprises a last diverting line identity.
  12. 12. A method according to any of claims 8 to 11, wherein the processor controls a transmitter to transmit data notifying the function that the retrieved session handling rule is invalid.
  13. 13. A method according to any of claims 8 to 12, wherein the processor is configured to store the previous routing data for a period of time at least as long as the duration of the session.
  14. 14. A method according to claim 13, wherein the stored previous routing data is used to determine whether subsequent session handling rules are valid.
  15. 15. A computer program comprising instructions which, when executed on at least one processor, cause the at least one processor to carry out the method according to any one of claims 8-14.
  16. 16. A carrier containing the computer program of claim 15, wherein the carrier is one of an electronic signal, optical signal, radio signal, or non-transitory computer readable storage medium.
  17. 17. An apparatus substantially as herein described with reference to the accompanying drawings.
GB1512929.9A 2014-07-23 2015-07-22 Session handling in a communications network Active GB2531109B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB1413048.8A GB2528479A (en) 2014-07-23 2014-07-23 Session handling in a communications network

Publications (3)

Publication Number Publication Date
GB201512929D0 GB201512929D0 (en) 2015-09-02
GB2531109A true GB2531109A (en) 2016-04-13
GB2531109B GB2531109B (en) 2021-09-01

Family

ID=51495000

Family Applications (2)

Application Number Title Priority Date Filing Date
GB1413048.8A Withdrawn GB2528479A (en) 2014-07-23 2014-07-23 Session handling in a communications network
GB1512929.9A Active GB2531109B (en) 2014-07-23 2015-07-22 Session handling in a communications network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB1413048.8A Withdrawn GB2528479A (en) 2014-07-23 2014-07-23 Session handling in a communications network

Country Status (1)

Country Link
GB (2) GB2528479A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030200298A1 (en) * 2002-04-23 2003-10-23 Microsoft Corporation System for processing messages to support network telephony services
US6639980B1 (en) * 1999-03-05 2003-10-28 Mitel Corporation Adaptive rule-based mechanism and method for feature interaction resolution
EP1398942A2 (en) * 2002-08-12 2004-03-17 Mitel Knowledge Corporation Context aware call handling system
US20060218268A1 (en) * 2005-03-28 2006-09-28 Andre Beck Method and apparatus for extending service mediation to intelligent voice-over-IP endpoint terminals
WO2010077131A1 (en) * 2008-12-30 2010-07-08 Telefonaktiebolaget Lm Ericsson (Publ) Expression conflict resolution in communication network tailoring
US20150029895A1 (en) * 2013-07-24 2015-01-29 Vladimir Smelyansky Prevention of call loops for wholesale voip traffic termination

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243712B1 (en) * 1998-04-02 2001-06-05 Lucent Technologies, Inc. Method for creating and modifying similar and dissimilar databases for use in operator services configurations for telecommunications systems
US20020186827A1 (en) * 2001-06-12 2002-12-12 Griffiths Michael A. Method and system for implementing call administration in a public switched telephone network
US7409461B2 (en) * 2002-08-19 2008-08-05 Efficient Networks, Inc. Dynamic file-based routing in a broadband communications system
US7142657B2 (en) * 2002-09-27 2006-11-28 Sprint Spectrum L.P. Method and system for preventing call forward looping
US7533126B2 (en) * 2003-05-05 2009-05-12 Cisco Technology, Inc. Managing contacts in a communication network
US9824107B2 (en) * 2006-10-25 2017-11-21 Entit Software Llc Tracking changing state data to assist in computer network security

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6639980B1 (en) * 1999-03-05 2003-10-28 Mitel Corporation Adaptive rule-based mechanism and method for feature interaction resolution
US20030200298A1 (en) * 2002-04-23 2003-10-23 Microsoft Corporation System for processing messages to support network telephony services
EP1398942A2 (en) * 2002-08-12 2004-03-17 Mitel Knowledge Corporation Context aware call handling system
US20060218268A1 (en) * 2005-03-28 2006-09-28 Andre Beck Method and apparatus for extending service mediation to intelligent voice-over-IP endpoint terminals
WO2010077131A1 (en) * 2008-12-30 2010-07-08 Telefonaktiebolaget Lm Ericsson (Publ) Expression conflict resolution in communication network tailoring
US20150029895A1 (en) * 2013-07-24 2015-01-29 Vladimir Smelyansky Prevention of call loops for wholesale voip traffic termination

Also Published As

Publication number Publication date
GB2528479A (en) 2016-01-27
GB201512929D0 (en) 2015-09-02
GB201413048D0 (en) 2014-09-03
GB2531109B (en) 2021-09-01

Similar Documents

Publication Publication Date Title
US10616747B2 (en) Real-time over the top 9-1-1 caller location data
US8712369B2 (en) Emergency call notification for network services
US10498894B1 (en) System, device, and method for routing communications in an emergency service network
CN104202491A (en) Method for handling customer service telephone call and device thereof
EP3138272B1 (en) Voice call diversion to alternate communication method
CN110784443B (en) Dynamic synchronization of co-existing multi-channel interactions in a contact center
WO2015095578A1 (en) Method and system for intelligent call termination
US9560207B2 (en) Conference call alerts
US10542146B2 (en) Next generation emergency call routing over diverse networks
US20130251123A1 (en) Selecting A Voice Mailbox For A Call Associated With A Diversion Chain
US10250731B2 (en) Control of user equipment functionality
US8311547B2 (en) Method and system for maintaining response center information
US12120264B2 (en) Communications recording
US11271975B2 (en) Enriched calling based call type notification
GB2531109A (en) Session handling in a communications network
US11563782B2 (en) Enriched calling based call routing
CN105376206A (en) Digital graph configuration method, SIP server, SIP terminal, and digital graph configuration system
US12015651B2 (en) Apparatus, method and computer program for supporting fixed-line user equipment
CN113014728A (en) Method, system and computer storage medium for implementing communication assistant service
EP3360300B1 (en) Method for determining whether to apply a media specific action
US8917840B2 (en) Enhanced privacy caller identification system
US9729710B2 (en) Prioritized ongoing communication interrupt
GB2527144A (en) Session Handling in a Communications Network
WO2016053874A1 (en) Method and system for intelligent call termination
CN117956078A (en) Data processing method and device, electronic equipment and computer readable storage medium