Comments (11)
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.
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.
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.
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.
Do you have the plan to add sms buffering mechanism ?
Thanks.
from docker_open5gs.
Do you have the plan to add sms buffering mechanism ?
Unfortunately no. I no longer actively work on IMS.
from docker_open5gs.
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.
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.
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.
Can you please let me know whether the above change fix your issue?
from docker_open5gs.
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.
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)
- MME not responding to Create Bearer Request after device wake up HOT 3
- PCSCF blocking with latest configs HOT 4
- Add multiple user on open5gs without using WebUI HOT 2
- Does the SMSC module support sending emojis? HOT 5
- VoLTE_UEs HOT 3
- CoIMS sim card config has no effect HOT 6
- using latest rtpengine for hss-cx branch HOT 1
- VONR : SIP REGISTERING : 403 Forbidden - HSS User Unknown HOT 19
- VOLTE, INVITE create 408 Request Timeout HOT 14
- VOLTE: Unable to establish calls between two UEs using new PCSCF HOT 4
- Config for 30Mhz bw on 5G in gnb.yml HOT 5
- ./kamailio: Operation not permitted HOT 3
- The new version does not support calls from Xiaomi and Huawei devices, while the old kamailio version 5.3 supports them ! HOT 1
- ims/volte stops working after expiry of timers (4g setup) HOT 12
- Call dropped by rtp timeout and no response for sip bye HOT 13
- NAS is forcibly encrypted though NEA = NULL HOT 1
- IMS register fail for pcrf error log "AAASendMessage(): Can't find a suitable connected peer in the routing table" HOT 5
- ogs_gtp_xact_update_tx() failed HOT 6
- No IMS registration HOT 7
- fail to redirect logs to a specific file via rsyslog HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docker_open5gs.