I got an email the other day asking a simple question:
How do I know if a subscriber is VoLTE roaming or not when they send an SMS to charge for it?
My immediate reaction was to look at the SIP headers, P-Access-Network-Info will tell you where the subscriber is located, end of.
![](https://nickvsnetworking.com/wp-content/uploads/2024/01/iOS-SMS-Access-Network-INfo.png)
Right?
Well not quite, this will tell the SMSc the location of the subscriber sending the SMS. If the PLMN in the P-Access-Network-Info != the home PLMN, the sub is roaming.
But does this information get passed to the OCS / OFCS?
The SMSc uses “Event based charging” to perform credit control, so let’s have a look at what AVPs are present in the Credit Control Request from the SMSc:
![](https://nickvsnetworking.com/wp-content/uploads/2024/01/SMSc-Credit-Control-Request-1024x715.png)
Hmm, the SMS-Information AVP (2000) contains a bunch of information about the SMS being sent, but I don’t see anything about the location of the sender in there.
Originator-Interface is just set to “SIP”, of course in a 2G/3G roaming scenario the Originator-SCCP-Address would be that of the Visited PLMN, but for us it is our SCCP address.
Maybe the standard allows for an additional optional AVP in the SMS-Information-AVP we’re missing? Let’s check TS 32.299:
![](https://nickvsnetworking.com/wp-content/uploads/2024/01/TS-32.299-SMS-Information-AVP-1024x602.png)
Nope.
So how to deal with this?
While the standards aren’t totally clear on this, we added an IMS-Info AVP and inside that populated the Access-Network-Information directly from the SIP header, and then picked that off inside our OCS in order to apply the correct rules.
Good info
Hi,
Why not to add 3GPP-User-Location-Info or (PS-Information) or IMS-Visited-Network-Identifier (IMS-Information)? IMO mainly depends on the SMSC, what AVPs are enabled. 3GPP 32.274 in 6.4 counts with 3GPP-User-Location-Info, however IMS-Information – if available, should be the option too. (And yes, some SMSCs enable these parameters.)