Hello everyone,
I have previously set up Kamailio 5.7.2 IMS configuration (including P-CSCF, S-CSCF and I-CSCF) and successfully made voice calls. Now I'm trying to set up an IP-SM-GW AS using the example here (with some tweaks): https://github.com/kamailio/kamailio/blob/master/src/modules/smsops/examples... Currently I'm trying to send the SMS using a SIP software client (MicroSIP).
The problem is, while the SMS is received at the AS and stored in the database, it does not send it to the callee.
While troubleshooting the problem, I've found that reg_fetch_contacts("location", "$var(uri)", "caller") in route[SEND_SMS] cannot find the contact which was added by reginfo_handle_notify("location") in route[NOTIFY] in the usrloc database. By tracing the problem more, I've found that reginfo_handle_notify (when handling reg event NOTIFY) adds the complete AoR in the "username" field in the location table, e.g. as "bob@ims.mnc001.mcc001.3gppnetwork.org". But reg_fetch_contacts (when trying to send the SMS) looks up the table using only the user part in the "username" field, e.g. "bob". So it cannot find the callee contact and the configuration assumes the callee is still not registered; so it tries to send out a SUBSCRIBE every time it tries to send an SMS to the callee, instead of actually sending the SMS.
Does anybody have any idea on what could have caused this inconsistent behavior between reginfo_handle_notify and reg_fetch_contacts?