[SR-Users] RTPEngine QoS statistics and leg labelling

Richard Fuchs rfuchs at sipwise.com
Wed Feb 14 00:34:53 CET 2018

On 2018-02-13 06:16 PM, Alex Balashov wrote:
> A functional call ordinarily consists of an inbound and outbound RTP
> stream direction relative to the endpoints on both sides of RTPEngine.
>     Inbound A --> server --> Outbound A
>     Outbound B <-- server <--- Inbound B
> Where do the "global" stats situate themselves in relation to all this?

It's the min, max, and average between the two call legs (and other 
contributing sources that may have been involved in the call).

> 2. I am given to understand that the statistics for the "A" and "B"
> sides of a bidirectional RTP stream can be separated based on an
> arbitrary label, using these PVs:
> https://kamailio.org/docs/modules/5.1.x/modules/rtpengine.html#rtpengine.p.mos_A_label_pv
> https://kamailio.org/docs/modules/5.1.x/modules/rtpengine.html#rtpengine.p.mos_B_label_pv
> How do I use it properly?
> My intuition was to try something like this:
>     rtpengine_offer("replace-origin replace-session-connection ICE=remove label=outbound");
> And in the answer/manage handler on the SDP answer:
>     rtpengine_answer("replace-origin replace-session-connection ICE=remove label=inbound");
> Later, when processing a BYE and obtaining subsequent media statistics,
> I tried this:
>          if(check_route_param("proxy_media=yes")) {
>                  $avp(rtpengine_a_label) = 'outbound';
>                  $avp(rtpengine_b_label) = 'inbound';
>                  rtpengine_delete();
>                  route(LOG_RTPENGINE_STATS);
> 	}
That should actually work. You can check the actual data returned from 
rtpengine to Kamailio by running rtpengine with log level 7, or use the 
included rtpengine-ng-client script to run a "query" command against 
rtpengine for a running call and see what comes out of it.


More information about the sr-users mailing list