The promise of the mobile phone lays in its capacity to keep people connected and engaged in various forms of dialogue. At engageSPARK our goal is to leverage this medium of communication to promote a dialogue that ultimately betters the social and economic status of our end users. In a previous post, we looked at the technical ecosystem that enables mobile phones to be so revolutionary. Today, we will examine, in plain, non-techy terms, the technical requirements of keeping people connected. That is, what needs to be in place when you send an SMS or make a voice call.
The Actors
There are several actors involved in delivering a message from one person to another using a mobile phone. The key ones of note for this post are the Mobile Network Operators (MNO), also referred to as “Telcos” or “Carriers,” Content Providers and Service Providers.
MNOs provide and manage the technical infrastructure that enable a mobile call to be made. This includes the cell phone towers/masts (also known as the base stations) and the SIM cards used in the phones. They also use their network infrastructure to provide Value Added Services (VAS) such as mobile money, which allows for the cashless transfer of money from one person to another. Before an SMS or voice call reaches its recipient, it goes through the MNO’s network and so without them it is virtually impossible to deliver a message. Example MNOs are Airtel, MTN, Orange, Verizon Wireless and Vodafone.
Content Providers (CP) are the middlemen of the mobile phone ecosystem. The expertise of MNOs typically lie in managing the network infrastructure they provide. Thus, they rely on CPs to provide the services (and content) that is available on the network. This ranges from mobile money services to alerts of sports scores to application stores. On the technical side, the CPs also play another important role. Most countries have more than one MNO in operation, thus to launch a truly universal, nationwide service, one would need to do business with each MNO. This is where CPs come in – they typically establish a relationship with each of the operating MNOs thus enabling you to work with one CP to launch your service on all the networks instead of dealing with all the MNOs directly.
Service Providers (SP) consists of application developers who need access to the MNO’s network to successfully deliver their services. This ranges from video game creators who want to sell their games in the app store of the MNOs to companies like engageSPARK who need access to the underlying network infrastructure to deliver high volumes of voice and SMS messages. In practice, service providers generate a large number of the content that Content Providers use.
The Technology of Connecting People
In the most common scenario, one person calls or sends an SMS to another person. In this case, the call or the SMS is first sent to the
closest base station of the MNO and then forwarded to their main exchange (remember this exchange – will refer to it later) which sends it on to the closest base station to the recipient and from there to the recipient’s phone. For a more in-depth technical write up how this message forwarding occurs, read Puneet Gupta’s how SMS works and have a look at this wonderful info-graphic that explains how mobile phone towers/masts work.
For SPs like engageSPARK, the scenario is a little different. At engageSPARK we need to be able to send high volumes of SMS and voice calls at any one time to multiple people, and sometimes to virtual phone numbers. This typically means we need a more reliable and high capacity connection to the MNO’s network to deliver the messages. Below I will describe some of the options available – I will separate out SMS options from voice options as each channel presents different challenges.
How SMS messages are delivered to the MNO network
There are two standard ways of sending an SMS to the MNO’s network for delivery.
Short Message Peer-to-Peer
The first is called the Short Message Peer-to-Peer (SMPP) protocol. As with most telecommunication messaging protocols, SMPP was first created to test functionality in telecommunication equipment, however it has evolved into a full blown messaging protocol.
With SMPP, the SP’s systems use the internet to connect to a main message exchange belonging to the MNO or CP. The SP will need to get an account with the owner of the message exchange and details for connecting to the SMPP gateway. For readers with programming chops there are several free libraries available for establishing a connection to an SMPP gateway.
Once the connection is established, SMPP supports two-way messaging, sender/caller ids, sending multiple SMS messages at once and scheduling. Since SMPP allows for a continuous connection with the message exchange, it is an ideal option for frequently sending large numbers of SMS to service subscribers.
HTTP API
The second method is to send an SMS using an HTTP request which is also done using an internet connection. This is akin to typing ‘http://www.google.com’ to get the Google homepage sent to your browser, only an SP’s system will send a link (e.g. http://www.example.com/?text=hello world&to=2335555555&from=my program) to the message exchange. The message center will then pull out the text of the message and the number to send it to and will forward the message as an SMS to the intended recipient.
With the HTTP API method, a continuous connection to the message exchange is not required. As and when it is required an SP’s system can connect and send between 50-100 messages with each request. This provides a lot of flexibility for designing applications.
SMPP vs. HTTP API
Deciding on which method to use depends on a couple factors. Generally, if you need to send a high volume of messages (e.g. 5000 or more messages a month), SMPP is a good choice. Otherwise HTTP API is an equally reliable option. Additionally, the HTTP API is a much simpler option to work with if you don’t have access to highly technical staff – the SMPP protocol is relatively complex and requires experienced eyes and hands to troubleshoot issues.
While SMPP is actively used in the internal MNO networks, it is slowly going out of fashion as a way for external service providers to connect to the MNO network – most CPs provide and encourage the use of HTTP API accounts. Additionally, several services such as Infobip and Nexmo provide HTTP API services that greatly simplify the process of sending and receiving bulk SMS messages.
How Voice calls are delivered to the MNO network
Similar to SMS, there are two main ways to connect to the MNO network to deliver a call.
ISDN PRI Connection
The first method is through a dedicated connection from the SP’s system to the MNO networks. This connection can be a wired one (via fiber cables) or wireless using a radio microwave connection between the two locations. Think of this as a telephone line between the message exchange and the SP’s system. The difference is that this telephone line can take up to 30 simultaneous calls at a time.
There are two main protocols that govern how messages are sent on T1/E1 lines: Signaling System 7 (SS7) and the Integrated Services Digital Network Primary Rate Interface (ISDN PRI). PRI is a subset of SS7 and generally less powerful: for example, PRI requires a direct connection to a message exchange to deliver a message while the SS7 protocol can connect to any messaging exchange in a mobile network without having direct access to that exchange. In a majority of cases, SS7 is used exclusively within the MNOs mobile network – MNOs convert SS7 to PRI for consumer use.
To make use of an ISDN PRI connection, the SP’s system needs an E1 card. This is like a modem – it allows a computer system to make and receive telephone calls. E1 cards can take more than one PRI line at a time, meaning you can increase the number of calls received and made by getting more PRI lines.
Session Initiation Protocol (SIP) Connection
Similar to the HTTP API option for SMS, the SIP method relies on sending messages using an internet connection. This is sometimes
referred to as Voice Over IP (VOIP) communications. With a SIP connection, the SPs system can receive and send call (and video) requests by connecting to a SIP gateway. To connect to a SIP gateway, the SP has to get a SIP address (a list of SIP address providers). SIP addresses are like email addresses which help to identify each SIP user (e.g. the format for a SIP address is sip:user@example.com). A key difference between a SIP address and an email one is that it is tied entirely to the owner and not the provider of the service (i.e. in SIP world you would be able to check , without any special setup, your Gmail email in Yahoo! Mail and vice versa).
With the SIP address, the SP calls the gateway and once the gateway receives the call request, it passes it on to another SIP gateway (using the internet) or it can transfer the call to an ISDN PRI line – the latter allows the SP system to call a mobile or landline number using an internet connection. This is similar to the way Skype Out allows you to call a mobile phone from your Skype client.
ISDN PRI vs SIP
SIP has quite a number of advantages over ISDN PRI, the most notable being cost. With the cost of only an internet connection, you can use SIP to send virtually free calls anywhere. ISDN PRI lines are expensive to setup and run – basically, apart from setup fees, each call costs the per-minute (or second) rate for the MNO. Additionally, ISDN PRI require more technical expertise to maintain. Read SIP Saver’s more detailed comparison of the two methods for more information.
It is important to note that in some countries it is illegal to send SIP calls generated outside the country to SIP gateways in the country without the proper authorization. This is because a set up like that would allow one to make international calls at the price of local calls. Another caveat for SIP calls is that you require decent bandwidth (i.e. internet connectivity) otherwise the quality of the voice call degrades as the bandwidth reduces. Also, it’s important to note that in most places only MNOs provide ISDN PRI connections and very few MNOs allow consumers to connect to their SIP gateways.
With all the options above, a service provider can choose to connect directly to the MNO or go through a CP. While a direct connection to the MNO is desirable it has its downsides:
1) You will need to work with each MNO to provide the service on their network if you want to control the price of the messaging and use features such as short codes.
2) Technical support is not great. This will vary from MNO to MNO, but generally the technical staff in MNOs are very busy dealing with overall network issues to give you the full and timely attention required to address your issues.
Summary
To provide the best service we can at engageSPARK, we will continue to explore the different ways in which we can keep people connected through the mobile phone. This post provided a non-technical overview of the technical requirements of sending and receiving a voice call or SMS to and from a client. If you have experience and/or questions about this topic please share them in the comments section below. As we gain more experience playing around with the various options we wish to share those experiences with the community as well.