Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
troubleshooting:faq [2010/12/20 17:28] – Spelling mistake corrected 216.224.224.90 | troubleshooting:faq [2013/04/06 08:52] (current) – miconda | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== OpenSER - Frequently Asked Questions ====== | ||
+ | **This wiki is in most of the cases valid for old versions of Kamailio, for newer versions check:** | ||
+ | * **http:// | ||
+ | |||
+ | ===== Q: What is OpenSER? ===== | ||
+ | |||
+ | A: OpenSER is a project spawned from FhG FOKUS SIP Express Router (SER) v0.9.3. | ||
+ | |||
+ | The following text is from the old " | ||
+ | |||
+ | " | ||
+ | | ||
+ | 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 [[http:// | ||
+ | |||
+ | ===== 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 ' | ||
+ | |||
+ | 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=" | ||
+ | |||
+ | make install include_modules=" | ||
+ | |||
+ | mysql module is not compiled/ | ||
+ | an external library (libmysqlclient) | ||
+ | |||
+ | This is also the reason why openser_mysql.sh does not get installed. | ||
+ | |||
+ | ----- | ||
+ | |||
+ | I had the same issue. | ||
+ | |||
+ | make install include_modules=" | ||
+ | |||
+ | -Kareem Hamdy | ||
+ | |||
+ | ----- | ||
+ | |||
+ | |||
+ | ===== Q: I get the following error: " | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | The " | ||
+ | |||
+ | ===== Q: I get the following error: ": | ||
+ | |||
+ | A: You need to have a look at the mysql database install script which builds an database called ' | ||
+ | |||
+ | ===== Q: What are the modules that are not compiled by default? ===== | ||
+ | |||
+ | A: You can see the list in ' | ||
+ | |||
+ | 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? | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | ===== 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' | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | ===== Q: How do I generate the phplib_id/ | ||
+ | |||
+ | A: There are a couple of methods: | ||
+ | - openser_gen_ha1 username realm password | ||
+ | - create an MD5 hash as " | ||
+ | - openser_gen_ha1 is deprecated, you can use instead: echo -n ' | ||
+ | |||
+ | |||
+ | ===== Q: How about the ha1b? ===== | ||
+ | |||
+ | A: You will need to create an MD5 hash as: | ||
+ | " | ||
+ | |||
+ | ===== Q: How do I avoid Reverse-DNS-Lookups? | ||
+ | |||
+ | A: Simply not use src_ip = " | ||
+ | |||
+ | ===== Q: What does " | ||
+ | |||
+ | A: Those error messages pop up when you run out of shared memory. | ||
+ | The easiest way to " | ||
+ | By default, I believe openser uses 32 megs of shared memory. | ||
+ | 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=" | ||
+ | |||
+ | ===== Q: It is possible to change the log level of certain messages, e.g. only for RADIUS? ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===== Q: Is OpenSER a B2BUA? Can you tell me a B2BUA for OpenSER? ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===== Q: I can add exactly one user to the db. Also, trying to delete that one user with openserctl hangs. ===== | ||
+ | |||
+ | A: Check if you have installed the serweb tables. If yes, you have to set HAS_SERWEB=" | ||
+ | |||
+ | ===== Q: ERROR: | ||
+ | |||
+ | A: This means that you've spelled the driver string wrong and the driver module could not be loaded. Valid driver strings are " | ||
+ | |||
+ | ===== Q: ERROR: Invalid table version of XXXX table error? ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===== Q: ERROR: | ||
+ | |||
+ | 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 // | ||
+ | ===== Q: ERROR: Error opening OpenSER' | ||
+ | |||
+ | ERROR: Error opening OpenSER' | ||
+ | ERROR: Make sure you have the line ' | ||
+ | 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 " | ||
+ | modparam(" | ||
+ | |||
+ | |||
+ | ===== Q: SIP requests are replied with "483 Too Many Hops" or "513 Message Too Large" ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | ===== Troubleshooting Stuff ===== | ||
+ | |||
+ | {{indexmenu> |