Charging interfaces of YateSMSC

Radius

Radius protocol usage for MO SMS authorization and charging:

Orange Dot

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
Orange Dot

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

File:radius mo sms auth ok.txt

Diameter Gy

Orange Dot Charging interfaces of YateSMSC

May be added using session based charging with units reservation

JSON API

Orange Dot

Custom JSON API can be defined

Charging interfaces of YateSMSC