Radius
Radius protocol usage for MO SMS authorization and charging:
- YateSMSC sends Access-Request
SMS authorize at OCS: send Radius Access-Request
- User-Name: MSISDN of subscriber beeing charged
- NAS-Port-Id: See config for format. May be used to detect direction (MO/MT SMS)
- Calling_Station_Id: SMS sender identity
- Called_Station_Id: SMS recipient identity
- CISCO vendor specific h323-remote-address(23): GT of node serving the subscriber beeing charged. May be used to detect roaming
- Request accepted: YateSMSC sends Accounting-Request
SMS charging: send Radius Accounting-Request User-Name: MSISDN of subscriber beeing charged
- Acct-Session-Id: same as the one in Access-Request
- Acct-Status-Type: Stop(2)
- SMS processing outcome: Acct-Input-Packets (MO SMS) / Acct-Output-Packets (MT SMS) will be set to 1 on success (SMS accepted/delivered) and 0 on failure
- CISCO vendor specific VSA: h323_call_origin(26): ‘originate’ (MO SMS), ‘answer’ (MT SMS)
- CISCO vendor specific VSA: h323-remote-address(23): GT of node serving the subscriber beeing charged. May be used to detect roaming
Configuration
Edit /etc/yate/smsc/yatesmsc.conf:
[general]
auth_mo_sms_ocs=yes
auth_mt_sms_ocs=yes
Edit /etc/yate/smsc/radius-custom.conf (create the file if missing):
[general]
enabled=yes
addr=<LOCAL-IP>
[nas auth_msg]
; Use Radius auth for MO/MT SMS
component=M[O,T]-SMSC
newcall=true
protocol=MAP
[nas acct_msg]
; Use Radius acct for already authorized MAP MO/MT SMS
component=SMSC
ocs_session_id=^.\+
protocol=MAP
[radius common]
; IP of Radius server, mandatory
server=<REMOTE-IP>
; Password if needed
secret=<password>
Edit /etc/yate/smsc/yradius.conf:
[msg]
; NAS Prompt service
add:Service-Type=7
add:NAS-Port-Type=5
add:NAS-Port-Id=Msg:${component$unknown}-${protocol$unknown}
add:3GPP-IMSI=${imsi}
[nas auth_msg]
; NAS for short message service authorization
rad_acct=no
rad_disc=no
route_type=msg
called=.\+
rad_ocs_session_id=yes
rad_authoritative=yes
rad_failure=reason
rad_server=common
rad_include=msg
[nas acct_msg]
; NAS for short message service accounting
route_type=msg
rad_auth=no
rad_disc=no
rad_server=common
rad_include=msg
add:h323-disconnect-cause=${cause_q931}
add:Cisco-AVPair+disconnect-text=${reason}
add:Acct-Delay-Time=0
add:Acct-Input-Packets=${inp_pkt}
add:Acct-Output-Packets=${out_pkt}
Sample Captures
Diameter Gy
- May be added using session based charging with units reservation
JSON API
- Custom JSON API can be defined