Table of Contents

OpenSER - Frequently Asked Questions

Q: What is OpenSER?

A: OpenSER is a project spawned from FhG FOKUS SIP Express Router (SER) v0.9.3. More details can be found at: http://openser.org/about.php

Q: Is my config from SER compatible with OpenSER?

A: Yes, the config from SER can be used with OpenSER, just change the paths accordingly. Note that the config file from OpenSER may not be compatible with SER since there are many extensions specific for OpenSER (like return() and exit()).

Q: Is the database structure used by SER 0.9.x the same as for OpenSER 0.9.x ?

A: There is a difference in the tables 'location' and 'aliases'. A new column must be added, having the following definition:

socket varchar(128) default NULL

Q: What is the stack OpenSER uses?

A: It does not use a standalone stack, it is a dedicated parser designed for speed.

Q: I use 'make all', but I can't get the mysql.so. How can I get this?

A: Use:

make modules include_modules=“mysql”

make install include_modules=“mysql”

mysql module is not compiled/installed by default because it depends on an external library (libmysqlclient)

Q: I get the following error: "new_connection: Can't connect to local MySQL server through socket '/.../mysql.sock'". What is wrong?

A: Your mysql client is using a different socket than the one the mysql server is listening to. You have to check mysql config file and make sure that the socket files are the same. For more about the mysql config, see:

http://dev.mysql.com/doc/refman/5.0/en/option-files.html

The “socket” in [client] section must be set to the same value as in [mysqld] section.

Q: What are the modules that are not compiled by default?

A: You can see the list in 'Makefile', in the variable 'exclude_modules'. The list includes modules depending on external libraries or modules that are not stable yet.

Default excluded modules are: auth_radius avp_radius cpl-c group_radius jabber mysql pa postgres uri_radius.

Q: Who is responsible for releasing AVPs at the end of a transaction? My module is adding AVPs with string values and I don't know if the strings are being released or not.

A: TM modules takes care and will destroy all AVPs associated with the transaction. Everything is done automatically. If you want to destroy an AVP before transaction ends, use avp_delete().

Q: What are pseudo-variables?

A: A pseudo-variable is a special token that can be used inside the parameters of some functions and it is replaced with a value before the execution of that function. A pseudo-variable can refer to the value of an avp, body of a header, part of SIP message or other variables from system.

For more see: http://openser.org/docs/pseudo-variables.html

Q: How can I set permissions of the fifo or socket?

A: Use the sock_user, sock_group and sock_mode global configuration parameters.

Q: Is it possible to reload OpenSER's configuration file with a signal?

A: No. To reload the configuration file, OpenSER must be restarted.

Q: Are there Open Source Clients that support jabber and SIP?

A: Absolutely. Ekiga (http://ekiga.org), Twinkle (http://www.twinklephone.com), KPhone and many others are available for SIP support. Gaim and psi support Jabber, as do many other open-source clients.

Q: How do I generate the phplib_id/ha1 for subscribers?

A: There are a couple of methods:

   1. openser_gen_ha1 username realm password
   2. create an MD5 hash as "username:realm:password"
   .
   openser_gen_ha1 is deprecated, you can use instead:
   .    echo -n 'user:realm:password' | md5sum | awk  '{ print $1 }' 

Q: How about the ha1b?

A: You will need to create an MD5 hash as:

   "username@realm:realm:password"

Q: What does "ERROR: sip_msg_cloner: cannot allocate memory" and "ERROR: new_t: out of mem:" mean? ...and how do I fix them?

A: Those error messages pop up when you run out of shared memory. The easiest way to “fix” the problem is to increase the shared memory that openser is allowed to use. By default, I believe openser uses 32 megs of shared memory. You need to pass the “-m MEGS” flag to openser. Using OpenserCtl: Edit your openserctl script and add “-m 128” ( or however much ram you wish to allocate, this example is 128 MEGABYTES of ram ) to the line that contains “STARTOPTIONS=”… this example would be: STARTOPTIONS=“-m 128”