Message exchanges can take the form of instant messages or SMS messages or both. As a rule, instant messaging is provided free of charge, while every SMS is authorized and users are charged per message.
The combination of instant messaging and SMS messages allows a user to send either type of message using the same IM application.
Consider the following example:
A user and his friend are both subscribed to an instant messaging service. The user enters his friend’s actual phone number 1337225604 (T-Mobile network), and specifies it as a "Mobile" contact type. Then he enters his friend’s VoIP number 8789952103 and specifies it as a "SIP" contact type in his instant messenger’s contact list. Based on the user’s selection, the IM application stores the number 1337225604 as 1337225604@sms and the number 8789952103 as 8789952103@sip.
The user sends an instant message to 8789952103. When the user sends a message to the number 1337225604, he is informed that this message will be sent as an SMS and that he will be charged for it.
The instant messenger determines what type of message to send. Therefore, the IM application is responsible for distinguishing types of contacts and delivering the correct contact information to PortaSIP.
In the case of instant messaging, messages travel within your network (on net messaging) via the SIP protocol; in SMS exchange, messages are sent directly to SMS aggregators via the SMPP protocol.
And how will PortaSIP know which type of message it is in order to process and deliver it accordingly? The section below provides a description of message delivery specifics.
Message delivery specifics
The selection of the transport protocol for message delivery is defined by the information contained in the To: header of the MESSAGE request. This information is delivered in the format sip:<number>@<domain> (e.g., sip:firstname.lastname@example.org for instant messages and sip:email@example.com for SMS messages).
When a user sends a message, the MESSAGE request arrives at PortaSIP. Based on the domain name contained in the To: header of the MESSAGE request, the system defines how the request should be processed:
- The system selects a corresponding service policy by matching the domain name taken from the To: header with the match_pattern value of the domain service policy.
- The selected service policy defines the transport protocol (SIP or SMPP), routing, and billing parameters.
- Based on the service policy configuration, PortaSIP delivers the message via SIP protocol or converts it into an SMPP message and delivers it via the SMPP protocol.
For the instant messenger to pass the correct contact information to the PortaSIP, the contacts in the instant messenger contact list must be stored with corresponding domains, and PortaBilling domain service policies must be configured accordingly to match these domains.
To illustrate, let us use the following domains:
- sip.example.com for instant messaging.
- sms.example.com for SMS delivery.
The instant messenger contact list is then represented as follows:
- <number>@sms – a message to this contact will be sent as an SMS.
- <number>@sip – a message to this contact will be sent as an instant message.
This type of contact representation must be supported by instant messenger.
Now you have a general idea about contacts formats. You can either customize the instant messenger or develop your own IM application to store users’ contacts according to the templates described above.
The configuration of PortaBilling can be found in the Unified PortaSwitch Handbook collection.
Providing instant messaging and SMS services as a single messaging solution makes you more competitive in the telecommunications market.