Mijn vraag
Vanuit Skype haal ik een aantal cijfers op om de kwaliteit van een gesprek te meten.
Dit doe ik door gebruik te maken van drie getallen.
Ik wil ze alle drie even sterk mee laten tellen.
Het probleem ontstaat dat het behalen van een maximale score binnen de categorie Impacted of Poor, dit is niet mogelijk. Omdat er minimaal een getal (PacketLoss/Jitter/RoundTrip) een slechtere score moet halen om in die categorie terecht te komen.
Iemand enig idee hoe ik dat op zou kunnen lossen?
Relevante software en hardware die ik gebruik
[QoEMetrics].[dbo].[QoEReportsCallListView] Skype view en PowerShell ISE
Wat ik al gevonden of geprobeerd heb.
Vanuit Skype haal ik een aantal cijfers op om de kwaliteit van een gesprek te meten.
Dit doe ik door gebruik te maken van drie getallen.
- Packet Loss
- Jitter
- Roundtrip
Ik wil ze alle drie even sterk mee laten tellen.
Categorie | Score | Packet Loss | Jitter | RoundTrip |
Good | 8 to 10 | <=1% | 0-20 | 0-300 |
Impacted | 4 to 7.99 | >1% - 10% | >20-30 | >300-500 |
Poor | 0 to 3.99 | >10% - 50% | >30-100 | >500-800 |
Bad | 0 | >50% | >100 | >800 |
Het probleem ontstaat dat het behalen van een maximale score binnen de categorie Impacted of Poor, dit is niet mogelijk. Omdat er minimaal een getal (PacketLoss/Jitter/RoundTrip) een slechtere score moet halen om in die categorie terecht te komen.
Iemand enig idee hoe ik dat op zou kunnen lossen?
Relevante software en hardware die ik gebruik
[QoEMetrics].[dbo].[QoEReportsCallListView] Skype view en PowerShell ISE
Wat ik al gevonden of geprobeerd heb.
PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| Function CalculateScore { Param ( [Parameter(Mandatory=$true, Position=0, HelpMessage = 'Input the PacketLoss as a percentage')] $packetloss, [Parameter(Mandatory=$true, Position=1, HelpMessage = 'Input the Jitter')] $jitter, [Parameter(Mandatory=$true, Position=2, HelpMessage = 'Input the RoundTrip')] $roundtrip ) #Bad If($packetloss -gt 50 -or $jitter -gt 100 -or $roundtrip -gt 800) { $score = 0 } #Poor ElseIf(($packetloss -gt 10 -and $packetloss -le 50) -or ($jitter -gt 30 -and $jitter -le 100) -or ($roundtrip -gt 500 -and $roundtrip -le 800)) { #"0.01 to 3.99" $maxscore = 3.99 $plscore = $maxscore - ($maxscore/50)*$packetloss $jitscore = $maxscore - ($maxscore/100)*$jitter $rtscore = $maxscore - ($maxscore/800)*$roundtrip $score = ($plscore + $jitscore + $rtscore)/3 } #Impacted ElseIf(($packetloss -gt 1 -and $packetloss -le 10) -or ($jitter -gt 20 -and $jitter -le 30) -or ($roundtrip -gt 300 -and $roundtrip -le 500)) { #"4 to 7.99" $maxscore = 3.99 $plscore = $maxscore - ($maxscore/10)*$packetloss $jitscore = $maxscore - ($maxscore/30)*$jitter $rtscore = $maxscore - ($maxscore/500)*$roundtrip $score = (($plscore + $jitscore + $rtscore)/3)+4 } #Good ElseIf(($packetloss -le 1) -and ($jitter -le 20) -and ($roundtrip -le 300)) { #"8 to 10" $maxscore = 1.99 $plscore = $maxscore - ($maxscore/1)*$packetloss $jitscore = $maxscore - ($maxscore/20)*$jitter $rtscore = $maxscore - ($maxscore/300)*$roundtrip $score = (($plscore + $jitscore + $rtscore)/3)+8 } return [string]$score } |
[ Voor 0% gewijzigd door RobIII op 20-08-2019 12:56 . Reden: Gebruik code-tags i.p.v. quote tags om code te posten ;) ]