Sunday, August 14, 2005

SIP for Java

I started working on a SIP client for a VoIP application we are developing at work. Most of the code is in Java, so we wanted to handle SIP on Java too.

However, I must say that SIP libraries for Java seem to be a bit scarce. There's jain-sip, which is a low level SIP library that basically handles message formatting, but there are no high level APIs to implement a simple SIP phone, for example.

Jain-sip Lite (an API intented for SIP user agents) is no longer under development, even though much of its functionality has been absorbed by jain-sip. Theres also jsip which has also been abandoned.

SIP (described on RFC3261) its quite simple, but the call/transaction/dialog management (which changed from the previous version of SIP) and rules that define when to create a new transaction, can become a bit complex, at least for a newbie (like me for the moment;)).

Im currently trying to define an abstraction layer over jain-sip which will allow me to define sip interactions as java classes (similar to the ideas in FIPA Agent architecture which defines behaviors). After that, I plan to wrap some interactions inside a SIPPhone class, to allow me to make simple calls such as call(<sipaddress>), or register(<publicaddress>,<registeraddress>). I'm still have to think about how to handle incoming calls and the sort, but I suppose I will figure it out :P.

I'll post if there are any advances or I if decide to rewrite the whole thing and drop the interactions idea:P.

No comments:

Our first Tuna (eduna) blog!

Thanks to the first blogger (outside netlabs:)) that mentions e-duna! .... Of course, maybe he's not the first, but he is the first we ...