This wiki is in most of the cases valid for old versions of Kamailio, for newer versions check:
A: OpenSER is a project spawned from FhG FOKUS SIP Express Router (SER) v0.9.3.
The following text is from the old “about” page of openser.org:
“OpenSER is a project spawned from FhG FOKUS SIP Express Router (SER). The reason for this new venture is the lack of progressing and contributions to the SER project from the other SER team members as well as the reticience to new contributions from project's community members. We want to accelerate the integration of public contributions to the SER project. OpenSER promotes a new management policy (OPEN) -for new code acceptance and code-through propagation- and development approach -design and architecture. We have decided to bring more dynamics into SIP world by creating this new project that can benefit of TLS and so many other contributions. We welcome your contributions to the success of this project. The project is managed by three of SER developers. You all like SER so we will do our best to maintain our exiting work and help the users of our solutions. We will therefore maintain close contacts with our former colleagues and SER project.
Bogdan, Daniel and Ramona”
Note that this quote is rather old, and now the situation is to some degree different. This text is also not available any more on the openser webpage. It is here listed to provide some historical background for people that are new to this project.
Please visit this link to get more informations about the history of the project.
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()).
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
A: It does not use a standalone stack, it is a dedicated parser designed for speed.
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)
This is also the reason why openser_mysql.sh does not get installed.
I had the same issue. did the following, and the module was create:
make install include_modules=“db_mysql”
-Kareem Hamdy
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.
A: You need to have a look at the mysql database install script which builds an database called 'openser' or _better_ adjust all lines in openser.cfg from openser_1_3 to openser
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.
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().
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://kamailio.org/docs/pseudo-variables.html
A: Use the sock_user, sock_group and sock_mode global configuration parameters.
A: No. To reload the configuration file, OpenSER must be restarted.
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.
A: There are a couple of methods:
A: You will need to create an MD5 hash as:
"username@realm:realm:password"
A: Simply not use src_ip = “11.22.33.44” and use instead src_ip = 11.22.33.44! We had in our installation some serious trouble with requests coming from systems, where the hostname could not be reverse resolved (the DNS-Server responsible for this IP-Range was poorly configured and would not answer at all).
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"
A: No, unfortunately not, if the module don't provide this ability. The only way to change this at the moment is to go to the source. But you can change the log level of the server with some fifo commands during runtime, and also for certain operations in the config script. Take a look at the core cookbook for further informations.
A: OpenSER is not a B2BUA, only a flexible SIP Router. Either use Asterisk, Callweaver or OpenSER with SEMS (writing your own B2BUA application within SEMS).
You could also try WeSIP, Yate or FreeSWITCH.
A: Check if you have installed the serweb tables. If yes, you have to set HAS_SERWEB=“yes” in your openserctlrc. This should fix the problem.
A: This means that you've spelled the driver string wrong and the driver module could not be loaded. Valid driver strings are “mysql”, “postgres”, “unixodbc”, “berkeley” and “text” for the respective database modules.
A: This means that the module the version of your database scheme don't match to the version of openser. Reinstall the database tables with the setup provided script.
A: OpenSER could not find the radius configuration for the acc module. If you don't need this then just disable the radius support in the module. Add the line modparam(“acc”, “radius_config”, “”) to your configuration.
ERROR: Error opening OpenSER's FIFO /tmp/openser_fifo ERROR: Make sure you have the line 'modparam(“mi_fifo”, “fifo_name”, “/tmp/openser_fifo”)' in your config ERROR: and also have loaded the mi_fifo module.
A: The OpenSER control tools could not connect to the FIFO interface. Check if your configuration loads the mi_fifo module and configures a fifo name. Example for the configuration syntax: loadmodule “mi_fifo.so” modparam(“mi_fifo”, “fifo_name”, “/tmp/openser_fifo”)
A: In both cases, the reason is probably an error in request routing script which caused an infinite loop. You can easily verify whether this happens by watching SIP traffic on loopback interface. A typical reason for misrouting is a failure to match local domain correctly. If a server fails to recognize a request for itself, it will try to forward it to current URI in believe it would forward them to a foreign domain. Alas, it forwards the request to itself again. This continues to happen until value of the max_forwards header field reaches zero or the request grows too big. The solutions is easy: make sure that domain matching is correctly configured. A quick way to achieve that is to introduce a config option to kamailio.cfg: alias=domainname, where domainname shall be replaced with name of domain, which you wish to server and which appears in request-URIs.