|
ConfigurationGuide
How to configure UniMRCP client and server.
1. OverviewThis guide describes how to configure UniMRCP client and server. It assumes UniMRCP is already installed, otherwise proceed with the installation first. UniMRCP uses XML based configuration for both client and server. The default configuration files unimrcpclient.xml and unimrcpserver.xml are located in the conf directory of the source tree. 2. Client Configuration2.1. SettingsSignaling AgentsOne or more SIP/MRCPv2 and/or RTSP/MRCPv1 signaling agents must be specified. Each signaling agent must be assigned an unique name and a class identifier. The following is an example of MRCPv2 SofiaSIP signaling agent: <agent name="SIP-Agent-1" class="SofiaSIP">
<param name="client-ip" value="auto"/>
<param name="client-port" value="5060"/>
<param name="server-ip" value="192.168.0.2"/>
<param name="server-port" value="5060"/>
<param name="sip-transport" value="udp"/>
</agent>The following is an example of MRCPv1 UniRTSP signaling agent: <agent name="RTSP-Agent-1" class="UniRTSP">
<param name="server-ip" value="192.168.0.2"/>
<param name="server-port" value="1554"/>
<param name="resource-location" value="media"/>
</agent>Connection Agents (MRCPv2 only)One or more MRCPv2 connection agents must be specified. Each connection agent must be assigned an unique name. The following is an example of MRCPv2 connection agent: <agent name="MRCPv2-Agent-1">
<param name="max-connection-count" value="100"/>
</agent>Media EnginesOne or more media processing engines must be specified. Each media engine must be assigned an unique name. No media engine might be specified in case external media processing is used (bypass media mode). The following is an example of media engine: <engine name="Media-Engine-1"/> RTP Termination FactoriesOne or more RTP termination factories must be specified. Each factory must be assigned an unique name. No factory might be specified in case external media processing is used (bypass media mode). The following is an example of RTP termination factory: <rtp name="RTP-Factory-1">
<param name="rtp-ip" value="auto"/>
<param name="rtp-port-min" value="4000"/>
<param name="rtp-port-max" value="5000"/>
<!-- <param name="playout-delay" value="50"/> -->
<!-- <param name="max-playout-delay" value="200"/> -->
<!-- <param name="ptime" value="20"/> -->
<!-- <param name="codecs" value="PCMU PCMA L16/96/8000"/> -->
</rtp>Note: By default "auto" directive is used wherever the local IP address to bind to must be specified. In this case IP address is automatically guessed. However it may cause some delay on startup. You may want to explicitly specify the IP address in order to speedup the startup or in case the guessed IP address is incorrect. 2.2. ProfilesProfiles are collection of settings. Each profile includes one of signaling, connection agents, etc. Each profile must be assigned an unique name to be referenced by. Multiple profiles can be used at the same time to provide connectivity to several MRCPv2 and/or MRCPv1 servers. It's up to actual application based on UniMRCP client to specify which of the existing profiles to use upon creation of new MRCP session. The following is an example of MRCPv2 profile: <profile name="MRCPv2-Default">
<param name="signaling-agent" value="SIP-Agent-1"/>
<param name="connection-agent" value="MRCPv2-Agent-1"/>
<param name="media-engine" value="Media-Engine-1"/>
<param name="rtp-factory" value="RTP-Factory-1"/>
</profile>The following is an example of MRCPv1 profile: <profile name="MRCPv1-Default">
<param name="signaling-agent" value="RTSP-Agent-1"/>
<param name="media-engine" value="Media-Engine-1"/>
<param name="rtp-factory" value="RTP-Factory-1"/>
</profile>
3. Server Configuration3.1. SettingsSignaling AgentsOne or more SIP/MRCPv2 and/or RTSP/MRCPv1 signaling agents must be specified. Each signaling agent must be assigned an unique name and a class identifier. The following is an example of MRCPv2 SofiaSIP signaling agent: <agent name="SIP-Agent-1" class="SofiaSIP">
<param name="sip-ip" value="auto"/>
<param name="sip-port" value="5060"/>
<param name="sip-transport" value="udp,tcp"/>
</agent>The following is an example of MRCPv1 UniRTSP signaling agent: <agent name="RTSP-Agent-1" class="UniRTSP">
<param name="rtsp-ip" value="auto"/>
<param name="rtsp-port" value="1554"/>
</agent>Connection Agents (MRCPv2 only)One or more MRCPv2 connection agents must be specified. Each connection agent must be assigned an unique name. The following is an example of MRCPv2 connection agent: <agent name="MRCPv2-Agent-1">
<param name="mrcp-ip" value="auto"/>
<param name="mrcp-port" value="1544"/>
<param name="max-connection-count" value="100"/>
</agent>Media EnginesOne or more media processing engines must be specified. Each media engine must be assigned an unique name. The following is an example of media engine: <engine name="Media-Engine-1"/> RTP Termination FactoriesOne or more RTP termination factories can be specified. Each factory must be assigned an unique name. The following is an example of RTP termination factory: <rtp name="RTP-Factory-1">
<param name="rtp-ip" value="auto"/>
<param name="rtp-port-min" value="5000"/>
<param name="rtp-port-max" value="6000"/>
<!-- <param name="playout-delay" value="50"/> -->
<!-- <param name="max-playout-delay" value="200"/> -->
</rtp>MRCP Resource Engines (Plugins)Engines provide back-end for the MRCP resources (synthesizer,recognizer,...) implementing UniMRCP abstract resource engine interface. Engines are integrated into UniMRCP server as plugins. One or more engines (plugins) must be provided to every MRCP resource. Each engine must be assigned an unique name and a class identifier. Class identifier is used to construct the name of the plugin. The way name of the plugin is constructed and the directory where the plugin is looked for are platform dependent. For instance, if class identifier of an engine is "demosynth", the name of the plugin would be "demosynth.dll" for Windows and "demosynth.so" for Linux. The following example specifies two demo engines (plugins): <plugin>
<engine name="Demo-Synth-1" class="demosynth" enable="1"/>
<engine name="Demo-Recog-1" class="demorecog" enable="1"/>
</plugin>Note: By default "auto" directive is used wherever the local IP address to bind to must be specified. In this case IP address is automatically guessed. However it may cause some delay on startup. You may want to explicitly specify the IP address in order to speedup the startup or in case the guessed IP address is incorrect. 3.2. ProfilesProfiles are collection of settings. Each profile includes one of signaling, connection agents, etc. Each profile must be assigned an unique name to be referenced by. Multiple profiles may exist. One profile may provide MRCPv2 capabilities, the second - MRCPv1, while yet others - MRCPv2 or MRCPv1 with somewhat different settings. It depends on the signaling agent MRCP session is established by which profile to use. The following is an example of MRCPv2 profile: <profile name="MRCPv2-Default">
<param name="signaling-agent" value="SIP-Agent-1"/>
<param name="connection-agent" value="MRCPv2-Agent-1"/>
<param name="media-engine" value="Media-Engine-1"/>
<param name="rtp-factory" value="RTP-Factory-1"/>
</profile>The following is an example of MRCPv1 profile: <profile name="MRCPv1-Default">
<param name="signaling-agent" value="RTSP-Agent-1"/>
<param name="media-engine" value="Media-Engine-1"/>
<param name="rtp-factory" value="RTP-Factory-1"/>
</profile>
|
Sign in to add a comment