SMSC – 30 years later

In December 1992 there was sent the first SMS. At that time there were several different vendors working on their first SMSCs. I was lucky enough to work later with some of the engineers involved. Anyways that is an ancient history now. Since that the SMS Service and the SMSC have become a must for every mobile network. Perhaps we can go trough the general SMSC network architecture, list some of the typical features and then to discuss the SMS evolution in 5G networks.

2G/3G SMSC Architecture

The SMSC was designed as an integral part of 2G mobile network, supporting several basic message flows, which are mostly valid even in 2022:

  • Person-to-Person (P2P)
  • Application-to-Person (A2P/P2A). This was a real game changer. People in late 90s were texting (and paying) as crazy to get new ringing tones, text-frames on their monochromatic displays or at least a weather forecast or bus schedule. The A2P is still a popular way how to create a significant wholesale interconnection and also valid for MIoT (Mobile Internet of Things). Last but not least we shouldn’t forget the importance of SMS in Two-Factor-Authentication (2FA).
  • Technical enabler: Over the Air OTA messaging for (U)SIM provisioning. OTA is still critical for many operators. Another example is an IP session wake-up, which might be a key technical enabler for some Machine Type Communication MTC/MioT applications.
Continue reading

VoLTE Online Charging – SMS

Today we will start with Online Charging, or Ro interface in our terminology. And because Online Charging is a bit more complex than Offline Billing, we’ll split it into several posts. In this first one we will take a look at so-call Direct-Debiting, which is used mainly for charging of SMS Service.

Perhaps from our Charging Overview you remember that we can use two different approaches to the Online Charging – Session based or Event based. SMS Ro Charging is using Event based mechanism. It is easier than the Session based and we will also need it later to complement the Session based Charging for the Voice service.

The SMS Charging architecture is standardized in 3GPP 32.274, the SMS online charging then uses the Credit-Control application as specified in TS 32.299.

Ro Reference Point for SMS

The Online Charging is triggered over Ro Reference point. It is up to a Mobile Operator if they will signal charging operations from IP-SM-GW, SMSC, SMS Router or any combination of these. Typically the charging requests are sent from SMSC only. For simplicity we will refer only to the SMSC in the following text. SMSC may either directly support Ro interface, or it can use CAP (CAMEL) protocol which is then translated to Ro by an Interworking Function (IWF) as described in 3GPP 32.293.

The SMS charging may use two different models:

  • Immediate Event Charging (IEC)


  • Event Charging with Unit Reservation (ECUR)

In this post we will rather focus on IEC, as the ECUR is more complex and in my personal experience it is less common than IEC. The ECUR principle is specified in TS 32.299.

Continue reading

SMS in 2G/3G

I know, I know – this is not really the Rich communication related stuff. However it is good to understand the roots of Instant messaging in 4G network. For us it is also important because of the IP-SM-GW Transport Level Interworking.

Originally the core network elements supported services. SMS service was one of them and very important one. The application server is called SMSC.

2G and 3G network architecture

2G and 3G network architecture

The main functionality of SMSC is to “Store-and-forward”. Basically the SMSC receives an SMS (MO-FWSM), stores it and acknowledges it back. Then it tries to deliver it. For that it needs to receive the routing information from HLR. If the delivery is not successful the message is scheduled for a retry.

The routing of MT message is done based on the information received from HLR. So firstly based on the message prefix we will route Send-Routing-Information-request (SRI-req) to a responsible HLR. HLR takes a look in its tables and finds out what MSC is currently handling the recipient. The address (Global Title) is returned as Network-Node-Number (NNN). It is possible to return both MSC and SGSN address and the preference how to deliver the message.

SMSC flow

SMSC flow

There some more operations as AlertSC and RMDS which have to be supported. Alert-Service-Centre message is used to trigger the SMSC to deliver messages of previously Absent Subscribers. Report-SM-Delivery-Status is sent by SMSC to update the information about subscriber in HLR. Anyway both the architecture and the massage flows are much simpler than in case of IMS.

SMS Flow

SMS Flow


In IMS we are used to apply services for both – originator and recipient. When we look at the original SMSC flow, we see that we can apply the services only for the originator. Around 2006 mobile operators realized that they are loosing a big money and came a concept of homerouting. (Actually technically it was present for a few years already as so called Foreign Subscriber Gateway – FSG.)

The idea was simple. Instead of direct delivery to the recipient’s MSC, the SMSC of the originator (SMSC-A) will forward the message to the recipient’s SMSC (SMSC-B). SMSC-B will apply the services for the recipient and will try to deliver the Short Message.

This should be done in a transactional mode and the SMSC-A is still responsible for the retries. That’s because the SMSC-A needs to know the delivery result. Hence it can generate the notification ‘delivered/deleted’.



Note, that the SMSC-B acts – from the SMSC-A point of view – as both, HLR and MSC. That means that the GT of SMSC-B has to be preconfigured for SRIs on the SMSC-A.

Btw. The homerouting can introduce very nice loops in the network (which some operators intentionally misused ;)).

Not all the operators use this call flow. Also mainly in the North America mobile operators prefer SMPP protocol instead of Sigtran in case of transfer between networks (SMSC-A to SMSC-B).

In the 4G of networks we reuse the homerouting scenario and the role of SMSC-B is played by IP-SM-GW.

Related posts: