Hi carsten,

Could compare your installation steps with the once in the log file
attached and check if there are differences. I did my installation using
that steps and for one version works for the other one i get the parse
error.

On 05/30/2016 04:31 PM, Mihail Dakov wrote:
> Hi,
> Yes I got a different setup with kamailio 4.2.4 where I successfully
> register the same UEs. But there we got some kind of issue with the rx
> interface and before looking at the code we wanted to update kamailio
> version and then see if same rx issue happens. At the moment is not
> clear to me the rx issue therefore i couldn't describe it.
> 
> On 05/30/2016 04:28 PM, Carsten Bock wrote:
>> Hi Mihail,
>>
>> you could also see the REGISTER in the PCAP, if you did not configure
>> your DNS/BIND properly...
>>
>> Thanks,
>> Carsten
>>
>> P.S.: I regularly test Zoiper with our own setup, it works... and it
>> even should work with the 4.4 version, you're running.
>>
>> 2016-05-30 17:25 GMT+03:00 Mihail Dakov <mihail.da...@ng4t.com>:
>>>
>>>
>>> On 05/30/2016 04:11 PM, Carsten Bock wrote:
>>>> Hi,
>>>>
>>>> the Zone-File is the interesting part, not the Bind-Config.
>>>>
>>>> Did you configure the outbound Proxy on Zoiper properly?
>>> Yes, otherwise the REGISTER from the UE would be missing from the pcap,
>>> right?
>>>>
>>>> You can actually see in the trace, that the Proxy-CSCF is forwarding
>>>> the packet to itself (looping) and at some point it drops the request.
>>>>
>>> I see that as well. I eliminated big part of the log as is the loop
>>> itself. After some time it gets stable. But to estimate the nature of
>>> the loop I get about 1M log lines with debug level 5 for 1 register
>>> procedure triggered from the UE.
>>>
>>> I guess i'll check with the trunk code meanwhile.
>>>> Thanks,
>>>> Carsten
>>>>
>>>> 2016-05-30 16:53 GMT+03:00 Mihail Dakov <mihail.da...@ng4t.com>:
>>>>> Hi,
>>>>>
>>>>> DNS error? This is interesting. Well I got a local bind running with a
>>>>> dnszone provided from ims aio from kamailio.org site. You can have a
>>>>> look at the bind config which copied adjusting port numbers.
>>>>> I would say that it does work:
>>>>>
>>>>> user@host:etc/kamailio$ host hss
>>>>> hss.open-ims.test has address 192.168.177.100
>>>>> user@host:/etc/kamailio$ host icscf
>>>>> icscf.open-ims.test has address 192.168.177.100
>>>>> user@host:/etc/kamailio$ host pcscf
>>>>> pcscf.open-ims.test has address 192.168.177.100
>>>>> user@host:/etc/kamailio$ host scscf
>>>>> scscf.open-ims.test has address 192.168.177.100
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 05/30/2016 03:40 PM, Carsten Bock wrote:
>>>>>> Hi,
>>>>>>
>>>>>> looks to me, like a typical DNS error. How did you configure DNS?
>>>>>> You have BIND up and running and a proper Zone-File? Do the CSCF's
>>>>>> properly query the DNS?
>>>>>>
>>>>>> Thanks,
>>>>>> Carsten
>>>>>>
>>>>>> 2016-05-30 16:35 GMT+03:00 Mihail Dakov <mihail.da...@ng4t.com>:
>>>>>>> Hi Folks,
>>>>>>>
>>>>>>> I have the strangest problem just after installing latest stable
>>>>>>> version. I had tried both ways using the repo
>>>>>>> (http://deb.kamailio.org/kamailio44) and downloading code with local
>>>>>>> compile (https://www.kamailio.org/w/2016/05/kamailio-v4-4-1-released/)
>>>>>>>
>>>>>>> The initial scenario is to get M2M with commercial IP and subsequently
>>>>>>> use the Rx interface to do the same. We are blocked because we cannot
>>>>>>> even achieve clean register for the UEs.
>>>>>>>
>>>>>>> UE1(galaxy s4 zoiper) -------- Kamailio IMS aio
>>>>>>>                                |
>>>>>>> UE2(galaxy s4 zoiper) -------- |
>>>>>>>
>>>>>>>
>>>>>>> What happens is that the first register message triggers some
>>>>>>> quasi-endless loop in the PCSCF. Hence it cannot be forwarded to SCSCF,
>>>>>>> ICSCF and HSS. But this doesn't always happen and between all the parse
>>>>>>> problems there are some register messages which get passed to the scscf
>>>>>>> icscf and hss. Somehow the parser feeds itself from the previous parse
>>>>>>> run and thus loops quite intensively. The message I get is SIP/2.0 400
>>>>>>> CSeq method does not match request method.
>>>>>>> I must say that reiterating the registration process sometimes i get the
>>>>>>> register and sometimes i don't.
>>>>>>>
>>>>>>> Has anyone encounter similar issue for similar use case and can share
>>>>>>> some thoughs about a fix?
>>>>>>>
>>>>>>> I attached relevant log file, pcaps and configuration files. Let me know
>>>>>>> if more config files are needed.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>>>>> sr-users@lists.sip-router.org
>>>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>>> sr-users@lists.sip-router.org
>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> _______________________________________________
>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>> sr-users@lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>
>>
>>
> 
> 
> 
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users@lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
> 
=======================================================================================================
Installation Debian 8.2 on   29.11.2015 16:18:43			
------------------------------------------------
- Use D:\_\SW\Debian 8.2\debian-8.2.0-amd64-i386-netinst.iso
- VMware guest configuration:
  - install as "Debian 6"
  - install at: C:\Users\Franz\Documents\Virtual Machines\Debian_8.2
  - maximum disk size 20 GB
  - store virtual disk as a single files
  - network connection: bridged
  - customize hardware: remove floppy, printer
- Installation: 
  - 64 bit install
  - install language: English
  - Country: Austria
  - Locales: en_US.UTF-8
  - Keymap: German
  - Use ethernet connection (cable) otherwise network autoconfiguartion failed
  - hostname: server
  - domain name: lan
  - user:
    root / root
    Franz Edler / franz / franz
  - partitioning method: Guided - use entire disk
    - disk SCSI3 (0,0,0) (sda)           21,5 GB VMware Virtual S
    - use full disk space for partitioning
    - all files in one partition         --> SCSI3 (0,0,0) sda
      #1 primary   20,5 GB B f ext4 /
      #5 logical  922.7 MB   f swap  swap
  - installing the base system ...  
  - Debian archive mirror: Austria - ftp.at.debian.org 
    no proxy in home environment
    configuring apt ... preparing Linux image 
  - software selection: only standard system utilities
    --> running tasksel (SSH and standard system utilities only) and retrieving 268 packages
  - GRUB in MBR, device for bootloader installation: /dev/sda
  - guest HW: disconnect CD at power on
  - finish and reboot
  - IP address assigned: 10.0.0.16  (DHCO dynamically)

Install various SW packages
- apt-get install ssh
  change in /etc/ssh/sshd_config: PermitRootLogin --> yes
  and restart sshd
continue installation via WinSCP & PUTTy
- apt-get install tcpdump
- apt-get install screen
- pt-get install ntp
- apt-get install ntpdate
  ntpdate pool.ntp.org

set interface address - static:
  - /etc/network/interfaces:

    # The loopback network interface
    auto lo
    iface lo inet loopback

->  # The primary network interface
    allow-hotplug eth0             
    #iface eth0 inet dhcp          
    iface eth0 inet static         
    address 10.0.0.20              
    netmask 255.255.255.0          
    broadcast 10.0.0.255           
    gateway 10.0.0.1               

restart network:
- /etc/init.d/networking restart
  --> due to changed interface data eth0 is dead (unknown)
  - ifup eth0

- /etc/rc.local
  - add "ntpdate pool.ntp.org" 
  --> no, don't do that!!!
      Debian 8.2 uses already systemD instead fo systemV (see comment below)
      
  
apt-get install bash-completion --> already installed

- /root/.bashrc
  uncomment some lines to e.g.
  -> enable "ls" colorized and some shortcuts
  and add further

  alias grep='grep --color=auto'
  alias fgrep='fgrep --color=auto'
  alias egrep='egrep --color=auto'

  # some alias for convenience
  alias cs='cd /opt/SIPp'
  alias co='cd /opt/OpenIMSCore'
  alias ck='cd /usr/local/etc/kamailio'

  # advanced command completion (shows command-options: example dpkg -(tab)(tab)
  source /etc/bash_completion

some commands:
root@server:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:92:4a:38
          inet addr:10.0.0.9  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe92:4a38/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:633 errors:0 dropped:0 overruns:0 frame:0
          TX packets:439 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:57896 (56.5 KiB)  TX bytes:72601 (70.8 KiB)
          Interrupt:18 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
       

root@server:/# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.0.1        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        *               255.255.255.0   U     0      0        0 eth0

root@server:/# df
Filesystem     1K-blocks   Used Available Use% Mounted on
/dev/sda1       19620732 977244  17623740   6% /
udev               10240      0     10240   0% /dev
tmpfs             204892   4600    200292   3% /run
tmpfs             512220      0    512220   0% /dev/shm
tmpfs               5120      0      5120   0% /run/lock
tmpfs             512220      0    512220   0% /sys/fs/cgroup

root@server:/# uname -a
Linux server 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux

create and configure DNS:
  - apt-get install bind9
  - edit /etc/bind/named.conf.local
  - create the required zone-files:
    net1.test.zone
    net2.test.zone
    0.0.10.zone
  - edit  /etc/bind/named.conf.options 
    - include forwarders (avoid home router as additional hop)
    - disable dnssec  
    - disable (comment) dnssec-validation auto; 
    - disable (comment) listen-on-v6 { any; };
  
- /etc/resolv.conf
  domain net1.test
  search net1.test
  nameserver server.net1.test
  nameserver server.net1.test

- /etc/hosts
  127.0.0.1 localhost
  10.0.0.20   server.net1.test  server
  (disable (via comment) IPv6 addresses - not done)

restart bind and check syslog via command "tail -F /var/log/syslog" for errors
  outdated:
  - /etc/init.d/bind9 stop
  - /etc/init.d/bind9 start
  new:
  - systemctl stop bind9
  - systemctl start bind9

general check and further commands: 
  - systemctl										lists all "units"
  - systemctl --type=service		lists all "services"
  - systemctl disable/enable xxx.service
  - systemd-analyze							shows duration of last boot
  for details see: http://www.admin-magazin.de/Das-Heft/2014/10/Systemstart-mit-Systemd-unter-Linux
  
check DNS on guest system:
  - dig server.net1.test
  - dig server.net2.test

reconfigure network adapter on notebook (static config with DNS-server = VMware guest)

check DNS on host system:
  - ping server.net1.test

update package administration:
  - apt-get check               check consistency
  - apt-get update              update list of available packages
  - apt-get upgrade             upgrade involved packages to actual version
  - apt-get dist-upgrade      	upgrade involved packages if necessary (in case of special priorities)
  - apt-get clean               deletes downloaded packages from /var/cache/apt/archives and /var/cache/apt/archives/partial

how to search a packet based on a string (e.g mysql-server):
  - apt-cache search <packet>
  - apt-cache search mysql-server
  
== saved as Debian_8.2-step1 on 29.11.2015 21:25:00 =========================================================
============================================================================================================

Install and maintain Kamailio v4.3.4 Version From GIT
-----------------------------------------------------
http://www.kamailio.org/wiki/install/4.3.x/git

1. prerequisites
---------------- 
apt-get install git-core
apt-get install gcc
apt-get install flex
apt-get install bison
apt-get install libmysqlclient-dev
apt-get install make
apt-get install libssl-dev
apt-get install libcurl4-openssl-dev
apt-get install libxml2-dev
apt-get install libpcre3-dev

install mysql
- apt-get install mysql-server-5.5
  root password = root
- enable access to mysql from remote hosts (very generous and dangerous in real world):
  mysql -u root -p
    GRANT ALL ON *.* TO root IDENTIFIED BY 'root';
    quit
- replace bind-address in /etc/mysql/my.cnf to 10.0.0.9 (instead of 127.0.0.1) to enable remote access
- restart mysql and check via command "tail -F /var/log/syslog" for errors
  - /etc/init.d/mysql stop
  - /etc/init.d/mysql start
- check remote access via MySQL workbench
 

2. Getting sources from GIT
---------------------------
mkdir -p /usr/local/src/kamailio-4.3
cd /usr/local/src/kamailio-4.3

Download:

git clone --depth 1 --no-single-branch git://git.kamailio.org/kamailio kamailio
cd kamailio
git checkout -b 4.3 origin/4.3

     
3.Tuning Makefiles
------------------
The first step is to generate build config files.
-> make cfg

Next step is to enable the MySQL module. Edit modules.lst file:
Add db_mysql to the variable include_modules:
-> include_modules=db_mysql ims_usrloc_pcscf ims_registrar_pcscf

(make include_modules="db_mysql" cfg)
 
4. Compile Kamailio
-------------------
Once you added the mysql module to the list of enabled modules, you can compile Kamailio:
- make all
You can get full compile flags output using:
- make Q=0 all | tee make_all.txt

5. Install Kamailio
-------------------
When the compilation is ready, install Kamailio with the following command:
-  make install | tee make_install.txt
	 (takes long when done a 2nd time)

6. What and where was installed
-------------------------------
The binaries and executable scripts were installed in:
  /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
    sercmd - 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:
  PATH=$PATH:/usr/local/sbin
  export PATH

Kamailio modules are installed in:
  /usr/local/src/kamailio/modules
  /usr/local/lib64/kamailio/modules

The documentation and readme files are installed in:
  /usr/local/share/doc/kamailio/

The man pages are installed in:
  /usr/local/kamailio-4.3/share/man/

The configuration file was installed in:
  /usr/local/etc/kamailio

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.

7. 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:
  nano -w /usr/local/kamailio-4.3/etc/kamailio/kamctlrc

Locate DBENGINE variable and set it to MYSQL:
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:

  /usr/local/kamailio-4.3/sbin/kamdbctl create  
	--> all database tables created

check database manually;
 - mysql -u root -p
 - show databases;
 - use kamailio;
 - show tables;
 - select * from subscriber;
or with mysql workbench.    

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.
-> not required for lab-application

2 subscribers added via kamctl
- kamctl add alice alice
- kamctl add bob bob

check manually:
- select * from subscriber;

== saved as Debian_8.2-step2 on 01.12.2015 21:33:30 ========================================================
============================================================================================================

8. Edit configuration file
--------------------------
To fit your requirements for the VoIP platform, you have to edit the configuration file.
  /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:
#!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 online on GIT repository.

9. 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:
/usr/local/src/kamailio-4.0/kamailio/pkg/kamailio/deb/debian/kamailio.init

Just copy the init file into the /etc/init.d/kamailio. Then change the permissions:
  chmod 755 /etc/init.d/kamailio 
then edit the file updating the $DAEMON and $CFGFILE values:

  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:
  /usr/local/src/kamailio-4.0/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:
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:

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:

  /etc/init.d/kamailio start
  /etc/init.d/kamailio stop
  
  check running processes with: ps axw | egrep kamailio

10. 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 'kamctl add <username> <password> <email>'. (or try without the email)

kamctl add test testpasswd t...@mysipserver.com

If you are asked for SIP_DOMAIN environment variable do one of the following option.
  1.   export SIP_DOMAIN=mysipserver.com
  2.   edit '/root/.kamctlrc' and add:   SIP_DOMAIN=mysipserver.com

11. Maintenance
--------------
The maintenance process is very simple right now. You have to be user 'root' and execute following commands:

  cd /usr/local/src/kamailio-4.0/kamailio
  git pull origin
  make all
  make install
  /etc/init.d/kamailio restart

Now you have the latest Kamailio devel running on your system.

12. Time for maintenance service
--------------------------------
Notification about GIT commits are sent to the mailing list: sr-...@lists.sip-router.org. Each commit notification contains the reference to the branch where 
the commit has been done. If the commit message contains the lines:

Module: sip-router
Branch: 4.0

then an update has been made to Kamailio devel version and it will be available to the public GIT in no time.
-------------------------------------------------------------------------------------------------------------

Best practice to test:

a) start/stop kamailio in fork mode
   - kamctl start
   - kamctl stop
   
b) start stop in foreground (debug) mode:
   - kamailio
     uses default configuration file with following paameters set (modified)
     - log_stderror=yes		-> causes log to be shown on console instead of syslog
     - fork=no						-> no daemon mode
     
   - further parameters: see kamailio -h
   
Debugging: 
- switch "WITH_DEBUG" increases debug level to 3 and also enables debugger module with cfgtrace=1
 								LOG Levels: 3=DBG, 2=INFO, 1=NOTICE, 0=WARN, -1=ERR  
- alternative:  keep "WITH_DEBUG" off and set "log_stderror=yes"; 
                this prints log and error message to console if in foreground mode.
                use log and xlog like
                log("L_INFO",  "FE: message received\n");
                xlog("L_INFO", "SIP Request: method [$rm] from [$fu] to [$tu]\n");
                
later: kamailio.cfg modified: accounting disabled (see ;# statements)


== saved as Debian_8.2-step3 on 08.12.2015 13:06:38 ========================================================
============================================================================================================

Installation of OpenIMSCore FHoSS	08.12.2015 17:24:57
---------------------------------

Precondition for FHoSS:
install Java JDK and ant (required for OpenIMSCore FHoSS)
  - apt-get install openjdk-7-jdk				-> 374 MB,  189 components
  - apt-get install ant

apt-get install subversion
apt-get install ipsec-tools

prepare and/or clean existing OpenIMSCore directories:
  remove a previous version of OpenIMScore (if applicable)
    root@server:/opt/OpenIMSCore rm -rf ser_ims
    root@server:/opt/OpenIMSCore rm -rf FHoSS
    delete all files from /opt/OpenIMSCore: rm -rf *
  else (if new installation) create working directories for OpenIMSCore:
    mkdir /opt/OpenIMSCore
    mkdir /opt/OpenIMSCore/ser_ims
    mkdir /opt/OpenIMSCore/FHoSS

download sources meanwhile at http://sourceforge.net/projects/openimscore/

  cd /opt/OpenIMSCore      (shortcode "co")

  svn checkout svn://svn.code.sf.net/p/openimscore/code/ser_ims/trunk
  --> Checked out revision 1195.

  svn checkout svn://svn.code.sf.net/p/openimscore/code/FHoSS/trunk
  --> Checked out revision 1195.

Note: trunk subdirectory reneamed to FHoSS and ser_ims

compile:
  cd ser_ims
  make install-libs all | tee make_install-libs_all.txt

  cd ../FHoSS/
  ant compile deploy | tee ant_compile_deploy.txt

adapt all configuration files:

  change the domain name by using configurator.sh (apply script in three directories):
    usage: in order to change the domain name and ip address you can use a script(configurator.sh) at ser_ims/cfg/.
    Copy the all *.sql *.cfg *.xml files that you want to modify to the same directory as configurator.sh and execute it.
    Follow the instructions then you should have your files reconfigured for new domain and ip.

    1. directory: /opt/OpenIMSCore/ser_ims/cfg
    cd ../ser_ims/cfg; ./configurator.sh
    Domain Name:net1.test
    IP Adress:10.0.0.9
    File to change ["all" for everything, "exit" to quit]:all
    changing: ecscf.cfg icscf.cfg icscf_pg.sql icscf.sql icscf.thig.cfg icscf.xml lrf.cfg mgcf.cfg pcscf.cfg pcscf.xml persist_my.sql persist_pg.sql scscf.cfg scscf.xml TGPPGq.xml TGPPRx.xml trcf.cfg

    2. directory: /opt/OpenIMSCore/FHoSS/deploy
    cd ../../FHoSS/deploy;    cp ../../ser_ims/cfg/configurator.sh .; ./configurator.sh
    Domain Name:net1.test
    IP Adress:10.0.0.9
    
    3. directory: /opt/OpenIMSCore/FHoSS/scripts
    cd ../scripts;   cp ../../ser_ims/cfg/configurator.sh .; ./configurator.sh
    Domain Name:net1.test
    IP Adress:10.0.0.9
    File to change ["all" for everything, "exit" to quit]:all
    changing: hss_db_migrate_dsai.sql hss_db.sql userdata.sql

  prepare mysql database:
    in case of OpenIMSCore update drop old databases: icscf and hss_db
      mysql -u root -p
        drop database icscf;
        drop database hss_db;
        quit

    create new databases: go to directory /opt/OpenIMSCore
      cd ../..
      mysql -u root -p < ser_ims/cfg/icscf.sql
      mysql -u root -p < FHoSS/scripts/hss_db.sql
      mysql -u root -p < FHoSS/scripts/userdata.sql

    Modify mysql access rights at first time installation (not covered by configurator):
    mysql -u root -p
    # see last line in hss_db.sql:
      --> grant delete,insert,select,update on hss_db.* to h...@server.net1.test identified by 'hss';
          grant delete,insert,select,update on hss_db.* to h...@server.net2.test identified by 'hss';

    # see last lines in icscf.sql:
      --> grant delete,insert,select,update on icscf.* to ic...@server.net1.test identified by 'heslo';
          grant delete,insert,select,update on icscf.* to ic...@server.net2.test identified by 'heslo';
      --> grant delete,insert,select,update on icscf.* to provision...@server.net1.test identified by 'provi';
          grant delete,insert,select,update on icscf.* to provision...@server.net2.test identified by 'provi';

    check database with MySQL Workbench if domain names are   o.k. in various entries
    or manually: e.g.
    show databases;
    use hss_db;
    select * from impu;

Prepare script-files, last modifications and start ...

  copy config-files and scripts to /opt/OpenIMSCore
   cp ser_ims/cfg/*.cfg .; cp ser_ims/cfg/*.xml .

  copy killser & stopser from ser_ims/cfg/ to /usr/bin
   cp ser_ims/cfg/????ser /usr/bin

  copy start scripts for x-CSCF to /root for convenience
    cp ser_ims/cfg/pcscf.sh /root; cp ser_ims/cfg/icscf.sh /root; cp ser_ims/cfg/scscf.sh /root

  add "cd /opt/OpenIMSCore/" to begin of pcscf.sh, icscf.sh and scscf.sh  in directory /root manually

  modify /opt/OpenIMSCore/pcscf.cfg: disable nat-ping in case of environment without NAT
    modparam("pcscf","NAT_enable", 0)
    modparam("pcscf","ping", 0)

  disable qop mechanism in scscf.cfg if some clients do not support it  (only if needed --> SIPp)
    modparam("scscf","registration_qop","")

  optional debug output on screen (SIP request trace-points):
  set the following debug-statements in ?cscf.cfg in directory /opt/OpenIMSCore/ manually (at the "right" position :-) )
    at the loadmodule section:
      loadmodule "/opt/OpenIMSCore/ser_ims/modules/xlog/xlog.so"
    at the begin of the main route:
      xlog("L_INFO","%CybFE: %cs %rm %ru from %si:%sp From: %fu  To: %tu\n%Cxx");

  copy /opt/OpenIMSCore/FHoSS/deploy/startup.sh to /root/hss.sh
    cp /opt/OpenIMSCore/FHoSS/deploy/startup.sh /root/hss.sh
  and add
    cd /opt/OpenIMSCore/FHoSS/deploy
    JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

now you are done: good luck!

  start platform from /root:
  - HSS:    ./hss.sh
  - P-CSCF:    ./pcscf.sh
  - I-CSCF:    ./icscf.sh
  - S-CSCF:    ./scscf.sh

  access the web-interface of HSS:
    http://hss.net1.test:8080/hss.web.console/
      user:      hssAdmin
      password:  hss

for generating tracefiles use #tcpdump:
  in case of packet-fragmentation trace all packets (including fragments) without SSH and MySQL:
   tcpdump -i any -s 3000 -w /var/tmp/ositrace.pcap not port 22 and not port 3306
  or alternatively
   tcpdump -i any -s 3000 -w /var/tmp/ositrace.pcap port 3868 or 3869 or 3870 or 4060 or 5060 or 6060

successful regstration / call / deregistration with
- Mercuro-Silver
- Boghe IMS client

== saved as Debian_8.2-step4 on 08.12.2015 18:47:088 =======================================================
============================================================================================================

Compatibility with former rc.local:

- solve problem of: systemctl rc-local.service loaded failed failed /etc/rc.local Compatibilityrc-local.service loaded failed failed /etc/rc.local Compatibility
  http://superuser.com/questions/278396/systemd-does-not-run-etc-rc-local
  file "rc-local.service" created

- systemctl enable rc-local.service
  -->   The unit files have no [Install] section. They are not meant to be enabled 
        using systemctl.                                                           
        Possible reasons for having this kind of units are:                        
        1) A unit may be statically enabled by being symlinked from another unit's 
           .wants/ or .requires/ directory.                                                               
        2) A unit's purpose may be to act as a helper for some other unit which has
           a requirement dependency on it.                                         
        3) A unit may be started when needed via activation (socket, path, timer,  
           D-Bus, udev, scripted systemctl call, ...).                             

Background: about rc.local                                                                                                                    
     - rc.local is from systemV		(the way to control the boot process)                                                              
     - but Debian 8.2 uses systemD                                                                                                   
                                                                                                                                     
     - You can re-enable rc.local it with this command:                                                                              
       - systemctl enable rc-local.service                                                                                           
         that enables the Unit /etc/systemd/system/rc-local.service                                                                  
       - But once you are familiar with systemd it is better to create a custom Unit for your purposes rather than using old rc.local


== based on Debian_8.2-step3-basicKamailio =================================================================
============================================================================================================

Installation of the Kamailio-IMS-Packages
-----------------------------------------
http://www.kamailio.org/wiki/tutorials/ims/installation-howto
-	followed in principle but binary packages not used!!! compiled instead

compile alls IMS modules generate build config files
- cd /usr/local/src/kamailio-4.3/kamailio/
	modify modules.lst for included modules and excluded modules (use saved file)
	- include: ims_auth ims_charging ims_icscf ims_isc ims_qos ims_registrar_pcscf ims_registrar_scscf ims_usrloc_pcscf ims_usrloc_scscf dialog_ng cdp cdp_avp
	- exclude: delete included modules above
	        
- compile
	make Q=0 all | tee make_all2.txt
- install
	make install | tee make_install2.txt
	
- check	additional (included) modules are in /usr/local/lib64/kamailio/modules

create new mysql database for pcscf and scscf
	- mysql -u root -p
  - CREATE DATABASE  `pcscf`;
  - CREATE DATABASE  `scscf`;
 
Update mysql database permissions  

  - grant delete,insert,select,update on pcscf.* to pc...@server.net1.test identified by 'heslo';
  - grant delete,insert,select,update on pcscf.* to pc...@server.net2.test identified by 'heslo';
  - grant delete,insert,select,update on scscf.* to sc...@server.net1.test identified by 'heslo';
  - grant delete,insert,select,update on scscf.* to sc...@server.net2.test identified by 'heslo';

Modify & add mysql database files for P-CSCF and S-CSCF (ue saved files)
	/usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/ims_usrloc_pcscf-create.sql
	/usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/ims_usrloc_scscf-create.sql
	modifications done:
	- add: USE pcscf; or 
	       USE pcscf;
	- change: INSERT INTO to REPLACE INTO
	- insert before CREATE TABLE xxxxxxx;
	  DROP TABLE IF EXISTS xxxxxxx;
	-> sql-files saved; copy (overvrite) both files to /usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql
	
	Create the tables:
	-	mysql -u root -p < /usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/ims_usrloc_pcscf-create.sql
	- mysql -u root -p < /usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/ims_usrloc_scscf-create.sql
	
	- add also presence-table into scscf-database (saved)
    mysql -u root -p < /usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/presence-create.sql
	
Create ICSCF database;
  - mysql -u root -p < /usr/local/src/kamailio-4.3/kamailio/utils/kamctl/mysql/icscf.mysql.sql
- adapt permissions/privileges of users
  - grant delete,insert,select,update on icscf.* to ic...@server.net1.test identified by 'heslo';       
  - grant delete,insert,select,update on icscf.* to ic...@server.net2.test identified by 'heslo';       
  - grant delete,insert,select,update on icscf.* to provision...@server.net1.test identified by 'provi';
  - grant delete,insert,select,update on icscf.* to provision...@server.net2.test identified by 'provi'; 
	
Verify tables with Mysql workbench
  - P-SCSF: pcscf.location   
  - I-CSCF: nds_trusted_domains
  					s_cscf
  					s_cscf_capabilities   
  - S-CSCF: scscf.contact        
            scscf.impu           
            scscf.impu_contact   
            scscf.subscriber     
            scscf.impu_subscriber

Verify that basic kamilio still works (uses other MySQL database)


Installation of FHoSS	04.01.2016 14:14:46
-----------------------------------------

Precondition for FHoSS:
install Java JDK and ant (required for OpenIMSCore FHoSS)
  - apt-get install openjdk-7-jdk				-> 198 MB
  - apt-get install ant

Download FHoSS
  - apt-get install subversion
  - (apt-get install ipsec-tools) - not required?

  create working directories for OpenIMSCore:
  - mkdir /opt/OpenIMSCore
  - cd /opt/OpenIMSCore
  
  download:
  - svn checkout svn://svn.code.sf.net/p/openimscore/code/FHoSS/trunk
  --> Checked out revision 1195.
  reneame "/opt/OpenIMSCore/trunk" subdirectory to "/opt/OpenIMSCore/FHoSS"

compile:
  cd FHoSS
  ant compile deploy | tee ant_compile_deploy.txt

adapt all configuration files:

  change the domain name by using configurator.sh (apply script in three directories):
    usage: in order to change the domain name and ip address you can use a script(configurator.sh) at ser_ims/cfg/.
    Copy the all *.sql *.cfg *.xml files that you want to modify to the same directory as configurator.sh and execute it.
    Follow the instructions then you should have your files reconfigured for new domain and ip.

 -  directory: cd /opt/OpenIMSCore/FHoSS/deploy
    copy configurator.sh to this directory and mark it executable (saved on D:\_\ZTest\Kamailio_4.3\IMS)
    ./configurator.sh
    Domain Name:net1.test
    IP Adress:10.0.0.9
    File to change ["all" for everything, "exit" to quit]:all
    changing: c3p0.properties DiameterPeerHSS.xml hibernate.properties hss.properties log4j.properties
    
  - directory: /opt/OpenIMSCore/FHoSS/scripts
    cd ../scripts;   cp ../deploy/configurator.sh .; ./configurator.sh
    Domain Name:net1.test
    IP Adress:10.0.0.9
    File to change ["all" for everything, "exit" to quit]:all
    changing: hss_db_migrate_dsai.sql hss_db.sql userdata.sql

prepare mysql database:
    in case of OpenIMSCore update drop old databases: hss_db
      mysql -u root -p
        drop database hss_db;
        quit
    create new databases: go to directory /opt/OpenIMSCore
      cd ../..
      mysql -u root -p < FHoSS/scripts/hss_db.sql
      mysql -u root -p < FHoSS/scripts/userdata.sql
      
    Modify mysql access rights at first time installation (not covered by configurator):
    mysql -u root -p
    # see last line in hss_db.sql:
      --> grant delete,insert,select,update on hss_db.* to h...@server.net1.test identified by 'hss';
          grant delete,insert,select,update on hss_db.* to h...@server.net2.test identified by 'hss';

    check database with MySQL Workbench if domain names are  o.k. in various entries and privileges
    or manually: e.g.
      show databases;
      use hss_db;
      select * from impu;

Prepare script-file, last modifications and start ...

  copy startup.sh to hss.sh in root directory
    cp /opt/OpenIMSCore/FHoSS/deploy/startup.sh /root/hss.sh
  and add to hss.sh
    cd /opt/OpenIMSCore/FHoSS/deploy
    JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

start HSS from /root:  ./hss.sh

access the web-interface of HSS:
  http://hss.net1.test:8080/hss.web.console/
    user:      hssAdmin
    password:  hss

configure IMS:

modify pcscf, icscf and scscf configuration-files accordingly
- set parameters according to actual environment
- disable all additional features beyond the IMS core functions
- add a tracepoint (xlog) for each request at the begin of the main route:
    xlog("L_INFO","%CybFE: %cs %rm %ru from %si:%sp From: %fu  To: %tu\n%Cxx")

P-CSCF:
-------
- use modified files: pcscf.cfg and kamailio-pcscf.cfg
- kamailio -f /usr/local/etc/kamailio/kamailio-pcscf.cfg

I-CSCF:
-------
- use modified files: icscf.cfg and kamailio-icscf.cfg
- kamailio -f /usr/local/etc/kamailio/kamailio-icscf.cfg

-  8(1673) ERROR: cdp [peerstatemachine.c:635]: I_Snd_CER(): I_Snd_CER(): Error on finding local host address > Socket operation on non-socket

S-CSCF
------
- use modified files: scscf.cfg and kamailio-icscf.cfg
- kamailio -f /usr/local/etc/kamailio/kamailio-scscf.cfg

== sDebian_8.2-step5-basicKamailio&basicIMScore on 06.01.2016 12:13:39 ====================================
===========================================================================================================

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to