FAQ: The partysip SIP proxy server

 [partysip logo] [ English ]

Table of Contents

Compilation step

What should I do to install partysip

Download the latest stable version of partysip-x.x.x.tar.gz. Here is my preferred command list to compile partysip:

  tar -xvzf partysip-x.x.x.tar.gz
  mkdir build-lnx
  cd build-lnx
  CFLAGS="-DMULTICAST_SUPPORT -I/usr/local/include" ../partysip-x.x.x/configure
  make install
The file ./INSTALL in the main directory of the source tree gives more details about the compilation process for partysip on UNIX.

What are the supported platforms

oSIP and partysip are developed on Debian. My actual system (May 2002) uses the 2.4.17 Kernel, with gcc-2.95.4 and libc-2.2.5.

oSIP has been tested on linux, windows, solaris, OpenBSD (3.1 only), VxWorks and various UNIX.

Partysip has been tested on linux, OpenBSD, TRUE64 and solaris. Note that the CVS may sometimes not be correct for all platforms as developments takes place on linux.

Also, oSIP is known to compile on HP-UX and OSF -but not fully tested!-.

Are oSIP and partysip portable?

oSIP can be built without thread and semaphore support. In this case, you can use oSIP in non-multi threaded applications. In this case, no dependency beyond the standard C library is needed. That say, partysip will require a threaded version of osip.

oSIP hides implentations details for partysip: it provides a common interface for posix_thread interface, psos interface, windows interface and vxworks interface. The same is implemented for mutex and semaphore which are mandatory in a threaded architecture.

Any Requirements and Dependencies?

Here is the list of usually used configuration:

oSIP also can support sysv and vxworks semaphores, and has interfaces for three other thread implementations: psos, windows, vxworks.

Note that sysv semaphore conflicts with posix threads. (This is why you need at least version 3.1 of OpenBSD).

Additional compilation flags?

CFLAGS and LIBS can be used to add additional compilations parameter. CC can also be used for the same puporse. Here is a sample:

CC="cc" CFLAGS="-DOLD_NAMESER" LIBS="-lrt -L/usr/local/lib" ./configure

What is SIP?

SIP is the Session Initiation Protocol. It's a signalling protocol for IP telephony. It is a replacement for H323

What SIP is for?

SIP primarily initiates, modifies and terminates multimedia sessions. Sessions can be phones calls with audio and video. SIP extensions also defines instant messaging and presence features.

I heard rfc2543 is obsolete?

Yes, it is. The initial version of oSIP has some bugs which has been resolved over the past 2 years. The latest SIP rfc (rfc3261.txt) has been released in the middle of 2002 and can be found at http://www.ietf.org/rfc/rfc3261.txt.

What is Partysip?

What partysip is for?

Partysip is a SIP proxy server. A proxy server have to find routes for SIP requests. In addition to the standard routing rules, partysip can get the routes from additional plugins. Partysip can also start services when a dedicated plugin has been built for this service.

What are the SIP phones tested with partysip?

Partysip has been tested at an early development stage and for very basic scenario at the SIPit #10 in Cannes (Apr 2002). The list of tested SIP phones is quite long, but partysip has grown since the SIPit #10. The new features has been tested with most common used phones. The regularly tested phones are the Siemens phones, the Cisco phones, linphone (www.linphone.org) and Windows Messenger (be sure to use Windows Messenger4.7! 5.0 don't have support for SIP).

If you are using successfully or can't get one SIP phone to work with partysip, inform us at partysip-dev@nongnu.org. Most errors comes from bad configuration of either the phones or partysip.

What are the partysip capabilities?

Partysip is under work but you may found the set of capabilities enough for your needs:

Those expiremental feature are working for me (partysip-0.5.4) but still considered experimental because I don't test them often.

What is the partysip status?

Partysip is still missing some interesting and usefull feature. Here is the TODO list:

Is Partysip extensible?

This is the strength of partysip. Plugins can be added to provide a service (accounting, bandwidth reservation, game server..., conference server) or to define new routing rules.

Where and what is the stuff to download?

partysip can be found on http://savannah.gnu.org/download/partysip/.

Plugins related question?

What is the purpose of partysip?

The purpose of Partysip is to route requests (ie: find your correspondant!).

What is the purpose of plugins?

The purpose of plugins is to help the routing process and start services.

Are plugins optional? Can I remove one? Is it useful

Yes, they are optional.

It can be very useful to remove plugins: if you don't want authentication, you can remove the authentication plugin. If you don't want to be a registrar, you can remove the rgstrar and the ls_localdb plugin. This will at least improve performance.

In the configuration, you simply have to update your "plugin" definition:

plugins = udp syntax ls_sfull

I'd like to define dialing plans?

The filter plugin is for your. Based on matching regular expressions, partysip will statically route initial request to a specific destination.

How can I contribute?

The filter plugin could be extended to reject request with specific answer codes. This would be usefull to avoid spam (it will exist on day...).

Of course, more complex plugins (conference application, Instant Messaging and Presence management with SIMPLE).

Is there any sample plugin code?

You can download a RADIUS and a LDAP plugin which are good saparate samples.

Is the API for plugins fixed?

Yes it is. Note that the "plugin_start" method is never used but still mandatory to define.!

Is there any documentation?

Not yet. I hope this FAQ will be useful. The mailing list is the definitive way to get support.

Configuration Step

serverip and servername

serverip and servername MUST be set to prevent the proxy from forwarding a REQUEST where the request-uri targets to itself. In this case, the server should be "responsible" for the request. This means the plugin will look in the local or remote database for the user in the local domain "servername".

If you have several interface, you have to put all of them in serverip and servername like in:

serverip =,, servername = sip.me.org, osip.sip.me.org

IMPORTANT: Your public ip must be the first one! Else, you won't get any replies when you send request to the public internet.

In incoming SIP requests such as the initial INVITE in a call, the request-uri must be set to sip:username@servername or sip:username@serverip in order to be recognised as a location query for the local proxy domain.

Can I support more than one domain?

Yes. See above how to define more that one domain in servername entry. Note that username will be able to use either domains...

Does partysip support TCP?

No, not yet.

Can I specify another UDP port than 5060?

yes! partysip.conf must have the following line:

serverport_udp = 5060

But defining a new port may not help you to traverse NAT. If you leave the default configuration, requests and response will *probably* traverse most NAT.

What's this magic string?

Old release (before 0.5.4) needs you to define a unique "magicstring". This is not required any more.

What's this serverrealm?

In SIP, more than one account with a login and a password can be needed. A realm serves to distinguish which SIP server is asking for a login and password. For more information on authentication, see rfc2617.txt.

Which authentication mode is supported?

Partysip only support MD5 Digest authentication. This is supported by all phones. For more information on authentication, see rfc2617.txt.

How do I enable/disable authentication?

Add the following to the file partysip.conf:

authentication = on
#authentication = off

Is there any security issue with authentication?

Of course... The usual ones apply.

The SIP specification describes the purpose and limitations of authentication.

Additionally, the user and password informations are currently written in clear text in the configuration file: partysip.conf. Your first task as an administrator will be to make this file unreadable by anyone but you.

Later version will support crypted version of the password in the config file and new plugins will be implemented to store user info in sql database so you can improve the security by a good configuration of your sql database.

How do I setup a plugin configuration?

The configuration file (partysip.conf) contains two sections: the general configuration where an entry look like:

authentication = on

The subsections are used for specifying plugin and users configuration. Sub-sections are enclosed with brackets.

Help me with the sless plugin configuration?

The stateless capability has been removed since long. It was not found usefull for partysip.

Help me with the userinfo configuration (available to all plugins)?

You can give a list of known users with login and password. The initial entry is the URL of the user in the domain. (sip:jack@atosc.org), then you have to give the login and password and an initial location valid for one hour. This location entry should be optional but is mandatory in the initial version of partysip.

NOTE: You cannot add real locations of users here. Only the virtual one is specified. partysip will learn real locations of UA through REGISTER requests sent by phones. If you want to define a static location, use the filter plugin.

The registrar plugin configuration is broken?

No configuration is required. (At least, none exists right now!)

SIP related links?

SIP rfc: http://www.ietf.org/rfc/rfc3261.txt

WellX Telecom: http://www.wellx.com

The GNU oSIP stack http://www.gnu.org/software/osip

SIP forum: http://www.sipforum.com

IETF's SIP page: http://www.ietf.org/html.charters/sip-charter.html

SIP Working group Supplemental Home Page: http://www.softarmor.com/sipwg/

SIP rfc (deprecated): http://www.ietf.org/rfc/rfc2543.txt

Mailing Lists

Mailing list archive:

You can subscribe to the mailing lists with by sending a mail to <partysip-dev-request@nongnu.org> and <partysip-announce-request@nongnu.org> with the subject set to "subscribe".

Messages can be posted directly to the mailing list to <partysip-dev@nongnu.org>.


WellX Telecom S. A. http://www.wellxusa.com

Aymeric MOIZARD <jack@atosc.org>

[ English ] Please send comments on these web pages to partysip@wellx.com

Copyright (C) 2002 WellX Telecom.

Copyright (C) 2002 Aymeric MOIZARD.

Updated: 2003/01/27 13:22:50 by Aymeric