UniMRCP 1.4.0 has been released and can be downloaded from the following location:
The recommended version of the UniMRCP dependencies is:
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
- Implemented a more flexible log filtering rules, which can be applied to various log sources.
- Added helper macros for declaration and implementation of custom log sources.
MPF library
- Added new helper functions to allocate and copy RTP media and termination descriptors.
- Implemented a custom log source by using a new MPF_LOG_MARK instead of the default APT_LOG_MARK.
- Fixed the RTP port management routine to allocate ports within the specified range, even if the range contains odd number of ports. (Issue #182)
MRCP client library
- Added an extended version of the function mrcp_session_create(), which takes an external memory pool as an input argument by optionally taking ownership of the provided pool.
- Added support for NTATAG_TIMER_C, which is disabled by default and can be specified via the client API or the configuration file unimrcpclient.xml.
MRCP server library
- Moved the function mrcp_session_answer_create() to a common place, since this function is used not only by the server, but also by a new proxy application.
- Added a new helper macro for the plugins providing support for the use a custom log source.
MRCP transport library
- Added a new function mrcp_control_offer_copy(), which is used by the proxy application to copy an offer received from the client in order to amend and send it over to the server.
RTSP library
- Implemented a custom log source by using a new RTSP_LOG_MARK instead of the default APT_LOG_MARK.
Sofia-SIP module (MRCPv2 agent)
- Implemented a custom log source by using a new SIP_LOG_MARK instead of the default APT_LOG_MARK.
- Fixed a memory leak in processing of SIP OPTIONS requests by destroying the corresponding nua_handle after sending a response.
RTSP module (MRCPv1 agent)
- Store the RTSP response code irregardless of presence of a message body.
- Implemented a custom log source by using a new RTSP_LOG_MARK instead of the default APT_LOG_MARK.
- Fixed processing of malformed responses not having the RTSP Content-Type set.
Demo plugins
- Using the new macro MRCP_PLUGIN_LOG_SOURCE_IMPLEMENT(), which allows to apply flexible log filtering rules to log records produced by plugins.
- Fixed a possible NULL dereference, reported by Coverity scan.
UMC sample application
- Store and use the length of content loaded from a file not only for DEFINE-GRAMMAR requests, but also for others.
- Use the newly added mrcp_session_create_ex() mostly as a sample reference.
- Slightly modified relationship between the classes UmcFramework and UmcSession mainly with regard to session tearing down routine.
- Made non-functional changes to use a unified C++ coding style.
- Took out an unused member variable m_pTimer.
Miscellaneous
- Added .gitignore file.
- Replaced references to Google Code with GitHub.
- Removed the legacy keyword $Id from all the header and source files.
- Updated the default logger.xml to include several custom log sources.
- Redefined the information provided by uni_revision.h.
- Using a new macro UNI_FULL_VERSION_STRING to output version information in applications.
- Added initial support for CMake-based build.
- Fixed compilation warnings encountered with VS2015.
- Added a test SIPP scenario for the UAC resource discovery, which is mainly used as a keep-alive mechanism by MRCP clients.
Thanks for using UniMRCP.