VoipReceiver
Package: simu5g.apps.voip
VoipReceiver
simple moduleRepresents a model for the receiver of Voice-over-IP (VoIP) traffic. It receives packets sent by a VoipSender application via UDP and records statistics such as packet loss, end-to-end latency, jitter, and throughput. Furthermore, it computes and emits a MOS (Mean Opinion Score) value, which represents the Quality-of-Experience of the end users.
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
| localPort | int | 3000 | |
| emodel_Ie | int | 5 |
TODO from some ITU standard, figure it out |
| emodel_Bpl | int | 10 | |
| emodel_A | int | 5 | |
| emodel_Ro | double | 93.2 | |
| playoutDelay | double | 0s | |
| dimBuffer | int | 20pk |
Number of packets |
| samplingTime | double | 0.02s |
Properties
| Name | Value | Description |
|---|---|---|
| display | i=block/source |
Gates
| Name | Direction | Size | Description |
|---|---|---|---|
| socketOut | output | ||
| socketIn | input |
Signals
| Name | Type | Unit | Description |
|---|---|---|---|
| voipFrameLoss | |||
| voipFrameDelay | |||
| voipPlayoutDelay | |||
| voipPlayoutLoss | |||
| voipJitter | |||
| voipMos | |||
| voipTaildropLoss | |||
| voipReceivedThroughput |
Statistics
| Name | Title | Source | Record | Unit | Interpolation Mode | Description |
|---|---|---|---|---|---|---|
| voipFrameLoss | VoIP Frame Loss | voipFrameLoss | mean | ratio | ||
| voipFrameDelay | VoIP Frame Delay | voipFrameDelay | mean, vector | s | ||
| voipPlayoutDelay | VoIP Playout Delay | voipPlayoutDelay | mean, | s | ||
| voipPlayoutLoss | VoIP Playout Loss | voipPlayoutLoss | mean | ratio | ||
| voipJitter | VoIP Jitter | voipJitter | mean | s | ||
| voipMos | VoIP Mos Signal | voipMos | mean | MOS | ||
| voipTaildropLoss | VoIP Tail Drop Loss | voipTaildropLoss | mean | ratio | ||
| voipReceivedThroughput | Throughput received at the application level | voipReceivedThroughput | simu5g_rateavg, vector | Bps |
Source code
// // Represents a model for the receiver of Voice-over-IP (VoIP) traffic. // It receives packets sent by a ~VoipSender application via UDP and records statistics // such as packet loss, end-to-end latency, jitter, and throughput. Furthermore, it computes // and emits a MOS (Mean Opinion Score) value, which represents the Quality-of-Experience of // the end users. // simple VoipReceiver like IApp { parameters: int localPort = default(3000); int emodel_Ie = default(5); // TODO from some ITU standard, figure it out int emodel_Bpl = default(10); int emodel_A = default(5); double emodel_Ro = default(93.2); double playoutDelay @unit("s") = default(0s); int dimBuffer @unit(pk) = default(20pk); // Number of packets double samplingTime @unit("s") = default(0.02s); @signal[voipFrameLoss]; @statistic[voipFrameLoss](title="VoIP Frame Loss"; unit="ratio"; source="voipFrameLoss"; record=mean); @signal[voipFrameDelay]; @statistic[voipFrameDelay](title="VoIP Frame Delay"; unit="s"; source="voipFrameDelay"; record=mean,vector); @signal[voipPlayoutDelay]; @statistic[voipPlayoutDelay](title="VoIP Playout Delay"; unit="s"; source="voipPlayoutDelay"; record=mean,); @signal[voipPlayoutLoss]; @statistic[voipPlayoutLoss](title="VoIP Playout Loss"; unit="ratio"; source="voipPlayoutLoss"; record=mean); @signal[voipJitter]; @statistic[voipJitter](title="VoIP Jitter"; unit="s"; source="voipJitter"; record=mean); @signal[voipMos]; @statistic[voipMos](title="VoIP Mos Signal"; unit="MOS"; source="voipMos"; record=mean); @signal[voipTaildropLoss]; @statistic[voipTaildropLoss](title="VoIP Tail Drop Loss"; unit="ratio"; source="voipTaildropLoss"; record=mean); @signal[voipReceivedThroughput]; @statistic[voipReceivedThroughput](title="Throughput received at the application level"; unit="Bps"; source="voipReceivedThroughput"; record=simu5g_rateavg,vector); @display("i=block/source"); gates: output socketOut; input socketIn; }File: src/simu5g/apps/voip/VoipReceiver.ned