herlesupreeth / docker_open5gs

Docker files to run open5gs + IMS + eNB + gNB + NR-UE in a docker
BSD 2-Clause "Simplified" License
320 stars 179 forks source link

VOLTE, INVITE create 408 Request Timeout #316

Open JulienSrcdImta opened 6 months ago

JulienSrcdImta commented 6 months ago

Hi @herlesupreeth,

I have failed voice calls on my platform: "4G Volte deployement with B210: docker compose -f 4g-volte-deploy.yaml up docker compose -f srsenb.yaml up -d && docker container attach srsenb"

Sometimes calls work without problems but often I have PCSCF sending "408 Request Timeout". I understand (but I am not sure) that the SCSCF is forwarding the INVITE from the caller to the callee through the PCSCF. I don't know what's happen in PCSF but it's like he cannot join the callee. I made ping from inside the PCSF container on the callee ip address and it works.

In the log below there is 7 calls ok but the last one fails (INVITE in message 33315 and Timeout in 33453)

with_2_iode_7_calls_succeeds_last_one_rejected.pcap.zip

When this problem occurs, i cannot call anymore and I must disconnect/reconnect both phones with airplane mode.

Any idea of what happens ?

Thanks, Julien

herlesupreeth commented 6 months ago

Interesting, are you sure you are using the latest commits in this repo?

image

Looks like P-CSCF is unable to forward the INVITE to the UE and get stuck. Seems to be a bug in kamailio.

When this problem occurs, i cannot call anymore and I must disconnect/reconnect both phones with airplane mode.

This is because when the call failed over IMS, UE attempts call over circuit switched network (which is not there). This also fails and then UE gets released from the network

image

herlesupreeth commented 6 months ago

Can you please send me the p-cscf logs with DEBUG enabled when the above call fails occurs?

JulienSrcdImta commented 6 months ago

No, I am pointing on: commit b538301889b98158c9411c0a34bfa493b2155c3e (HEAD -> master, origin/master, origin/HEAD) Author: herlesupreeth herlesupreeth@gmail.com Date: Mon Feb 26 12:06:28 2024 +0100

More parameter section of open5gs config under global section

I will be out of the lab for one week, but when I'll be back, I'll update and send you the PCSCF log.

Thanks for your support and explanations.

JulienSrcdImta commented 6 months ago

Hi @herlesupreeth,

I updated the repo to the last commit but I have the same error.

I took the pcscf log but I am not sure about how to enable DEBUG level. In kamailio_pcscf.cfg I commented line 38 and 39 to let only the debug=4 and log_stderror=yes :

#!ifdef WITH_DEBUG
debug=4
log_stderror=yes
#!else
#debug=2
#log_stderror=no
#!endif

Then I took the log with: docker logs -f pcscf &> /tmp/with_asus_op8_call_rejected_2_pcsf_log_debug.txt

If it is not the good way please tell me how to do it.

with_asus_op8_call_rejected_2_pcsf_log_debug.txt with_asus_op8_call_rejected_2.pcap.zip

herlesupreeth commented 5 months ago

@JulienSrcdImta sorry for the late response. In your latest pcap you attached I see all calls successfully completing and I dont see any issue. Did you face any issue?

herlesupreeth commented 5 months ago

Nevermind, I found the packet number where the issue. Will let you know if I find any issue. I found one unrelated bug will fix that too.

herlesupreeth commented 5 months ago

Here is how to enable logs in debug.

Change the following in pcscf.cfg

##!define WITH_DEBUB

to

#!define WITH_DEBUG

JulienSrcdImta commented 5 months ago

Thank you. Yes I face an issue after several call success. The first "strange" sip packet in the log is number 21846.

Otherwise I am surprised with your comment to activate debug in pcscf. the sharp symbol "#" seems to be used for comments. So I see no difference between:

!define WITH_DEBUB

and

!define WITH_DEBUG

herlesupreeth commented 5 months ago

Otherwise I am surprised with your comment to activate debug in pcscf. the sharp symbol "#" seems to be used for comments. So I see no difference between:

!define WITH_DEBUB

and

!define WITH_DEBUG

If there is one # before ! then its not a comment. It will be a comment if there is two # before !

JulienSrcdImta commented 5 months ago

Ok, so my PCSCF log (posted 2 weeks ago) should be ok as in the config file there is:

!ifdef WITH_DEBUG

Thanks for the support!

herlesupreeth commented 5 months ago

Ok, so my PCSCF log (posted 2 weeks ago) should be ok as in the config file there is:

!ifdef WITH_DEBUG

No, you have to enable in pcscf.cfg (not in kamailio_pcscf.cfg)

#!define WITH_DEBUG

JulienSrcdImta commented 5 months ago

Oups, my bad, sorry.

Here is two new logs (pcscf logs are split in two files) with_asus_op8_call_rejected_pcsf_log_debug.pcap.zip

with_asus_op8_call_rejected_pcsf_log_debug_part1.txt with_asus_op8_call_rejected_pcsf_log_debug_part2.txt rejected_pcsf_log_debug.pcap.zip)

It fails at first attempt this time (message 1996 in the pcap). I am not able to find the corresponding lines in the pcscf log file as I have strange chars at the beginning of most of the lines. Is it timestamp ?

herlesupreeth commented 5 months ago

I am not able to find the corresponding lines in the pcscf log file as I have strange chars at the beginning of most of the lines. Is it timestamp ?

I think its the color encoding but I maybe wrong

Thanks for the logs. I am more or less sure where the problem is but need to ask in kamailio mailing list for a possible workaround. In the meantime can you add the following in kamailio_scscf.cfg just above the following section and give it a try.

udp_mtu = 1300
udp_mtu_try_proto = TCP

system.shutdownmode = 0 desc "System shutdown mode"
system.service = "Serving-CSCF" desc "Function of this server"
JulienSrcdImta commented 5 months ago

I just tested with your new configs but I have the same issue.