[sr-dev] New feature: embedded MSRP relay

Daniel-Constantin Mierla miconda at gmail.com
Tue Jan 17 16:52:21 CET 2012


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20120117/09313a98/attachment-0001.htm>


More information about the sr-dev mailing list