Package: simu5g.apps.voip
VoIPReceiver
simple moduleThis module 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.
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 | |
playout_delay | double | 0s | |
dim_buffer | int | 20pk |
in the number of packets |
sampling_time | 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 | |||
voIPPlayoutLoss | |||
voIPMos | |||
voIPReceivedThroughput | |||
voIPTaildropLoss | |||
voIPFrameDelay | |||
voIPPlayoutDelay | |||
voIPJitter |
Statistics
Name | Title | Source | Record | Unit | Interpolation Mode | Description |
---|---|---|---|---|---|---|
voIPFrameLoss | VoIP Frame Loss | voIPFrameLoss | mean | ratio | ||
voIPPlayoutLoss | VoIP Playout Loss | voIPPlayoutLoss | mean | ratio | ||
voIPMos | VoIP Mos Signal | voIPMos | mean | MOS | ||
voIPReceivedThroughput | Throughput received at the application level | voIPReceivedThroughput | mean, vector | Bps | ||
voIPTaildropLoss | VoIP Tail Drop Loss | voIPTaildropLoss | mean | ratio | ||
voIPFrameDelay | VoIP Frame Delay | voIPFrameDelay | mean, vector | s | ||
voIPPlayoutDelay | VoIP Playout Delay | voIPPlayoutDelay | mean, | s | ||
voIPJitter | VoIP Jitter | voIPJitter | mean | s |
Source code
// // This module 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 playout_delay @unit("s") = default(0s); int dim_buffer @unit(pk) = default(20pk); // in the number of packets double sampling_time @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=mean,vector); @display("i=block/source"); gates: output socketOut; input socketIn; }File: src/apps/voip/VoIPReceiver.ned