Giter VIP home page Giter VIP logo

Comments (11)

herlesupreeth avatar herlesupreeth commented on June 16, 2024

open5gs HSS does support sending SMSC information upon successful IMS registration. Can you please send the pcap of the registration + sending SMS scenario? Also, are you using open5gs_hss_cx branch?

from docker_open5gs.

lglhust avatar lglhust commented on June 16, 2024

Hi, herlesupreeth
yes, i use open5gs_hss_cx branch and kamailio version 5.3.2 by herlesupreeth .
I found the cause is the Request-URI and to header 'tel:+7' cannot be identified by scscf and ue got 478 error. When i modify the branch of route[SMS] in kamailio_smsc.cfg, annotating the code about 'enum_pv_query("$var(enum)")', then sms works well.
I don't know why the URI of mo-sms is 'tel:+7' ? Maybe it is the default smsc address configuration of the ue.

I have 3 questions.
Question 1:
I still don't know why smsc don't query the mt-user location in HSS for there is no diameter configure between them.I think if there are multiple kamailio scscfs serving mo-user and mt-user respectively, the smsc maybe find no location of where is scscf serving the mt-user is. I haven't test the issue yet.

Question 2:
Does smsc support sms buffer when the mt-user is absent or un-registration? I found if mt-user do un-registration by airplane mode , smsc will output error logs as 'Dropping SMS [3] TO 13820073902 after 2 retries '.

Question 3:
When the ue trys another registration again with no un-registration, scscf will remain multiple port-s for the ue for every registration. The scscf try to send sms to all port-s of every registration of ue, while UE just use it's port-s with the last registration and send no response to the port-s of the registration before.
So i think pcscf should remove the port-c and port-s before when next ims registration success and noly use current ports.

In cmd.c, i saw the code:
"// Destroy privously existing IPSec tunnels but dont release proxy ports
        destroy_ipsec_tunnel(ci.received_host,
            pcontact->security_temp->data.ipsec, pcontact->contact_port, 0);"

I am not sure why not to release pcscf ports for ue of last registration here.

Thanks.

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

Please always attach a pcap to debug. Just logs is not enough. I would suggest to take a pcap of UE registration and then followed by sending SMS.

I don't know why the URI of mo-sms is 'tel:+7' ? Maybe it is the default smsc address configuration of the ue.

yep, its SMSC address programmed in the SIM

I found the cause is the Request-URI and to header 'tel:+7'

Actually MO-SMS in SMS over IMS is not routed based on Request-URI rather the MSISDN in the payload. So the modification you did in my opinion is not needed

Question 2:
Does smsc support sms buffer when the mt-user is absent or un-registration? I found if mt-user do un-registration by airplane mode , smsc will output error logs as 'Dropping SMS [3] TO 13820073902 after 2 retries '.

There is no buffering mechanism if the recipient UE is not registered or in airplane mode. It tries to deliver for 2 times and then drops

Question 3:
When the ue trys another registration again with no un-registration, scscf will remain multiple port-s for the ue for every registration. The scscf try to send sms to all port-s of every registration of ue, while UE just use it's port-s with the last registration and send no response to the port-s of the registration before.
So i think pcscf should remove the port-c and port-s before when next ims registration success and noly use current ports.

There is mechanism to remove old IPSec ports in P-CSCF after a delay. P-CSCF takes care of directing the SIP packets to correct IPSec ports so no need to worry about that even if there are multiple IPSec ports for the same IMPI/IMPU

from docker_open5gs.

lglhust avatar lglhust commented on June 16, 2024

In kamailio_smsc.cfg
route[SMS_FROM_SIP] {
... ...
$avp(to) = $tU;
Here avp(to) is not from message payload, so it goes into the branch of '[SMS_TO_OUTBOUND]'.

There is the log:
One pcap file is for mt-sms delivery fail , another is for multi registration that pcscf sends sms to all port for every registration while the ue sends no response for previous ports.

sms.zip

Do you have the plan to add sms buffering mechanism ?

Thanks.

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

Do you have the plan to add sms buffering mechanism ?

Unfortunately no. I no longer actively work on IMS.

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

image

First of all, I am not sure what modification you have done in your kamailio_smsc.cfg. Second, I dont see the UE with MSISDN 10658112210002 registered in the pcap. If the UE is not registered SMSC wont be able to deliver the SMS

from docker_open5gs.

lglhust avatar lglhust commented on June 16, 2024

sorry, it's my fault, i didn't put the right pcap file.

I mode no modification to kamailio_smsc.cfg. If i do not annotate the code of below:
"if (!enum_pv_query("$var(enum)")) {
route(SMS_TO_OUTBOUND);
return $retcode;
}"
For the second sms delivery of the mo-user, the mt user will not receive sms because enum_pv_query() fails here.
mt-fail.zip

Another question:
I want to test sms when user is offline. I think when smsc get notification of reg-status-changed of mt-user, it can decide to send buffered sms.

I saw ’reginfo_subscribe("$var(uri)", "SUBSCRIBE_EXPIRE");‘ in kamailio_smsc.cfg and SUBSCRIBE_EXPIRE is 7200s. MO-user send one sms but mt-user is offline, smsc will send subscribe req to scscf via icscf. Then scscf sends notify of 'state="terminated" 'to smsc . I observed the subscribe-notify information exchange from the capture packets .

When mt-user registered again , it's reg state changed but no NOTIFY info could be received from scscf.
I don't know why. Does reginfo_subscribe() works only one time?
Does it need "presence_reginfo" module in kamailio_scscf to send NOTIFY message for every reg status modification of the ue ?

Thanks a lot.

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

When mt-user registered again , it's reg state changed but no NOTIFY info could be received from scscf.
I don't know why. Does reginfo_subscribe() works only one time?
Does it need "presence_reginfo" module in kamailio_scscf to send NOTIFY message for every reg status modification of the ue ?

Change the below settings in kamailio_scscf.cfg i.e. set it to 1. Then reg status will then be published to watchers

modparam("pua_reginfo", "publish_reginfo", 1)

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

Can you please let me know whether the above change fix your issue?

from docker_open5gs.

lglhust avatar lglhust commented on June 16, 2024

Sorry for reply late.
I changed kamailio_smsc.cfg as belows:
modparam("pua_reginfo", "default_domain", "DOMAIN")
modparam("pua_reginfo", "publish_reginfo", 1)

I saw smsc received state-change-notification only when ue turned into offline ,that is terminated state. When UE became online again, smsc didn't receive notification.
Here is the pcap file.
state.zip

kamailio version i used is 'https://github.com/herlesupreeth/kamailio/tree/5.3/', not same as the version from docker_open5gs/ims_base/Dockerfile/branch 5.3. The two versions are very different. The former one works well basically and i haven't tried the one in docker_open5gs.
I am not sure which version is more suitable. Could you tell me which version is the most reliable?

Thanks.

from docker_open5gs.

herlesupreeth avatar herlesupreeth commented on June 16, 2024

I saw smsc received state-change-notification only when ue turned into offline ,that is terminated state. When UE became online again, smsc didn't receive notification.
Here is the pcap file.

The only explanation I can think of is that the contact has changed, for example in the NOTIFY to SMSC (packet 19544), I see UE having contact - sip:[email protected]:31949;alias=172.10.0.144315191 but when it registers again the contact is sip:[email protected]:31891;alias=172.10.0.144316351

Notice that ports have changed even though the IMPI/IMPU has remained same

from docker_open5gs.

Related Issues (20)

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.