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
Hi Daniel, congratulations for this great addition, really good.