Guide

 ------>  (Association, Dependency)


    ^
    |     (Generalization)
    |




Abstract
   This document contains basic overview of components in OpenMRCP project.
   Component is an library or final application.
   
1. MRCP Core
   MRCP core is an MRCPv1 (RFC4463) and MRCPv2 (draft-ietf-speechsc-mrcpv2-12) 
   compliant implementation with abstract signaling (SIP or RTSP), 
   connection (MRCPv2 TCP/TLS), media (RTP/RTCP) interfaces.

    -----------             ---------------------------
   | MRCP Core | --------> | Signaling Agent Interface | 
    -----------             ---------------------------
    -----------             ---------------------------
   | MRCP Core | --------> | Connection Agent Interface | 
    -----------             ----------------------------
    -----------             -----------------------
   | MRCP Core | --------> | Media Agent Interface | 
    -----------             -----------------------


2. Modules
   Module is an implementation of abstract interface declared in MRCP Core
   
                  ---------------------------
                 | Signaling Agent Interface |
                  ---------------------------
                               ^
                               |
             ---------------------------------------
            |                                       |
    --------------------                    -------------------- 
   | Sofia-SIP (MRCPv2) |                  | LiveRTSP (MRCPv1)  |
    --------------------                    -------------------- 

               
3. Plugins
   Plugin is an extension to MRCP server, which provides implementation of
   MRCP resource (synthesizer, recognizer,...). Plugin is dynamic shared
   library with run-time linking.

                  --------------------------------
                 | MRCP Resource Plugin Interface |
                  --------------------------------
                                ^
                                |
           ------------------------------------------
          |                     |                    |
    -------------       -----------------       -------------- 
   | Demo Plugin |     | Cepstral Plugin |     | Other Plugin |
    -------------       -----------------       -------------- 


4. OpenMRCP Server
   OpenMRCP server supports MRCPv2 and MRCPv1 (under the way). OpenMRCP server 
   is a final implementation which just combines underlying bricks (libraries, 
   modules and plugins) in a stand alone application.

    ----------             -----------
   | OpenMRCP |           | MRCP Core |
   |  Server  |           |-----------|
   |          |  ------>  |  Modules  |
   |          |           |-----------|
   |          |           |  Plugins  |
    ----------             -----------


5. OpenMRCP Client
   OpenMRCP client supports MRCPv2 and MRCPv1 (under the way). OpenMRCP client 
   is a final implementation which just combines underlying bricks (libraries, 
   modules).

    ----------             -----------
   | OpenMRCP |           | MRCP Core |
   |  Client  |  ------>  |-----------|
   |          |           |  Modules  |
    ----------             -----------
