sipwise / rtpengine

The Sipwise media proxy for Kamailio
GNU General Public License v3.0
789 stars 371 forks source link

QoS stats without RTCP, QoS stats per call leg #934

Open jchavanton opened 4 years ago

jchavanton commented 4 years ago

Quick look at the code daemon/media_socket.c We have bytes, packets and errors.

Lets consider a one way transmission example : Caller --legA_Tx--> RTP Engine --legB_Tx--> Callee

It would be valuable to be able to confirm that the losses or jitter was introduced in leg-A or leg-B For leg A RTP Engine could compute losses based on sequence numbers. And inter-arrival jitter, (the same way the callee does when generating RTCP reports as defined in the RFC).

Of course for Leg B only RTCP can be use.

This would provide : 1- More QoS information/stats about the which leg of the call was facing transmission problems 2- Partial QoS information/stats when RTCP is not present

Am I missing something, is this already available ? Else, I could look at implementing this and make an MR as I already contributed RTCP computation in FS a few years ago.

rfuchs commented 4 years ago

No this is not currently available, in particular since rtpengine doesn't pay any heed to sequence numbers or timings in non-transcoding scenarios. This sort of tracking would have to be implemented in both userspace and kernel module.