123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704 |
- ==================================================
- Kamailio SIP Server Installation Notes
- https://www.kamailio.org
- ==================================================
- Welcome! This is an amazingly flexible, robust and secure SIP server
- built on years of experience in several Open Source projects. It's a merge
- of the SIP Express Router (SER) and the Kamailio (OpenSER) products produced
- by a joint development team.
- This memo gives you hints on how to set up the Kamailio quickly.
- You can find a similar tutorial and many more on project's web site:
- - https://www.kamailio.org/w/documentation/
- - https://www.kamailio.org/wikidocs/
- Table of Contents
- =================
- 1. Supported Architectures And Requirements
- 2. How-To Build Kamailio From The Source Code Distribution
- 2.1 Kamailio Fast Track Installation
- 2.2 Details Installing From Source Code
- A) Build Commands
- 3. Quick-Start Installation Guide
- A) Getting Help
- B) Disclaimers
- C) Quick Start
- D) Kamailio With Persistent Data Storage
- 4. Troubleshooting
- 1. Supported Architectures And Requirements
- -------------------------------------------
- Supported operating systems:
- - Linux (Debian, Ubuntu, Fedora, RedHat, CentOS, OpenSUSE, Gentoo, a.s.o.)
- - FreeBSD, NetBSD, OpenBSD, Dragonfly BSD
- - Solaris
- - OS/X, Darwin
- Note that some modules have dependencies on the Linux operating system.
- This is clearly noted in the README files.
- Partially supported
- - Windows+Cygwin (core + static modules only, no IPv6, no
- TCP, no dynamic modules)
- Supported architectures
- - i386, x86_64 (amd64), armv4l, sparc64, powerpc, powerpc64
- Experimental architectures:
- - mips1, mips2, sparc32, alpha
- (for other architectures the Makefiles might need to be edited)
- There are various configuration options defined in the Makefile.
- Requirements:
- - gcc or clang:
- gcc >= 2.9x; 3.[12] recommended (it will work with older version
- but it might require some options tweaking for best performance)
- clang >= version 3.3
- - bison or yacc (Berkeley Yacc)
- - flex
- - GNU make (on Linux this is the standard "make", on *BSD and Solaris it is
- called "gmake") version >= 3.80 (recommended 3.81).
- - sed and tr (used in the makefiles)
- - GNU tar ("gtar" on Solaris) and gzip if you want "make tar" to work
- - GNU install, BSD install or Solaris install if you want "make
- install", "make bin", "make sunpkg" to work
- - libmysqlclient & libz (zlib) if you want MySQL support (the db_mysql module)
- - libxml2 if you want to compile the cpl-c (CPL support) or pa (presence)
- modules
- - freeradius, radcli or libradiusclient-ng (> 5.0) if you need RADIUS support
- (the auth_radius, acc_radius and misc_radius modules)
- - libpq if you need PostgreSQL support (the db_postgres module)
- - libexpat if you want the jabber gateway support (the jabber module) or the
- XMPP gateway support
- - libxml2 if you want to use the cpl-c (Call Processing Language) or
- the presence modules (presence and pua*)
- - libradius-ng -libs and devel headers- if you want to use functionalities
- with radius support - authentication, accounting, group support, etc
- - unixodbc - libs and devel headers - if you want UNIXODBC support as
- DB underlayer
- - libperl - libs and devel headers - if you want the perl connector to support
- perl scripting from your config file (perl module)
- - libsnmp9 - libs and devel headers - if you want SNMP client functionality
- (SNMP AgentX subagent) for Kamailio
- - libldap libs and devel headers v2.1 or greater - if you want LDAP support
- - libpcre libs and devel headers - if you want to compile the lcr and dialplan
- modules
- - libsctp devel headers - if you want to compile the SCTP transport in the core
- - libssl devel headers (openssl project) - if you want to compile the TLS module
- - libunistring - for the WebSocket module
- - python and devel headers for the Python module
- - jdk and gcj for Java module
- - the jansson library for the jansson module used for JSON document handling
- - libsqlite3 if you need SQLite support (the db_sqlite module)
- Some modules have other requirements on third-party libraries. This is documented
- in the README for the specific module.
- OS Notes:
- FreeBSD/OpenBSD/NetBSD: make sure gmake, bison or yacc & flex are installed.
- FreeBSD 5.4:
- ------------
- If you want to compile all the modules, you will need the following packages:
- - mysql-client-* (any version, install one of the mysql*-client ports) for
- libmysqlclient
- - postgresql-libpqxx-2.4.2_1 (/usr/ports/databases/postgresql-libpqxx) for
- libpq
- - expat-1.95.8 (/usr/ports/textproc/expat2) for libexpat
- - libxml2-2.6.18 (/usr/ports/textproc/libxml2) for libxml2
- - radiusclient-0.4.7 (/usr/ports/net/radiusclient) for libradiusclient-ng
- - sqlite3-3.35.5 (/usr/ports/databases/sqlite3) for libsqlite3
- NOTE: you'll need to add radiusclient_ng=4 to the gmake command line if you
- use the 0.4.* version.
- Compile example (all the modules and SIP server core in a tar.gz):
- gmake bin radiusclient_ng=4 include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
- OpenBSD 3.7
- -----------
- - mysql-client-4.0.23 (/usr/ports/databases/mysql) for libmysqlclient
- - expat-1.95.6 (/usr/ports/textproc/expat) for libexpat
- - libxml-2.6.16p0 (/usr/ports/textproc/libxml) for libxml2
- - radiusclient-ng-0.5.1 from
- http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.1.tar.gz
- (you need to download and install it, since there is no "official"
- openbsd port for it) for libradiusclient-ng
- - sqlite3-3.35.5 (/usr/ports/databases/sqlite3) for libsqlite3
- Compile example (all the modules and SIP server core in a tar.gz):
- gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
- NetBSD 2.0
- ----------
- - mysql-client-4.1.12 (/usr/pkgsrc/databases/mysql4-client) for libmysqlclient
- - expat-1.95.8nb2 (/usr/pkgsrc/textproc/expat) for libexpat
- - libxml2-2.6.19 (/usr/pkgsrc/textproc/libxml2) for libxml2
- - radiusclient-ng-0.5.1 (see OpenBSD)
- - sqlite3-3.36.0 (/usr/pkgsrc/databases/sqlite3) for libsqlite
- Compile example (all the modules and SIP server in a tar.gz):
- gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
- Solaris 10
- ----------
- As above; you can use Solaris' yacc instead of bison. You might also
- need gtar and ginstall. If you don't have ginstall you can use Solaris
- install, just make sure it's in the PATH (it's usually in /usr/sbin) and
- add INSTALL=install either to the environment or to the make command line
- (e.g.: gmake INSTALL=install all).
- Compile example (all the modules and SIP server in a tar.gz):
- gmake bin INSTALL=install include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
- Linux
- -----
- Kamailio is part of the official Debian distribution. You can download binary modules
- directly using normal packet management.
- Needed packages for compiling all the modules:
- * Debian:
- - libmysqlclient-dev for libmysqlclient
- - libpq-dev for libpq
- - libexpat1-dev for libexpat
- - libxml2-dev for libxml2
- - libradiusclient-ng-dev for libradiusclient
- - libsqlite3-dev for libsqlite
- - other libraries are needed for some other modules,
- see README of the module you want to use
- Kamailio have APT deb repositories that allow you to
- install the binaries easily - see the web site for more details:
- - https://kamailio.org
- Cygwin (alpha state, partial support)
- --------------------------------------
- make sure make, bison, flex, minires and minires-devel (needed for the
- resolver functions) are installed.
- Only building Kamailio's core and some static modules is supported for now.
- Stuff known not to work:
- - IPv6 (cygwin doesn't support it yet)
- - TCP (the tcp code heavily depends on file descriptor passing
- between processes, which is not yet supported by cygwin)
- - dynamic modules (non statically linked -- not supported because
- backlinking doesn't work in windows by design)
- Compile example (all the modules and Kamailio in a tar.gz):
- make bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
- 2. Howto Build Kamailio From Source Code Distribution
- -------------------------------------------------------
- (NOTE: if make doesn't work try gmake instead)
- 2.1 Kamailio Fast Track Installation
- ....................................
- If you are familiar with Unix/Linux build tools aready and you installed
- the required dependencies, then you can just follow this section, otherwise
- skip over it.
- To get Kamailio installed, in the folder with source code run:
- make cfg
- make all
- make install
- If you want to install with additional modules, for example with mysql and
- tls, run:
- make include_modules="db_mysql tls" cfg
- make all
- make install
- 2.2 Details - Installing From Source Code
- .........................................
- Build Commands
- Kamailio is split in four main parts: The core, the modules, the
- utilities, and the various scripts/examples. When you build, you can decide to build
- only the core, the modules, both, or all.
- * Compile Kamailio core only:
- make
- Compile modules except some explicitly excepted (see below)
- make modules - all modules in the modules/ directory
- make modules-all or make every-module - all the modules
- * Compile all:
- make all
- * Explicitly excepted modules:
- By default make all will not build modules that require external libraries or
- that are considered to be "experimental". For example, modules that have external
- dependencies are: db_mysql, jabber, cpl-c, auth_radius, group_radius, uri_radius,
- avp_radius, db_postgres, db_berkeley, carrierroute, ...
- Including groups of modules:
- Instead of compiling the default modules only, you can specify groups of
- modules to include, according to their status:
- - standard - Modules in this group are considered a standard part of Kamailio
- (due to widespread usage) but they have no dependencies (note that some of
- these interplay with external systems. However, they don't have compile
- or link dependencies).
- - db - Modules in this group use databases and need a database driver to run.
- Included are drivers for the text mode db (dbtext) and for dumping
- large amount of data to files (db_flatstore). See also the mysql,
- postgres, or sqlite groups.
- - standard_dep - Modules in this group are considered a standard part of Kamailio
- (due to widespread usage) but they have dependencies that must be satisfied
- for compilation.
- NOTE! All presence modules (dialog, pa, presence_b2b, rls, xcap) have been
- included in this group due to interdependencies
- - stable - Modules in this group satisfy specific or niche applications,
- and are considered stable for production use. They may or may not have dependencies
- - experimental - Modules in this group are either not complete, untested, or
- without enough reports of usage to allow the module into the stable group.
- They may or may not have dependencies.
- There is another set of groups mainly used by Kamailio, where modules
- are grouped based on Debian packaging rules. For example:
- - kstandard - Kamailio standard modules
- - kpresence - Kamailio SIMPLE presence server modules
- * To compile core with standard modules:
- make group_include="standard" all
- * To compile all modules (provided you have all the required libraries installed) use:
- make group_include="standard standard-dep stable experimental" all
- There are also in addition some "convenience" groups:
- mysql - Include all the db modules dependent and the MySQL db driver
- postgres - Include all the db modules and the PostgreSQL db driver
- sqlite - Include all the db modules and the SQLite db driver
- radius - Include all modules on radiusclient
- presence - Include all the presence modules
- Ex. to make a standard installation with MySQL, use:
- make group_include="standard mysql" all
- In addition to group_include (or instead), you can use
- include_modules="modA modB"
- to specify exactly the modules you want to include, ex.
- make include_modules="mymodule" modules
- You can also explicitly skip modules using skip_modules. Let's say you want all
- the standard and standard-dep modules except domain:
- make group_include="standard standard-dep" skip_modules="domain" all
- NOTE!!! As this mechanism is very powerful, you may be uncertain which
- modules that will be included. Just replace all (or modules) with print-modules
- and you will see which modules will be included and excluded, ex:
- make print-modules
- will show which modules are excluded by default.
- If you want to install or to build a binary package (a tar.gz with
- Kamailio core and the modules), substitute "all" in the above command with
- "install" or "bin".
- * More compile examples:
- - compile with profiling
- make PROFILE=-pg all
- - compile debug mode version
- make mode=debug all
- - compile debug version with profiling
- make mode=debug PROFILE=-pg all
- - compile only the print module
- make modules=modules/print modules
- - compile by default only the print module, in debugging mode and with
- profiling:
- make cfg modules=modules/print mode=debug PROFILE=-pg
- make all
- - change & save the modules list without rebuilding the whole config
- (so that already compiled modules won't be re-compiled by
- make all/make modules):
- make modules-cfg include_modules="mysql postgress"
- - change only the compile/build options, without changing the modules list:
- make cfg-defs CPU=ultrasparc PROFILE=-pg
- - compile by default all the usual modules + mysql and postgres, optimized
- for pentium-m and for space (saves both the build options and the module
- list)
- make cfg include_modules="mysql postgres" CPU=pentium-m CC_EXTRA_OPTS=-Os
- make all
- - compile all the "default" modules except textops and vm
- make skip_modules="textops vm" modules
- - save the above option in the make config, so that all make commands
- will use it by default:
- make cfg skip_modules="textops vm"
- - compile all default modules and include uri_radius (not compiled by default):
- make include_modules="uri_radius" modules
- - compile all the modules from the modules subdirectory (even the one excluded
- by default):
- make exclude_modules="" modules
- - compile all the modules from the modules subdirectory excluding vm:
- make exclude_modules=vm modules
- or
- make exclude_modules="" skip_modules=vm modules
- - compile with the "tm" module statically linked and with profiling
- make static_modules=tm PROFILE=-pg all
- - compile with gcc-3.2 instead of gcc
- make CC=gcc-3.2 all
- or
- CC=gcc-3.2 make all
- Make targets:
- =============
- Make Local Build Config:
- ------------------------
- * make cfg or make config - force config and module list regeneration
- Example:
- make cfg include_modules=mysql mode=debug
- All future make invocations will include the mysql module and will build in debug mode
- Note: If config.mak doesn't exist (e.g. initial checkout or after a make
- proper) or if Makefile.defs was changed, the config will be re-generated
- automatically by the first make command. For example:
- make cfg include_modules=db_mysql; make all
- is equivalent to
- rm config.mak modules.lst; make include_modules=db_mysql.
- * make cfg-defs (force config regeneration, but don't touch the module list)
- Example:
- make cfg-defs CPU=ultrasparc CC_EXTRA_OPTS=-Os PROFILE=-pg
- make modules-cfg
- or
- make modules-list
- saves the module list, without regenerating the build config
- Example:
- make modules-list include_modules="tls" skip_modules="print"
- Clean:
- ------
- * make clean - clean the base and modules too
- * make proper - clean also the dependencies and the config, but not the module list
- * make distclean - the same as proper
- * make maintainer-clean - clean everything, including make's config, saved
- module list, auto generated files, tags, *.dbg a.s.o
- * make clean-all - clean all the modules in modules/*
- * make proper-all - like make proper but for all the modules in modules/*
- Config clean:
- * make clean-cfg - cleans the compile config
- * make clean-modules-cfg - cleans the modules list
- Reduced clean:
- * make local-clean - cleans only the core, no libs, utils or modules
- * make clean-modules - like make clean, but cleans only the modules
- * make clean-libs - like make clean, but cleans only the libs
- * make clean-utils - like make clean, but cleans only the utils
- Compile:
- --------
- * make proper
- optional: make cfg <various cfg. options that should be saved>
- * make proper-modules - like make proper, but only for modules
- * make proper-libs - like make proper, but only for libs
- * make proper-utils - like make proper, but only for utils
- * make
- or gmake on non-Linux systems
- * make modules
- or make modules exclude_modules="acc_json print" etc.
- Other Make Targets:
- -------------------
- Make tags:
- make TAGS
- Create a tar.gz with the sources (in ../):
- make tar
- Create a tar.gz with the binary distribution (in ../):
- make bin
- Create a gzipped solaris package (in ../):
- make sunpkg
- Create debian packages (in ../):
- make deb
- or
- dpkg-buildpackage
- Documentation:
- --------------
- Regenerate the README for all the "default" modules (include_modules,
- skip_modules a.s.o can be used to alter the module list).
- make README
- Generates a manpage for all the modules that support it (.xml file in the
- module directory).
- make man
- Generates README file for modules/foo.
- make modules=modules/foo modules-readme
- Install:
- --------
- make prefix=/usr/local install
- Note: If you use prefix parameter in make install then you also need
- to use this parameter in previous make commands, i.e. make, make modules,
- or make all. If you fail to do this then Kamailio will look for the default
- configuration file in a wrong directory, because the directory of the
- default configuration file is hardcoded into Kamailio during compile time.
- When you use a different prefix parameter when installing then the
- directory hard coded in Kamailio and the directory in which the file will be
- installed by make install will not match. (You can specify exact location
- of the configuration file using -f parameter of Kamailio).
- For example, if you do the following:
- make all
- make prefix=/ install
- Then the installation will put the default configuration file into
- /etc/kamailio/kamailio.cfg (because prefix is /),
- but Kamailio will look for the file in /usr/local/etc/kamailio/kamailio.cfg
- (because there was no prefix parameter make all and /usr/local is the default value of prefix).
- The workaround is trivial, use the same parameters in all make commands:
- make prefix=/ all
- make prefix=/ install
- or save the desired prefix in the make config (e.g.: make cfg prefix=/).
- That applies to other make parameters as well (for example parameters
- "modules" or "excluded_modules").
- 3. Quick-Start Installation Guide
- ---------------------------------
- A) Getting Help
- This guide gives you instructions on how to set up the Kamailio
- on your box quickly. In case the default configuration does not fly, please
- check the documentation at the Kamailio web site
- https://www.kamailio.org to learn how to configure Kamailio for your site.
- If the documentation does not resolve your problem you may try contacting
- our user forum by E-mail at [email protected] -- that is the
- mailing list of the Kamailio community. To participate in the mailing list,
- please subscribe at the following web address:
- https://lists.kamailio.org/
- B) Disclaimers
- Note well the default "quick-start" configuration is very simple in order
- to be easily installable. It provides minimum features. Particularly,
- authentication is by default disabled, which means anyone can register using
- any name with the server. (This is on purpose to avoid installation
- dependencies on a database, which is needed for storing user credentials.)
- C) Quick Start
- The following step-by step guide gives you instructions how to install the
- SQL-free distribution of Kamailio. If you need persistence and
- authentication, then you have to install additional database support --
- proceed to section D) after you are finished with C).
- 1) Download an RPM or Debian package from the links on the wiki
- https://www.kamailio.org/wikidocs/
- If you don't use an rpm or debian based distribution, try our tar.gz'ed
- binaries
- https://www.kamailio.org/pub/kamailio/latest/src/
- If you use Solaris 8 you can try our solaris package.
- If you use Gentoo Linux you do not have to download a package.
- 2) Install the package
- RPM:
- rpm -i <package_name>
- debian:
- dpkg -i <package_name>
- Solaris:
- gunzip <package_name>.gz ; pkgadd -d <package_name>
- *BSD:
- pkg_add package_name
- 3) Start the server
- RPM:
- /etc/init.d/kamailio start
- debian:
- Kamailio is started automatically after the install
- (in case something fails you can start it with '/etc/init.d/kamailio start')
- tar.gz:
- Solaris:
- the tar.gz does not include an init.d script, you'll have to create one of
- your own or adapt one from the source distribution (pkg/debian/init.d,
- pkg/kamailio/rpm/kamailio.init, pkg/kamailio/deb/debian/kamailio.init, a.s.o.)
- You can start Kamailio directly with
- /usr/local/sbin/kamailio.
- 4) Optionally, watch server's health using the kamctl utility
- - to do so, first set the environment variable SIP_DOMAIN to your domain
- name, e.g., in Bourne shell, call
- export SIP_DOMAIN="myserver.foobar.com"
- - if you are using other than 'localhost' mysql server for maintaining
- subscriber database, change the variable 'SQL_HOST' to the proper
- host name in the kamctl script
- - run the kamctl utility
- /usr/sbin/kamctl moni
- or
- /usr/local/sbin/kamctl moni (if you installed Kamailio from a
- tar.gz or solaris package)
- 5) Connect SIP phones
- Register with the server using your favorite SIP User Agent (phone).
- In most cases, you need to set the following options:
- Proxy server: host name of your server
- Domain: the sip domain your server is configured to handle
- User name: the account name for your device
- Auth user: the ID used for authentication
- Secret/Password: The configured authentication password
- D) Kamailio With Persistent Data Storage
- ------------------------------------------
- The default configuration is very simple and features many simplifications.
- In particular, it does not authenticate users and loses User Location database
- on reboot. To provide persistence, keep user credentials and remember users'
- locations across reboots, Kamailio can be configured to use a database, like MySQL.
- Before you proceed, you need to make sure MySQL is installed on your box. Your
- MySQL server must be configured to deal with a large number of
- connection. To increase it, set the following line in [mysqld] section
- of your my.ini configuration file:
- set-variable = max_connections=500
- 1) Download the package containing mysql support for Kamailio from the links
- you find on:
- https://www.kamailio.org/wikidocs/
- (rpm and deb provided, most of the binary tar.gz distributions and the
- solaris package include it; if it is not present you'll have to rebuild
- from the source).
- 2) install the package
- rpm -i <package_name>
- or
- dpkg -i <package_name>
- or
- emerge kamailio
- (if do not want to put 'mysql' into your USE variable you can type:
- USE="mysql" emerge kamailio)
- 3) create MySQL tables for Kamailio
- - if you have a previously installed Kamailio on your system, use
- /usr/local/sbin/kamdbctl reinstall
- to convert your Kamailio database into new structures
- - otherwise, if this is your very first installation, use
- /usr/local/sbin/kamdbctl create
- to create Kamailio database structures
- (you will be prompted for password of MySql "root" user)
- 4) configure Kamailio to use SQL
- uncomment all lines in configuration file kamailio.cfg which are related to authentication:
- - loadmodule "db_mysql.so"
- - loadmodule "auth.so"
- - loadmodule "auth_db.so"
- - modparam("usrloc", "db_mode", 2)
- - modparam("auth", "calculate_ha1", yes)
- - modparam("auth_db", "password_column", "password")
- - if (!www_authorize("example.com", "subscriber")) {
- www_challenge("example.com", "0");
- break;
- }
- 5) be sure to replace realm, the first parameter in www_* actions,
- with name of your server; some broken UAC implementations don't
- authenticate otherwise; the authentication command in your
- configuration script should look then like this:
- if (!www_authorize("myserver.foobar.com", "subscriber")) {
- www_challenge("myserver.foobar.com", "0");
- break;
- }
- 6) restart the server
- /etc/init.d/kamailio restart
- 7) you can now start managing the server using the kamctl utility;
- you need to first set the environment variable SIP_DOMAIN to your
- local SIP realm, e.g.,
- export SIP_DOMAIN="myserver.example.com"
- a) watch the server status using 'kamctl moni'
- b) try to login with your SIP client as user 'admin' with password 'heslo'
- c) try adding new users using
- 'kamctl add <username> <password>'
- 4. Troubleshooting
- ------------------
- Q: SIP requests are replied by Kamailio 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 max_forwards header field reaches zero or
- the request grows too big. Solutions is easy: make sure that domain
- matching is correctly configured. A quick way to achieve that is to
- introduce a config option to ser.cfg or kamailio.cfg: alias=domainname,
- where domainname shall be replaced with name of domain, which you wish to
- server and which appears in request-URIs.
- Q: Where to report issues?
- A: Use bug tracker at: https://github.com/kamailio/kamailio/issues
- Q: Any F.A.Q. that could be helpful to check before reporting an issue?
- A: See: https://www.kamailio.org/wikidocs/tutorials/faq/main
|