herlesupreeth / kamailio

Kamailio - The Open Source SIP Server for large VoIP and real-time communication platforms -
https://www.kamailio.org
Other
17 stars 18 forks source link

No voice while call from OneplusUE to Iphone UEand call disconnect in 14 seconds #4

Open sonu5gc opened 1 year ago

sonu5gc commented 1 year ago

Important info:- UE:- iphone14, Oneplus9 enodB:- Sercom Kamalio and Open5GS installed. Call Connect and UE registration Normal. LTE network . All setup are on Same VM kamalio and Open5GS.

Issue reproduce steps:--

Register both UE, Call from Oneplus UE to iphon14>>> than Call is connected>> Receive at iphone >> Observe Voice in both UE, there is no Voice and call disconnect in 15 second.

Expected behavior:- Call connect successful and RTP packets flow normally. call should not disconnect with in 15 seconds.

Note:- Iphone to Oneplus UE call is normal, Voice is ok 18 minutes call tested. bot PAss Fail log atteched.

download logs from Here :-

oneplus to iphone Fail logs:-- oneplus-iphone-nomedia.zip image

As i see difference is UPDATE message for SDP update is not coming in above logs , as its coming in Bellow Pass logs screenshots.

Iphone to Oneplus Pass:- iphone-oneplus-pass.zip

image

Many Many thanks in advance for your Help in issue.

herlesupreeth commented 1 year ago

This is because when there is a call from OnePlus its sending PRACK with SDP which is not the usual case of VoLTE and kamailio is not handling the scenario where PRACK has SDP. Resulting in media bearer being setup wrong and OnePlus disconnecting with RTP-Timeout reason

image

I will see whether I can change the kamailo config file to handle this scenario. Although, IMO, its quite a complex scenario is handle.

The call sequence what you see when you call from iPhone to Oneplus is the usual flow in a VoLTE call (i.e. UDPATE with SDP and not PRACK with SDP)

herlesupreeth commented 1 year ago

@sonu5gc can you please also send me the logs on P-CSCF for the scenario where there is no audio?

herlesupreeth commented 1 year ago

can you apply the below diff to your kamailio pcscf cfg files and give it a try??

diff --git a/kamailio_pcscf/route/mo.cfg b/kamailio_pcscf/route/mo.cfg
index 9c2644b..27f019f 100644
--- a/kamailio_pcscf/route/mo.cfg
+++ b/kamailio_pcscf/route/mo.cfg
@@ -186,7 +186,7 @@ onreply_route[MO_indialog_reply] {
                route(NATMANAGE);

 #!ifdef WITH_RX
-       if (t_check_status("183|200") && has_body("application/sdp")) {
+       if (t_check_status("183|200") && has_body("application/sdp") && !is_method("PRACK")) {
                if (t_is_retr_async_reply()) {
                        xlog("L_DBG", "Dropping retransmitted reply which is still currently suspended\n");
                                drop();
diff --git a/kamailio_pcscf/route/mt.cfg b/kamailio_pcscf/route/mt.cfg
index 5a9f29a..e200427 100644
--- a/kamailio_pcscf/route/mt.cfg
+++ b/kamailio_pcscf/route/mt.cfg
@@ -112,7 +112,7 @@ onreply_route[MT_indialog_reply] {
                route(NATMANAGE);

 #!ifdef WITH_RX
-       if (t_check_status("183|200") && has_body("application/sdp")) {
+       if (t_check_status("183|200") && has_body("application/sdp") && !is_method("PRACK")) {
                if (t_is_retr_async_reply()) {
                        xlog("L_DBG", "Dropping retransmitted reply which is still currently suspended\n");
                        drop();
sonu5gc commented 1 year ago

Hi @herlesupreeth thanks very much for Prompt reply,

will test this code change and provide you feedback on it soon.

likemkmishra commented 1 year ago

Hi @herlesupreeth thanks for your efforts to resolve this issue.. I am sorry to ask you a help (if you can).. We have tried to reconfigure the 4g eNB to 5g gNB for testing this patch but unfortunately, we are facing an error pdn connectivity reject (which was not earlier) although we are using the same config which you have provided in your kamailio config. I am adding the path of issue and logs here if you can help us resolve this issue then it will be great help to us.. me and @sonu5gc continuously trying to debug this issue but still stuck on the same..

likemkmishra commented 1 year ago

[https://github.com/open5gs/open5gs/issues/2478]

herlesupreeth commented 1 year ago

@likemkmishra @sonu5gc Please be specific to the issue you have raised. Can you confirm whether above patch resolved your issue when performing VoLTE call or not? If so, please provide the pcap of the call.

likemkmishra commented 1 year ago

Hi @herlesupreeth our UE is not able to attach due to mentioned issue that's why are not able to test the patch, so we just wanted to inform you about the problem which we are facing so that you could aware about why we are taking to much time to give the log which you demanded.

sonu5gc commented 1 year ago

Hi @herlesupreeth we have reinstalled Kamalio and Open5gs. successfully attech LTE and IMS. But currently we are facing an Issue while call from Oneplus UE to Iphone call is not connecting.

Giving an Error: shown in below screenshot.

ims call issue

download logs attach_ok_oneplus_iphone_VoLTE call_Issue.zip

Can you help us which parameter we need to modify to resolve this issue. as earlier we were able to make call but , there was no voice.

so once this issue got resolve we want to test your code change as given above comments by you.

herlesupreeth commented 1 year ago

I would suggest to restart P-CSCF and put Oneplus phone in Safe mode and take it out of Safe mode. Then, give it a try

sonu5gc commented 1 year ago

hi @herlesupreeth have tried this method still having issue call not connect.

i am suspecting there is something need to modify in config file.

as call is not connecting to and from iphone and oneplus. earlier it was ok from both end. but issue was only no vice during oneplus to iphone.

i am just onestep behind to test your code change .

herlesupreeth commented 1 year ago

Then, if it was working before I would suggest to check your setup again. Since you are having many trouble setting up your VoLTE testbed I would recommend using this repo - https://github.com/herlesupreeth/docker_open5gs

sonu5gc commented 1 year ago

Hi Herlesupreeth/Kamailio

I have checked each and every setting. Of open5gs. There is no difference.

Ue is getting registered to ims properly.

While making call.

Its giving error 487_ request terminated.

I am suspecting there is problem in kmalio_pcscf_cfg.

Could you please suggest something that can resolve this issue.

On Wed, 9 Aug 2023, 11:25 Supreeth Herle, @.***> wrote:

Then, if it was working before I would suggest to check your setup again. Since you are having many trouble setting up your VoLTE testbed I would recommend using this repo - https://github.com/herlesupreeth/docker_open5gs

— Reply to this email directly, view it on GitHub https://github.com/herlesupreeth/kamailio/issues/4#issuecomment-1670718625, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBNKBZCCP4DTAV5VZRLMOC3XUMQ57ANCNFSM6AAAAAA23A3IMI . You are receiving this because you were mentioned.Message ID: @.***>

herlesupreeth commented 1 year ago

Sorry, I cannot be of any help as I dont know where your issue is arising from.

herlesupreeth commented 1 year ago

I see in your pcap that packet number and the time captured are not in proper order. I would sync the time of the machine correctly.

likemkmishra commented 1 year ago

Hi @herlesupreeth, Thanks for your support this issue has been resolved now..we can close this!

herlesupreeth commented 1 year ago

Can you please mention how it was resolved so that it may help others encountering same issue?? Thanks

likemkmishra commented 1 year ago

Hi @herlesupreeth, We are trying to reproduce this issue again and let you explain here ..basically we have changed multiple things as modules error was coming initially. So we will check one by one and reproduce the same error and explain it here! Note- still we didn't use patch which you given here!