Hello,

a new module is now on development branch, named msrp, offering an embedded MSRP relay. Message Session Relay Protocol is specified by IETF ( core and relay part in RFC4975 and RFC4976), one of typical use cases is Instant Messaging sessions negotiated via INVITE-200ok-ACK, a different approach than SIP MESSAGE request.

There is no external dependency, the transport layer from core is reused to manage TCP/TLS connections used for MSRP. A MSRP relay is pretty much an independent node, thus you can run Kamailio just to deal with MSRP traffic. But there is no problem to run Kamailio to handle SIP and MSRP traffic in the same instance, same or different sockets (it is working even when SIP/MSRP are sent over the same connection or different connections to same port).

I couldn't find a reliable and trustable open source SIP phone to test with it so far (hints are welcome), the module was tested with network tools and chaining Kamailio instances. Help with testing and feedback is very appreciated -- I can provide guidelines to adjust the config file to fit tester's needs, just contact me off list or via IRC channel.

For the moment, the relation (user,session) management is done in the config, using htable module for example (see the README), it may be added inside the module for the future to make it easier overall, although is less than 10 lines of config -- this is mainly for extra security reasons, to check if the session id matches the connection that was opened when the session was created, otherwise the user authentication functionality is done reusing existing functions from auth module. Another benefit is performances, storing local socket and connection IP/port saves some time to lookup the connection.

Building MSRP relay on top of SIP server was done first for the benefit of reusing the transport layer from the core for IPv4/IPv6 and TCP/TLS, which is mature, scalable and offers asynchronous communication. Besides that, you have most of the config tools to route SIP requests available for routing MSRP (authentication, authorization, IP checking, accounting, a.s.o.).

I made a news post with more details:

  * http://www.kamailio.org/w/2012/01/new-module-embedded-msrp-relay/

The readme of the new module is available at:

  * http://kamailio.org/docs/modules/devel/modules/msrp.html

Cheers,
Daniel

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda