mirror of
https://github.com/open5gs/open5gs.git
synced 2026-04-28 11:29:32 +00:00
parent
0f0d87d742
commit
428fbffa36
1 changed files with 53 additions and 53 deletions
|
|
@ -11,6 +11,8 @@ Setup description:
|
|||
- Oneplus 5 as UE
|
||||
{: .blue}
|
||||
|
||||
OpenStack is not required for VoLTE setup. If you are using one machine without OpenStack, you can start from step 3.
|
||||
{: .notice--warning}
|
||||
|
||||
#### 1. Start from Bionic Ubuntu cloud image
|
||||
#### 2. Use the following Cloud init config while spawning an instance
|
||||
|
|
@ -59,10 +61,10 @@ $ make cfg
|
|||
|
||||
#### 6. Enable MySQL module and all required IMS modules.
|
||||
|
||||
Edit `modules.lst` file present at `/usr/local/src/kamailio/src`
|
||||
Edit modules.lst file present at /usr/local/src/kamailio/src
|
||||
{: .notice--info}
|
||||
|
||||
The contents of modules.lst should be as follows:
|
||||
The contents of `modules.lst` should be as follows:
|
||||
|
||||
```
|
||||
# this file is autogenerated by make modules-cfg
|
||||
|
|
@ -101,32 +103,36 @@ $ make install | tee make_install.txt
|
|||
$ ldconfig
|
||||
```
|
||||
|
||||
The binaries and executable scripts are installed in: /usr/local/sbin
|
||||
The binaries and executable scripts are installed in: `/usr/local/sbin`
|
||||
|
||||
```
|
||||
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:
|
||||
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 at:
|
||||
/usr/local/lib64/kamailio/modules
|
||||
`/usr/local/lib64/kamailio/modules`
|
||||
|
||||
The documentation and readme files are installed at:
|
||||
/usr/local/share/doc/kamailio/
|
||||
`/usr/local/share/doc/kamailio`
|
||||
|
||||
The configuration files are installed at:
|
||||
/usr/local/etc/kamailio
|
||||
`/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.
|
||||
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.
|
||||
|
||||
#### 8. Populate MySQL database using `kamctlrc` command
|
||||
|
||||
Edit SIP_DOMAIN and DBENGINE in the /usr/local/etc/kamailio/kamctlrc configuration file (Used by kamctl and kamdbctl tools).
|
||||
Edit SIP_DOMAIN and DBENGINE in the `/usr/local/etc/kamailio/kamctlrc` configuration file (Used by kamctl and kamdbctl tools).
|
||||
|
||||
Set the SIP_DOMAIN to your SIP service domain (or IP address if you don't have a DNS hostname associated with your SIP service).
|
||||
Set the DBENGINE to be MYSQL and adjust other setting as you want. Finally, uncomment both SIP_DOMAIN and DBENGINE.
|
||||
|
|
@ -189,7 +195,7 @@ $ systemctl restart rtpproxy
|
|||
|
||||
#### 10. Edit configuration file to fit your requirements for the VoIP platform:
|
||||
|
||||
You have to edit the `/usr/local/etc/kamailio/kamailio.cfg` configuration file.
|
||||
You have to edit the /usr/local/etc/kamailio/kamailio.cfg configuration file.
|
||||
{: .notice--info}
|
||||
|
||||
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:
|
||||
|
|
@ -230,7 +236,7 @@ $ cp /usr/local/src/kamailio/pkg/kamailio/deb/bionic/kamailio.init /etc/init.d/k
|
|||
$ chmod 755 /etc/init.d/kamailio
|
||||
```
|
||||
|
||||
then edit the /etc/init.d/kamailio file updating the $DAEMON and $CFGFILE values:
|
||||
Then edit the /etc/init.d/kamailio file updating the $DAEMON and $CFGFILE values:
|
||||
|
||||
```
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
|
||||
|
|
@ -278,7 +284,7 @@ check running processes with: ps axw | egrep kamailio
|
|||
#### 12. A quick check for the basic working of SIP server can be done as follows:
|
||||
|
||||
Create new subscriber accounts. A new account can be added using `kamctl` tool via `kamctl add <username> <password>`
|
||||
(When asked for entering MySQL password for user 'kamailio@localhost': type 'kamailiorw', as provided in kamailio.cfg)
|
||||
(When asked for entering MySQL password for user `kamailio@localhost`: type `kamailiorw`, as provided in kamailio.cfg)
|
||||
|
||||
```
|
||||
$ kamctl add test testpasswd
|
||||
|
|
@ -288,8 +294,8 @@ $ kamctl add test2 testpasswd
|
|||
Setting on OnePlus phones
|
||||
|
||||
- Connect to a network through which SIP server is reachable (either Wi-Fi or LTE)
|
||||
- Goto phone dialer and select the "Settings" in the menu on top right corner
|
||||
- Then select "Call settings"
|
||||
- Goto phone dialer and select the **Settings** in the menu on top right corner
|
||||
- Then select **Call settings**
|
||||
- Configure SIP accounts in phones as added above using kamctl:
|
||||
|
||||
In Phone 1:
|
||||
|
|
@ -322,7 +328,7 @@ Optional Settings:
|
|||
|
||||
In Phone 1:
|
||||
|
||||
Select "more" option
|
||||
Select **more** option
|
||||
|
||||
```
|
||||
Name: SIP Contact test2 (Any arbitary name)
|
||||
|
|
@ -333,7 +339,7 @@ Save and exit
|
|||
|
||||
In Phone 2:
|
||||
|
||||
Select "more" option
|
||||
Select **more** option
|
||||
|
||||
```
|
||||
Name: SIP Contact test (Any arbitary name)
|
||||
|
|
@ -441,14 +447,14 @@ $ mysql
|
|||
<mysql> INSERT INTO `s_cscf_capabilities` VALUES (1,1,0),(2,1,1);
|
||||
```
|
||||
|
||||
#### 14. Copy pcscf, icscf and scscf configuration files to `/etc/` folder and edit accordingly
|
||||
#### 14. Copy pcscf, icscf and scscf configuration files to `/etc` folder and edit accordingly
|
||||
|
||||
```
|
||||
$ cd ~ && git clone https://github.com/herlesupreeth/Kamailio_IMS_Config
|
||||
$ cd Kamailio_IMS_Config
|
||||
$ cp -r kamailio_icscf/ /etc/
|
||||
$ cp -r kamailio_pcscf/ /etc/
|
||||
$ cp -r kamailio_scscf/ /etc/
|
||||
$ cp -r kamailio_icscf /etc
|
||||
$ cp -r kamailio_pcscf /etc
|
||||
$ cp -r kamailio_scscf /etc
|
||||
```
|
||||
|
||||
#### 15. Setup the DNS for resolving IMS and EPC components names
|
||||
|
|
@ -457,8 +463,7 @@ $ cp -r kamailio_scscf/ /etc/
|
|||
$ apt install -y bind9
|
||||
```
|
||||
|
||||
Use the below example DNS Zone file to create a DNS Zone file into the bind folder and
|
||||
edit /etc/bind/named.conf.local, /etc/bind/named.conf.options accordingly:
|
||||
Use the below example DNS Zone file to create a DNS Zone file into the bind folder and edit `/etc/bind/named.conf.local` and `/etc/bind/named.conf.options` accordingly:
|
||||
|
||||
```
|
||||
$ cd /etc/bind
|
||||
|
|
@ -517,7 +522,7 @@ pcrf 1D IN A 127.0.0.5
|
|||
```
|
||||
|
||||
|
||||
Edit /etc/bind/named.conf.local file as follows:
|
||||
Edit `/etc/bind/named.conf.local` file as follows:
|
||||
|
||||
```
|
||||
//
|
||||
|
|
@ -539,7 +544,7 @@ zone "epc.mnc001.mcc001.3gppnetwork.org" {
|
|||
};
|
||||
```
|
||||
|
||||
Edit /etc/bind/named.conf.options file as follows:
|
||||
Edit `/etc/bind/named.conf.options` file as follows:
|
||||
|
||||
```
|
||||
options {
|
||||
|
|
@ -652,20 +657,20 @@ $ dpkg -i *.deb
|
|||
$ cp /etc/rtpengine/rtpengine.sample.conf /etc/rtpengine/rtpengine.conf
|
||||
```
|
||||
|
||||
Edit this file as follows under "[rtpengine]":
|
||||
Edit this file as follows under **[rtpengine]**:
|
||||
|
||||
```
|
||||
interface = 10.4.128.21!172.24.15.30
|
||||
```
|
||||
|
||||
Port on which rtpengine binds i.e. listen_ng parameter is udp port 2223. This should be updated in kamailio_pcscf.cfg file at modparam(rtpengine ...
|
||||
Port on which rtpengine binds i.e. listen_ng parameter is udp port 2223. This should be updated in `kamailio_pcscf.cfg` file at **modparam(rtpengine ...)**
|
||||
|
||||
```
|
||||
# ----- rtpproxy params -----
|
||||
modparam("rtpengine", "rtpengine_sock", "1 == udp:localhost:2223")
|
||||
```
|
||||
|
||||
Edit /etc/default/ngcp-rtpengine-daemon and /etc/default/ngcp-rtpengine-recording-daemon as follows in respective files:
|
||||
Edit `/etc/default/ngcp-rtpengine-daemon` and `/etc/default/ngcp-rtpengine-recording-daemon` as follows in respective files:
|
||||
```
|
||||
RUN_RTPENGINE=yes
|
||||
```
|
||||
|
|
@ -711,7 +716,7 @@ $ cp /etc/init.d/kamailio /etc/init.d/kamailio_pcscf
|
|||
$ cp /etc/init.d/kamailio /etc/init.d/kamailio_scscf
|
||||
```
|
||||
|
||||
Changes required in /etc/init.d/kamailio_icscf
|
||||
Changes required in `/etc/init.d/kamailio_icscf`
|
||||
|
||||
```
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
|
||||
|
|
@ -719,7 +724,7 @@ NAME="kamailio_icscf"
|
|||
CFGFILE=/etc/$NAME/kamailio_icscf.cfg
|
||||
```
|
||||
|
||||
Changes required in /etc/init.d/kamailio_pcscf
|
||||
Changes required in `/etc/init.d/kamailio_pcscf`
|
||||
|
||||
```
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
|
||||
|
|
@ -727,7 +732,7 @@ NAME="kamailio_pcscf"
|
|||
CFGFILE=/etc/$NAME/kamailio_pcscf.cfg
|
||||
```
|
||||
|
||||
Changes required in /etc/init.d/kamailio_scscf
|
||||
Changes required in `/etc/init.d/kamailio_scscf`
|
||||
|
||||
```
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
|
||||
|
|
@ -742,7 +747,7 @@ $ cp kamailio kamailio_pcscf
|
|||
$ cp kamailio kamailio_scscf
|
||||
```
|
||||
|
||||
Changes required in /etc/default/kamailio_icscf
|
||||
Changes required in `/etc/default/kamailio_icscf`
|
||||
|
||||
```
|
||||
CFGFILE=/etc/kamailio_icscf/kamailio_icscf.cfg
|
||||
|
|
@ -750,7 +755,7 @@ CFGFILE=/etc/kamailio_icscf/kamailio_icscf.cfg
|
|||
RUN_KAMAILIO=yes
|
||||
```
|
||||
|
||||
Changes required in /etc/default/kamailio_pcscf
|
||||
Changes required in `/etc/default/kamailio_pcscf`
|
||||
|
||||
```
|
||||
CFGFILE=/etc/kamailio_pcscf/kamailio_pcscf.cfg
|
||||
|
|
@ -758,7 +763,7 @@ CFGFILE=/etc/kamailio_pcscf/kamailio_pcscf.cfg
|
|||
RUN_KAMAILIO=yes
|
||||
```
|
||||
|
||||
Changes required in /etc/default/kamailio_scscf
|
||||
Changes required in `/etc/default/kamailio_scscf`
|
||||
|
||||
```
|
||||
CFGFILE=/etc/kamailio_scscf/kamailio_scscf.cfg
|
||||
|
|
@ -777,17 +782,13 @@ $ systemctl start kamailio_icscf kamailio_pcscf kamailio_scscf
|
|||
|
||||
Please refer to instructions at [https://open5gs.org/open5gs/docs/guide/02-building-open5gs-from-sources/](https://open5gs.org/open5gs/docs/guide/02-building-open5gs-from-sources/)
|
||||
|
||||
Installing Open5GS on the same machine is very important because the "frame_ip4_address" in the AAR request via Rx interface takes received IP address and port in ims_qos module, hence, if the Open5GS is on a separate VM/machine, the IP and port received in received_ip and received_port values seen by Kamailio IMS will be the NATed IP of the Open5GS machine resulting in failing of AAR request.
|
||||
{: .notice--info}
|
||||
If you are using OpenStack, installing Open5GS and Kamailio IMS on the same machine is very important because the **Framed-IP-Address** in the AAR request via Rx interface takes received IP address and port in ims_qos module, hence, if the Open5GS is on a separate VM/machine, the IP and port received in received_ip and received_port values seen by Kamailio IMS will be the NATed IP of the Open5GS machine resulting in failing of AAR request.
|
||||
{: .notice--warning}
|
||||
|
||||
Install open5gs, with the fixes for forcing UE to PS domain attach, IPV4 usaeg and support for Rx MEDIA TYPE -CONTROL.
|
||||
Fixes can be found at "hacks" branch at https://github.com/herlesupreeth/open5gs
|
||||
{: .notice--info}
|
||||
I made some modifications in order to force UE to PS domain attach and use IPv4. You can refer to the **hacks** branch of [https://github.com/herlesupreeth/open5gs](https://github.com/herlesupreeth/open5gs)
|
||||
|
||||
Modify below mentioned parts of configuration files in addition to **Configure Open5GS** section. For reference, look at the configuration files at [https://github.com/herlesupreeth/Open5gs_Config](https://github.com/herlesupreeth/Open5gs_Config])
|
||||
|
||||
Modify below mentioned parts of configuration files in addition to `Configure Open5GS` section. For reference, look at the configuration files at:
|
||||
```
|
||||
https://github.com/herlesupreeth/Open5gs_Config
|
||||
```
|
||||
- Change realm of components to `epc.mnc001.mcc001.3gppnetwork.org`
|
||||
- Define IP pools for APNs used i.e one for default APN and another for IMS apn
|
||||
- Define P-CSCF address in the pgw configuration
|
||||
|
|
@ -1056,7 +1057,7 @@ $ mysql
|
|||
<mysql> quit
|
||||
```
|
||||
|
||||
Import database located at /opt/OpenIMSCore into hss_db
|
||||
Import database located at `/opt/OpenIMSCore` into hss_db
|
||||
```
|
||||
$ cd /opt/OpenIMSCore
|
||||
$ mysql -u root -p hss_db < FHoSS/scripts/hss_db.sql
|
||||
|
|
@ -1082,13 +1083,13 @@ $ mysql -u hss -p
|
|||
|
||||
Prepare script-file, start HSS
|
||||
|
||||
Copy startup.sh to hss.sh in root directory
|
||||
Copy `startup.sh` to `hss.sh` in root directory
|
||||
|
||||
```
|
||||
$ cp /opt/OpenIMSCore/FHoSS/deploy/startup.sh /root/hss.sh
|
||||
```
|
||||
|
||||
And, add the following to hss.sh before echo "Building Classpath"
|
||||
And, add the following to `hss.sh` before echo **Building Classpath**
|
||||
|
||||
```
|
||||
cd /opt/OpenIMSCore/FHoSS/deploy
|
||||
|
|
@ -1096,22 +1097,22 @@ JAVA_HOME="/usr/lib/jvm/jdk1.7.0_79"
|
|||
CLASSPATH="/usr/lib/jvm/jdk1.7.0_79/jre/lib/"
|
||||
```
|
||||
|
||||
Start HSS using hss.sh
|
||||
Start HSS using `hss.sh`
|
||||
|
||||
```
|
||||
$ ./hss.sh
|
||||
```
|
||||
|
||||
Access the web-interface of HSS: http://<IMS_VM_FLOATING_IP>:8080/hss.web.console/
|
||||
Access the web-interface of HSS: `http://<IMS_VM_FLOATING_IP>:8080/hss.web.console/`
|
||||
|
||||
http://172.24.15.30:8080/hss.web.console/
|
||||
For example, [http://172.24.15.30:8080/hss.web.console/](http://172.24.15.30:8080/hss.web.console/)
|
||||
|
||||
```
|
||||
user: hssAdmin
|
||||
password: hss
|
||||
```
|
||||
|
||||
Then, edit the /etc/hosts file as follows:
|
||||
Then, edit the `/etc/hosts` file as follows:
|
||||
|
||||
In the below example. epc-ims is the hostname of the machine
|
||||
|
||||
|
|
@ -1187,9 +1188,8 @@ $ ip r add 10.4.128.21/32 via 172.24.15.30
|
|||
|
||||
#### 23. USIM and UE settings
|
||||
|
||||
- Make sure to disable SQN check in Sysmocom SIM cards using sysmo-usim-tool tool (https://github.com/herlesupreeth/sysmo-usim-tool)
|
||||
- Tested with OnePlus 5 - With modfication to enable force IMS registration is a must or else UE will not even attempt to connect to P-CSCF. Need to apply the fix back after each update.
|
||||
(https://forum.xda-developers.com/oneplus-5t/how-to/guide-volte-vowifi-german-carriers-t3817542)
|
||||
- Make sure to disable SQN check in Sysmocom SIM cards using sysmo-usim-tool tool [https://github.com/herlesupreeth/sysmo-usim-tool](https://github.com/herlesupreeth/sysmo-usim-tool)
|
||||
- Tested with OnePlus 5 - With modfication to enable force IMS registration is a must or else UE will not even attempt to connect to P-CSCF. Need to apply the fix back after each update. [https://forum.xda-developers.com/oneplus-5t/how-to/guide-volte-vowifi-german-carriers-t3817542](https://forum.xda-developers.com/oneplus-5t/how-to/guide-volte-vowifi-german-carriers-t3817542)
|
||||
|
||||
#### 24. Start IMS components and FoHSS followed by Open5GS and eNB, then try connecting the phones
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue