CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation application under 35 USC §120 and 37 CFR 1.53(b)(1) of co-pending U.S. patent application Ser. No. 13/031,355 ( filed Feb. 21, 2011 and scheduled to issue on Mar. 12, 2013 as U.S. Pat. No. 8,396,072): the contents of which are herby incorporated in thier entirety. 
     
    
     FIELD OF THE INVENTION 
       [0002]    The invention relates to mobile communications networks, and in particular to channel traffic congestion detection and management in a mobile communication system. 
       BACKGROUND 
       [0003]    In mobile communication systems a cell is managed by a base station, BS. Any communication traffic in or out of or within the cell is routed via the BS. The communication is usually sent along a number of channels, each channel assigned to control or data traffic of a particular kind. One example being the Broadcast Control Channel, BCCH, used by a BS to provide a mobile node or Mobile Station, MS, in the cell with control information. Other examples being the Common Control Channel CCCH, compromising of paging, random access, access grant and notification channels used for control signaling during connection establishment. 
         [0004]    At times when many MSs are trying to communicate at the same time in a cell, the control or data traffic can become higher than the BS is capable of handling and the data channels that are used then become congested. In practice this means that some of the mobile station&#39;s (MSs) traffic will not be handled in a timely manner. Congestion may occur on uplink channels (RACH) or on downlink channels. 
         [0005]    To enable devices to communicate freely even under heavy data or control traffic a protocol has been developed wherein a MS has to require a data channel access before starting to communicate. In a system such as the GERAN (GSM EDGE Radio Access Network. GSM—Global System for Mobile communication, EDGE—Enhanced Data rates for GSM Evolution) mobile stations have to send a CHANNEL REQUEST message or an EGPRS CHANNEL REQUEST message on a channel named RACH (Radio Access Channel). If the BS is able to handle the communication a message is sent out granting access on a channel named AGCH (Access Granted CHannel). If the BS is not able to handle the communication a message rejecting the access is sent out on the same channel. The BS may fail to comedy receive the RACH message e.g. if simultaneous RACH messages collide or if the radio link quality is not sufficient. In this case no response is sent to the mobile station at all. Should such a response not be received a MS would resend the request over the RACH. However, during congestion these requests only lead to increased control traffic and therefore adds to the congestion. It should be noted that congestion may occur on either of an upload channel and a download channel or both. 
         [0006]    Therefore, it would be beneficial to control the access requests so as not to burden the base stations unnecessarily and thereby alleviate the congestion in a cell. 
         [0007]    A procedure during which the MS requests resources for control or data traffic is commonly known as the random access procedure. The MS initiates the random access procedure by transmitting a request message. When the MS sends a request message such as a CHANNEL REQUEST message or an EGPRS CHANNEL REQUEST message on a channel named RACH, the MS is expecting to receive a response from the BS within a given time derived from broadcast parameters. The MS is not allowed to retransmit the request sooner than this time. The reason why the BS does not respond to the request message may be one of the following. Firstly, the request message was not received correctly due to the congestion on a channel named RACH or due to poor link conditions. Secondly, the BS cannot send the response within the time constraints due to the congestion on a channel named AGCH. The random access procedure is delayed in either case by the waiting time between the retransmissions of the request messages. 
         [0008]    Therefore, it would be beneficial to estimate the cause of delay in the BS response and allow for shorter waiting time between the retransmissions of the request messages (i.e. faster random access procedure) if the estimation suggests the cause of the delay is an incorrect reception of the request message due to poor link conditions. 
       SUMMARY 
       [0009]    According to an aspect, a method for operating a mobile station is disclosed, the method comprising: detecting by the mobile station whether there is congestion in a cell by monitoring a first channel for downlink messages and decoding the messages to see if the decoded messages indicate congestion, where the first channel is a common control channel (CCCH): and:
       for the case in which the mobile station determines from the decoded messages that there is no congestion, the mobile station initiating a random access procedure by transmitting a request message uplink on a random access channel (RACH); else   for the ease in which the mobile station determines from the decoded messages that there is congestion, the mobile station waiting for a waiting time before initiating a random access procedure an apparatus is disclosed, comprising at least one controller.       
 
         [0012]    In one embodiment to be used in a GERAN system the first channel is the ACCESS GRANTED CHANNEL, AGCH, and the second channel is the REQUEST ACCESS CHANNEL, RACEL 
         [0013]    According to a further aspect, an apparatus for controlling a mobile station is disclosed, the apparatus comprising: at least one controller, and a memory storing a computer program. The controller and the memory with the program are configured to cause the mobile station at least to: detect whether there is congestion in a cell by monitoring a first channel for downlink messages and decoding the messages to see if the decoded messages indicate congestion, where the first channel is a common control channel (CCCH); and
       for the case in which the mobile station determines from the decoded messages that there is no congestion, to initiate a random access procedure by transmitting a request message uplink on a random access channel (RAM): else   for the case in which the mobile station determines from the decoded messages that there is congestion, to wait for a waiting time before initiating a random access procedure.       
 
         [0016]    According to a further aspect, a memory storing a computer program is disclosed. The stored computer program comprises a set of instructions, which, when executed on a data-processing system (such as of a mobile station), causes the data processing system to: detect whether there is congestion in a cell by monitoring a first channel for downlink messages and decoding the messages to see if the decoded messages to indicate congestion, where the first channel is a common control channel (CCCH); and
       for the case in which it is determined, from the decoded messages that there is no congestion, initiate a random access procedure by transmitting a request Message Uplink on a random access channel (RACH); else   for the case in which it is determined from the decoded messages that there is congestion, wait for a waiting time before initiating a random access procedure.       
 
         [0019]    In one embodiment, the computer program is stored on a computer readable memory. The computer readable memory may be, but is not limited to, a removable memory card, a removable memory module, a magnetic disk, an optical disk, a holographic memory or a magnetic tape. A removable memory module may be, for example, a USB memory stick, a PCMCIA card or a smart memory card. 
         [0020]    It should be noted that congestion may occur on either of an upload channel and a download channel or on both or on a channel for both upload and download and the teachings herein apply equally to these different arrangements. 
         [0021]    The embodiments described hereinbefore may be used in any combination with each other. Several of the embodiments may be combined together to form a further embodiment. A method, a system, an apparatus, a computer program or a computer program product to which the invention is related may comprise at least one of the embodiments described hereinbefore. 
         [0022]    The benefits of the teachings herein are related to reducing congestion on data traffic channels by enabling user equipment to monitor the traffic on the channels and only make requests when there is no congestion. 
         [0023]    A further benefit is that priority is given to some devices either requiring lower priority devices to adhere to the processes described herein or by giving lower priority devices longer waiting times. 
         [0024]    An even further benefit is that user equipment may be dynamically informed of the congestion status by a base station or other network component. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0025]    The accompanying drawings, which are included to provide a further understanding and constitute a part of this specification, illustrate embodiments and together with the description help to explain the principles In the drawings: 
           [0026]      FIG. 1   a  is a block diagram illustrating an apparatus according an embodiment according to the teachings herein; 
           [0027]      FIG. 1   b  is a block diagram illustrating an apparatus according an embodiment according to the teachings herein; 
           [0028]      FIG. 2   a  is a flowchart according to an embodiment of a method discussed herein; 
           [0029]      FIG. 2   b  is a flowchart according to an embodiment of a method discussed herein; 
           [0030]      FIG. 2   c  is a flowchart according to an embodiment of a method discussed herein; 
           [0031]      FIG. 2   d  is a flowchart according to an embodiment of a method discussed herein; 
           [0032]      FIG. 2   e  is a flowchart according to an embodiment of a method discussed herein; 
           [0033]      FIG. 2   f  is a flowchart according to an embodiment of a method discussed herein 
           [0034]      FIG. 2   g  is a flowchart according to an embodiment of a method discussed herein; 
           [0035]      FIG. 2   h  is a flowchart according to an embodiment of a method discussed herein. 
           [0036]      FIG. 2   i  is a flowchart according to an embodiment of a method discussed herein. 
       
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
       [0037]    Reference will now be made in detail to the embodiments of the present invention, examples of which are illustrated in the accompanying drawings, 
         [0038]      FIG. 1   a  is a block diagram illustrating an apparatus according to an embodiment. The apparatus comprises at least one controller  100 , such as a processor, a memory  110  and a communication interface  120 . In one embodiment the apparatus is a computer chip. In the memory  110  computer instructions are stored which are adapted to be executed on the processor  110 . The communication interface  120  is adapted to receive and send information to and from the processor  100 . 
         [0039]      FIG. 1   b  is a block diagram illustrating an apparatus according to an embodiment. In one embodiment the apparatus is a mobile station. The apparatus comprises at least one controller  100 , such as a processor, a memory  110  and a communication interface  120 . In the memory  110  computer instructions are stored which are adapted to be executed on the processor  110 . The communication interface  120  is adapted to receive and send information to and from the processor  100 . The communication interface  120  further comprises a radio frequency interface  125  for communicating between apparatuses and a man-machine interface (MMI)  126  for communicating between the apparatus and a user. Such an MMI may include a touch pad, a display, a. keypad, audio in and output and/or a touch display as are known (not shown). The mobile station further comprises an antenna  130  and a second memory  140  that comprises user applications such as a message handling application, a voice call handling application, a text editor, an interact browser application and drivers for further devices to be connected to or incorporated in the apparatus, such as a camera module for example. In one embodiment memories  110  and  140  are incorporated within the same memory module. 
         [0040]    In one embodiment the apparatus is, for example, a mobile node, user equipment, cellular phone, a mobile terminal, an Application Specific Integrated Circuit (ASIC), an Integrated Chip (IC) or any chip.  FIG. 1   a  is an example embodiment of an ASIC.  FIG. 1   b  is an example embodiment of a mobile phone. 
         [0041]    In one embodiment an apparatus according to above is adapted to be part of a radio network. The network may be a GSM-Edge Radio Access Network (GERAN). The network may also be any cellular radio access network such as, for example, an E-UTRAN or a UMTS Terrestrial Radio Access Network (UTRAN). Such a system comprises a number of base stations each handling a cell. At least one User Equipment, UE, is part of a cell and being handled by the cell&#39;s base station. A UE may be mobile and is thus able to move between cells. In one embodiment a UE is an apparatus according to above. 
         [0042]      FIG. 2  shows a series of flow charts each according to an embodiment of the teachings herein. 
         [0043]    In one embodiment,  FIG. 2   a , a MS detects if there is congestion  210 . If there is no congestion the MS proceeds with sending a CHANNEL REQUEST message or an EGPRS PACKET CHANNEL REQUEST message on a Request Access CHannel, RACH  250 . If there is congestion the MS waits  260  and then again detects if there is congestion  210 . 
         [0044]    In one embodiment an apparatus is configured to determine if a network node, such as a base station, BS, has received a request message, an RACH message, from a mobile station and if such a message is received then the controller is configured to apply a random delay or waiting time before repeating the RACH transmission. 
         [0045]    In one embodiment, an apparatus is configured to determine if a network node, such as a base station, BS, has received a request message, an RACH message, from a mobile station and if such a message is not received then the controller is configured to apply a shorter random delay or waiting time before repeating the RACH transmission. 
         [0046]    In one embodiment, an apparatus is configured to determine a network node, such as a base station. BS, has received a request message, an RACH message, from a mobile station if congestion is detected. 
         [0047]    This avoids unnecessary delays when there is no congestion. 
         [0048]    In the following reference will be made to  FIGS. 1 and 2  simultaneously as the apparatus of  FIG. 1  is adapted to execute the method of  FIG. 2 . 
         [0049]    In one embodiment, see  FIG. 2   b , the controller  100  of an apparatus is configured to detect that there is congestion  210  by receiving through the communication interface  120  a series of blocks  220  that have been transmitted on a channel, such as the AGCH. In a system such as a GERAN system it is possible to detect whether there is congestion by monitoring the AGCH channel as if there is not enough traffic to fully utilize the capacity of the BS the BS will transmit blocks with L2 fill frames. 
         [0050]    In one embodiment the processor therefore reads or decodes the blocks  220  being transmitted and counts the number of L2 fill frames  225 . If the number of fill frames is  0  (zero) there is congestion. 
         [0051]    In one embodiment the series of blocks has a length of N and in one embodiment N is 3. In one embodiment N is in the range of 2 to 4. In one embodiment N is 5. In one embodiment N is 10. In one embodiment N is in the range 3 to 15. In such an embodiment the controller  100  is free to perform other tasks when there is congestion after having decoded the N blocks. It should be noted that longer series provide for a more accurate determination of the congestion, but also take longer time to decode. A tradeoff of which feature to focus on is left to a system designer. 
         [0052]    In one embodiment the series of blocks does not have a specified length, but the controller is configured to read blocks until a  1 , 2  fill frame is detected. This enables the processor to start transmitting the channel request as soon as it is detected that there is no congestion, but it may also lead to that the controller is busy reading many blocks unnecessarily if there is congestion, i.e. the processor  100  keeps decoding until the congestion is dissolved. In such an embodiment the box with reference  260  in  FIG. 2  is not needed. 
         [0053]    In one embodiment, see  FIG. 2   c , the controller  100  is further configured to count  230  the number of assignment messages such as IMMEDIATE ASSIGNMENT messages and IMMEDIATE ASSIGNMENT REJECT messages that are decoded or read in the series of blocks having been read  220 . In this embodiment the controller is configured to determine a ratio between the L2 fill frames and the IMMEDIATE ASSIGNMENT messages and IMMEDIATE ASSIGNMENT REJECT messages  235 . If this ratio is below a threshold value T then there is no congestion. 
         [0054]    In one embodiment the threshold value T is 1:9. In one embodiment the threshold value T is 1:3. In one embodiment the threshold value T is 2:5. In one embodiment the threshold value is in the range of 1 to 3. 
         [0055]    In one embodiment the IMMEDIATE ASSIGNMENT messages and/or IMMEDIATE ASSIGNMENT REJECT messages comprises a congestion flag (a I bit logical marker) which is set (the bit is set to I in one embodiment) by a base station if there is congestion and not set (the bit is set to  0  in one embodiment) if there is no congestion. 
         [0056]    In one such embodiment, see  FIG. 2   d  the controller is adapted to read a series of blocks  220  and determine  240  if a block is decoded to contain a congestion flag which is set there is congestion and if a block is decoded to contain a congestion flag which is not set there is no congestion. 
         [0057]    In one embodiment the series of blocks has a length of N and in one embodiment N is 3. In one embodiment N is in the range of 2 to 4. In one embodiment N is 5. In one embodiment N is 10. In one embodiment N is in the range 3 to 15. In such an embodiment the controller  100  is free to perform other tasks when there is congestion after having decoded the N blocks. 
         [0058]    In one embodiment the series of blocks does not have a specified length, but the controller is configured to read blocks until a not set congestion flag is detected. This enables the processor to start transmitting the channel request as soon as it is detected that there is no congestion, but it may also lead to that the controller is busy reading many blocks unnecessarily if there is no congestion, i.e. the processor is  100  keeps decoding until the not set congestion bit is received. 
         [0059]    In one such an embodiment having a congestion flag the apparatus is enabled to be dynamically informed of the congestion status by a network node such as a base station or other network component. 
         [0060]    In one such embodiment a network node such as a base station or other network component is configured to set the congestion flag based on the current queue length for the AGCH. 
         [0061]    In one such embodiment a network node such as a base station or other network component is configured to set the congestion flag more accurately based on implementation specific criteria that include other factors such as the packet utilization. 
         [0062]    In one embodiment a controller  100  is configured to determine the waiting time based on the number of channels and/or their availability. 
         [0063]    In one embodiment a controller  100  is configured to employ a statistical analysis of the channel usage to predict when congestion is about to arise and/or to dissolve to determine a waiting time. 
         [0064]    In one such embodiment a network node such as a base station or other network component is configured to set the congestion flag more accurately based on a combination of implementation specific criteria that includes other factors such as the packet channel utilization and the current queue length for the AGCH. 
         [0065]    In one such embodiment the process of checking for congestion may be run in the background and an apparatus therefore does not need to make a congestion check each time a channel is to be requested as the apparatus is kept aware of the congestion status by the base station. In one embodiment a copy of the congestion flag is stored in the memory  110  of the apparatus for quick and easy reference. 
         [0066]      FIG. 2   e  shows a combination of the embodiments above as has been described with reference to  FIGS. 1 ,  2   a ,  2   b .  2   c , and  2   d.    
         [0067]    In one embodiment the controller  100  is configured to wait between attempts to determine whether there is congestion or not. 
         [0068]      FIG. 2   a  shows a flowchart where a controller  100  is configured to wait  260  for a pre-determined time WT until making another attempt. The time to wait WT may be standard specific. If the time to wait WT is set to zero (0) the controller  100  is configured to continuously read blocks until it is detected that there is no congestion. 
         [0069]    In one embodiment see  FIG. 2   f , the controller  100  is configured to listen to a broad cast channel, such as a Broadcast Control CHannel, BCCH, on which a base station is transmitting for a waiting time WT  252 . In such an embodiment a base station is configured to broadcast a waiting time VT. This enables a base station to control how long different MSs are to wait and thus allow the base station to both control the traffic on the channels (reducing unnecessary attempts) and ordering a further priority scheme among devices (lower priority devices get longer waiting times). 
         [0070]    In one embodiment the controller  100  is configured to determine a waiting time WT based on other broadcast parameters related to non-congested behavior such as time between request retransmission and maximum allowed number of retransmissions 
         [0071]    In one embodiment see  FIG. 2   g , the controller  100  is configured to increase the waiting time WT with the number of times that a detection of congestion has been made  254 . In one embodiment the waiting time increases linearly with the number of attempts, for example through a formula such as: 
         [0000]      WT=number of attempts*Constant. 
         [0072]    In one embodiment the controller  100  is configured to base the waiting time on a geometric series. 
         [0073]    In one embodiment the waiting time increases non-linearly with the number of attempts, for example through a formula such as: 
         [0000]      WT=Constant̂ A number of attempts.
 
         [0074]    In one embodiment see  FIG. 2   h , the controller  100  is configured to increase the waiting time WT with the number of IMMEDIATE ASSIGNMENT and/or IMMEDIATE ASSIGNMENT REJECT messages received  256 . In one embodiment the waiting time increases linearly with the number of messages received, for example through a formula such as: 
         [0000]      WT=number of messages*Constant. 
         [0075]    In one embodiment the controller  100  is configured to base the waiting time on a geometric series. 
         [0076]    In one embodiment see  FIG. 2   i , the controller  100  is configured to set the waiting time WT to a random number  258 . This improves the synchronization of many UEs simultaneously waiting for congestion to disappear or a new congestion night occur should all waiting UEs send their requests at the same time 
         [0077]    It should be noted that the random element may be added in all embodiments described above. For example, the formula for the waiting time of  FIG. 2   g  becomes 
         [0000]        WT =number of attempts*Constant±Random
 
         [0000]      or 
         [0000]      WT=number of attempts*Constant * Random. 
         [0078]    In one embodiment the random element is taken from a range that grows with the number of attempts and/or messages. For example the random element could be taken from the range [constant1, constant2*nbr of attempts]. 
         [0079]    It should be noted that in the embodiments above the waiting time is proportionate to one or more parameters of the system, wherein it should be noted that the waiting time is not necessarily directly proportionate to the parameters. 
         [0080]    The embodiments described hereinbefore in association with  FIGS. 1 and 2  may be used in any combination with each other. Several of the embodiments may be combined together to form a further embodiment. 
         [0081]    The exemplary embodiments can be included within any suitable device, for example, including any suitable servers, workstations, PCs, laptop computers, PDAs, Internet appliances, handheld devices, cellular telephones, wireless devices, other devices, and the like, capable of performing the processes of the exemplary embodiments, and which can communicate via one or more interface mechanisms, including, for example, Internet access, telecommunications in any suitable form (for instance, voice, modem, and the like), wireless communications media, one or more wireless communications networks, cellular communications networks,  3 G communications networks,  43  communications networks Public Switched Telephone Network (PSTNs), Packet Data Networks (PDNs), the Internet, intranets, a combination thereof, and the like, 
         [0082]    It is to be understood that the exemplary embodiments are for exemplary purposes, as many variations of the specific hardware used to implement the exemplary embodiments are possible, as will be appreciated by those skilled in the hardware art(s). For example, the functionality of one or more of the components of the exemplary embodiments can be implemented via one or more hardware devices, or one or more software entities such as modules. 
         [0083]    The exemplary embodiments can store information relating to various to processes described herein. This information can be stored in one or more memories, such as a hard disk, optical disk, magneto-optical disk, RAM, and the like. One or more databases can store the information used to implement the exemplary embodiments of the present inventions. The databases can be organized using data structures (e.g., records, tables, arrays, fields, graphs, trees, lists, and the like) is included in one or more memories or storage devices listed herein. The processes described with respect to the exemplary embodiments can include appropriate data structures for storing data collected and/or generated by the processes of the devices and subsystems of the exemplary embodiments in one or more databases. 
         [0084]    All or a portion of the exemplary embodiments can be implemented by the preparation of application-specific integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be appreciated by those skilled in the electrical art(s). 
         [0085]    As stated above, the components of the exemplary embodiments can include computer readable medium or memories according to the teachings of the present inventions and for holding data structures, tables, records, and/or other data described herein. Computer readable medium can include any suitable medium that participates in providing instructions to a processor for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, transmission media, and the like. Non-volatile media can include, for example, optical or magnetic disks, magneto-optical disks, and the like. Volatile media can include dynamic memories, and the like. Transmission media can include coaxial cables, copper wire, fiber optics and the like. Transmission media also can take the form of acoustic, optical, electromagnetic waves, and the like, such as those generated during radio frequency (RF) communications, infrared (IR) data communications, and the like. Common forms of computer-readable media can include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, any other suitable magnetic medium, a CD-ROM, CDRW, DVD, any other suitable optical medium, punch cards, paper tape, optical mark sheets, any other suitable physical medium with patterns of holes or other optically recognizable indicia, a RAM, a PROM, an EPROM, a FLASH-EPROM, any other suitable memory chip or cartridge, a carrier wave or any other suitable medium from which a computer cart read. 
         [0086]    While the present inventions have been described in connection with a number of exemplary embodiments, and implementations, the present inventions are not so limited, but rather cover various modifications, and equivalent arrangements, which fall within the purview of prospective claims. 
         [0087]    The embodiments described hereinbefore in association with  FIGS. 1 and 2  may be used in any combination with each other. Several of the embodiments may be combined together to form a further embodiments. 
         [0088]    It is obvious to a person skilled in the art that with the advancement of technology, the basic idea may be implemented in various ways. The invention and its embodiments are thus not limited to the examples described above; instead they may vary within the scope of the claims.
A mobile station detects whether there is congestion in a cell by monitoring a first channel fix downlink messages and decoding the messages to see if the decoded messages indicate congestion, where the first channel is a common control channel (CCCH). For the case in which the mobile station determines from the decoded messages that there is no congestion, the mobile station initiates a random access procedure by transmitting a request message uplink on a random access channel (RACH). Else for the case in which the mobile station determines from the decoded messages that there is congestion, the mobile station waits for a waiting time before initiating a random access procedure.