Elsipo is a SIP (RFC3261) capable application that displays HTML content received via SIP. The initial User Interface can be loaded from a local HTML file or downloaded from a web server.
Being a developer of a server-side SIP application (Kamailio SIP Server - http://www.kamailio.org), I found annoying that SIP client-side applications look the same no matter what provider you use. From here popped up the idea of having a SIP client-side application that has the user interface easy to customize and update by provider itself.
Practically Elsipo is an HTML viewer, based on QTWebKit, capable of loading plugins. The first plugin implemented is named E_PJSIP, which add SIP communication support based on libpjsip.
See more details about Elsipo and its status in the README:
The SIP client applications (aka softphones) have static and generic user interface, which is not easy to customize at all. More than that, the focus was on classic telephony services using SIP: audio/video calls and eventually instant messaging and presence. No matter what services your provider offers, the UI was the same, switching to another provider made no difference.
In the web world, going to another domain changes the presentation completely. There the term is browser (e.g., Firefox). In the same idea that Elsipo should display what the SIP service provider offers to you at that moment, with design (color scheme, arrangement, a.s.o.) that reflect the provider, the naming is SIP browser.
See more screenshots here.
You have to be registered with the SIP server before initiation any call or instant messaging.
To make a call, enter a full SIP URI in the input field from Call section and click Dial button.
For text messages, enter the full SIP URI of your buddy in the input field from Instant Messaging section and the text in the input field just above to SIP URI. Then click on Send.
Registration, voice call and instant messaging are classic in SIP. Elsipo target is beyond that, for this purpose, the UI at this time has following features when it is used together with Kamailio SIP server:
Configuration file for Kamailio to get the above things is in GIT at:
You have to adjust Kamailio configuration file with your user ID -- look for ELSIPO and ELSPO_TIMER route blocks.
The communication to get such data from SIP server is carried with SIP MESSAGE requests. It is up to you to define the rules of how to detect it is a MESSAGE to be displayed in a special zone of UI.
In the sample added in GIT, any MESSAGE request that has the sender (From header username) starting with id- will be handled differently, in the way that the body will be used to set the inner HTML of the element having the id the string value that follows after id- in sender username.
Next is such MESSAGE request for telling the server time and counter value:
MESSAGE sip:firstname.lastname@example.org SIP/2.0. Via: SIP/2.0/UDP 192.168.178.21;branch=z9hG4bK63bf.fb5cc576.0. To: <sip:email@example.com>. From: <sip:firstname.lastname@example.org>;tag=533cb9e91f4b999cf76861cbb9ed54ed-4986. CSeq: 10 MESSAGE. Call-ID: email@example.com. Content-Length: 50. User-Agent: kamailio (3.2.0-dev5 (x86_64/darwin)). Content-Type: text/plain. . Hi! Server time: Thu Jun 23 00:12:31 2011. Cnt: 71
Default UI has a div element with id i_infotext at this moment.
Clicking to request servers statistics works differently. When you click, a MESSAGE request is set to SIP server, with R-URI username elsipo-stats and the body the value of From header username to be used in the MESSAGE to be sent with server statistics.
Here is a sample MESSAGE request for this case:
MESSAGE sip:firstname.lastname@example.org SIP/2.0. Via: SIP/2.0/UDP 192.168.178.21:5084;rport;branch=z9hG4bKPj0ZFVjyVU-.WH3lM7fUsT5eCT0Zg5e2UF. Max-Forwards: 70. From: <sip:email@example.com>;tag=91iY48sjNQF6ghfQo3XJZBLpl7a3MNv1. To: <sip:firstname.lastname@example.org>. Call-ID: 8edAHTX60lAVGxEqx1xDJbFNt08H7Sxo. CSeq: 26273 MESSAGE. Accept: text/plain, application/im-iscomposing+xml. Contact: . Content-Type: text/plain. Content-Length: 13. . id-i_infotext
The above request is replied with 200ok and then the SIP server will send a MESSAGE request with the statistics, like:
MESSAGE sip:email@example.com SIP/2.0. Via: SIP/2.0/UDP 192.168.178.21;branch=z9hG4bK303c.e780b682.0. To: sip:firstname.lastname@example.org. From: <sip:email@example.com>;tag=533cb9e91f4b999cf76861cbb9ed54ed-6086. CSeq: 10 MESSAGE. Call-ID: firstname.lastname@example.org. Content-Length: 51. User-Agent: kamailio (3.2.0-dev5 (x86_64/darwin)). Content-Type: text/plain. . Shm: 2514216 ULoc: 2 Time: Thu Jun 23 00:18:07 2011
From my wish list with current IP telephony providers, I would like to:
I hope you enjoy the idea of Elsipo SIP browser! Come on board to build it for the world and change the SIP communications!