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
Thumbs up, definitely cool new feature! I hope to see you at FOSDEM, not sure if i can make it....
Thanks! Carsten
2012/1/17 Daniel-Constantin Mierla miconda@gmail.com:
We use kamailio 3.2 and imsdroid to make videocalls, send messages etc. What we have to this moment is kamailio 3.2, rtpproxy, asterisk and modified imsdroid (for Android phones). Asterisk is used for billing and some other services. Imsdroid can send 2 kind of messages. One of them is called SMS and they can go directly using kamailio and rtpproxy. I can get logs and provide here as much as possible about this type of messages. For other messages may be exactly something like MSRP is must. Doesn't matter what and how we do, best what we receive now is "attempt" to send message. Receiver receive notification and nothing more - neither user, nor content. We have lot of experience with Asterisk, but only few months with Kamailio and almost no experience with messages. May be we do something else wrong, but what I can do is using wireshark to post here some results. By the way - there are variants of imsdroid (with other names) for iPhone, and Windows - but with windows version we got bad results. Android version works very well.
On Tue, Jan 17, 2012 at 6:00 PM, Carsten Bock carsten@ng-voice.com wrote:
Hello,
On 1/17/12 7:50 PM, Stoyan Mihaylov wrote:
probably this is via MESSAGE requests, which is so called page-mode instant messaging. Kamailio is enough to route them, no need for rtp proxy or msrp relay. You can do a ngrep on the kamailio server and see what sip requests are passing through.
Also here, watching the sip traffic on the kamailio server with ngrep should give leads about how it is done, if it is SIP at all. You can use a command like:
ngrep -d any -qt -W byline port 5060
Any linux/mac os x variant -- it is where I can test easily.
Thanks, Daniel
On 1/17/12 5:00 PM, Carsten Bock wrote:
Thumbs up, definitely cool new feature!
Thanks!
I hope to see you at FOSDEM, not sure if i can make it....
Looking forward to it...
Cheers, Daniel
2012/1/17 Daniel-Constantin Mierla miconda@gmail.com:
Hi Daniel, congratulations for this great addition, really good.
About a SIP phone implementing MSRP, I just know Blink, no more. It has a well tested MSRP stack.
Cheers.
Hello,
On 1/17/12 11:29 PM, Iñaki Baz Castillo wrote:
Thanks, hope people will help testing, if they need this features...
Cheers, Daniel