herlesupreeth / Kamailio_IMS_Config

Fixed version of Kamailio IMS configuration files for basic calling
45 stars 36 forks source link

SIP transaction is not able to forward to RING after PRACK #21

Open yasuhirom opened 2 years ago

yasuhirom commented 2 years ago

hi, I'm trying to make 2 UEs(iPhone X/iOS 12 and iPhone 12 Pro/iOS 14) with VoLTE call. Open5GS w/ Kamailio. I setted up followed https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/

now, The SIP REGISTER for both UEs are success. but when I make call, SIP INVITE and SIP PRACK is made. then nothing to next. (probably RING) After some time, SIP CANCEL is issued by time out. I read other thread and reduce MTU to 800. but not success.

Do you have any chance to check my configuraiton ?

attached are log, configfile for open5GS and p/s/i-cscf by kamailio and pcap between eNB and EPC. because I run kamailio_pcscf,scscf,icscf as command line (follow the above instruction), the log is saved from screen for terminal application (I use ssh to login my virtual machine. ssh is runnign comamd prompt) therfor, the log is only last part and limited.

hardware configuration is

herlesupreeth commented 2 years ago

The call is not successful because there is no dedicated bearer created for VoLTE Audio for any of the UEs.

I would suggest to take a trace on 'any' interface to debug this issue

yasuhirom commented 2 years ago

Thank you !! Attach zip file include pcap file with any interface. , kamailio log and FoHSS log. (sorry it just captured and just confirm wireshark can be opened. I still not check it.)

I did as follow. 1) run 'tcpdump -i any -w volte_any.cap' on ubuntu virtual machine 2) configure IPs 3) start FoHSS as 'sh /root/hss.sh' 4) start kamailio P-cscf as 'mkdir -p /var/run/kamailio_pcscf;kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P /kamailio_pcscf.pid -DD -E -e' 5) start kamailio S-cscf as 'mkdir -p /var/run/kamailio_scscf; kamailio -f /etc/kamailio_scscf/kamailio_scscf.cfg -P /kamailio_scscf.pid -DD -E -e' 6) start kamailio I-cscf as 'mkdir -p /var/run/kamailio_icscf; kamailio -f /etc/kamailio_icscf/kamailio_icscf.cfg -P /kamailio_icscf.pid -DD -E -e' 7) restart Open5GS as 'systemctl restart open5gs-*' 8) power on iPhone X/iOS 12 then connect 9) power on iPhone 12 Pro/iOS 14 then connect 10) make call from iPhone 12 Pro to iPhone X 11) cancel the call after I see SIP CALCEL transaction. 12) make call from iPhone X to iPhone 12 Pro 13) cancel the call after I see SIP CALCEL transaction.

Below is the script for IP

Below is output for

enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.6.101 netmask 255.255.255.0 broadcast 192.168.6.255 inet6 fe80::a00:27ff:fe84:867 prefixlen 64 scopeid 0x20 ether 08:00:27:84:08:67 txqueuelen 1000 (Ethernet) RX packets 3656 bytes 290912 (290.9 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 13064 bytes 14998517 (14.9 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp0s9: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.101.5 netmask 255.255.255.0 broadcast 192.168.101.255 inet6 fe80::a00:27ff:fea4:9bba prefixlen 64 scopeid 0x20 ether 08:00:27:a4:9b:ba txqueuelen 1000 (Ethernet) RX packets 6042 bytes 1147353 (1.1 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4931 bytes 1857760 (1.8 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 42993 bytes 7352589 (7.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 42993 bytes 7352589 (7.3 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ogstun: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400 inet 10.45.0.1 netmask 255.255.255.0 destination 10.45.0.1 inet6 fe80::6a53:186a:a852:278a prefixlen 64 scopeid 0x20 inet6 2001:db8:cafe::1 prefixlen 48 scopeid 0x0 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) RX packets 3932 bytes 715458 (715.4 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4226 bytes 1561392 (1.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

ogstun2: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1400 inet 172.16.102.1 netmask 255.255.255.0 destination 172.16.102.1 inet6 fd1f:76f3:da9b:101:: prefixlen 48 scopeid 0x0 inet6 fe80::841:f785:911b:f77d prefixlen 64 scopeid 0x20 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 500 (UNSPEC) RX packets 238 bytes 86615 (86.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 301 bytes 81008 (81.0 KB) TX errors 0 dropped 1 overruns 0 carrier 0 collisions 0

herlesupreeth commented 2 years ago

5: ogstun2: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc fq_codel state UP group default qlen 500 link/none inet 172.16.102.1/24 brd 172.16.102.255 scope global ogstun2 valid_lft forever preferred_lft forever inet 172.24.15.30/32 scope global ogstun2

Can you tell me why you are assigning 172.24.15.30 IP to ogstun2?

I still see the same issue, there is no dedicated bearer for VoLTE call. Check SMF and MME logs

yasuhirom commented 2 years ago

172.24.15.30 is for P-cscf. in my understanding, apn name "ims" is used ogstun2. thus, I assign it. is it wrong ?

Attached are mme and smf log for these period. SMF was rebooted during this period. after UE B(IMSI : 001010000000024. this is iPhone 12 Pro) had been connected.

03/08 09:19:05.901: [smf] INFO: UE IMSI[001010000000022] APN[internet] IPv4[10.45.0.2] IPv6[] (../src/smf/s5c-handler.c:223)
03/08 09:19:05.906: [gtp] INFO: gtp_connect() [127.0.0.7]:2152 (../lib/gtp/path.c:58)
03/08 09:19:06.251: [smf] INFO: [Added] Number of SMF-Sessions is now 2 (../src/smf/context.c:2610)
03/08 09:19:06.251: [smf] INFO: UE IMSI[001010000000022] APN[ims] IPv4[172.16.102.2] IPv6[] (../src/smf/s5c-handler.c:223)
03/08 09:22:38.441: [smf] INFO: [Added] Number of SMF-UEs is now 2 (../src/smf/context.c:819)
03/08 09:22:38.441: [smf] INFO: [Added] Number of SMF-Sessions is now 3 (../src/smf/context.c:2610)
03/08 09:22:38.441: [smf] INFO: UE IMSI[001010000000024] APN[internet] IPv4[10.45.0.3] IPv6[2001:230:cafe:1::2] (../src/smf/s5c-handler.c:223)
03/08 09:22:38.456: [smf] WARNING: Unknown PCO ID:(0x1a) (../src/smf/context.c:2537)
03/08 09:22:38.456: [smf] WARNING: Unknown PCO ID:(0x23) (../src/smf/context.c:2537)
03/08 09:22:38.456: [smf] WARNING: Unknown PCO ID:(0x24) (../src/smf/context.c:2537)
03/08 09:22:38.762: [smf] INFO: [Added] Number of SMF-Sessions is now 4 (../src/smf/context.c:2610)
03/08 09:22:38.762: [smf] INFO: UE IMSI[001010000000024] APN[ims] IPv4[172.16.102.3] IPv6[fd1f:76f3:da9b:1::2] (../src/smf/s5c-handler.c:223)
03/08 09:22:38.772: [smf] WARNING: Unknown PCO ID:(0x1a) (../src/smf/context.c:2537)
03/08 09:22:38.772: [smf] WARNING: Unknown PCO ID:(0x23) (../src/smf/context.c:2537)
03/08 09:22:38.772: [smf] WARNING: Unknown PCO ID:(0x24) (../src/smf/context.c:2537)
 -- -- Rebooted.

after rebooted, below below error was happen.

03/08 09:23:14.605: [smf] ERROR: No Session Data (../src/smf/gx-path.c:1071)

Also, UE A gets only IPv4 address. but UE B gets both IPv4 and IPv6. will check disable IPv6 for UE B smf20220308.log smf20220308_org.log .

s5uishida commented 2 years ago

Hi @yasuhirom

If you want to try VoLTE quickly, I recommend the following.

https://github.com/herlesupreeth/docker_open5gs

If you would like, please also refer to the following little note I wrote.

https://github.com/s5uishida/docker_open5gs_volte_sms_config

yasuhirom commented 2 years ago

Hello @s5uishida

Thank you for your advice. because I uses non native ubuntu machine, I affraid performance issue when I use Docker environment on Virtual Machine. but, yes, if my debugging is not going well, I will try it.

Thank you!

s5uishida commented 2 years ago

Hi @yasuhirom

I built an Ubuntu 20.04 VM(6 CPUs, 8 GB Mem) on VirtualBox using SSD for storage. I have not confirmed the performance, but could make VoLTE calls.

For your reference.

yasuhirom commented 2 years ago

hello @s5uishida

Thank you for your information! my laptop has Core i5 7 gen / 8GB memory. so, it is hard to apply same configuration. but it is good infomation.

Thank you !

yasuhirom commented 2 years ago

try to disable IPv6 for UE B was not help. situation is unchanged.

I confirm SMF is rebooted when I make the call. and reboot is happen only 1st time. After rebooted, I reattached the UEs (toggle Airplane mode). then make call. but SMF still alive. not rebooted. (Still no RINGING).

will check the reason SMF rebootting.

pcap and log 20220309.zip .

yasuhirom commented 2 years ago

found PCRF was crashed after error. then SMF going to reboot.

I'm asking Open5GS people regarding PCRF issue.

pcrf_20220309.log

s5uishida commented 2 years ago

Hi @yasuhirom

It also worked with the following resources:

[Host PC]

[docker_open5gs VM]

FYI.

yasuhirom commented 2 years ago

Hi @s5uishida

thank you fir your information. Today , I started to install it in parallel to debug this issue. Install was done. But external eNB can't attach MME. Ping to eNB is not reach from mme container . I have some questions. Will ask these on docker_open5gs project.