This invention relates generally to communications and more particularly call signaling messages.
Communication networks support a multitude of communications between parties. Such communications include voice, data, video, multi-media, e-mail, etc. To initiate a communication, an originating party transmits a communication request, which includes the identity of the originating party, the identity of the destination party or parties, and the type of requested communication, to a local communication processing entity. The local communication processing entity determines, from the communication request, whether the originating party is authentic, whether it is authorized to access the requested type of communication, and whether the destination party is, or parties are, local to the local communication processing entity.
If a destination party is local, the local communication processing entity provides an incoming communication message to the destination party. The destination party responds to the incoming communication message with a communication connect message that is provided to the local communication processing entity. The local communication processing entity, in response to the communication connect message, establishes a communication path between the originating party and the destination party. In addition, the local communication processing entity supports the communication path until a communication end message is received. At this point, the local communication processing entity tears down the communication path.
If one or more of the destination parties is/are not local to the local communication processing entity, the local communication processing entity provides a connection communication setup message to the communication network. The communication network transports, via an intervening switch or a plurality of intervening switches, the communication setup message to a destination local communication processing entity that is affiliated with a destination party. The destination local communication processing entity provides the setup message to the destination party. In response, the destination party provides a communication connect message to the destination local communication processing entity. The destination local communication processing entity then provides the connect message to the originating local communication processing entity via the communication network. In turn, a communication path is established via the intervening switch or switches of the communication network between the originating and destination local processing entities.
Because the communication network can support a multitude of communications, any switch in the network may become overloaded. Such a switch may be a local communication processing entity and/or an intervening switch within the network. An overload condition may be caused by a burst of overhead data and/or sustained amount of overhead data messages that exceeds the switch's capacity. As is known, the overhead data messages include call set-up messages, connect messages, call proceeding messages, call release messages, release complete messages, and link layer information.
One technique to reduce the effects of overloading is to queue, in a first in first out (FIFO) manner, incoming overhead data messages. While FIFO queuing works well for most burst conditions, it adds a latency when the overload is a sustained overload. The latency can rise above a call set-up time-out and may even rise above a connect time out. As such, calls and/or setup messages of calls are dropped.
Another technique for reducing the effects of overloading is to use a last-in-first-out (LIFO) queuing technique as specified in Bell Core TR-PSY-000505 issue 2, section 5.3.8, July 1987. As is known, in a LIFO queuing scheme, the longer an item remains in the queue the less likely it will get processed. But newly received requests, i.e., messages, do not wait long unless it gets bumped for a newer message. As such, when the switch is in a sustained overload, some messages are dropped, but they are the oldest ones in the queue. If the dropped message is a call set-up message, the originating party's request is dropped, requiring the originating party to resend the request. If the dropped message is a connect message, the call is dropped before a communication path is established, which wastes the processing efforts of the switch to establish the call up to this point. In addition, the communication path that was at least partially established, is unusable for other communications until a time out expires. Such a time out is typically ten seconds. If the dropped message is a release message, the links, i.e., the communication resources, comprising the communication path are wasted, i.e., unavailable for reallocation, until a thirty second time out expires. If, the thirty second time-out message is also dropped, the communication resources are permanently hung up.
Another issue with LIFO queuing is multi-party calls and the addition of a party to a multi-party call. For such calls, the LIFO dequeuing process may not enqueue the multi-party call set-up messages in the proper order. As such, certain parties may not be added to the multi-party communication. For example, a typical multi-party communication is established by sending a message identifying a request for a multi-party communication and messages to add the parties. If an add party message is received before the establishment a multi-party communication message is received, the add party message will be dropped, thereby preventing the identified party from participating in the multi-party communication.
Therefore, a need exists for a method and apparatus that processes burst and overload conditions with reduced latency and without dropping messages that, when dropped, waste communication resources.
Generally, the present invention provides a method and apparatus for processing call signaling messages during burst overloading and sustained overloading of a communications switch. Such processing begins by receiving a plurality of call signaling messages, which may be call set-up messages, connect messages, call proceeding messages, call release messages, release complete messages, link layer information, etc. The processing then continues by comparing a queue occupancy level of a call processing queue with a first queue occupancy threshold. If the queue occupancy level compares unfavorably with the first queue occupancy threshold (e.g., the queue is storing more messages than desired), call signaling messages are enqueued into the call processing queue based on the types of the call signaling messages. For example, dispensable call signaling messages are enqueued in a LIFO manner while indispensable and essential messages are enqueued in a FIFO manner. Dispensable messages are those, that if dropped, have minimal impact on the efficiency of the communication switch and/or do not evoke a time-out process to release whatever communication resources have been allocated to a particular communication set-up request. With such a method and apparatus, burst and/or sustained overload conditions in a communication switch are handled with reduced latency and without dropping call signaling messages that, when dropped, waste communication resources.
The present invention can be more fully described with reference to
To establish a communication between end-users, for example between an end user associated with local switch 14 and an end user associated with local switch 22, an originating end user transmits a set up message to the local switch. This is illustrated in the switch relay diagram portion of
Upon receiving the set-up message, the destination local switch provides a call proceeding message to the network switches and provides the call set-up message to the destination end user. In response, the destination end-user provides a connect message to the destination local switch which provides the connect message to the network switches and a connect acknowledge message to the destination end user. The network switches provide the connect message to the originating local switch and the connect acknowledge message to the destination local switch. The originating local switch then provides the connect message to the originating end-user, which, in turn, provides the connect acknowledge message to the originating local switch. At this point, a communication path is established between the end-users and remains intact until one of the parties initiate a release message.
In this illustration, the originating end-user initiates the release message, which it provides to the originating local switch. The originating local switch relays the release message to the network switches and provides a release complete message to the origination end user. The network switches relay the release message to the destination local switch and provide a release complete message to the originating local switch. The destination local switch relays the release message to the destination end-user and provides a release complete message to the network switches. Upon receiving the release message, the destination end user provides a release complete message to the destination local switch. At this point, the communication path between the originating end-user and destination end-user is completely torn down. Note that this example call set up and tear down process is at least one methodology specified in the DSS2 UNI specification for call/connection control, referenced as ITU-T Q.2931.
In operation, the call processing card 52 determines whether calls for a particular line card are in a sustained and/or overload condition. Such a determination may be made by comparing queue occupancy level (i.e., the percentage of messages currently stored within the queue with respect to the total number of messages the queue is capable of storing) to a queue occupancy threshold, or thresholds. If the queue occupancy level exceeds a first queue occupancy threshold, the call processing card enqueues call signaling messages such that dispensable messages are dequeued using a LIFO dequeuing technique and indispensable and essential messages are dequeued using a FIFO dequeuing technique. The LIFO and FIFO dequeuing techniques are performed using dequeuing lists, which are discussed below with reference to
The call processing cards each include a plurality of dequeuing lists to track the call signaling messages and their particular type or status. Such dequeuing will also be described in greater detail with reference to
The type list 112 identifies the particular types of call signaling messages that have been received and in what order. Such call signaling message types include dispensable, indispensable, and essential. For example, call set-up messages may be dispensable, link layer information may be essential, and other call signaling messages may be indispensable. As one of average skill in the art would appreciate, the assignment of the types of the call signaling messages as being dispensable, indispensable and essential may vary depending on the desired operation of the system.
To dequeue the call signaling messages from the call processing queue, the dequeuing lists are utilized. The dequeuing process begins by determining the first entry in the type list 112. As shown, this entry is a dispensable call signaling message. As such, the dispensable list 114 is accessed. Depending on whether the dequeuing is established as a FIFO or a LIFO, a particular dispensable call signaling message would be dequeued from the call processing queue. The dispensable list 114 will operate in a FIFO manner as long as the switch is in a non-overload condition. When the switch enters an overload condition, the dispensable list is accessed in a LIFO manner, while the indispensable list 116 and the essential list 118 are accessed in a FIFO manner. The remaining call signaling messages would be retrieved from the queue based on the type and order in which they were received. As one of average skill in the art will appreciate, the indispensable list 116 and the essential list 118 can be combined into a single list. The utilization of the call processing queue and the dequeuing list can be discussed in greater detail with reference to
The process then proceeds to step 124 where a determination is made as to whether the comparison at step 122 was unfavorable. If the comparison was not unfavorable, i.e., the queue occupancy level is less than the first queue occupancy threshold, the process proceeds to step 128. At step 128, the call processing queue is enqueued such that the call signaling messages may be dequeued in a FIFO manner.
If the comparison at step 124 was unfavorable, the process proceeds to step 126. At step 126, the queue occupancy level is compared with a second queue occupancy threshold. The second queue occupancy level threshold will be set at a value greater than or equal to the first queue occupancy threshold and may be set at the maximum capacity of the queue or some portion thereof. The process then proceeds to step 130 where a determination is made as to whether the comparison at step 130 was unfavorable.
If the comparison at step 130 was not unfavorable, i.e., the queue occupancy level is greater than or equal to the first queue occupancy threshold but less than the second queue occupancy threshold, the process proceeds to step 131. At step 131, the plurality of call signaling messages are enqueued into the call processing queue based on the types of call signaling messages. For example, when the received call signaling message is a dispensable message, a previously queued dispensable message is deleted from the call processing queue if such a message exists. The newly received dispensable call signal message is then stored in the call processing queue. If a previously queued dispensable message does not exist within the call processing queue, the newly received dispensable call signaling message is dropped. For example, if the currently received message is a call setup message, a previously queued call setup message will be deleted and the newly received one will be added to the call processing queue. If, however, a previously stored call setup message does not exist in the call processing queue, the newly received call setup message will be dropped. If, the newly received call signaling message is an indispensable message or an essential message, the newly received call signaling message is enqueued into the call processing queue. Note that to delete a previously queued dispensable message, the dispensable list 114, as shown in
If the comparison at step 130 was unfavorable (i.e., the queue occupancy level is above the first and second queue occupancy level thresholds), the process proceeds to step 132. At step 132 a determination is made as to whether the call type of the call signaling message is dispensable. If not, the process proceeds to step 134 where a determination is made as to whether the call type of the current call signaling message is indispensable. If not, the process proceeds to step 136 where the newly received call signaling message is an essential call signaling message and such message is enqueued such that it may be dequeued in a FIFO manner. Note that if the queue is completely full, a dispensable message will be deleted to make room for the essential message. If a dispensable message is not queued, an indispensable message will be deleted.
If the call type of the call signaling message is dispensable, the process proceeds to step 138 where a determination is made as to whether the call processing queue includes a previously queued dispensable message. If not, the process proceeds to step 140 where the newly received call signaling message is dropped. If, however, the queue includes a previously queued dispensable message, the process proceeds to step 142. At step 142 the previously queued dispensable message is deleted from the queue. The process then proceeds to step 144 where the newly received dispensable call signaling message is enqueued into the call processing queue.
If the newly received call signaling message is an indispensable message, the process proceeds to step 146. At step 146, a determination is made as to whether the call processing queue currently includes a queued dispensable message. If so, the process proceeds to step 148 where the previously queued dispensable message is deleted from the queue. The process then proceeds to step 150 where the newly received indispensable call signaling message is enqueued into the call processing queue.
If, however, the queue does not include a currently enqueued dispensable message the process proceeds to step 152. At step 152 a determination is made as to whether the queue includes a previously queued indispensable message. If not, the process proceeds to step 154 where the newly received indispensable call signaling message is dropped. If, however, the queue includes a previously queued indispensable message, the process proceeds to step 156 where such a message is deleted from the queue. The process then proceeds to step 158 where the newly received indispensable call signaling message is enqueued into the call processing queue.
If, however, the switch is in a sustained overload condition, the process proceeds to step 168. At step 168, a first type of call signaling messages are dequeued from the queue in a first dequeuing manner while other call signaling messages are dequeued in a second dequeuing manner. Steps 170 through 174 further describe the processing done at step 168. At step 170, a plurality of dequeuing lists are maintained. The dequeuing lists track available locations in the queue, an order list of the types of call signaling messages, an order list of dispensable messages, an ordered list of indispensable messages, and an order list of essential messages. Such dequeuing lists were illustrated in
If the switch is in a non-overload condition, the call signaling messages are dequeued in a FIFO manner. If, however, the switch is in an overload condition, the dispensable messages are dequeued in a LIFO manner. Note that a delay may be added such that the switching of dequeuing of the dispensable messages from the FIFO manner to the LIFO manner avoids an unstable condition. For example, it would be desirable to avoid a constant switching between LIFO dequeuing of dispensable messages and a FIFO dequeuing of dispensable messages. In addition, the delay allows bursts of messages to be dequeued in a FIFO manner, without first transitioning to a LIFO dequeuing process.
At step 174, the dispensable call signaling messages are dequeued in a LIFO manner when the switch is in the sustained overload condition. As such, depending on the type of the overload condition, call signaling messages are dequeued in a FIFO manner and/or LIFO manner to reduce latency and to drop only messages that minimally waste communication resources.
The preceding discussion has presented a method and apparatus for processing call signaling messages in a communication system. By implementing a call signal processing module in a switch or multiple modules in a switch, overload conditions may be processed with reduced latency and with reduced waste of communication resources. By dropping dispensable call signaling messages when in an overload condition, the latency is reduced as well as the wasting of resources due to dropped messages.
Number | Name | Date | Kind |
---|---|---|---|
4961137 | Augusteijn et al. | Oct 1990 | A |
5521923 | Willmann et al. | May 1996 | A |
5999969 | Holmes et al. | Dec 1999 | A |
6134216 | Gehi et al. | Oct 2000 | A |
6310952 | Baldwin et al. | Oct 2001 | B1 |
6341301 | Hagan | Jan 2002 | B1 |