1. Field
The present application relates to wireless local area networks, and, more particularly, to auto-detecting one or more wireless stations in a wireless local area network.
2. Description of the Related Art
Traditionally, the public switched telephone network (PSTN) has been used for telecommunications. In general, users place calls on the PSTN using a telephone that establishes an electrical connection with a local telephone office (a central office). The central office responds with a dial tone. The user then dials a telephone number identifying the destination of the call. A network of switching systems then connects the call between the caller and the destination.
In conventional telephony, voice quality is typically measured by the Mean Opinion Score (MOS score) standardized by the International Telecommunications Union (ITU). The MOS score is subjectively determined by the customer user experience and is defined in the ITU-T Recommendation G.107. The MOS score has a range of 0-5, with 4.5 generally considered a good quality voice sound.
The MOS score is related to an objective Rating Value (R-Value), which combines various transmission parameters relevant for the considered connection. The R-Value can be determined by analyzing the received voice data for a variety of parameters, such as latency, time delay, jitter, variation in the time delay, burst rate, loss rate, etc. The R-Value has a range of 0-100, with 90 considered a good quality voice signal. The ITU standardized equation for the R-Value is:
R=R0−Is−Id−Ie-eff+A.
R0 is the signal-to-noise ratio. Is is the signal impairment. Id is the delay impairments. Ie-eff is the effective equipment impairment. A is the advantage factor.
A recent advancement of telephony is the development VoIP. In VoIP, calls are carried on computer networks in addition to or instead of on the PSTN. The analog voice signals are converted to digital signals in data clusters called wireless frames. The wireless frames contain information as to where the data should be delivered. Instead of a telephone number, the voice data is sent to a specific IP address.
VoIP can be implemented on a wired local area network and/or a wireless local area network. When VoIP is implemented on a wired local area network, voice quality can be measured by examining the frames that carry the VoIP data. In particular, an R-Value is typically determined by examining the Real-time Transport Protocol (RTP) fields in the frames. However, when VoIP is implemented on a wireless local area network, particularly one operating in accordance with the IEEE 802.11 standard, an R-Value cannot be determined by examining the RTP field in the wireless frames because, except for header information, the wireless frames are encrypted.
In one exemplary embodiment, a process for detecting a phone includes monitoring wirelessly transmitted traffic between first and second stations. Next, the process determines whether the traffic sent in both directions between the first and second stations are close to each other in term of traffic volume. The process identifies a total frames count of a number of frames of an identical frame size transmitted, where the number of frames is greater than any number of frames of a same size. The process calculates the percentage of the count that was just collected out of the count of the total frames. The process identifies the first station as a phone if the calculated percentage is over a first threshold and the total frames count is over a second threshold.
In order to provide a more thorough understanding of the present invention, the following description sets forth numerous specific details, such as specific configurations, parameters, examples, and the like. It should be recognized, however, that such description is not intended as a limitation on the scope of the present invention, but is intended to provide a better description of the exemplary embodiments.
With reference to
A station 104 is a device that can be used to connect to the WLAN, which can be mobile, portable, stationary, and the like, and can be referred to as the network adapter or network interface card. For instance, a station 104 can be a laptop computer, a personal digital assistant, a mobile telephone, and the like. In addition, a station 104 can support station services, such as authentication, deauthentication, privacy, delivery of data, and the like.
Each station 104 can communicate directly with an AP 102 through an air link, such as by sending a radio or infrared signal between WLAN transmitters and receivers. For example, with reference to
With reference again to
Under the current IEEE 802.11 standard, each station 104 must be authenticated to and associated with an AP 102 in order to become a part of a BSS 106, 108, or 110. One station 104 can be authenticated to different APs 102 simultaneously, but can only be associated with one AP 102 at any time.
Once a station 104 is authenticated to and associated with an AP 102, the station 104 can communicate with another station 104 in the WLAN. In particular, a station 104 can send a frame having a source address, a basic service set identification address (“BSSID”), and a destination address, to its associated AP 102. The AP 102 can then distribute the frame to the station 104 specified as the destination address in the frame. This destination address can specify a station 104 in the same BSS 106, 108, or 110, or in another BSS 106, 108, or 110 that is linked to the AP 102 through distribution system 112. It should also be recognized that station 104 can communicate with devices in a wired network that is linked to AP 102 through distribution system 112.
As noted earlier, VoIP can be implemented on a WLAN operating in accordance with the IEEE 802.11 standard. The voice data is carried in wireless frames transmitted in the WLAN. For example, with reference again to
As also noted above, when VoIP is implemented on a wired network, an R-value can be determined by examining the RTP fields in the frames carrying VoIP data. However, when VoIP is implemented on a wireless local area network, particularly one operating in accordance with the IEEE 802.11 standard, an R-Value cannot be determined by examining the RTP fields in the wireless frames because, except for header information, the wireless frames are encrypted.
In particular, with reference to
Thus, with reference again to
In the present exemplary embodiment, an R-Value is determined based on the set of wireless frames 402 received by detector 206. In particular, with reference to
Referring to
In processing block 508, a loss rate is determined based on the number of wireless frames which arrive at the expected time in the set and an expected number of wireless frames during the predetermined time period. In processing block 510, a burst rate is determined based on the identification of missing wireless frames in the set. In processing block 514, a rating value indicative of voice quality is determined based on the loss rate and burst rate.
As depicted in
Although detector 206 is depicted in
1. Determining Loss Rate
As described above, in one exemplary embodiment, an R-Value is determined based, in part, on a loss rate determined based on a set of wireless frames received during a predetermined time period. With reference to
Referring to
With reference again to
With reference again to
2. Determining Burst Rate
As described above, in one exemplary embodiment, an R-Value is determined based, in part, on a burst rate. In particular, in the present exemplary embodiment, the burst rate is determined based on a state transition probability defined as:
p is the probability that a wireless frame goes from a found to lost state. q is the probability that a wireless frame goes from a lost to found state.
A. Identifying Missing Wireless Frames Based on Arrival Times
With reference to
Referring to
In processing block 803, the arrival time of the first wireless frame in the set is examined to determine if the first wireless frame in the set arrived within the first time range. In the present example, with reference to
With reference again to
In processing block 806, a determination is made as to whether the next wireless frame in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
As depicted in
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
With reference again to
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(4), where t(4)=[t(0)+20*4] milliseconds, a start time of t(4)−30 milliseconds, and an end time of t(4)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(5), where t(5)=[t(0)+20*5] milliseconds, a start time of t(5)−30 milliseconds, and an end time of t(5)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(6), where t(6)=[t(0)+20*6] milliseconds, a start time of t(6)−30 milliseconds, and an end time of t(6)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(7), where t(7)=[t(0)+20*7] milliseconds, a start time of t(7)−30 milliseconds, and an end time of t(7)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(8), where t(8)=[t(0)+20*8] milliseconds, a start time of t(8)−30 milliseconds, and an end time of t(8)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
In iterating processing block 804, the next time range is determined. In the present example, the next time range has an expected time of t(9), where t(9)=[t(0)+20*9] milliseconds, a start time of t(9)−30 milliseconds, and an end time of t(9)+30 milliseconds.
In processing block 806, a determination is made as to whether the next wireless frame found in the set has an arrival time within the next time range. In the present example, with reference to
With reference again to
As noted above, in the present exemplary embodiment, p is calculated by dividing the number of wireless frames in the found-to-lost state by the total number of wireless frames originating from the found state. Thus, in the present example, p is 0.4 (i.e., the value of the found-to-lost counter, which is two, divided by the total number of wireless frames originating from the found state, which is the sum of the found-to-found counter and the found-to-lost counter, which is 5).
As also noted above, in the present exemplary embodiment, q is calculated by dividing the number of wireless frames in the lost-to-found state by the total number of wireless frames originating from the lost state. Thus, in the present example, q is 0.5 (i.e., the value of the lost-to-found counter, which is two, divided by the total number of wireless frames originating from the loss state, which is the sum of the lost-to-lost counter and the lost-to-found counter, which is 4).
As also noted above, in the present exemplary embodiment, the burst rate is determined as 1/(p+q). Thus, in the present example, the burst rate is 1.11 (i.e., 1/(0.4+0.5))
B. Identifying Missing Wireless Frames Based on Sequence Numbers
With reference to
Referring to
With reference again to
With reference again to
With reference again to
After either of processing blocks 916 or 918, process 900 iterates to processing block 904 and the sequence number of the next wireless frame is examined. In the present example, with reference to
With reference again to
In the present example, with reference to
With reference again to
With reference again to
In the present example, with reference to
As depicted in
As depicted in
As noted above, in the present exemplary embodiment, p is calculated by dividing the number of wireless frames in the found-to-lost state by the total number of wireless frames originating from the found state. Thus, in the present example, p is 0.4 (i.e., the value of the found-to-lost counter, which is two, divided by the total number of wireless frames originating from the found state, which is the sum of the found-to-found counter and the found-to-lost counter, which is 5).
As also noted above, in the present exemplary embodiment, q is calculated by dividing the number of wireless frames in the lost-to-found state by the total number of wireless frames. Thus, in the present example, q is 0.5 (i.e., the value of the lost-to-found counter, which is two, divided by the total number of wireless frames originating from the loss state, which is the sum of the lost-to-lost counter and the lost-to-found counter, which is 4).
As also noted above, in the present exemplary embodiment, the burst rate is determined as 1/(p+q). Thus, in the present example, the burst rate is 1.11 (i.e., 1/(0.4+0.5)).
3. Determining Jitter
With reference to
In particular, in processing block 1002, the actual inter-frame intervals of the wireless frames in the set is determined from the arrival times of the wireless frames. For example,
With reference again to
With reference again to
4. Determining the R-Value
In the present exemplary embodiment, the R-Value is determined based the determined loss rate, the determined burst rate, and the ITU standardized equation for R-Value, which is:
R=R0−Is−Id−Ie-eff+A.
In the above equation, the values of R0, Is, Id and A are determined using default values from the ITU-T (International Telecommunication Union) G.113, G.113-appendix I, and G.107. In the present example, assuming the codec as g.729A with packet size 20 ms, the values of R0, Is, Id and A are 95, −5.1, 0.15, and 0, respectively. The value of Ie-eff is determined using the following equation:
where Equipment Impairment Factor, Ie, and Packet-loss Robustness Factor, Bpl, which are 11 and 19 respectively, are default values for given for the G.729A Codec in the ITU-T G.113 Appendix I. In the present example, plugging-in the values of determined loss rate, Ppl, of 40%, and the determined burst rate, BurstR, of 1.11 into the above equation, the value of Ie-eff is 72. Thus, in the present example, the R-Value is 27.
5. Determining a Voice Quality Score
In the present exemplary embodiment, the determined R-Value can be mapped to a voice quality score, such as a MOS score, as depicted in
MOS=1+R*0.035+R*(R−60)*(100−R)*7*10−6
Thus, in the present example, where R-Value is 27, the corresponding MOS score is 1.5.
6. Correlating Voice Quality Scores with Signal Quality
In one exemplary embodiment, a plurality of rating values can be determined over a period of time. The plurality of rating values can be mapped to a plurality of voice quality scores, such as MOS scores, over the period of time. The voice quality scores over the period of time can then be displayed. One or more measured wireless-related functions (e.g., signal qualities, loss rate, signal strength, jitter, etc.) over the period of time can also be displayed in conjunction with the displayed voice quality scores. A user can then correlate the voice quality scores with the one or more measured signal qualities.
For example,
Thus, these screen captures may be used to illustrate correlations in the voice quality score (MOS) and other parameters such as, for example, jitter, loss rate signal strength, in that the MOS score changes when there are variable changes in some of the other score. Being able to associate the MOS with other parameters like loss rate signal may be used to identify a particular problem. That is, by visualizing parameters in the relationships to the MOS score, a determination may be made as the root cause of the problem, simply by examining the graph.
7. IP-PBX
As depicted in
In one exemplary embodiment, call information associated with the set of wireless frames received by the detector can be obtained and used to improve the accuracy of the voice quality score or for troubleshooting. For example, IP-PBX 214 can be used to obtain and track call information from the MAC address such as user information, IP addresses, dialed phone number, reason for call termination, etc. The detector 206 can access the IP-PBX 214 to retrieve the MAC address and Call Detail Record (CDR). The CDR retrieved from IP-PBX 214 allows for further diagnosis of the wireless VoIP network in conjunction with the voice quality scores. By identifying the MAC address of a call at the detector 206, a wireless station 104 can be determined to be a phone.
In one exemplary embodiment, call information between the set of wireless frames (i.e., the wireless detected call) and IP-PBX 214 can be tracked by correlating the wireless MAC address of the wireless phone and the time of call. Using the MAC address, the phone number, IP address, and user name can be derived from IP-PBX 214. The combination of the MAC address and call time can be used to retrieve additional information for a particular call. For example, the Call Detail Record (CDR) can also be retrieved from IP-PBX 214 using the same MAC address and call-time combination to further assist wireless call quality diagnosis.
In one exemplary embodiment, detector 206 can include a mechanism to auto-detect a wireless phone (as opposed to a wireless laptop station for example).
In one embodiment, a phone is detected based on the traffic pattern the phone has.
Referring to
At processing block 1303, after determining that the traffic in both directions is close, processing logic identifies the most frames count with the same frame size. For instance, if 10 frames of size 100 are received, 30 frames of size 154 are received, and 10 frames of size 40 are received, then the most frames count with same frame size is 30.
Afterwards, processing block calculates the percentage of the count that was just collected out of the count of the total frames (processing block 1304). In the above example, this calculation is as follows:
30/(10+30+10)=60%.
Processing logic then tests whether the calculated percentage is over a first threshold and the total frames count is over a second threshold (processing block 1305). If so, processing logic identifies the station as a phone; if either condition is not met, processing logic concludes that the station is not a phone. In one embodiment, the first threshold is 90% and the second threshold is 50 for both directions. However, if the total frames count is 50, which is more than 40, but the calculated percentage 60% is less than 80%, processing logic would conclude the station is not a phone. Note that the thresholds may vary depending on the end stations, components and wireless environment.
In another exemplary embodiment, IP-PBX 214 can be used to more precisely identify a wireless phone by its MAC address. In particular, IP-PBX 214 can identify the MAC addresses of all phone calls. If these MAC addresses are picked up by detector 206, the calls can then be definitively identified as being from phones.
8. Call Detection
In one embodiment, a call detection process is performed.
Referring to
After identifying which frames are voice data, processing logic uses a counter to count the number of consecutive frames to arrive during a predetermined period of time (processing block 1402). The predetermined period of time is based on the expected frame duration between each voice data frame. The expected frame duration between each voice data frame is fixed. For example, in one embodiment, the expected frame duration between each voice data frame is 20 ms. In such a case, voice data frames are expected to be received every 20 ms.
Processing logic tests whether the number of consecutive frames arriving during the predetermined period of time is equal to a threshold (processing block 1403). In one embodiment, the threshold is 10 frames. If it is, then processing logic identifies that a call has started (processing block 1404) and the process ends. If not, then processing logic resets the counter to zero (processing block 1405) and returns to processing block 1402 and the process is repeated.
Returning to the example above with the expected frame duration between each voice data frame being 20 ms, if voice data frames are received in every 20 ms for 10 consecutive frames, processing logic concludes that a call has started. On the other hand, if there is inconsistency of the voice data frames arriving at the expected time, processing logic resets the counter to 0, and repeats the counting process, thereby waiting until another 10 consecutive frames arrive at the correct time slot to be considered a start of a new call.
9. Smart Scan
Many wireless client cards can only scan one channel at a time and there are numerous channels to scan. This can cause information in some channels to be missed so that a complete set of data is not received. To compensate for this problem, in one embodiment, an initial, short scan (less than full) is performed to quickly obtain data from channels of interest. In one embodiment, all the channels are scanned for a short period of time. In another embodiment, only a subset of all the channels are scanned. For example, the subset of channels may be selected based on media type. In such a case, the subset of channels may consist of all the A channels or all the BG channels. Other subsets of channels include the extended channels and the 4.9 GHz channel. The scan time is shorter than the normal scan time (e.g., 0.5 seconds, 0.25 seconds, most likely we will use 0.25 second). In one embodiment, the short scan time is variable and may be changed dynamically for each new scan of the channels based on one or more factors such as, for example, the number of channels being scanned, the AP state, the traffic volume, or wireless environment
After collecting the data from the short scan, the data is examined and a decision is made as to which channel(s) to examine further. That is, a determination is made as to the number of channels to scan further. In one embodiment, a determination is also made as to how long to focus on each of this set of channels.
The selection of channels from the group that was subject to the short scan may be based on a variety of one or more factors. These factors may include channel utilization. For example, those channels that are most heavily used are selected for further scanning. Another factor may include the number of APs and/or end stations that are involved in the scan. This may even include end stations that are not actually in use at the time of the scan. Other factors include the number of current connections of a particular type (e.g., active voice activity in each channel) and the number of alarms. In one embodiment, the user determines the number to select in the scan that occurs after the initial, short scan.
In one embodiment, the process of performing a short scan on a set of channels, analyzing the data collected from the scan, performing a full or longer scan on a subset of the set of channels based on analysis of the data, and then analyzing the data resulting from the full or longer scan is repeated. In one embodiment, the process is repeated at regular intervals. In another embodiment, the process is repeated if the factors upon which the selection of the subset is made are changed. In yet another embodiment, the process is repeated if the state of the factors upon which the selection of the subset is made have changed. For example, if channel utilization was used as a factor during selection of the subset of factors and there was a drop in utilization, then the process is repeated. As another example, if the number of APs was used as a factor during selection of the subset of factors and there was a change (e.g., a decrease or increase in the number of APs), then the process is repeated. Note that the fact that a change occurred in itself may trigger a repeat in the process; however, in alternative embodiments, a predetermined amount of change may be necessary before triggering a repeat of the process. The predetermined amount of change may be based on percentage (e.g., a preselected drop in utilization rate) or actual number (e.g., a preselected amount of drop in utilization rate). For example, in the case where channel utilization was used as a factor during selection of the subset of factors, a drop in utilization may not trigger a repeat of the process unless the utilization drops a predetermined amount (e.g., by percentage, in the aggregate, etc.).
Although the present invention has been described with respect to certain exemplary embodiments, examples, and applications, it will be apparent to those skilled in the art that various modifications and changes may be made without departing from the invention.
Number | Name | Date | Kind |
---|---|---|---|
7221927 | Kolar et al. | May 2007 | B2 |
7233602 | Chen et al. | Jun 2007 | B2 |
7336670 | Calhoun et al. | Feb 2008 | B1 |
7990883 | Nishikawa | Aug 2011 | B2 |
8040837 | Urabe et al. | Oct 2011 | B2 |
20030235208 | Sahinoglu | Dec 2003 | A1 |
20050111487 | Matta et al. | May 2005 | A1 |
20050268181 | Murty et al. | Dec 2005 | A1 |
20060029096 | Babbar et al. | Feb 2006 | A1 |
20060126577 | Yano et al. | Jun 2006 | A1 |
20060200845 | Foster et al. | Sep 2006 | A1 |
20060280205 | Cho | Dec 2006 | A1 |
20070242702 | Shim | Oct 2007 | A1 |
20070258383 | Wada | Nov 2007 | A1 |
20080066113 | Skelly | Mar 2008 | A1 |
Number | Date | Country | |
---|---|---|---|
20090316605 A1 | Dec 2009 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11796335 | Apr 2007 | US |
Child | 12552230 | US |