GithubHelp home page GithubHelp logo

kamailio_ims_config's Introduction

Kamailio_IMS_Config

Fixed version of Kamailio IMS configuration files for basic calling

Components

  • Kamailio (5.2.4+bionic)
  • RTPEngine (7.4.1.5+0~mr7.4.1.5)
  • Fraunhofer OpenHSS (r1198)

Testbed Setup

For VoLTE setup, make sure to have eNB and (EPC + IMS) machines are in the same subnet

VoLTE test

  +---------+        +-------+       +-------+
  |         | <-->   |  IMS  |  <--> |       |
  |  UE1    |        |   +   |       | UE2   |
  |         |        |  EPC  |       |       |
  |         |        |       |       |       |
  +---+-----+        +-------+       +-------+
  • Kamailio IMS + Open5gs (EPC) => Running in a OpenStack VM with internal IP 10.4.128.21 and Floating IP 172.24.15.30 (OpenStack is not mandatory, can run on a physical machine)
  • UE1 => OnePlus 5t UE with IMSI 00101123456791 and MSISDN 0198765432100
  • UE2 => OnePlus 5t UE with IMSI 00101123456792 and MSISDN 0298765432100

VoIP test

  +---------+        +-------+       +-------+
  |         | <-->   |  IMS  |  <--> |       |
  |  Alice  |        |       |       | Bob   |
  |         |        |       |       |       |
  |         |        |       |       |       |
  +---+-----+        +-------+       +-------+
  • Kamailio IMS => Running in a OpenStack VM with internal IP 10.4.128.21 and Floating IP 172.24.15.30 (OpenStack is not mandatory, can run on a physical machine)
  • Alice => OnePlus UE SIP client IP (UE maybe behind NAT or otherwise, works in both cases)
  • Bob => OnePlus UE SIP client IP (UE maybe behind NAT or otherwise, works in both cases)

Tested

  • Basic VoIP calling with WiFi and LTE
  • VoLTE

Not Tested

  • VoWiFi

Links related to VoIP

kamailio_ims_config's People

Contributors

ben2610 avatar herlesupreeth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kamailio_ims_config's Issues

Docs clarification.

Not so much an issue as a request for clarification, which might be obvious for someone more experienced with configuring an IMS. So to replicate this setup for VoLTE test, we would need to install:

  • Kamalio
  • RTPEngine (this is not just run as a module of Kamalio?)
  • Fraunhofer OpenHSS
  • Open5GS

And then would need to run 3x copies of Kamalio, one each configured as I, P and S-CSCF?

Presumably OpenHSS + Open5GS would be needed for the EPC and then the only other part to provide is the eNodeB. And alternatively we could also use some other EPC?

Donate projects and extend IMS

Man, you can start a sponsorship program, we can sponsor a little bit of money for this program, to expand IMS, just PCSCF, ICSCF, SCSCF is not enough.

Separating EPC and IMS on different machines

I have tried to separate the open5gs core and kamailio ims packages on 2 different machines, but when i do so and try to call an UE i have the problem that caller id is lost and the call goes through as private number?
Do you have any idea what could be causing this? I doubt in 2 things

  1. I am forgetting to change some component ip from 127.0.0.x to a lan ip i changed only pcrf.
  2. ogstun2 interface is on a different machine and i am using a static route on the ims machine to point all traffic to the epc machine( ip route add 192.168.101.0/24 via 10.0.20.12(EPC) and this causes confusion in the realms or makes the packets have the wrong address.

any ideas would be very helpfull.
If this works i will release a guide and in the near future deb packages for ready setup.

VoLTE call is not happening

when i am trying to call UE1 to UE2 , INVITE is send but then error comes as "604 error Does not exist anywhere-HSS user unknown." Error in FoHSS log as " IMS_Diameter_Error_User_Unknown ".

Screenshot 2024-07-29 140441

Thank you

2nd call drops

Hi Supreeth,

Great job on these configs.

With your latest change, I am able to place multiple consecutive calls for the first time.

However, I'm noticing a pattern, that my first call is very consistent (I can leave the call running for a minute or more), but subsequent calls seem to disconnect after a short time (10-20 seconds) with one phone seeming to initiate the drop with a SIP request BYE.

I can do more digging. but I just wanted to see if you're seeing something similar.

I'm using one IPsec phone and one non-IPsec phone, if it matters.

SIP transaction is not able to forward to RING after PRACK

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

  • eNB : real product (baicells one),
  • Open5GS is running on ubuntu, ubuntu is runnning on Virtual box for Windows 10.
  • SIM: sysmocom SJS1
    logAndConfig.zip
    20220307AM_log.zip

undefined function in pcscf.cfg

when i try to start pcscf i got log:

Jun 5 03:10:04 T3500 kamailio: ERROR: [core/cfg.y:3405]: yyparse(): cfg. parser: failed to find command ipsec_destroy_by_contact (params 4)
Jun 5 03:10:04 T3500 kamailio: CRITICAL: [core/cfg.y:3546]: yyerror_at(): parse error in config file /etc/kamailio_pcscf/kamailio_pcscf.cfg, line 917, column 130: unknown command, missing loadmodule?#12

i have checked this funcion that called ipsec_destroy_by_contact not define in module ims_ipsec_pcscf.

how to configure pcscf/scscf/icscf log correctly?

Hi herlesupreeth:
I have set up volte environment according to docs/tutorial/02-VoLTE-setup/. Volte is successful.
But i don't know how to configure pcscf/scscf/icscf log in different log files and display the log timestamp.
I tried to use rsyslog , add following in kamailio_pcscf.cfg/kamailio_scscf.cfg/kamailio_icscf.cfg/:
log_facility=LOG_LOCAL0
log_prefix="{$mt $hdr(CSeq) $ci}

And add "local0.* -/var/log/kamailio.log" to /etc/rsyslog.conf. I really get all log with timestamp but only in one log file promiscuously.

Is there other better ways to display timestamp to log and get three logs for pcscf, scscf, icscf respectively?
Thanks a lot.

SIP REQUESTS over IPsec from PCSCF to UE has incorrect Sent-by port in first VIA

Hi @herlesupreeth ,

As 3GPP TS 24.229 reports, the "Sent-by port" in first VIA for SIP REQUEST using IPsec must use the protected server port, meanwhile kamailio use the source port of the request, that is the client port.
Look for example the follow pcap: https://open5gs.org/open5gs/assets/pcapng/ipsec_to_ipsec_call.pcapng
The requests from UE correctly report the user protected server port in the first VIA, instead the requests coming from Kamailio PCSCF report the incorrect proxy protected client port in the first VIA.

This behavior is critical in the case when the TCP connection is closed during a server transaction (for instance a INVITE server transaction when ringing phase is very long). So the MT UE try to re-establish the TCP connection for sending the 200OK, but as RFC3261, the TCP connection attempt use as destination port the sent-by via port that is the client port of the proxy, so the connection fails.

Is there an easy way to correct this problem on kamailio? Or any idea for solve it?

Thanks

N

q

rtpengine issue

Hi ,

We have a Volte testbed with srsenb (USRP_B210) + open5gs + kamailio IMS + IMS Application server.
We are testing Video Ringbacktone service using our IMS application server.

When B-party is ringing , IMS applicaion server upgrades audio session to video session between A-party and Video Tone service(IMS MRF) .by sending SIP Update request from IMS Application server to A-party.
(IMS Application gets triggered based on A-party subscription to Video RBT service)

Issue :
The SIP Update from IMS application server to A-party contains sdp with connection address of IMS MRF.
The Kamailio IMS is routing the request without processing sdp with rtpengine_manage.
A-party is receiving the sdp connection address as IMS MRF IP in sdp of received Update request.

But RTP packets are reaching to A-party handset from rtpengine IP (rtp packets from MRF to rtpengine and then GTP from rtpengine to A-party handset)

So handset is not decoding and processing RTP packets.

Please help in resolving the issue.

Thanks
Srinidhi

Failed to disable IPSEC

Hi @herlesupreeth ,

When I commented ##!define WITH_IPSEC in /kamailio_pcscf/pcscf.cfg and tried to run following command
kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P /kamailio_pcscf.pid -DD -E -e
, it failed with following error message.

root@bsj-HP-Elite-Tower-800-G9-Desktop-PC:/# kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P /kamailio_pcscf.pid -DD -E -e
loading modules under config path: /usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/:/usr/lib/kamailio/modules_k/:/usr/lib/kamailio/modules/:/usr/lib/x86_64-linux-gnu/kamailio/modules/:/usr/local/lib64/kamailio/modules
 0(267117) INFO: pv [pv_shv.c:60]: shvar_init_locks(): locks array size 16
 0(267117) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser: failed to find command ipsec_forward (params 1)
 0(267117) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse error in config file /etc/kamailio_pcscf/route/mo.cfg, line 173, column 28: unknown command, missing loadmodule?

 0(267117) ERROR: <core> [core/cfg.y:3399]: yyparse(): cfg. parser: failed to find command ipsec_forward (params 1)
 0(267117) CRITICAL: <core> [core/cfg.y:3539]: yyerror_at(): parse error in config file /etc/kamailio_pcscf/route/mt.cfg, line 98, column 37: unknown command, missing loadmodule?

ERROR: bad config file (2 errors)
 0(267117) WARNING: <core> [core/mem/q_malloc.c:487]: qm_free(): WARNING: free(0) called from cdp_avp: cdp_avp_mod.c: cdp_avp_destroy(226)
 0(267117) INFO: cdp [cdp_mod.c:255]: cdp_exit(): CDiameterPeer child stopping ...
 0(267117) INFO: cdp [cdp_mod.c:257]: cdp_exit(): ... CDiameterPeer child stopped

But when I tried again with commenting ipsec_forward("location"); in line 173 of kamailio_pcscf/route/mo.cfg and line 98 of kamailio_pcscf/route/mt.cfg, following error showed up :

root@bsj-HP-Elite-Tower-800-G9-Desktop-PC:/# kamailio -f /etc/kamailio_pcscf/kamailio_pcscf.cfg -P /kamailio_pcscf.pid -DD -E -e
loading modules under config path: /usr/lib64/kamailio/modules_k/:/usr/lib64/kamailio/modules/:/usr/lib/kamailio/modules_k/:/usr/lib/kamailio/modules/:/usr/lib/x86_64-linux-gnu/kamailio/modules/:/usr/local/lib64/kamailio/modules
 0(267157) INFO: pv [pv_shv.c:60]: shvar_init_locks(): locks array size 16
Listening on 
             udp: 10.45.1.1 [10.45.1.1]:5060
             tcp: 10.45.1.1 [10.45.1.1]:5060
Aliases: 
             *: pcscf.ims.mnc001.mcc001.3gppnetwork.org:*

 0(267157) INFO: <core> [core/tcp_main.c:5042]: init_tcp(): using epoll_lt as the io watch method (auto detected)
 0(267157) INFO: rr [../outbound/api.h:52]: ob_load_api(): unable to import bind_ob - maybe module is not loaded
 0(267157) INFO: rr [rr_mod.c:177]: mod_init(): outbound module not available
 0(267157) INFO: auth [auth_mod.c:345]: mod_init(): qop set, but nonce-count (nc_enabled) support disabled
 0(267157) INFO: path [../outbound/api.h:52]: ob_load_api(): unable to import bind_ob - maybe module is not loaded
 0(267157) INFO: path [path_mod.c:151]: mod_init(): outbound module not available
 0(267157) INFO: ims_usrloc_pcscf [hslot.c:62]: ul_init_locks(): locks array size 512
 0(267157) ERROR: ims_registrar_pcscf [ims_registrar_pcscf_mod.c:268]: mod_init(): can't bind ims_ipsec_pcscf
 0(267157) ERROR: <core> [core/sr_module.c:849]: init_mod(): Error while initializing module ims_registrar_pcscf (/usr/local/lib64/kamailio/modules/ims_registrar_pcscf.so)
ERROR: error while initializing modules
 0(267157) WARNING: <core> [core/mem/q_malloc.c:487]: qm_free(): WARNING: free(0) called from cdp_avp: cdp_avp_mod.c: cdp_avp_destroy(226)
 0(267157) INFO: cdp [cdp_mod.c:255]: cdp_exit(): CDiameterPeer child stopping ...
 0(267157) INFO: cdp [cdp_mod.c:257]: cdp_exit(): ... CDiameterPeer child stopped

I am using Kamailio v5.3 from https://github.com/herlesupreeth/kamailio.
I confused that I re-compiled the code, but actually I didn't in open5gs/open5gs#2140 (reply in thread)

VoLTE Setup with Kamailio IMS and Open5GS

Hi,
I build the VoLTE setup with Kamailio on Ubuntu 18.04 VM. I assigned the VM to static IP address is 10.4.128.21.

network:
version: 2
ethernets:
enp0s8:
addresses:
-10.4.128.21/24
gateway4: 10.4.128.1
nameservers:
addresses: [10.4.128.1, 1.1.1.1]

I run the command curl icanhazip.com to get my Public IP is 174.70.25.98.

  1. Populate MySQL database using kamctlrc command. What IP address I have to put here in SIP Domain
    SIP_DOMAIN=ims.mnc001.mcc001.3gppnetwork.org
    DBENGINE=MYSQL

  2. Edit /etc/default/rtpproxy file as follows:

The control socket

#CONTROL_SOCK="unix:/var/run/rtpproxy/rtpproxy.sock"

To listen on an UDP socket, uncomment this line:

#CONTROL_SOCK=udp:127.0.0.1:22222
CONTROL_SOCK=udp:127.0.0.1:7722

Additional options that are passed to the daemon.

EXTRA_OPTS="-l 174.70.25.98 -d DBUG:LOG_LOCAL0"

$ systemctl restart rtpproxy

  1. Edit configuration file to fit your requirements for the VoIP platform:
    #!define WITH_MYSQL
    #!define WITH_AUTH
    #!define WITH_USRLOCDB
    #!define WITH_NAT

(uncomment this line)
auto_aliases=no

(uncomment this line and enter the DNS domain created above)
alias="ims.mnc001.mcc001.3gppnetwork.org"

(uncomment this line, 10.4.128.21 is the internal IP and 172.24.15.30 is the Public/Floating IP)
listen=udp:10.4.128.21:5060 advertise 174.70.25.98:5060
listen=tcp:10.4.128.21:5060 advertise 174.70.25.98:5060

(Further down, we will need to modify the rtpproxy_sock value to match the CONTROL_SOCK option we set for RTPProxy in /etc/default/rtpproxy)
modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")

Followed 11 and 12 steps
11. The init.d script
12. A quick check for the basic working of SIP server can be done as follows:
13.
When I tired to make the SIP call over WiFi. I saw the message on phone SIP client app "MizuDriod" No response from server/ server is unavailable.
I want to build the VoLTE Open5gs. Please help me to resolve the issue.
Thank you,
Rifat
[email protected]

UE registration failing

I just setup the dockerized Open5G + VoLTE environment and Im stucked with registering the UE. In FHoSS it seems it is registered but in practice it isnt.

ims_registrar_scscf [lookup.c:284]: impu_registered(): Looking for IMPU sip:[email protected]
scscf | 2(37) DEBUG: ims_registrar_scscf [lookup.c:303]: impu_registered(): 'sip:[email protected]' not found in usrloc
scscf | 2(37) ERROR: <script>: Not REGISTERED
scscf | 2(37) DEBUG: ims_registrar_scscf [save.c:1269]: save(): Looking for route block [PRE_REG_SAR_REPLY]
scscf | 2(37) DEBUG: ims_registrar_scscf [save.c:1326]: save(): preparing for SAR assignment for new REGISTRATION sip:[email protected]
scscf | 2(37) INFO: ims_registrar_scscf [cxdx_sar.c:84]: create_return_code(): created AVP successfully : [saa_return_code] - [-2]
scscf | 2(37) DEBUG: ims_registrar_scscf [save.c:1430]: save(): Suspending SIP TM transaction with index [0] and label [0]
fhoss | [Thread-17] INFO de.fhg.fokus.hss.cx.op.SAR -
fhoss |
fhoss | The UserData XML document which is sent to the S-CSCF:
fhoss | [email protected]:[email protected] 00000PUBLISH00

Event.presence.00001PUBLISH01Event.presence.01302SUBSCRIBE02Event.presence.02103SUBSCRIBE03Event.presence.032sip:127.0.0.1:50650
fhoss | [Thread-17] INFO de.fhg.fokus.hss.cx.op.SAR -
fhoss | User with Public Identity: sip:[email protected] and all its coresponding implicit-set identities are Registered!
scscf | 9(44) DEBUG: ims_registrar_scscf [cxdx_sar.c:142]: async_cdp_callback(): There is transaction data this must have been called from save or assign server unreg 9(44) DEBUG: ims_registrar_scscf [cxdx_sar.c:189]: async_cdp_callback(): callid for found transaction is [[email protected]]
scscf | 9(44) INFO: ims_registrar_scscf [cxdx_avp.c:138]: cxdx_get_avp(): cxdx_get_experimental_result_code: Failed finding avp
scscf | 9(44) DEBUG: ims_registrar_scscf [cxdx_sar.c:214]: async_cdp_callback(): received AAA success for SAR - SAA
scscf | 9(44) DEBUG: ims_registrar_scscf [cxdx_sar.c:233]: async_cdp_callback(): Parsing user data string from SAA
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:760]: parse_service_profile(): child name is [PublicIdentity]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:760]: parse_service_profile(): child name is [InitialFilterCriteria]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1016]: print_user_data(): IMSSubscription:
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1019]: print_user_data(): Private Identity: [email protected]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1021]: print_user_data(): Service Profile:
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1023]: print_user_data(): Public Identity: Barring [0] <sip:[email protected] >
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1029]: print_user_data(): Filter Criteria: Priority [0]ProfilePartInd [-1]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1034]: print_user_data(): Trigger Point: CNF [ ] (&)|(&)
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[0] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1051]: print_user_data(): Method ==
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[0] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1056]: print_user_data(): Hdr(Event(22)) == <.presence.>
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[0] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1064]: print_user_data(): SessionCase [0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[1] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1051]: print_user_data(): Method ==
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[1] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1056]: print_user_data(): Hdr(Event(22)) == <.presence.>
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[1] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1064]: print_user_data(): SessionCase [3]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[2] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1051]: print_user_data(): Method ==
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[2] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1056]: print_user_data(): Hdr(Event(22)) == <.presence.>
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[2] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1064]: print_user_data(): SessionCase [1]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[3] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1051]: print_user_data(): Method ==
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[3] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1056]: print_user_data(): Hdr(Event(22)) == <.presence.>
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1039]: print_user_data(): SPT: Grp[3] NOT[ ] RegType[0]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1064]: print_user_data(): SessionCase [2]
scscf | 9(44) DEBUG: ims_registrar_scscf [userdata_parser.c:1077]: print_user_data(): AS: sip:127.0.0.1:5065 Handling [0] SrvInfo: <>
scscf | 9(44) DEBUG: ims_registrar_scscf [cxdx_sar.c:240]: async_cdp_callback(): Successfully parse user data XML setting ref to 1 (we are referencing it)
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:790]: update_contacts(): updating contacts in REGISTRATION state
scscf | 9(44) DEBUG: ims_usrloc_scscf [udomain.c:792]: get_subscription(): found an existing subscription for IMPI [[email protected]]
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1274]: ref_subscription_unsafe(): Reffing subscription [[email protected]] - was [2]
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:878]: compare_subscription(): Comparing subscription for IMPI [[email protected]]
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:883]: compare_subscription(): new sip:[email protected] (50) vs. orig sip:[email protected] (50)
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1004]: update_impurecord(): updating IMPU record with public identity for <sip:[email protected] >
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1036]: update_impurecord(): IMS subscription passed into update_impurecord
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1043]: update_impurecord(): new subscription is the same as the old one....not doing anything 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1285]: unref_subscription_unsafe(): un-reffing subscription [[email protected]] - was [3]
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:519]: update_contacts_helper(): updating the contacts for IMPU <sip:[email protected] >
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:137]: calc_contact_expires(): Calculated expires for contact is 600000
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:545]: update_contacts_helper(): Need to update contact: sip:[email protected]:40195;alias=192.168.101.2445382: q_value [-1],sos: [0],expires [600000]
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:550]: update_contacts_helper(): packing contact information
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:556]: update_contacts_helper(): adding/updating contact based on prior existence
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:748]: get_scontact(): looking for contact [sip:[email protected]:40195;alias=192.168.101.2445382] in slot 238
scscf | 9(44) DEBUG: ims_registrar_scscf [save.c:562]: update_contacts_helper(): inserting new contact
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:533]: insert_scontact(): Too many contacts already registered, overwriting oldest for IMPU <sip:[email protected] >
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:551]: insert_scontact(): Too many 3GPP contacts already registered, overwriting oldest for IMPU <sip:[email protected] >
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:562]: insert_scontact(): INSERTing ucontact in usrloc module
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [+g.3gpp.accesstype]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [+sip.instance]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [video]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [audio]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [+g.3gpp.smsip]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [+g.3gpp.nw-init-ussi]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:118]: new_ucontact(): Checking param [+g.3gpp.icsi-ref]
scscf | 9(44) DEBUG: ims_usrloc_scscf [ucontact.c:173]: new_ucontact(): generating hash based on [sip:[email protected]:40195;alias=192.168.101.2445382]
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:280]: mem_insert_scontact(): Created new contact in memory with AOR: [sip:[email protected]:40195;alias=192.168.101.2445382] and hash [238]
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1140]: link_contact_to_impu(): Need to overwrite oldest (first) 3GPP contact
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1145]: link_contact_to_impu(): Found first 3GPP contact 9(44) DEBUG: ims_usrloc_scscf [udomain.c:852]: unref_contact_unsafe(): decrementing ref count on contact [sip:[email protected]:42891;alias=192.168.101.2435392], was 1
scscf | 9(44) DEBUG: ims_usrloc_scscf [udomain.c:855]: unref_contact_unsafe(): contact [sip:[email protected]:42891;alias=192.168.101.2435392] no longer referenced.... deleting
scscf | 9(44) DEBUG: ims_usrloc_scscf [udomain.c:843]: ref_contact_unsafe(): incrementing ref count on contact [sip:[email protected]:40195;alias=192.168.101.2445382], was 1
scscf | 9(44) DEBUG: ims_usrloc_scscf [impurecord.c:1226]: link_contact_to_impu(): number of contacts for IMPU [sip:[email protected] ] is 5
scscf | 9(44) DEBUG: ims_usrloc_scscf [udomain.c:852]: unref_contact_unsafe(): decrementing ref count on contact [sip:[email protected]:40195;alias=192.168.101.2445382], was 2
scscf | 9(44) DEBUG: ims_usrloc_scscf [ul_callback.h:119]: run_ul_callbacks(): impurecord=0x7f93a5d64f30, contact=0x7f93a5d786f0, callback type 1024/1024, id 0 entered
scscf | 9(44) DEBUG: ims_registrar_scscf [usrloc_cb.c:88]: ul_contact_changed(): Received notification of type 1024 on contact Address sip:[email protected]:40195;alias=192.168.101.2445382
scscf | 9(44) DEBUG: ims_registrar_scscf [usrloc_cb.c:91]: ul_contact_changed(): There are no subscriptions for this IMPU therefore breaking out now as nothing to do
scscf | 9(44) ERROR: ims_registrar_scscf [save.c:826]: update_contacts(): Error, we should have a record after registraion
scscf | 9(44) ERROR: ims_registrar_scscf [cxdx_sar.c:253]: async_cdp_callback(): Error processing REGISTER

iPhone (13 Pro/15.3.1) does not start ESP Connection for "REGISTER"

Hi,

i installed srsENB + open5GS + kamailio IMS Stack. My iPhone can attach to apn "internet" + "ims" successfully.
P-CSCF Address is configured in smfd and my iPhone sends REGISTER Request to P-CSCF (IPv6). Kamailio forwards
the messages towards I-CSCF(IPv4)/S-CSCF(IPv4) and communication with open5gs HSS(IPv4) looks good on both.
Unauthorized messages is transported back to UE. Security-Client and Security-Server have a matching Object.

But after that, I do not see any ESP Messages from UE.

Anyone have an idea where to look now

Kamailio 5.5.4
register.pcapng.gz
?

PCSCF does not send 200 OK PRACK to the UE

Hello,
A PRACK is sent by the UE after a Session Progress with TCP as transport protocol in Via, the 200 OK is correctly sent back to the UE by the PCSCF.
Then another PRACK is sent by the UE following a Ringing but with UDP as transport protocol in Via and the 200 OK is not sent by the PCSCF to the UE.
Do you know why the transport protocol is changed by the UE?
In the logs, the PCSCF seems to send the response but in fact no. Did you already experience this behavior and how to solve this?
Thanks for your support.
trace&log.zip

High load on Kamailio IMS

Hi, Herlesupreeth!

The question is not about a problem related to your configuration, so if there is nothing to answer, I will close the ticket, but if you give any advice, I will be grateful.

I set up Kamailio IMS according to your configuration, everything worked out great in the end, and I decided to check how Kamailio copes with the load. I am creating load using sipp application. With a low call generation rate, there are no problems, but if you raise the call generation to more than 20 calls per second, some of the calls fail.
calls
I compared the calls and saw that the ICSCF does not send a 180 Ringing message towards the SCSCF.
bad_call

Below is an example of a successful call.
good_call

CPU, MEM indicators are normal. I increased the shr_mem and pkg_mem parameters.
Any idea where the bug might be? in the logs, I did not find an explicit WAR or ERR on this problem, in SIP messages I also do not see any difference between a successful and unsuccessful call.

10.21.4.226 external IP P-CSCF
10.10.0.1 IP P-CSCF
10.10.0.2 IP S/I-CSCF

logs.zip
dump.zip

sip client register failed

Hi herlesupreeth:

I have set up volte environment according to docs/tutorial/02-VoLTE-setup/. LTE UE registered to ims successfully, but sip client failed.

The account and password of sip client have been added into kamailio DB by "kamctl add 10000 1234" , and in databases kamailio the user 10000 can be found using "select * from subscriber".

Below is the pcscf log:

2(12688) NOTICE: <script>: PCSCF: REGISTER sip:192.168.13.95 (sip:[email protected] (192.168.13.11:57640) to sip:[email protected], 530a08da613a46708820312c54cecbe2)
2(12688) NOTICE: <script>: PCSCF REGISTER:
Destination URI:
Request URI: sip:192.168.13.95
2(12688) NOTICE: <script>: Source IP and Port: (192.168.13.11:57640)
Route-URI: sip:192.168.13.95;lr
2(12688) NOTICE: <script>: Received IP and Port: (192.168.13.95:5060)
2(12688) NOTICE: <script>: Contact header: "webclient" sip:[email protected]:57640;ob
2(12688) INFO: ims_registrar_pcscf [sec_agree.c:264]: cscf_get_security(): No security parameters found
2(12688) INFO: ims_registrar_pcscf [sec_agree.c:296]: cscf_get_security_verify(): No security-verify parameters found
2(12688) INFO: cdp [authstatemachine.c:270]: auth_client_statefull_sm_process(): after callback of event 1
94(12853) INFO: cdp [authstatemachine.c:270]: auth_client_statefull_sm_process(): after callback of event 7
89(12844) ERROR: <script>: Diameter: AAR failed on subscription to signalling

Pcscf return error: Status-Line: SIP/2.0 403 Can't register to QoS for signalling.

image

I think pcscf may treat the use 10000 as a volte user instead of a sip client user, and interacts with EPC.

How to solve the problem?
Thanks a lot.

REGISTER Message to Application Servers...

Hi @herlesupreeth,

Thank you for sharing scripts. I am using those scripts for my POC. Want to know whether S-SCSF will send REGISTER message to all Application Servers after reading from IFC at the time of Subscriber Registration?

I have tried but not able to send REGISTER message to Application Server. Can you please provide some inputs, it will be really very much helpful.

Thank you,
Pavan

Unable to convert ipsec addr4 []

I'm using kamailio-ims 5.3 and when I tried to register with Android and Nokia phones it gave me this error also I used basic ipsec-tools, and after that, I changed it to strongswan but still no success. Would someone be able to help me with it?

kamailio IMS logs:
ims kamailio[23396]: #1[0;39;49m#001[0;31;49m22(23396) ERROR: ims_ipsec_pcscf [cmd.c:412]: create_ipsec_tunnel(): Unable to convert ipsec addr4 []
ims kamailio[23396]: #1[0;39;49m#001[0;32;49m22(23396) NOTICE: <script>: Security-Client=ipsec-3gpp;alg=hmac-md5-96;ealg=null;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090,ipsec-3gpp;alg=hmac-md5-96;ealg=des-ede3-cbc;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090,ipsec-3gpp;alg=hmac-md5-96;ealg=aes-cbc;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090,ipsec-3gpp;alg=hmac-sha-1-96;ealg=null;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090,ipsec-3gpp;alg=hmac-sha-1-96;ealg=des-ede3-cbc;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090,ipsec-3gpp;alg=hmac-sha-1-96;ealg=aes-cbc;spi-c=1321;spi-s=1322;port-c=7089;port-s=7090
ims kamailio[23396]: #1[0;39;49m#001[0;31;49m22(23396) ERROR: ims_ipsec_pcscf [cmd.c:412]: create_ipsec_tunnel(): Unable to convert ipsec addr4 []

IPsec status:
Status of IKE charon daemon (strongSwan 5.8.2, Linux 5.4.0-166-generic, x86_64):
uptime: 2 days, since Nov 22 06:36:55 2023
malloc: sbrk 1486848, mmap 0, used 513424, free 973424
worker threads: 11 of 16 idle, 5/0/0/0 working, job queue: 0/0/0/0, scheduled: 0
loaded plugins: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark stroke updown eap-mschapv2 xauth-generic counters
Listening IP addresses:
192.168.0.1
Connections:
ims: 192.168.0.1...%any IKEv1/2
ims: local: [192.168.0.1] uses pre-shared key authentication
ims: remote: uses pre-shared key authentication
ims: child: 0.0.0.0/0 === dynamic TUNNEL
Security Associations (0 up, 0 connecting):
none

ping pcscf failed

Hi teacher,

I have already compiled Kamailio, created mysql database, and modify dns server configuration according to the operation setps which are described on the web link: https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/

However even though I try to modify the dns server configuration many times, the action of "ping pcscf" is always failing, I can't understand why the action couldn't be successful, would you like to instruct me?

The logs are attached.
MobaXterm_172.17.40.25root_20220307_153957.txt

here dns server is always unavailable, I went through some documents, it's doubted that the reverse domain name parsing couldn't be configured, the config file "ims-mcc001...." is only identified as the forward domain parsing, the shortage of its reverse name parsing can result in dns failing. I'm not sure if my thinking is correct or not, please instruct me.


root@DN2:/etc/bind# systemd-resolve --status | grep 'DNS Servers' -A2
DNS Servers: 192.168.14.15
DNS Domain: ims.mnc460.mcc02.3gppnetwork.org
epc.mnc460.mcc02.3gppnetwork.org

     DNS Servers: 8.8.8.8

root@DN2:/etc/bind# ping pcscf
ping: pcscf: Name or service not known
root@DN2:/etc/bind# systemctl status bind9
● bind9.service - BIND Domain Name Server
Loaded: loaded (/lib/systemd/system/bind9.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-03-07 14:49:36 HKT; 44min ago
Docs: man:named(8)
Process: 5500 ExecStop=/usr/sbin/rndc stop (code=exited, status=0/SUCCESS)
Main PID: 5504 (named)
Tasks: 4 (limit: 2322)
CGroup: /system.slice/bind9.service
└─5504 /usr/sbin/named -f -u bind

Mar 07 14:49:52 DN2 named[5504]: checkhints: b.root-servers.net/A (192.228.79.201) extra record in hints
Mar 07 14:49:52 DN2 named[5504]: checkhints: l.root-servers.net/AAAA (2001:500:9f::42) missing from hints
Mar 07 14:49:52 DN2 named[5504]: checkhints: l.root-servers.net/AAAA (2001:500:3::42) extra record in hints
Mar 07 14:49:56 DN2 named[5504]: resolver priming query complete
Mar 07 14:49:56 DN2 named[5504]: checkhints: b.root-servers.net/A (199.9.14.201) missing from hints
Mar 07 14:49:56 DN2 named[5504]: checkhints: b.root-servers.net/A (192.228.79.201) extra record in hints
Mar 07 14:49:56 DN2 named[5504]: checkhints: b.root-servers.net/AAAA (2001:500:200::b) missing from hints
Mar 07 14:49:56 DN2 named[5504]: checkhints: b.root-servers.net/AAAA (2001:500:84::b) extra record in hints
Mar 07 14:49:56 DN2 named[5504]: checkhints: l.root-servers.net/AAAA (2001:500:9f::42) missing from hints
Mar 07 14:49:56 DN2 named[5504]: checkhints: l.root-servers.net/AAAA (2001:500:3::42) extra record in hints
root@DN2:/etc/bind# ping pcscf
ping: pcscf: Name or service not known
root@DN2:/etc/bind#
logs.zip

root@DN2:/etc/bind# dig -t A ims.mnc460.mcc02.3gppnetwork.org

; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -t A ims.mnc460.mcc02.3gppnetwork.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 15084
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ab47d7ee02636609398704c662270dc803a8cf426c2822af (good)
;; QUESTION SECTION:
;ims.mnc460.mcc02.3gppnetwork.org. IN A

;; AUTHORITY SECTION:
3gppnetwork.org. 10800 IN SOA ns0.dnsmadeeasy.com. hostmaster.kerna.ie. 2014094706 43200 3600 2419200 86400

;; Query time: 165 msec
;; SERVER: 192.168.14.15#53(192.168.14.15)
;; WHEN: Tue Mar 08 16:03:20 HKT 2022
;; MSG SIZE rcvd: 163

root@DN2:/etc/bind# dig -x 192.168.14.15

; <<>> DiG 9.11.3-1ubuntu1.16-Ubuntu <<>> -x 192.168.14.15
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35337
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 39dd1a863f9de01ccf8e986a62270dd2d09606393b6a22b5 (good)
;; QUESTION SECTION:
;15.14.168.192.in-addr.arpa. IN PTR

;; AUTHORITY SECTION:
168.192.IN-ADDR.ARPA. 86400 IN SOA 168.192.IN-ADDR.ARPA. . 0 28800 7200 604800 86400

;; Query time: 0 msec
;; SERVER: 192.168.14.15#53(192.168.14.15)
;; WHEN: Tue Mar 08 16:03:30 HKT 2022
;; MSG SIZE rcvd: 138

Volte testbed using srsRAN , open5GS , Kamilio IMS and USRP_B210

Hi,

I wanted to test few (audio/video) services (with our Telephony application server) related to Volte call using Volte testbed based on srsRAN , open5GS , Kamilio IMS and USRP_B210 / some other cheaper SDR kit . So I am planning to setup Volte testbed in our company's lab following the steps outlined in : https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup

Had few queries on the same :

1)What is the network coverage area (radius) within which handsets would be able to latch on to the LTE signal.?

2)Is Government permission/approval required for such setups in lab ? (India)

  1. It seems like programmable sims need to be used and configured for use in handsets available in market . What can be the issues related to the sim compatibility and configuration ?

4)Will i be able to test with any volte compatible handset available in Indian market?

5)Can i just use Kamailio IMS setup without srsRAN to validate call flows using sip client phones in PC? Any references/details related to sip client configurations for connecting to Kamilio IMS would be helpful.

6)Any specific antennas to be used with USRP B210 for testing the volte call flows with handsets available in the market?

  1. can srsenb , srsepc, open5gs stack and kamailio IMS run on the same server/laptop?

Any other details related to the same would be helpful .

Thanks
Srinidhi

PCSCF failed to start with IPSec

Hi.

I use IMS setup based on your configs. Kamailio version 5.4.4
I got error by enabling ipsec:

Mar 26 09:01:32 pcscf kamailio: ERROR: [core/cfg.y:3451]: yyparse(): cfg. parser: failed to find command ipsec_destroy_by_contact (params 4)
Mar 26 09:01:32 pcscf kamailio: CRITICAL: [core/cfg.y:3592]: yyerror_at(): parse error in config file /etc/kamailio/kamailio.cfg, line 930, column 130: unknown command, missing loadmodule?

In kamailio source code I did not find cmd ipsec_destroy_by_contact, did you use your own module?

Registration is not working when Rx is on

Hi,
I am working to integrate Kamailio IMS Server with my EPC project.. Registration is not completing when Rx interface is on.
As per my understanding, after receiving 200OK for the registration, PCSCF is not able to forward this towards UE and the reason looks related with Async setting of Rx messages. How we can proceed in this case?

packet number 7953.
I am using latest code of kamailio.

Enrolling in a Non-PCRF Scheme

Hi, herlesupreeth!
I would be grateful if you can help me, I broke my head solving this problem.

I failed the setup and decided to start over with your configs and ran into this problem:

When trying to register a sip client, pcscf rejects it:

I am setting up Kamailio IMS on VirtualBox:

 3(9360) ERROR: cdp [routing.c:274]: get_routing_peer(): get_routing_peer(): No connected DefaultRoute peer found for app_id 16777236 and vendor id 10415.
 3(9360) ERROR: cdp [diameter_comm.c:142]: AAASendMessage(): AAASendMessage(): Can't find a suitable connected peer in the routing table.
 3(9360) ERROR: ims_qos [ims_qos_mod.c:1414]: w_rx_aar_register(): Failed to send AAR
 3(9360) ERROR: ims_qos [ims_qos_mod.c:1458]: w_rx_aar_register(): Error trying to send AAR

Full log:

 0(9357) INFO: <core> [core/udp_server.c:206]: probe_max_receive_buffer(): SO_RCVBUF is finally 360448
 0(9357) ERROR: <script>: event_route[htable:mod-init] 
 1(9358) INFO: rtpengine [rtpengine.c:2750]: rtpp_test(): rtp proxy <udp:localhost:2223> found, support for it enabled
 0(9357) INFO: cdp [cdp_mod.c:240]: cdp_child_init(): CDiameterPeer child starting ...
 0(9357) INFO: cdp [cdp_mod.c:242]: cdp_child_init(): ... CDiameterPeer child started
90(9528) INFO: cdp [worker.c:332]: worker_process(): [1] Worker process started...
92(9530) INFO: cdp [worker.c:332]: worker_process(): [3] Worker process started...
91(9529) INFO: cdp [worker.c:332]: worker_process(): [2] Worker process started...
93(9531) INFO: cdp [receiver.c:454]: receiver_process(): receiver_process(): [] Receiver process doing init on new process...
93(9531) INFO: cdp [receiver.c:459]: receiver_process(): receiver_process(): [] Receiver process starting up...
88(9523) INFO: ctl [io_listener.c:213]: io_listen_loop(): io_listen_loop:  using epoll_lt io watch method (config)
89(9526) INFO: cdp [worker.c:332]: worker_process(): [0] Worker process started...
94(9533) INFO: cdp [receiver.c:454]: receiver_process(): receiver_process(): [pcrf.epc.mnc001.mcc001.3gppnetwork.org] Receiver process doing init on new process...
94(9533) INFO: cdp [receiver.c:186]: add_serviced_peer(): add_serviced_peer(): Adding serviced_peer_t to receiver for peer [pcrf.epc.mnc001.mcc001.3gppnetwork.org]
94(9533) INFO: cdp [receiver.c:459]: receiver_process(): receiver_process(): [pcrf.epc.mnc001.mcc001.3gppnetwork.org] Receiver process starting up...
96(9535) INFO: cdp [timer.c:205]: timer_process(): Timer process starting up...
95(9534) INFO: cdp [acceptor.c:81]: acceptor_process(): Acceptor process starting up...
95(9534) WARNING: cdp [tcp_accept.c:120]: create_socket(): create_socket(): Trying to open/bind/listen on 192.168.56.120 port 3871
95(9534) WARNING: cdp [tcp_accept.c:145]: create_socket(): create_socket(): Successful socket open/bind/listen on 192.168.56.120 port 3871
95(9534) INFO: cdp [acceptor.c:95]: acceptor_process(): Acceptor opened sockets. Entering accept loop ...
100(9545) INFO: jsonrpcs [jsonrpcs_sock.c:443]: jsonrpc_dgram_process(): a new child 0/9545
96(9535) INFO: cdp [peerstatemachine.c:526]: I_Snd_Conn_Req(): I_Snd_Conn_Req(): Peer pcrf.epc.mnc001.mcc001.3gppnetwork.org 
96(9535) INFO: cdp [receiver.c:874]: peer_connect(): peer_connect(): Trying to connect to 192.168.56.106 port 3868
96(9535) INFO: cdp [receiver.c:954]: peer_connect(): peer_connect(): Peer pcrf.epc.mnc001.mcc001.3gppnetwork.org:3868 connected
94(9533) ERROR: cdp [receiver.c:688]: receive_loop(): select_recv(): Bad file descriptor
94(9533) INFO: cdp [receiver.c:222]: disconnect_serviced_peer(): drop_serviced_peer(): [pcrf.epc.mnc001.mcc001.3gppnetwork.org] Disconnecting from peer 
 3(9360) NOTICE: <script>: PCSCF: REGISTER sip:ims.mnc001.mcc001.3gppnetwork.org (sip:[email protected] (192.168.56.1:49570) to sip:[email protected], c98e5026-d59d-7732-0343-1cd7bf8d4221)
 3(9360) INFO: rr [rr_mod.c:515]: pv_get_route_uri_f(): No route header present.
 3(9360) NOTICE: <script>: PCSCF REGISTER: 
 Destination URI: <null>
 Request URI: sip:ims.mnc001.mcc001.3gppnetwork.org
 3(9360) INFO: rr [rr_mod.c:515]: pv_get_route_uri_f(): No route header present.
 3(9360) NOTICE: <script>: Source IP and Port: (192.168.56.1:49570)
 Route-URI: 
 3(9360) NOTICE: <script>: Received IP and Port: (192.168.56.120:5060)
 3(9360) NOTICE: <script>: Contact header: <sip:[email protected]:49570;transport=udp>;expires=600000;+g.oma.sip-im;language="en,fr";+g.3gpp.smsip;+g.oma.sip-im.large-message;audio;+g.3gpp.icsi-ref="urn%3Aurn-7%3A3gpp-application.ims.iari.gsma-vs";+g.3gpp.cs-voice
 3(9360) INFO: ims_registrar_pcscf [sec_agree.c:264]: cscf_get_security(): No security parameters found
 3(9360) INFO: ims_registrar_pcscf [sec_agree.c:296]: cscf_get_security_verify(): No security-verify parameters found
 3(9360) ERROR: cdp [routing.c:274]: get_routing_peer(): get_routing_peer(): No connected DefaultRoute peer found for app_id 16777236 and vendor id 10415.
 3(9360) ERROR: cdp [diameter_comm.c:142]: AAASendMessage(): AAASendMessage(): Can't find a suitable connected peer in the routing table.
 3(9360) ERROR: ims_qos [ims_qos_mod.c:1414]: w_rx_aar_register(): Failed to send AAR
 3(9360) ERROR: ims_qos [ims_qos_mod.c:1458]: w_rx_aar_register(): Error trying to send AAR
 3(9360) WARNING: tm [t_lookup.c:1504]: t_unref(): script writer didn't release transaction
^C107(9566) INFO: <core> [main.c:847]: sig_usr(): signal 2 received

I understand this due to the fact that I do not use PCRF, since I am not mobile UE, but I use SIP clients and connect directly to PCSCF. Tell me what I need to fix in order for the circuit to work SIP-client>>IMS>>SIP-client witout EPC. In your config I changed only IP

Dump and config attached
kamailio_pcscf.zip
pcscf_dump.zip

PCSCF 192.168.56.120
ICSCF SCSCF FHоSS 192.168.56.106

Dump and config attached

VOLTE on Openstack

Dear @herlesupreeth
Hi again

I managed to run IMS+Core on Openstack with internal ip 10.4.128.21/24 and Floating Ip address of 10.20.20.177 which both of them are on a Single PC with 192.168.100.20 ip addresses. and installed SRSLTE on the other PC with ip address of 192.168.100.2 so now eNB is connected to MME and UE registered on the network.
But i do not have internet access!
I have done these to be able to connect eNB to Core :
sudo route add -net 10.20.20.0/24 gw 192.168.100.20 enp1s0
and Now i tried your command:
ip r add 10.4.128.21/24 via 10.20.20.177
but it says:

ERROR: INVALID prefix for given prefix length.

and I dont have internet access!!

and Also Tested SRSEPC commands sudo srsepc_if_masq enp1s0

But still not access!

also in sgw:

sgw:
    gtpc:
      addr: 127.0.0.2
    gtpu:
      dev: ens3
      advertise_addr: 10.20.20.177

i had set advertise_addr!
Can u please give me a hint?

Thanks
Best regards

P.S. I set UE's pool in pgw.yaml

 ue_pool:
      - addr: 172.20.110.1/24
        dev: ogstun
        apn: internet
      - addr: 172.20.111.1/24
        apn: ims
        dev: ogstun2
    dns:
      - 8.8.8.8
      - 8.8.4.4
      - 2001:4860:4860::8888
      - 2001:4860:4860::8844
    p-cscf:
      - 10.4.128.21

200 OK from REGISTER not relayed by PCSCF?

Hello herlesupreeth,

I'm trying to do a VoLTE setup using a Google Pixel, Baicells (eNodeB), Open5gs (EPC) and Kamailio (IMS on branch 5.3). I'm currently having a successful registration flow on the IMS side: REGISTER -> 401 -> REGISTER -> 200 OK.

The PCSCF is successfully processing the 200 OK and the last function executed is "ipsec_forward("location")". Here are the logs:
kamailio-logs.txt

However I do not see the PCSCF relaying the 200 OK to the UE:
pcscf-trace.zip

I do see GTP-ESP packets back and forth after the 200 OK but the phone isn't showing IMS registration and I'm unable to place calls. I can't tell if it's an issue on the PCSCF or IPSEC itself.
image

Let me know if you would be able to help, thank you!
Ramon

VoLTE Setup FAIL because RTPengine build fails.

Hi herlesupreeth,

I try to setup voLTE environment, according to <VoLTE Setup with Kamailio IMS and Open5GS> doc. 
(https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/)

In step 16. Install RTPEngine, i got build error:
And t try other version, such as  git checkout mr10.5.1, the error is the same.

Below is the output error.

codeclib.o: In function codeclib_init': ./codeclib.c:1000: undefined reference to av_register_all'
./codeclib.c:1001: undefined reference to avcodec_register_all'
./codeclib.c:1002: undefined reference to avfilter_register_all'
resample.o: In function fix_frame_channel_layout': ./fix_frame_channel_layout.h:10: undefined reference to av_frame_get_channels'
./fix_frame_channel_layout.h:15: undefined reference to `av_frame_get_channels'
collect2: error: ld returned 1 exit status
../lib/common.Makefile:7: recipe for target 'rtpengine-recording' failed
make[3]: *** [rtpengine-recording] Error 1
make[3]: Leaving directory '/root/rtpengine/recording-daemon'
../lib/common.Makefile:4: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/root/rtpengine/recording-daemon'
Makefile:21: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/root/rtpengine'
dh_auto_build: error: make -j56 "INSTALL=install --strip-program=true" returned exit code 2
debian/rules:31: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

when i run dpkg-checkbuilddeps, no output. Build dependencies are ok.
I appreciate very much if you could help me.

VOLTE Call was not established...

moto.zip
when i am trying to call UE2 to UE1 the call procedure is happen, but i am trying to call UE1 to UE2 "408 time out error" and "500 error on LIR select next SCSCF".below i have attached call logs from UE1 to UE2 and Message also i am not able to send on both UE's.UE1 is qualcomm chipset and UE2 is Mediatek chipset..

200OK/REGISTER for deregistration procedure is not ESP encapsulated

Hi Supreeth,

congratulations for the jobs, it is not easy the setup of an IMS test bed.

I'm not using the docker installation but directly the Kamailio sources and your IMS_Config with few modification reflecting my environment where I'm using a UE simulator VoLTE capable.

I observe that during the de-registration phase the 200OK/REGISTER reply from P-CSCF is not ESP encapsulated because the S-CSCF send NOTIFY to P-CSCF with terminated reg-state before the 200OK/REGISTER and then P-CSCF destroy the IPsec SA too early. The 200OK is not accepted to UE because IPsec layer discard this message because is not protected and the De-registration fails after some retransmissions.

I don't know if it is a Kamailio IMS modules problem or it may solved with tuning configuration files, so I would like ask if you observe the same behaviour.

Note: I'm not using contact alias and not pinging because UE are not under NAT, this is a real VoLTE IMS configuration like (no VoWiFI).

No registration with ims-communicator: 403 Authentitication Failed

Hi, herlesupreeth!
I would be grateful if you can help me, I broke my head solving this problem.
Immediately apologize for my English.

I am setting up Kamailio IMS on VirtualBox:
FHоSS 192.168.56.110
PCSCF 192.168.56.112
ICSCF 192.168.56.113
SCSCF 192.168.56.109
Instead of UE, I use ims-communicator (https://sourceforge.net/projects/imscommunicator.berlios/), the authentification algorithm I use AKAv1-MD5.
User profiles are standard, Bob. I answer:

CDATA[SIP/2.0 403 Authentication Failed
Call-ID: [email protected]
CSeq: 2 REGISTER
Via: SIP/2.0/UDP 10.2.16.7:5060;rport=5060;branch=z9hG4bK96f147b25a0d531964930fa3bb733041
From: "bob" <sip:[email protected]>;tag=1140338296
To: "bob" <sip:[email protected]>;tag=184e029c10d1260618967590dddeffe9.4729ef90
Server: Kamailio S-CSCF
Content-Length: 0

I don't understand the error from the CSCSCF logs, the user status is written to HSS as AUTH-PENDING.

Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1923]: print_all_dlgs(): ********************
Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1924]: print_all_dlgs(): printing 4096 dialogs
Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1934]: print_all_dlgs(): ********************
Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:187]: reg_await_timer(): Looking for expired/useless at 31955412
Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:192]: reg_await_timer(): Slot  509 <[email protected]>
Nov 11 11:53:35 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:232]: reg_await_timer(): [DONE] Looking for expired/useless at 31955412
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: NOTICE: <script>: SCSCF: REGISTER sip:scscf.ims.local:6060 (sip:[email protected] (192.168.56.113:4060) to sip:[email protected], [email protected])
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: ERROR: <script>: ALGORITHM IS [] and User-Agent is [IMS-Communicator 070518]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:728]: authenticate(): Running authenticate, is_proxy_auth=0
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:748]: authenticate(): Checking if REGISTER is authorized for realm [ims.local]...
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:168]: get_nonce_response(): Calling find_credentials with realm [ims.local]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:57]: ims_find_credentials(): Searching credentials in realm [ims.local]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:92]: ims_find_credentials(): *hook = 0x7f5222a529c8
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:103]: ims_find_credentials(): Credential parsed successfully
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:106]: ims_find_credentials(): Comparing realm <ims.local> and <ims.local>
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [utils.c:195]: get_nonce_response(): Found nonce response
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:786]: authenticate(): Nonce or response missing: nonce len [0], response16 len[0]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:293]: challenge(): Looking for route block [REG_MAR_REPLY]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: INFO: ims_auth [cxdx_mar.c:79]: create_return_code(): created AVP successfully : [maa_return_code] - [-2]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:317]: challenge(): Need to challenge for realm [ims.local]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:324]: challenge(): Checking if REGISTER is authorized for realm [ims.local]...
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:1448]: get_auth_userdata(): Searching auth_userdata for IMPU sip:[email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:1457]: get_auth_userdata(): Found auth_userdata
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:460]: challenge(): Suspending SIP TM transaction
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [authorize.c:1528]: multimedia_auth_request(): Sending MAR
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29121]: DEBUG: ims_auth [cxdx_mar.c:549]: cxdx_send_mar(): Successfully sent async diameter
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: INFO: ims_auth [cxdx_avp.c:137]: cxdx_get_avp(): cxdx_get_experimental_result_code: Failed finding avp (avp_code = 297, vendor_id = 0)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1305]: new_auth_vector(): new auth-vector with ck [fbba17f90da5816dcf5e7462d7db772b] with status 0
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1559]: pack_challenge(): setting QOP str used is [, qop="auth,auth-int"]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1561]: pack_challenge(): QOP str used is [, qop="auth,auth-int"]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1448]: get_auth_userdata(): Searching auth_userdata for IMPU sip:[email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1457]: get_auth_userdata(): Found auth_userdata
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [authorize.c:1681]: add_auth_vector(): Adding auth_vector (status 1) for IMPU sip:[email protected] / IMPI [email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [cxdx_mar.c:464]: async_cdp_callback(): DBG:UAR Async CDP callback: ... Done resuming transaction
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: INFO: ims_auth [cxdx_mar.c:79]: create_return_code(): created AVP successfully : [maa_return_code] - [1]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: ERROR: tm [t_suspend.c:192]: t_continue_helper(): active transaction not found
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29135]: DEBUG: ims_auth [cxdx_mar.c:87]: free_saved_transaction_data(): Freeing saved transaction data: async
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: NOTICE: <script>: SCSCF: REGISTER sip:scscf.ims.local:6060 (sip:[email protected] (192.168.56.113:4060) to sip:[email protected], [email protected])
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: ERROR: <script>: ALGORITHM IS [AKAv1-MD5] and User-Agent is [IMS-Communicator 070518]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:728]: authenticate(): Running authenticate, is_proxy_auth=0
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:748]: authenticate(): Checking if REGISTER is authorized for realm [ims.local]...
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:168]: get_nonce_response(): Calling find_credentials with realm [ims.local]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:57]: ims_find_credentials(): Searching credentials in realm [ims.local]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:92]: ims_find_credentials(): *hook = 0x7f5222a524b0
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:103]: ims_find_credentials(): Credential parsed successfully
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:106]: ims_find_credentials(): Comparing realm <ims.local> and <ims.local>
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [utils.c:195]: get_nonce_response(): Found nonce response
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:797]: authenticate(): look for an already used vector for [email protected]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1448]: get_auth_userdata(): Searching auth_userdata for IMPU sip:[email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1457]: get_auth_userdata(): Found auth_userdata
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1064]: get_auth_vector(): looping through AV status is 1 and were looking for 3
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:806]: authenticate(): Looking for auth vector based on IMPI: [[email protected]] and IMPU: [sip:[email protected]]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1448]: get_auth_userdata(): Searching auth_userdata for IMPU sip:[email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1457]: get_auth_userdata(): Found auth_userdata
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:822]: authenticate(): look for a fresh vector for [email protected]
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1448]: get_auth_userdata(): Searching auth_userdata for IMPU sip:[email protected] (Hash 509)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1457]: get_auth_userdata(): Found auth_userdata
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1064]: get_auth_vector(): looping through AV status is 1 and were looking for 1
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:1066]: get_auth_vector(): Found result
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: INFO: ims_auth [authorize.c:827]: authenticate(): uri=sip:ims.local nonce=nq6VQejc01kRr/pZzewvtjrz0Gjm9QAAd/YHxdoaIE0= response=2999b70a35ed80ac7dd988d325510ad9 qop= nc= cnonce= hbody=
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [rfc2617.c:135]: calc_response(): calc_response(_ha1=ba56eddf524a884714bc561c4cdfbc13, _nonce=nq6VQejc01kRr/pZzewvtjrz0Gjm9QAAd/YHxdoaIE0=, _nc=,_cnonce=, _qop=, _auth_int=0,_method=REGISTER,_uri=sip:ims.local,_hentity=)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [rfc2617.c:185]: calc_response(): H(A1) = ba56eddf524a884714bc561c4cdfbc13, H(A2) = 2160f61155151141448c74e2c08b234f, rspauth = 9d0d2dfc1c89de76a8ec45081954b249
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: INFO: ims_auth [authorize.c:882]: authenticate(): UE said: 2999b70a35ed80ac7dd988d325510ad9 and we expect 9d0d2dfc1c89de76a8ec45081954b249 ha1 ba56eddf524a884714bc561c4cdfbc13 (REGISTER)
Nov 11 11:53:36 scscf /usr/sbin/kamailio[29123]: DEBUG: ims_auth [authorize.c:987]: authenticate(): UE said: 2999b70a35ed80ac7dd988d325510ad9, but we expect 9d0d2dfc1c89de76a8ec45081954b249 : authenticate(b64) is [nq6VQejc01kRr/pZzewvtjrz0Gjm9QAAd/YHxdoaIE0=], authenticate(hex) is [9eae9541e8dcd35911affa59cdec2fb63af3d068e6f5000077f607c5da1a204d], authorise is [16] [7575ef8ec0b9746a]
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1923]: print_all_dlgs(): ********************
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1924]: print_all_dlgs(): printing 4096 dialogs
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1934]: print_all_dlgs(): ********************
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:187]: reg_await_timer(): Looking for expired/useless at 31955422
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:192]: reg_await_timer(): Slot  509 <[email protected]>
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:197]: reg_await_timer(): .. AV    1 - 2 Exp 31955474  0x7f521b70b650
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:203]: reg_await_timer(): ... dropping av 1 - 2
Nov 11 11:53:45 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:232]: reg_await_timer(): [DONE] Looking for expired/useless at 31955422
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1923]: print_all_dlgs(): ********************
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1924]: print_all_dlgs(): printing 4096 dialogs
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1934]: print_all_dlgs(): ********************
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:187]: reg_await_timer(): Looking for expired/useless at 31955432
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:192]: reg_await_timer(): Slot  509 <[email protected]>
Nov 11 11:53:55 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_auth [authorize.c:232]: reg_await_timer(): [DONE] Looking for expired/useless at 31955432
Nov 11 11:54:05 scscf /usr/sbin/kamailio[29124]: DEBUG: ims_dialog [dlg_handlers.c:1923]: print_all_dlgs(): ********************

The dump shows that after the second REGISTER comes Status: 403 Authentitication Failed. The dump shows that ims-communicator is sending the second REGISTER with the authentification algorithm AKAv1-MD5. In scscf.cfg I have included AKAv1-MD5.

I found errors in the PCSCF log, No security parameters found, but I assume they are due to the fact that the client is without IPSEC and does not interfere with the request further.

Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114408]: ERROR: <script>: REGISTER (sip:[email protected] (10.2.16.7:5060) to sip:[email protected], [email protected])
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114408]: INFO: rr [rr_mod.c:515]: pv_get_route_uri_f(): No route header present.
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114408]: INFO: ims_registrar_pcscf [sec_agree.c:264]: cscf_get_security(): No security parameters found
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114408]: INFO: ims_registrar_pcscf [sec_agree.c:296]: cscf_get_security_verify(): No security-verify parameters found
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114414]: ERROR: ims_ipsec_pcscf [cmd.c:673]: ipsec_create(): No security parameters found in contact
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114417]: ERROR: <script>: REGISTER (sip:[email protected] (10.2.16.7:5060) to sip:[email protected], [email protected])
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114417]: INFO: rr [rr_mod.c:515]: pv_get_route_uri_f(): No route header present.
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114417]: INFO: ims_registrar_pcscf [sec_agree.c:264]: cscf_get_security(): No security parameters found
Nov 11 11:53:36 pcscf /usr/sbin/kamailio[114417]: INFO: ims_registrar_pcscf [sec_agree.c:296]: cscf_get_security_verify(): No security-verify parameters found

I cannot determine the source of the problem.
dumps.zip

Dumps, log and config are attache
icscf.zip
pcscf.zip
scscf.zip
hss.zip

Cant Make a Call

I have managed to attach 2 samsung UE's but i cant make a call. When i press call the dial begins and ends immediately and no call is transmitted. I see a lot in logs but i cant make much of it. Here is attached logs and pcap.

volte.zip

Server error on LIR select next S-CSCF

Hi, herlesupreeth! Again I'm)
I would be grateful if you can help me, I broke my head solving this problem.
Immediately apologize for my English.

I am setting up Kamailio IMS on VirtualBox:
FHоSS 192.168.56.110
PCSCF 192.168.56.112
ICSCF 192.168.56.113
SCSCF 192.168.56.109
When making a call between sip applications, a call comes to subscriber B and he answers. But subscriber A don't connect.
The dump shows that ICSCF responds with 500 Server error on LIR select next S-CSCF, although it resolves SCSCF and can connect via ports.
Can you tell me what could be the reason?
Dumps in attache
scscf.zip
icscf.zip
pcscf.zip

tel2sip() bug

Hi herlesupreeth,

I'm having an issue I think is related to this tel2sip bug kamailio/kamailio#1173

in the attached pcap you can see from the PCSCF (10.90.250.50) to the SCSCF (10.90.250.52) the URI is tel: but from the SCSCF to my asterisk server (10.90.250.100) the URI is sip: and not formatted correctly because tel2sip() fails.

Asterisk now supports tel: URI's so if I can just stop the SCSCF from converting the URI things should be good, do you know where in the SCSCF cofig the INVITE URI is converted from tel: to sip:?

or do you have a solution to the bug referenced?

Thank you for your time.

scscf-INVITE.zip

ipsec over tcp, pcscf doesnt reply to tcp syn

Hi Supreeth,

Im trying to set up the open5gs with the Kamailio IMS based on the guide https://open5gs.org/open5gs/docs/tutorial/02-VoLTE-setup/, with real phone and enb, Iam stuck during the 2nd registration phase after the 401 response from PSCSF,
UE sends tcp syn to the PSCSF ipsec port but with no answer although PSCSF is listening on that port.

I am using the following
root@open5gs-ims:~# kamailio -v
version: kamailio 5.3.2 (x86_64/linux) 9741e3

I guess you already tested ipsec over tcp, should I upgrade to 5.4 ?

thanks

IMS Setup without Open5GS - Pcscf error: tcp_read buffer overrun

I am trying to set up an IMS system without using Open5GS. During testing with a softphone registration, the pcscf log file ends with the following errors:

94(9574) ERROR: <core> [core/tcp_read.c:363]: tcp_read(): buffer overrun, dropping ([192.168.21.68]:5060 -> [192.168.21.68]:5060) 94(9574) ERROR: <core> [core/tcp_read.c:1503]: tcp_read_req(): ERROR: tcp_read_req: error reading - c: 0x7f1adc84e428 r: 0x7f1adc84e4a8 (-1)

The P-CSCF does not seem to send the SIP request to the I-CSCF. I am looking for guidance on how to resolve this issue and understand why the P-CSCF is not forwarding the registration request to the I-CSCF.

Questions:

How can I resolve the tcp_read buffer overrun error in the pcscf log?
Why is the P-CSCF not sending the SIP registration request to the I-CSCF?
And based on which configuration settings should the P-CSCF be configured to forward the registration request to the I-CSCF?

my outputs are here
pcap.zip
pcscf cfg file:
kamailio_pcscf.zip
pcscf log:
pcscf_log.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.