Bladeren bron

added the kamailio install guide from git repository

Daniel-Constantin Mierla 8 jaren geleden
bovenliggende
commit
bd63c204c3

+ 1 - 0
kamailio-install-guide-git/.gitignore

@@ -0,0 +1 @@
+site/

BIN
kamailio-install-guide-git/docs/img/favicon.ico


+ 392 - 0
kamailio-install-guide-git/docs/index.md

@@ -0,0 +1,392 @@
+# Kamailio v5.0 - Install Guide #
+
+**Guide to install Kamailio SIP Server v5.0 (devel) from Git repository.**
+
+For more about Kamailio Project visit [kamailio.org](https://www.kamailio.org).
+
+```
+Main author:
+   Daniel-Constantin Mierla
+
+Support: <[email protected]>
+```
+
+## Overview ##
+
+This is a step by step tutorial about how to install and maintain Kamailio SIP
+server development version using the sources downloaded from GIT repository -
+the choice for those willing to write code for Kamailio or to try the new
+features to be released in the future with the next major stable version.
+
+*This document focuses on Kamailio devel (at this time it is the upcoming v5.0.0)
+with MySQL support, using a Debian unstable system.*
+
+
+## Prerequisites ##
+
+To be able to follow the guidelines from this document you need **root** access.
+
+The following packages are required before proceeding to the next steps.
+
+  * __git__ client: apt-get install git-core - it is recommended to have a recent
+  version, if your Linux distro has an old version, you can download newer one
+  from [git-scm.com](http://git-scm.com)
+  * __gcc__ compiler: apt-get install gcc
+  * __flex__ - apt-get install flex
+  * __bison__ - apt-get install bison
+  * __libmysqlclient-dev__ - apt-get install libmysqlclient-dev
+  * __make__ - apt-get install make
+  * if you want to enable more modules, some of them require extra libraries:
+    * __libssl__ - apt-get install libssl-dev
+    * __libcurl__ - apt-get install libcurl4-openssl-dev
+    * __libxml2__ - apt-get install libxml2-dev
+    * __libpcre3__ - apt-get install libpcre3-dev
+
+**Important Note**: starting with version `4.3.0`, Kamailio uses the directory
+**/var/run/kamailio/** for creating FIFO and UnixSocket control files. You have
+to complete the section related to installation of init.d script for creating
+`/var/run/kamailio` even if you plan to start Kamailio manually from command line.
+The alternative is to set different paths via parameters of **jsonrpcs**
+and **ctl** modules.
+
+## Getting Sources From GIT ##
+
+First of all, you have to create a directory on the file system where the sources
+will be stored.
+
+
+```Shell
+  mkdir -p /usr/local/src/kamailio-devel
+  cd /usr/local/src/kamailio-devel
+```
+
+Download the sources from GIT using the following commands.
+
+```Shell
+  git clone --depth 1 --no-single-branch git://git.kamailio.org/kamailio kamailio
+  cd kamailio
+```
+
+_**Note**: if your git client version does not support **--no-single-branch**
+command line parameter, then just remove it._
+
+## Tuning Makefiles ##
+
+The first step is to generate build config files.
+
+```Shell
+  make cfg
+```
+
+Next step is to enable the MySQL module. Edit **modules.lst** file:
+
+```Shell
+  nano -w modules.lst
+```
+
+Add **db_mysql** to the variable **include_modules**.
+
+```Shell
+include_modules= db_mysql
+```
+
+Save the **modules.lst** and exit.
+
+**NOTE**: this is one mechanism to enable modules which are not compiled by
+default, such as lcr, dialplan, presence -- add the modules to
+**include_modules** variable inside the **modules.lst** file.
+
+Alternative is to set `include_modules` variable to specify what extra modules
+to be included for compilation when building Makefile cfg:
+
+```Shell
+make include_modules="db_mysql dialplan" cfg
+```
+
+**NOTE**: If you want to install everything in one directory (so you can delete
+all installed files at once), say `/usr/local/kamailio-devel`, then set `PREFIX`
+variable to the install path in `make cfg ...` command:
+
+```Shell
+make PREFIX="/usr/local/kamailio-devel" include_modules="db_mysql dialplan" cfg
+```
+
+More hints about Makefile system at:
+
+  * https://www.kamailio.org/wiki/devel/makefile-system
+
+## Compile Kamailio ##
+
+Once you added the mysql module to the list of enabled modules, you can compile Kamailio:
+
+```Shell
+  make all
+```
+
+You can get full compile flags output using:
+
+```Shell
+  make Q=0 all
+```
+
+## Install Kamailio ##
+
+When the compilation is ready, install Kamailio with the following command:
+
+```Shell
+  make install
+```
+
+### What And Where Was Installed ###
+
+The binaries and executable scripts were installed in:
+
+```Shell
+  /usr/local/sbin
+```
+
+These are:
+
+  * __kamailio__ - Kamailio SIP server
+  * __kamdbctl__ - script to create and manage the Databases
+  * __kamctl__ - script to manage and control Kamailio SIP server
+  * __kamcmd__ - CLI - command line tool to interface with Kamailio SIP server
+
+To be able to use the binaries from command line, make sure that
+`/usr/local/sbin` is set in `PATH` environment variable. You can check that with
+`echo $PATH`. If not and you are using 'bash', open `/root/.bash_profile` and
+at the end add:
+
+```Shell
+  PATH=$PATH:/usr/local/sbin
+  export PATH
+```
+
+Kamailio modules are installed in:
+
+```Shell
+  /usr/local/lib/kamailio/modules/
+```
+
+Note: On 64 bit systems, `/usr/local/lib64` may be used.
+
+The documentation and readme files are installed in:
+
+```Shell
+  /usr/local/share/doc/kamailio/
+```
+
+The man pages are installed in:
+
+```Shell
+  /usr/local/share/man/man5/
+  /usr/local/share/man/man8/
+```
+
+The configuration file was installed in:
+
+```Shell
+  /usr/local/etc/kamailio/kamailio.cfg
+```
+
+**NOTE:**: In case you set the PREFIX variable in `make cfg ...` command, then
+replace **/usr/local** in all paths above with the value of PREFIX in order to
+locate the files installed.
+
+## Create MySQL Database ##
+
+To create the `MySQL` database, you have to use the database setup script.
+First edit **kamctlrc** file to set the database server type:
+
+```Shell
+  nano -w /usr/local/etc/kamailio/kamctlrc
+```
+
+Locate `DBENGINE` variable and set it to `MYSQL`:
+
+```Shell
+DBENGINE=MYSQL
+```
+
+You can change other values in **kamctlrc** file, at least it is recommended to
+change the default passwords for the users to be created to connect to database.
+
+Once you are done updating **kamctlrc** file, run the script to create the
+database used by Kamailio:
+
+```Shell
+  /usr/local/sbin/kamdbctl create
+```
+
+You can call this script without any parameter to get some help for the usage.
+You will be asked for the domain name Kamailio is going to serve (e.g.,
+mysipserver.com) and the password of the 'root' MySQL user. The script will
+create a database named `kamailio` containing the tables required by Kamailio.
+You can change the default settings in the kamctlrc file mentioned above.
+
+The script will add two users in `MySQL`:
+
+* **kamailio** - (with default password 'kamailiorw') - user which has full
+access rights to 'kamailio' database
+
+* **kamailioro** - (with default password 'kamailioro') - user which has
+read-only access rights to 'kamailio' database
+
+**_Do change the passwords for these two users to something different that the
+default values that come with sources._**
+
+## Edit Configuration File ##
+
+To fit your requirements for the VoIP platform, you have to edit the
+configuration file.
+
+```Shell
+  /usr/local/etc/kamailio/kamailio.cfg
+```
+
+Follow the instruction in the comments to enable usage of MySQL. Basically you
+have to add several lines at the top of config file, like:
+
+```c
+#!define WITH_MYSQL
+#!define WITH_AUTH
+#!define WITH_USRLOCDB
+```
+
+If you changed the password for the 'kamailio' user of MySQL, you have to update
+the value for `db_url` parameters.
+
+You can browse [kamailio.cfg](https://github.com/kamailio/kamailio/blob/master/etc/kamailio.cfg)
+online on GIT repository.
+
+## The init.d Script ##
+
+The init.d script can be used to start/stop the `Kamailio` server in a nicer way.
+A sample of init.d script for `Kamailio` is provided at:
+
+```Shell
+/usr/local/src/kamailio-devel/kamailio/pkg/kamailio/deb/debian/kamailio.init
+```
+
+Just copy the init file into the /etc/init.d/kamailio. Then change the permisions:
+
+```Shell
+  chmod 755 /etc/init.d/kamailio
+```
+
+then edit the file updating the $DAEMON and $CFGFILE values:
+
+```Shell
+  DAEMON=/usr/local/sbin/kamailio
+  CFGFILE=/usr/local/etc/kamailio/kamailio.cfg
+```
+
+You need also setup a configuration file in the /etc/default/ directory. This file can be found at:
+
+```Shell
+  /usr/local/src/kamailio-devel/pkg/kamailio/debian/kamailio.default
+```
+
+You need to rename the file to 'kamailio' after you've copied it. Then edit this
+file and set `RUN_KAMAILIO=yes`. Edit the other options at your convenience.
+
+Create the directory for pid file:
+
+```Shell
+mkdir -p /var/run/kamailio
+```
+
+Default setting is to run Kamailio as user "kamailio" and group "kamailio". For that you need to create the user:
+
+```Shell
+adduser --quiet --system --group --disabled-password \
+        --shell /bin/false --gecos "Kamailio" \
+        --home /var/run/kamailio kamailio
+
+# set ownership to /var/run/kamailio
+chown kamailio:kamailio /var/run/kamailio
+```
+
+Then you can start/stop Kamailio using the following commands:
+
+```Shell
+  /etc/init.d/kamailio start
+  /etc/init.d/kamailio stop
+```
+
+## Ready To Rock ##
+
+Now everything is in place. You can start the VoIP service, creating new
+accounts and setting the phones.
+
+A new account can be added using `kamctl` tool via:
+
+```Shell
+# kamctl add username password email
+
+```
+
+Or try without the email:
+
+```Shell
+  kamctl add test testpasswd [email protected]
+```
+
+If you are asked for `SIP_DOMAIN` environment variable do one of the following
+option.
+
+  * run in terminal:
+
+```Shell
+  export SIP_DOMAIN=mysipserver.com
+```
+
+  * or edit `/root/.kamctlrc` and add:
+
+
+```Shell
+  SIP_DOMAIN=mysipserver.com
+```
+
+## Maintenance ##
+
+The maintenance process is very simple right now. You have to be user `root` and
+execute following commands:
+
+```Shell
+  cd /usr/local/src/kamailio-devel/kamailio
+  git pull origin
+  make all
+  make install
+  /etc/init.d/kamailio restart
+```
+
+Now you have the latest Kamailio devel running on your system.
+
+
+### When To Update ###
+
+Notification about GIT commits are sent to the mailing list:
+**[email protected]**. Each commit notification contains the reference
+to the branch where the commit has been done. If the commit message contains
+the lines:
+
+```Shell
+Module: kamailio
+Branch: master
+```
+
+then an update has been made to Kamailio devel version and it will be available
+to the public GIT in no time.
+
+## Support ##
+
+Questions about how to use Kamailio and the content of kamailio.cfg can be
+addressed via email to:
+
+  * [[email protected]](http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users)
+
+More documentation resources can be found at:
+
+  * [www.kamailio.org/w/documentation](https://www.kamailio.org/w/documentation/)
+  * [www.kamailio.org/wiki](https://www.kamailio.org/wiki/)

+ 1 - 0
kamailio-install-guide-git/mkdocs.yml

@@ -0,0 +1 @@
+site_name: Install Kamailio Devel Version From Git Repository