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).
- 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.m...
https://kamailio.org/docs/modules/5.1.x/modules/rtpengine.html#rtpengine.p.m...
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.
Cheers