A Linux-Based Implementation of Mobility Using SIP
The session initiation protocol (SIP) is one of the most popular signaling protocols used in applications that require a session setup and parameter negotiation before actual communication, as well as for session management and termination. Though SIP was designed primarily for voice over IP (VoIP) telephony, it currently is used in a variety of applications, including those for multimedia conferencing and multimedia content distribution.
SIP allows two or more participants to establish a session consisting of multiple media streams using text-based request and response messages. A user, termed a SIP endpoint, is addressed by a SIP URL in the form of an e-mail address, such as sip:alice@vocal.com or sip:alice@192.168.0.2. The application used for communication is called the user agent (UA). Call initiation and modification is done through INVITE messages of SIP. Two endpoints can communicate with each other directly, or they can make use of a SIP entity called the redirect server. The user first sends the request for call initiation to this server, which queries a location service to retrieve the IP address and port of the other user. The location service keeps track of the current location of the users.
One of the ways to populate a location service is to use a SIP entity called the registrar. The registrar takes registration requests in REGISTER messages from users to keep a dynamic record of the current location of the user. In some situations, it is undesirable for a network to give away its users' actual IP addresses for security reasons. In this case, a SIP proxy server forwards SIP requests and replies to other SIP messages on behalf of the user. In the rest of this article, the user agent, the redirect server and the proxy server are referred to collectively as a SIP network. More details about SIP can be found in RFC 3261.
Mobility is a key aspect of many applications requiring signaling. A user using a wireless phone may move from network to network and still expect to be reached seamlessly by other callers, even while in the middle of a call. However, no open-source SIP implementation currently supports mobility. In this article, we provide the first open-source SIP implementation that supports mobility. We use the open-source VoIP software VOCAL from Vovida.org and add mobility support to it. The result is a complete, open-source SIP implementation with mobility support that other developers can use to build SIP-enabled mobile applications. The software supports seamless SIP signaling when the user moves from network to network, as well as automatic hand-off if the user is in the middle of a call while changing networks. The implementation is done on Linux and currently is in the process of being contributed back to Vovida.
VOCAL was chosen as the core of this work because this software suite is a robust implementation of the SIP protocol and its various entities and is used widely. It therefore was felt that adding mobility support to VOCAL would allow the software to be used by a wider community of mobile application developers. The potential to contribute back to the Open Source community and the chance to interact with an active SIP community also were notable motivators for us to opt for VOCAL.
VOCAL contains a SIP user agent and various types of SIP servers. The user agent is called GUA, which also can be run from a GUI front end called SIPset. The implementation of the SIP proxy server in this suite is called a marshal server (MS). The redirect server and the registrar in SIP are combined together as the redirect server (RS). The location service contains two types of information—a database of users' current locations and a database called the Dial-Plan. The Dial-Plan is used to keep track of users in other VOCAL systems; it is a mapping of SIP URLs to the appropriate SIP server's address to which the SIP request message should be forwarded by MS.
The communication between two independent VOCAL systems is achieved by one-to-one correspondence of a marshal gateway (MSGW) on each system. Thus, a VOCAL system needing to communicate with multiple other VOCAL systems requires multiple marshal gateways. A standard SIP network also requires the users to subscribe to that network for authentication purposes. This subscription is implemented in VOCAL in the form of provisioning to a server called provisioning server (PS). VOCAL systems are provisioned from a Java-based GUI. The data from PS is stored in the MS, which the latter uses to authenticate the user before accepting any message from the user, including a REGISTER message to register the user in the location service. VOCAL contains some other SIP entities that are not relevant to this work.
Trending Topics
| You Need A Budget | Feb 10, 2012 |
| The Linux powered LAN Gaming House | Feb 08, 2012 |
| Creating a vDSO: the Colonel's Other Chicken | Feb 06, 2012 |
| Your CMS Is Not Your Web Site | Feb 01, 2012 |
| Casper, the Friendly (and Persistent) Ghost | Jan 31, 2012 |
| Razor-qt 0.4 - Qt based Desktop Environment | Jan 30, 2012 |
- Fun with ethtool
- Parallel Programming with NVIDIA CUDA
- 100% disappointed with the decision to go all digital.
- Readers' Choice Awards 2011
- Linux-Based X Terminals with XDMCP
- Validate an E-Mail Address with PHP, the Right Way
- You Need A Budget
- Why Python?
- The Linux powered LAN Gaming House
- Python for Android
- BeOS was the best
24 min 2 sec ago - I use Wireshark on a daily
4 hours 54 min ago - buena información
10 hours 1 min ago - One important "bucket" that I didn't note (désolé si qqun deja d
11 hours 1 min ago - Gnome3 is such a POS. No one
20 hours 29 min ago - Gnome 3 is the biggest POS
20 hours 39 min ago - I didn't knew this thing by
1 day 2 hours ago - Author's reply
1 day 6 hours ago - Link to modlys
1 day 7 hours ago - I use YNAB because of the
1 day 7 hours ago





Comments
i have a question
Hi,
i am majorly pissed off with this site www.webmail.three.com.au....... that told me to contact guauser1, your site came up in the end...
i want to know how i can get into my 3mail, i just purchased a phone and i want to know if it worked it said they would send me an email... but unfortunately it doesn't work, all i did was type in my password and username and it didn't work......
im very mad because of the stress level okay so i want to know why...
please i beg of you help me, tell me what to do because i need help.
from angry customer
souce code
hi friend,....
i am a master student in IT working now for a SIP based project. It would be really helpful if I can get the source code of this SIP project work.my topic is "Secure mobile payment using SIP"
request for the source code for linux based sip implementation
Hello,
i am a master student in IT working now for a SIP based project. It would be really helpful if I can get the source code of this SIP project work.
Thank You.
SIP Source Code with Mobility Support
Can you plz give me the source code of ur modified version of VOCAL system supporting mobility. I am a phd student in school of EE&T, UNSW, Australia. Your cooperation will be great support for my work.
Thanks a lot.
Re: A Linux-Based Implementation of Mobility Using SIP
Re: A Linux-Based Implementation of Mobility Using SIP
Submitted by Anonymous on fri. 05.11.04
can you put the sources of the code you have used to do the above tests.(configuration) that will be of great help to us (students doing a test bed). we are also currnelty working on Linux based SIP imlementaions. thank you.
Re: A Linux-Based Implementation of Mobility Using SIP
Hmm. Does anyone have good documentation about setting up sip to use isdn as gateway?
H323 is rather simple (using isdn2h323) but i can't find anything about SIPISDN
Greetings,
Riot
You say nothing!!!
What about a hands on lab???
Re: A Linux-Based Implementation of Mobility Using SIP
Great articule about mobility support for the VOCAL platform.
Congratulations for your work, which shows a high level of knowledge about both SIP and the VOCAL architecture.
Good news for the open source community. Thank you !
Re: A Linux-Based Implementation of Mobility Using SIP
can you put the sources of the code you have used to do the above tests. that will of great help to us (students of IIIT hyderabad). we are also currnelty working on Linux based SIP imlementaions. thank you.
Source code for Linux based SIP implementation
Please could you post the source code for this implementation on this website. It would be a great help to students all over.
University of Cape Town
South Africa
hi
hi friend.... i also want the Source Code for implementation of SIP
.... if u get that will u plz forward that to me... thanks friend...
I am also interested in the
I am also interested in the source code. Could you please post it? I'm an electronics student for Transilvania University of Brasov. Thank you.
Hi
Hi!
I am also interested in the source code. Could you please email it to me at smartsid81@gmail.com
how to add SRV record to DNS server
Dear Talent,
I am new to RFC 3263, can any body explain me how to set the SRV records in the DNS server, how to setup the SIP(session initiation protocal)server. can give me the design document if u have.
I am working on linux SUSE enterprice edition 10x.
thanks.
PLZ i need the source code
I am interested in the implementation details of your work.Can you please provide me the source code for your project as i am doing a project related to this.My email id is kumar4u_cse@yahoo.co.in.
Thanking you sir.........