Changelog: update Changelog after fixes before release 5.2.8
[kamailio] / INSTALL
1
2      ==================================================
3
4           Kamailio SIP Server Installation Notes
5
6                  http://www.kamailio.org
7
8      ==================================================
9
10   Welcome! This is an amazingly flexible, robust and secure SIP server
11   built on years of experience in several Open Source projects. It's a merge
12   of the SIP Express Router (SER) and the Kamailio (OpenSER) products produced
13   by a joint development team.
14
15   This memo gives you hints on how to set up the Kamailio quickly.
16
17   You can find a similar tutorial and many more on project's web site:
18     - https://www.kamailio.org/w/documentation/
19     - https://www.kamailio.org/wiki/
20
21   Recommended install tutorial:
22     - http://kamailio.org/docs/tutorials/5.2.x/kamailio-install-guide-git/
23
24 Table of Contents
25 =================
26
27 1. Supported Architectures And Requirements
28 2. How-To Build Kamailio From The Source Code Distribution
29    2.1 Kamailio Fast Track Installation
30    2.2 Details Installing From Source Code
31      A) Build Commands
32 3. Quick-Start Installation Guide
33    A) Getting Help
34    B) Disclaimers
35    C) Quick Start
36    D) Kamailio With Persistent Data Storage
37 4. Troubleshooting
38
39
40 1. Supported Architectures And Requirements
41 -------------------------------------------
42
43 Supported operating systems:
44  - Linux (Debian, Ubuntu, Fedora, RedHat, CentOS, OpenSUSE, Gentoo, a.s.o.)
45  - FreeBSD, NetBSD, OpenBSD, Dragonfly BSD
46  - Solaris
47  - OS/X, Darwin
48
49 Note that some modules have dependencies on the Linux operating system.
50 This is clearly noted in the README files.
51
52 Partially supported
53  - Windows+Cygwin (core + static modules only, no IPv6, no
54    TCP, no dynamic modules)
55
56 Supported architectures
57  - i386, x86_64 (amd64), armv4l, sparc64, powerpc, powerpc64
58
59 Experimental architectures:
60  - mips1, mips2, sparc32, alpha
61
62 (for other architectures the Makefiles might need to be edited)
63
64 There are various configuration options defined in the Makefile.
65
66 Requirements:
67
68 - gcc or clang:
69      gcc >= 2.9x; 3.[12] recommended (it will work with older version
70      but it might require some options tweaking for best performance)
71      clang >= version 3.3
72 - bison or yacc (Berkley Yacc)
73 - flex
74 - GNU make (on Linux this is the standard "make", on *BSD and Solaris it is
75   called "gmake") version >= 3.80 (recommended 3.81).
76 - sed and tr (used in the makefiles)
77 - GNU tar ("gtar" on Solaris) and gzip if you want "make tar" to work
78 - GNU install, BSD install or Solaris install if you want "make
79   install", "make bin", "make sunpkg" to work
80 - libmysqlclient & libz (zlib) if you want MySQL support (the db_mysql module)
81 - libxml2 if you want to compile the cpl-c (CPL support) or pa (presence)
82    modules
83 - freeradius, radcli or libradiusclient-ng (> 5.0) if you need RADIUS support
84   (the auth_radius, acc_radius and misc_radius modules)
85 - libpq if you need PostgreSQL support (the db_postgres module)
86 - libexpat if you want the jabber gateway support (the jabber module) or the
87   XMPP gateway support
88 - libxml2 if you want to use the cpl-c (Call Processing Language) or
89   the presence modules (presence and pua*)
90 - libradius-ng -libs and devel headers- if you want to use functionalities
91   with radius support - authentication, accounting, group support, etc
92 - unixodbc - libs and devel headers - if you want UNIXODBC support as
93   DB underlayer
94 - libperl - libs and devel headers - if you want the perl connector to support
95   perl scripting from your config file (perl module)
96 - libsnmp9 - libs and devel headers - if you want SNMP client functionality
97   (SNMP AgentX subagent) for Kamailio
98 - libldap libs and devel headers v2.1 or greater - if you want LDAP support
99 - libpcre libs and devel headers - if you want to compile the lcr and dialplan
100   modules
101 - libsctp devel headers - if you want to compile the SCTP transport in the core
102 - libssl devel headers (openssl project) - if you want to compile the TLS module
103 - libunistring - for the WebSocket module
104 - python and devel headers for the Python module
105 - jdk and gcj for Java module
106 - the jansson library for the jansson module used for JSON document handling
107
108 Some modules have other requirements on third-party libraries. This is documented
109 in the README for the specific module.
110
111 OS Notes:
112
113  FreeBSD/OpenBSD/NetBSD: make sure gmake, bison or yacc & flex are installed.
114
115   FreeBSD 5.4:
116   ------------
117   If you want to compile all the modules, you will need the following packages:
118   - mysql-client-* (any version, install one of the mysql*-client ports) for
119     libmysqlclient
120   - postgresql-libpqxx-2.4.2_1 (/usr/ports/databases/postgresql-libpqxx) for
121     libpq
122   - expat-1.95.8 (/usr/ports/textproc/expat2) for libexpat
123   - libxml2-2.6.18 (/usr/ports/textproc/libxml2) for libxml2
124   - radiusclient-0.4.7 (/usr/ports/net/radiusclient) for libradiusclient-ng
125   NOTE: you'll need to add radiusclient_ng=4 to the gmake command line if you
126   use the 0.4.* version.
127
128   Compile example (all the modules and SIP server core in a tar.gz):
129      gmake bin radiusclient_ng=4 include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
130
131   OpenBSD 3.7
132   -----------
133   - mysql-client-4.0.23 (/usr/ports/databases/mysql) for libmysqlclient
134   - expat-1.95.6 (/usr/ports/textproc/expat) for libexpat
135   - libxml-2.6.16p0 (/usr/ports/textproc/libxml) for libxml2
136   - radiusclient-ng-0.5.1 from
137    http://download.berlios.de/radiusclient-ng/radiusclient-ng-0.5.1.tar.gz
138    (you need to download and install it, since there is no "official"
139    openbsd port for it) for libradiusclient-ng
140
141   Compile example (all the modules and SIP server core in a tar.gz):
142      gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
143
144   NetBSD 2.0
145   ----------
146   - mysql-client-4.1.12 (/usr/pkgsrc/databases/mysql4-client) for libmysqlclient
147   - expat-1.95.8nb2 (/usr/pkgsrc/textproc/expat) for libexpat
148   - libxml2-2.6.19 (/usr/pkgsrc/textproc/libxml2) for libxml2
149   - radiusclient-ng-0.5.1 (see OpenBSD)
150
151   Compile example (all the modules and SIP server in a tar.gz):
152      gmake bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius pa"
153
154   Solaris 10
155   ----------
156   As above; you can use Solaris's yacc instead of bison. You might also
157   need gtar and ginstall. If you don't have ginstall you can use Solaris
158   install, just make sure it's in the PATH (it's usually in /usr/sbin) and
159   add INSTALL=install either to the environment or to the make command line
160   (e.g.: gmake INSTALL=install all).
161
162   Compile example (all the modules and SIP server in a tar.gz):
163      gmake bin INSTALL=install include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
164
165   Linux
166   -----
167   Kamailio is part of the official Debian distribution. You can download binary modules
168   directly using normal packet management.
169
170   Needed packages for compiling all the modules:
171   * Debian:
172       - libmysqlclient-dev for libmysqlclient
173       - libpq-dev for libpq
174       - libexpat1-dev for libexpat
175       - libxml2-dev for libxml2
176       - libradiusclient-ng-dev for libradiusclient
177           - other libraries are needed for some other modules,
178             see README of the module you want to use
179     Kamailio have APT deb repositories that allow you to
180         install the binaries easily - see the web site for more details:
181           - http://kamailio.org
182
183
184  Cygwin  (alpha state, partial support)
185  --------------------------------------
186  make sure make, bison, flex, minires and minires-devel (needed for the
187  resolver functions) are installed.
188
189  Only building Kamailio's core and some static modules is supported for now.
190  Stuff known not to work:
191            - IPv6 (cygwin doesn't support it yet)
192            - TCP (the tcp code heavily depends on file descriptor passing
193              between processes, which is not yet supported by cygwin)
194            - dynamic modules (non statically linked -- not supported because
195              backlinking doesn't work in windows by design)
196
197
198   Compile example (all the modules and Kamailio in a tar.gz):
199      make bin include_modules="mysql jabber cpl-c auth_radius group_radius uri_radius postgres pa"
200
201
202 2. Howto Build Kamailio From Source Code Distribution
203 -------------------------------------------------------
204
205 (NOTE: if make doesn't work try gmake instead)
206
207 2.1 Kamailio Fast Track Installation
208 ....................................
209
210
211 If you are familiar with Unix/Linux build tools aready and you installed
212 the required dependencies, then you can just follow this section, otherwise
213 skip over it.
214
215 To get Kamailio installed, in the folder with source code run:
216
217   make cfg
218   make all
219   make install
220
221 If you want to install with additional modules, for example with mysql and
222 tls, run:
223
224   make include_modules="db_mysql tls" cfg
225   make all
226   make install
227
228 2.2 Details - Installing From Source Code
229 .........................................
230
231 Build Commands
232
233   Kamailio is split in four main parts: The core, the modules, the
234   utilities, and the various scripts/examples.  When you build, you can decide to build
235   only the core, the modules, both, or all.
236
237 * Compile Kamailio core only:
238         make
239
240 Compile modules except some explicitly excepted (see below)
241         make modules  - all modules in the modules/ directory
242         make modules-all or make every-module  - all the modules
243
244 * Compile all:
245         make all
246
247 * Explicitly excepted modules:
248   By default make all will not build modules that require external libraries or
249   that are considered to be "experimental". For example, modules that have external
250   dependencies are: db_mysql, jabber, cpl-c, auth_radius, group_radius, uri_radius,
251   avp_radius, db_postgres, db_berkeley, carrierroute, ...
252
253 Including groups of modules:
254   Instead of compiling the default modules only, you can specify groups of
255   modules to include, according to their status:
256   - standard - Modules in this group are considered a standard part of Kamailio
257     (due to widespread usage) but they have no dependencies (note that some of
258     these interplay with external systems. However, they don't have compile
259     or link dependencies).
260
261   - db - Modules in this group use databases and need a database driver to run.
262     Included are drivers for the text mode db (dbtext) and for dumping
263     large amount of data to files (db_flatstore). See also the mysql or
264     postgres groups.
265
266   - standard_dep -  Modules in this group are considered a standard part of Kamailio
267     (due to widespread usage) but they have dependencies that must be satisfied
268     for compilation.
269     NOTE! All presence modules (dialog, pa, presence_b2b, rls, xcap) have been
270         included in this group due to interdependencies
271
272   - stable - Modules in this group satisfy specific or niche applications,
273     and are considered stable for production use. They may or may not have dependencies
274
275   - experimental - Modules in this group are either not complete, untested, or
276     without enough reports of usage to allow the module into the stable group.
277         They may or may not have dependencies.
278
279 There is another set of groups mainly used by Kamailio, where modules
280 are grouped based on Debian packaging rules. For example:
281    - kstandard - Kamailio standard modules
282
283    - kpresence - Kamailio SIMPLE presence server modules
284
285 * To compile core with standard modules:
286         make group_include="standard" all
287
288 * To compile all modules (provided you have all the required libraries installed) use:
289         make group_include="standard standard-dep stable experimental" all
290
291   There are also in addition some "convenience" groups:
292
293         mysql           - Include all the db modules dependent and the MySQL db driver
294         postgres        - Include all the db modules and the PostgreSQL db driver
295         radius          - Include all modules on radiusclient
296         presence        - Include all the presence modules
297
298   Ex. to make a standard installation with MySQL, use:
299         make group_include="standard mysql" all
300
301   In addition to group_include (or instead), you can use
302         include_modules="modA modB"
303   to specify exactly the modules you want to include, ex.
304         make include_modules="mymodule" modules
305
306   You can also explicitly skip modules using skip_modules. Let's say you want all
307   the standard and standard-dep modules except domain:
308         make group_include="standard standard-dep" skip_modules="domain" all
309
310   NOTE!!! As this mechanism is very powerful, you may be uncertain which
311   modules that will be included. Just replace all (or modules) with print-modules
312   and you will see which modules will be included and excluded, ex:
313         make print-modules
314   will show which modules are excluded by default.
315
316   If you want to install or to build a binary package (a tar.gz with
317   Kamailio core and the modules), substitute "all" in the above command with
318   "install" or "bin".
319
320
321 * More compile examples:
322
323   - compile with profiling
324         make PROFILE=-pg all
325   - compile debug mode version
326         make mode=debug all
327   - compile debug version with profiling
328         make mode=debug PROFILE=-pg all
329   - compile only the print module
330         make modules=modules/print modules
331   - compile by default only the print module, in debuging mode and with
332     profiling:
333         make cfg modules=modules/print mode=debug PROFILE=-pg
334         make all
335   - change & save the  modules list without rebuilding the whole config
336     (so that already compiled modules won't be re-compiled by
337     make all/make modules):
338         make modules-cfg include_modules="mysql postgress"
339   - change only the compile/build options, without changing the modules list:
340         make cfg-defs CPU=ultrasparc PROFILE=-pg
341   - compile by default all the usual modules + mysql and postgres, optimized
342      for pentium-m and for space (saves both the build options and the module
343      list)
344         make cfg include_modules="mysql postgres" CPU=pentium-m CC_EXTRA_OPTS=-Os
345         make all
346    - compile all the "default" modules except textops and vm
347         make skip_modules="textops vm" modules
348    - save the above option in the make config, so that all make commands
349      will use it by default:
350         make cfg skip_modules="textops vm"
351    - compile all default modules and include uri_radius (not compiled by default):
352         make include_modules="uri_radius" modules
353    - compile all the modules from the modules subdirectory (even the one excluded
354      by default):
355         make exclude_modules="" modules
356    - compile all the modules from the modules subdirectory excluding vm:
357         make exclude_modules=vm modules
358      or
359         make exclude_modules="" skip_modules=vm modules
360    - compile with the "tm" module statically linked and with profiling
361         make static_modules=tm PROFILE=-pg all
362    - compile with gcc-3.2 instead of gcc
363         make CC=gcc-3.2 all
364      or
365         CC=gcc-3.2 make all
366
367 Make targets:
368 =============
369
370 Make Local Build Config:
371 ------------------------
372
373   * make cfg or make config - force config and module list regeneration
374
375   Example:
376         make cfg include_modules=mysql mode=debug
377
378   All future make invocations will include the mysql module and will build in debug mode
379
380   Note: If config.mak doesn't exist (e.g. initial checkout or after a make
381   proper) or if Makefile.defs was changed, the config will be re-generated
382   automatically by the first make command. For example:
383         make cfg  include_modules=db_mysql; make all
384   is equivalent to
385         rm config.mak modules.lst; make include_modules=db_mysql.
386
387   * make cfg-defs  (force config regeneration, but don't touch the module list)
388
389   Example:
390         make cfg-defs CPU=ultrasparc CC_EXTRA_OPTS=-Os PROFILE=-pg
391
392         make modules-cfg
393   or
394         make modules-list
395   saves the module list, without regenerating the build config
396   Example:
397         make modules-list include_modules="tls" skip_modules="print"
398
399 Clean:
400 ------
401
402   * make clean          - clean the base and modules too
403   * make proper         - clean also the dependencies and the config, but not the module list
404   * make distclean      - the same as proper
405   * make maintainer-clean - clean everything, including make's config, saved
406                           module list, auto generated files, tags, *.dbg a.s.o
407   * make clean-all      - clean all the modules in modules/*
408   * make proper-all     - like make proper but for all the  modules in modules/*
409
410   Config clean:
411
412   * make clean-cfg       - cleans the compile config
413   * make clean-modules-cfg  - cleans the modules list
414
415   Reduced clean:
416
417   * make local-clean    - cleans only the core, no libs, utils or modules
418   * make clean-modules  - like make clean, but cleans only the modules
419   * make clean-libs     - like make clean, but cleans only the libs
420   * make clean-utils    - like make clean, but cleans only the utils
421
422
423 Compile:
424 --------
425   * make proper
426      optional: make cfg  <various cfg. options that should be saved>
427   * make proper-modules - like make proper, but only for modules
428   * make proper-libs    - like make proper, but only for libs
429   * make proper-utils   - like make proper, but only for utils
430   * make
431      or gmake on non-Linux systems
432   * make modules
433      or make modules exclude_modules="CVS print" etc.
434
435 Other Make Targets:
436 -------------------
437   Make tags:
438         make TAGS
439
440   Create a tar.gz with the sources (in ../):
441         make tar
442
443   Create a tar.gz with the binary distribution (in ../):
444         make bin
445
446   Create a gzipped solaris package (in ../):
447         make sunpkg
448
449   Create debian packages (in ../):
450         make deb
451
452   or
453         dpkg-buildpackage
454
455 Documentation:
456 --------------
457
458   Regenerate the README for all the "default" modules (include_modules,
459   skip_modules a.s.o can be used to alter the module list).
460         make README
461
462   Generates a manpage for all the modules that support it (.xml file in the
463   module directory).
464         make man
465
466   Generates README file for modules/foo.
467         make modules=modules/foo modules-readme
468
469 Install:
470 --------
471
472         make prefix=/usr/local  install
473
474   Note: If you use prefix parameter in make install then you also need
475   to use this parameter in previous make commands, i.e. make, make modules,
476   or make all. If you fail to do this then Kamailio will look for the default
477   configuration file in a wrong directory, because the directory of the
478   default configuration file is hardcoded into Kamailio during compile time.
479   When you use a different prefix parameter when installing then the
480   directory hard coded in Kamailio and the directory in which the file will be
481   installed by make install will not match. (You can specify exact location
482   of the configuration file using -f parameter of Kamailio).
483
484   For example, if you do the following:
485         make all
486         make prefix=/ install
487
488   Then the installation will put the default configuration file into
489   /etc/kamailio/kamailio.cfg (because prefix is /),
490   but Kamailio will look for the file in /usr/local/etc/kamailio/kamailio.cfg
491   (because there was no prefix parameter make all and /usr/local is the default value of prefix).
492
493   The workaround is trivial, use the same parameters in all make commands:
494         make prefix=/ all
495         make prefix=/ install
496   or save the desired prefix in the make config (e.g.: make cfg prefix=/).
497
498   That applies to other make parameters as well (for example parameters
499   "modules" or "excluded_modules").
500
501
502 3. Quick-Start Installation Guide
503 ---------------------------------
504
505 A) Getting Help
506
507   This guide gives you instructions on how to set up the Kamailio
508   on your box quickly. In case the default configuration does not fly, please
509   check the documentation at the Kamailio web site
510   http://www.kamailio.org to learn how to configure Kamailio for your site.
511
512   If the documentation does not resolve your problem you may try contacting
513   our user forum by E-mail at sr-users@lists.kamailio.org -- that is the
514   mailing list of the Kamailio community. To participate in the mailing list,
515   please subscribe at the following web address:
516
517   https://lists.kamailio.org/cgi-bin/mailman/listinfo
518
519 B) Disclaimers
520
521   Note well the default "quick-start" configuration is very simple in order
522   to be easily installable. It provides minimum features. Particularly,
523   authentication is by default disabled, which means anyone can register using
524   any name with the server. (This is on purpose to avoid installation
525   dependencies on a database, which is needed for storing user credentials.)
526
527 C) Quick Start
528
529   The following step-by step guide gives you instructions how to install the
530   SQL-free distribution of Kamailio. If you need persistence and
531   authentication, then you have to install additional database support --
532   proceed to section D) after you are finished with C).
533
534   1) Download an RPM or Debian package from the links on the wiki
535
536     https://www.kamailio.org/wiki/
537
538   If you don't use an rpm or debian based distribution, try our tar.gz'ed
539   binaries
540     https://www.kamailio.org/pub/kamailio/latest/src/
541
542   If you use Solaris 8 you can try our solaris package.
543   If you use Gentoo Linux you do not have to download a package.
544
545   2) Install the package
546         RPM:
547                 rpm -i <package_name>
548         debian:
549                 dpkg -i <package_name>
550         Solaris:
551                 gunzip <package_name>.gz ; pkgadd -d <package_name>
552         *BSD:
553                 pkg_add package_name
554
555   3) Start the server
556
557         RPM:
558                 /etc/init.d/kamailio start
559         debian:
560                 Kamailio is started automatically after the install
561                 (in case something fails you can start it with '/etc/init.d/kamailio start')
562         tar.gz:
563         Solaris:
564                 the tar.gz does not include an init.d script, you'll have to create one of
565                 your own or adapt one from the source distribution (pkg/debian/init.d,
566                 pkg/kamailio/rpm/kamailio.init, pkg/kamailio/deb/debian/kamailio.init, a.s.o.)
567                 You can start Kamailio directly with
568                         /usr/local/sbin/kamailio.
569
570   4) Optionally, watch server's health using the kamctl utility
571
572     - to do so, first set the environment variable SIP_DOMAIN to your domain
573       name, e.g., in Bourne shell, call
574         export SIP_DOMAIN="myserver.foobar.com"
575         - if you are using other than 'localhost' mysql server for maintaining
576           subscriber database, change the variable 'SQL_HOST' to the proper
577           host name in the kamctl script
578     - run the kamctl utility
579         /usr/sbin/kamctl moni
580       or
581         /usr/local/sbin/kamctl moni (if you installed Kamailio from a
582                 tar.gz or solaris package)
583
584   5) Connect SIP phones
585
586   Register with the server using your favorite SIP User Agent (phone).
587
588   In most cases, you need to set the following options:
589
590         Proxy server:   host name of your server
591         Domain:         the sip domain your server is configured to handle
592         User name:      the account name for your device
593         Auth user:      the ID used for authentication
594         Secret/Password:        The configured authentication password
595
596 D) Kamailio With Persistent Data Storage
597 ------------------------------------------
598
599   The default configuration is very simple and features many simplifications.
600   In particular, it does not authenticate users and loses User Location database
601   on reboot. To provide persistence, keep user credentials and remember users'
602   locations across reboots, Kamailio can be configured to use a database, like MySQL.
603
604   Before you proceed, you need to make sure MySQL is installed on your box. Your
605   MySQL server must be configured to deal with a large number of
606   connection. To increase it, set the following line in [mysqld] section
607   of your my.ini configuration file:
608
609    set-variable    = max_connections=500
610
611   1) Download the package containing mysql support for Kamailio from the links
612      you find on:
613         https://www.kamailio.org/wiki/
614
615     (rpm and deb provided, most of the binary tar.gz distributions and the
616      solaris package include it; if it is not present you'll have to rebuild
617      from the source).
618
619   2) install the package
620     rpm -i <package_name>
621     or
622     dpkg -i <package_name>
623         or
624         emerge kamailio
625         (if do not want to put 'mysql' into your USE variable you can type:
626          USE="mysql" emerge kamailio)
627
628   3) create MySQL tables for Kamailio
629         - if you have a previously installed Kamailio on your system, use
630         /usr/local/sbin/kamdbctl reinstall
631           to convert your Kamailio database into new structures
632         - otherwise, if this is your very first installation, use
633         /usr/local/sbin/kamdbctl create
634           to create Kamailio database structures
635      (you will be prompted for password of MySql "root" user)
636
637   4) configure Kamailio to use SQL
638     uncomment all lines in configuration file kamailio.cfg which are related to authentication:
639     - loadmodule "db_mysql.so"
640     - loadmodule "auth.so"
641     - loadmodule "auth_db.so"
642     - modparam("usrloc", "db_mode", 2)
643     - modparam("auth", "calculate_ha1", yes)
644     - modparam("auth_db", "password_column", "password")
645     - if (!www_authorize("example.com", "subscriber")) {
646         www_challenge("example.com", "0");
647         break;
648       }
649
650   5) be sure to replace realm, the first parameter in www_* actions,
651      with name of your server; some broken UAC implementations don't
652      authenticate otherwise; the authentication command in your
653      configuration script should look then like this:
654         if (!www_authorize("myserver.foobar.com", "subscriber")) {
655             www_challenge("myserver.foobar.com", "0");
656             break;
657         }
658
659   6) restart the server
660
661       /etc/init.d/kamailio restart
662
663   7) you can now start managing the server using the kamctl utility;
664      you need to first set the environment variable SIP_DOMAIN to your
665      local SIP realm, e.g.,
666        export SIP_DOMAIN="myserver.example.com"
667
668         a) watch the server status using 'kamctl moni'
669         b) try to login with your SIP client as user 'admin' with password 'heslo'
670         c) try adding new users using
671                 'kamctl add <username> <password>'
672
673
674 4. Troubleshooting
675 ------------------
676
677 Q: SIP requests are replied by Kamailio with "483 Too Many Hops" or
678    "513 Message Too Large"
679
680 A: In both cases, the reason is probably an error in request routing script
681    which caused an infinite loop. You can easily verify whether this happens
682    by watching SIP traffic on loopback interface. A typical reason for
683    misrouting is a failure to match local domain correctly. If a server
684    fails to recognize a request for itself, it will try to forward it to
685    current URI in believe it would forward them to a foreign
686    domain. Alas, it forwards the request to itself again. This continues
687    to happen until value of max_forwards header field reaches zero or
688    the request grows too big. Solutions is easy: make sure that domain
689    matching is correctly configured. A quick way to achieve that is to
690    introduce a config option to ser.cfg or kamailio.cfg: alias=domainname,
691    where domainname shall be replaced with name of domain, which you wish to
692    server and which appears in request-URIs.
693
694 Q: Where to report issues?
695
696 A: Use bug tracker at: https://github.com/kamailio/kamailio/issues
697
698 Q: Any F.A.Q. that could be helpful to check before reporting an issue?
699
700 A: See: https://www.kamailio.org/wiki/tutorials/faq/main