I am interested in writing an MRCP (Media Resource Control Protocol ) server. In particular I want to write an MRCP speech recognition resource server as part of my trefnydd  project. I am posting here to ask for advice about the network programming part.
I shall also be writing an MRCP client (if only to test the server). All the code will be GPL'd.
As far as I understand it, an overview of the networking would go like this:
An MRCP session between client and server is initiated using the Session Initiation Protocol (SIP). Client and server negotiate using SIP messages containing SDP message bodies to define the participants and the resources required in the session. After session initiation, two channels are launched: a media channel using RTP to carry binary audio (i.e., speech) data, and a control channel using TCP (control channel messages are text-based and in MRCP format).
It seems to me that both client and server software would have to cope with SIP, SDP, RTP, MRCP (message format) and plain old TCP (for the SIP/SDP and MRCP control channel messages).
Here are my questions:
- Does anyone know of a FOSS project to write an MRCP server? preferably in python. I know of mrcp4j . - My first plan would be to make the MRCP client/server a subclass of an SIP client/server, as SIP is used to set up (and tear down) the session. Does that sound sensible? - Can twisted.protocols.sip be used to write a SIP server? Would it give me everything I need, or would I also need something like pjsip  or jain-sip  for the low-level stuff? - Have I missed anything?
Any advice would be gratefully received. I'll report back with progress.
 MRCP: http://www.llaisdy.com/static/tech/mrcp/  trefnydd: http://www.llaisdy.com/static/trefnydd/  mrcp4j: "MRCP4J provides a Java API that encapsulates the MRCPv2 protocol and can be used to implement MRCPv2 clients and/or servers." http://mrcp4j.sourceforge.net/  pjsip: http://www.pjsip.org/  jain-sip: https://jain-sip.dev.java.net/