The RTP control protocol (RTCP) has been implemented in the trunk.
RTCP allows to monitor RTP delivery. The protocol is based on periodic transmission of control packets. The primary function is to provide statistical reports such as Sender Report (SR) and Receiver Report (RR).
There are a number of options to configure.
1. Enable RTCP support
Currently RTCP is disabled by default, you should enable it first from unimrcpclient.xml and/or unimrcpserver.xml configuration files.
<!-- enable/disable rtcp support -->
<param name="rtcp" value="1"/>
2. Transmission of RTCP reports
The default transmission interval is 5 sec. This is the period RTCP reports are generated and sent with. Typically, RTCP traffic bandwidth should be fixed at 5% of overall RTP/RTCP session bandwidth. Anyway, you can adjust the interval by the following parameter. To disable periodic transmission set it 0.
<!-- rtcp transmission interval in msec -->
<param name="rtcp-tx-interval" value="5000"/>
3. Transmission of an RTCP BYE packet
According to the specification (RFC3550), a participant should sent an RTCP BYE packet when he wishes to leave an RTP session. Typically, RTP is used in conjunction with higher level session management protocols such as SIP, H323, which provide own mechanisms for the participants to join/leave a session. Therefore, presence of RTCP BYE packet is usually optional.
However, the role of RTCP BYE in an MRCP environment was re-defined by well known vendor(s). It's intended to indicate end of input (utterance). All the mentioned options are supported by UniMRCP now.
<!-- rtcp bye policies
0 - disable rtcp bye
1 - send rtcp bye at the end of session
2 - send rtcp bye also at the end of each talkspurt (input)
<param name="rtcp-bye" value="1"/>
4. Reception of RTCP packets
Currently this routine dumps received RTCP packets in the logs and it is mainly helpful for monitoring and debugging.
The period, which is used to check for new RTCP messages, can be adjusted by the following parameter. To disable the reception of RTCP packets set it 0.
<!-- period (timeout) to check for new rtcp messages in msec -->
<param name="rtcp-rx-resolution" value="1000"/>
Give it a try by choosing options which best fit your needs.
The author of UniMRCP