UniMRCP 1.5.0 has been released and can be downloaded from the following location:
The recommended version of the UniMRCP dependencies is:
This release improves sustainability of the UniMRCP server. If an MRCP session is not properly terminated by the client, then the server initiates session termination in a timely manner.
The client application and plugin integration interfaces retain backward compatibility. Everybody is encouraged to upgrade.
The detailed list of changes introduced in this release follows.
APR-toolkit library
- Added a helper function to set default log source.
- Added a reset flag not to advance timer queue if elapsed time has been reset. Fixed timer skew issue.
MPF library
- Added a helper function to compare media descriptors.
MRCP server library
- Properly set the length of "Active-Request-Id-List" header field generated in STOP response messages. Fixed issue #190. Thanks Mert.
- Revised the way log source is implemented in plugins by means of MRCP_LOGGER_IMPLEMENT() and MRCP_LOG_SOURCE_IMPLEMENT() macros.
- Do not further process an MRCPv1 session offer (RTSP SETUP request), if engine_channel could not be created. Fixed issue #193.
- Implemented graceful server shutdown.
- Added functions mrcp_server_offline() and mrcp_server_online() to the server interface.
- Implemented handling of a TCP/MRCPv2 peer disconnect event. Fixed issue #162.
- Improved processing of SIP re-INVITEs. If a new offered session descriptor is identical to previous one, then do not re-build media streams.
MRCP transport library
- Do not allow a TCP/MRCPv2 connection to be re-used more than the number of times specified by the configuration parameter max-shared-use-count.
- Do not allow a TCP/MRCPv2 connection to remain in the connected state infinitely.
- Added a helper function to compare control media descriptors.
RTSP library
- Do not allow an RTSP connection to remain in the connected state infinitely.
- Implemented server-initiated session termination.
- Fixed processing of an error case, when the RTSP session-id is missing in non-SETUP/DESCRIBE requests.
- Implemented online/offline task interface methods by responding to incoming requests with 503 Service Unavailable in offline mode.
Sofia-SIP module (MRCPv2 agent)
- Implemented server-initiated session termination.
- Added mrcp_sofia_task as a common base for client and server agents by implementing apt_task interface via su_root.
- Implemented online/offline task interface methods by responding to incoming requests with 503 Service Unavailable in offline mode.
- Added support for SIP Session Timer (https://tools.ietf.org/html/rfc4028).
RTSP module (MRCPv1 agent)
- Implemented server-initiated session termination.
UniMRCP server application
- Added a new option -w or --without-cmdline, which allows to run unimrcpserver without command line. Fixed systemd issue.
- Added offline and online commands to the unimrcpserver command-line interface.
- Added new parameters "sip-session-expires" and "sip-min-session-expires" to default configuration of "sip-uas".
- Added a new parameter "inactivity-timeout" to default configuration of "rtsp-uas".
- Added new parameters "max-shared-use-count", "inactivity-timeout" and "termination-timeout" to default configuration of "mrcpv2-uas".
UMC sample application
- Split umcscenarios.xml configuration file into individual parts located in umc-scenarios subfolder.
- Fixed profile selection logic.
Miscellaneous
- Added spaces between string literals in log statements to address compilation warnings.
- Use apr_size_t instead of size_t consistently.
- If pkg-config is missing, return an error on ./configure.
Thanks for using UniMRCP.