IES85146Y1 - Loop detection/prevention for sms messages - Google Patents
Loop detection/prevention for sms messagesInfo
- Publication number
- IES85146Y1 IES85146Y1 IE2007/0354A IE20070354A IES85146Y1 IE S85146 Y1 IES85146 Y1 IE S85146Y1 IE 2007/0354 A IE2007/0354 A IE 2007/0354A IE 20070354 A IE20070354 A IE 20070354A IE S85146 Y1 IES85146 Y1 IE S85146Y1
- Authority
- IE
- Ireland
- Prior art keywords
- message
- service
- network
- subscriber
- delivery
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title description 17
- 230000002265 prevention Effects 0.000 title description 2
- 230000001276 controlling effect Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 23
- 230000011664 signaling Effects 0.000 description 18
- 235000009808 lpulo Nutrition 0.000 description 16
- 230000001960 triggered Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 235000008694 Humulus lupulus Nutrition 0.000 description 7
- 229910015828 MSa Inorganic materials 0.000 description 4
- 230000000875 corresponding Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 229920000096 Plastarch material Polymers 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 101700051867 hofC Proteins 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical Effects 0.000 description 1
- 229920003259 poly(silylenemethylene) Polymers 0.000 description 1
- 230000000644 propagated Effects 0.000 description 1
Classifications
-
- H04L12/5855—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/12—Messaging; Mailboxes; Announcements
- H04W4/14—Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
Abstract
ABSTRACT A message service entity of a first mobile operator network receives an SMS message and inspects delivery trail information associated with the received messsage. The message service entity controls invocation of a message handling service for the received message based on the inspected delivery trail information. The delivery trail information can be carried with the message and the step of inspecting delivery trail information associated with the received message can comprise inspecting the delivery trail information carried with the message. Alternatively, the message service entity stores delivery trail information for mcsssages previously processed by the message service entity, and the step of inspecting delivery trail information associated with the received message comprises using an identifier in the received message, or derived from the received message, to access the stored delivery trail information.
Description
LOOP DETECTION/PREVENTION FOR SMS MESSAGES
Field of the Invention
This invention relates to a system and method for managing SMS messages in a
network which supports value added message-handling services for subscribers.
Background to the Invention
The Short Message Service (SMS) is a popular way for users to communicate with one
another. In the simplest form of operation, a short text-based SMS message ofliinited
size is sent from a first user, the message is routed via a Service Centre (SC) and is
delivered to a second user. The message can be sent between users of GSM/UMTS
mobile phones or at least one of the users can use a landline phone having SMS
capability. In addition, there are various inter-working services which convert between
SMS and voice, facsimile, email or web-based formats. A range of external
I5 information providers use SMS to deliver information to end—users, such as news.
weather reports and traffic reports.
A range of value added message-handling services are now available for SMS users.
These so—called ‘smart services’ can provide features such as: automatically diverting
an SMS to another user before the original recipient receives the SMS (Divert Service);
automatically copying an SMS to another user (Copy Service); and sending an
automated response to the originator of a short message (Auto-response Service). One
network architecture for implementing smart services to SMS subscribers is described
in International Patent Application WO2006/040749. In this application, a Smart
Services Control Node (SSCN), also known as an SMS Router, transparently intercepts
:1 delivery attempt of an SMS message and implements a service based on a
subscriber‘ s preferences.
One problem that can occur with providing these value added message-handling
services which send or generate an SMS message based triggered on the event of an
original SMS message termination attempt (such as diverting a message, copying a
message, or auto-responding to a message) is that an excessive number of message‘
transaction hops can occur. A single message can be bounced between a chain of
different users, who each have enabled a message-handling service. A single original
message can give rise to multiple other messages, which each propagate through the
network, or between networks. If a group of subscribers have enabled message-
handling services which forward messages, it is possible for a continuous looping ot‘ a
message to occur between the group ofsubscribers. These loops cannot be detected by
existing networks.
few examples of the problem will now be described. A first example, shown in
Figure it illustrates how use of the copy service can cause a loop to form. Subscriber
A has activated a copy service, with user B’s mobile number as the “copy-to-
destination“. The copy service, for the purpose of this example, is a service where one
user can automatically have a copy of some orhyall short messages he receives sent to
another mobile user. Mobile user B can be a subscriber ofthe same mobile network as
the subscribing user A or mobile user B can be a subscriber of a different mobile
network.. User B has also activated a copy service, with user C’s mobile number as
the “copy—to—destination”. User C has also activated a copy service, with user A‘s
mobile number as the “copy—to—destination”. When user D sends a message 2 to
subscriber A. then the copy-service that subscriber A has activated will automatically
send 3 a copy of that message to user B. When user B receives the message, the copy
service that user B has activated will automatically send 4 a copy of the message to
user C. Similarly, when user C receives the message, the copy service that user C has
activated will automatically send 5 a copy of the message to subscriber A. Thus, a
complete loop has formed and messages will continue to propagate 6 around the loop.
A second example illustrates how use of the divert service can cause a loop to form.
Subscriber A has activated a copy service, with user B’s mobile number as the “divert-
to" destination. The divert service, for the purpose of this example, is a service \vhere
a subscriber A chooses to divert some or all of his short messages to another mobile
user B. The said mobile user B can be a subscriber of the same mobile network as the
subscribing user A or the said mobile user B can be a subscriber of a different mobile
network. User B has activated a divert service with user C’s mobile number as the
“divert—to" destination.. User C has activated a divert service with user A*s mobile
number as the “divert-to” destination. If user D sends a message to subscriber A. then
the message is diverted to user B. Before user B’s device receives the message it is
diverted to user C. Before user C’s device receives the message it is diverted to
subscriber A and hence the beginning ota continuous loop.
A third example illustrates how use of the copy service can cause a loop to form for a
subscriber A with multiple devices X1, X2 and X3. Each device X1, X2 and X3 has a
separate mobile number or MSIDSN number. Subscriber A has activated a copy
service, with all devices as the “copy-to” destination. The copy service, for the
purpose of this example, is a service where a subscriber A chooses to copy some, or
all, of his short messages terminated to one device (X1, X2 or X3) to all his other
devices. If user D sends a message to subscriber A’s device X], then the message is
automatically copied to devices X2 and X3. Beiore device X2 receives the message it
is automatically copied to devices X1 and X3 and hence the beginning ofa continuous
loop.
A fourth example, shown in Figure 2, illustrates how use of the divert service can
cause a loop to form. Subscriber A has auto—response service. The auto—response
service, for the purpose of this example, is a service where an automated response is
sent to the originator of any short message sent to the subscriber. User B also uses the
auto—response service. When subscriber A sends user B a message 8, an auto-response
is automatically sent from user B to subscriber A indicating “Out Of The Office" tor
example. When subscriber A receives the auto—response message, an auto-response is
automatically sent from subscriber A back to user B and hence the beginning of a
continuous loop.
These examples show loops resulting from the use of the same service by each user.
llowever, loops can also result from a mix of services, such as subscriber A has
activated the auto-response service, user B has activated the copy-to service to copy a
received message to user C, user C has activated the message divert service to divert
received messages to subscriber A. In use, user B sends a message to subscriber A.
An auto—response message is automatically sent to user B. A copy ofthe auto—response
message is then automatically sent to user C — this results in the automatic divert otthe
auto—response message to subscriber A, which then generate an auto-respond message
to user C, who diverts to subscriber A and hence the beginning ofa continuous loop.
The above are examples only: the problem ofloops can arise with other services where
the service automatically forwards a message, or generates a new message.
'l‘he present invention seeks to reduce the number of messages that are propagated
through a network due to subscribers using message-handling services.
At least one aspect of the present invention seeks to limit, or avoid, delivery loops
between subscribers which can occur when value added message-handling services are
used by multiple subscribers.
_;
At least one aspect of the present invention seeks to limit, or avoid, delivery loops
between subscribers which can occur when value added message—handling services are
used by subscribers ofdifferent operator networks.
Summary of the Invention
A first aspect ofthe present invention provides method of processing SMS messages at
a message service entity of a network, the network comprising a plurality of
subscribers and the network supporting message-handling services for at least some of
the subscribers which forward a message to another subscriber, the method
comprising:
receiving a message;
inspecting delivery trail information associated with the received message; and,
controlling invocation of a message-handling service for the received message
based on the inspected delivery trail information.
In one embodiment, the delivery trail information can be carried with the message and
the step of inspecting delivery trail information associated with the received message
can comprise inspecting the delivery trail information carried with the message. An
advantage of this embodiment is that it can avoid the need to store state at message
service entities along the delivery trail.
ln another embodiment, the message service entity stores delivery trail information for
messages previously processed by the message service entity, and the step of
inspecting delivery trail information associated with the received message comprises
using an identifier in the received message, or derived from the received message. to
access the stored delivery trail information. An advantage of this embodiment is that it
requires little. or no, cooperation between network operators, as information is stored
at each network operator. A message only needs to carry an identifier which can be
referenced to state stored at a network entity. One embodiment avoids the need to
carry a message ID, as it calculates an identifier based on existing fields of the
message.
The message-handling services may forward a received message to subscribers of the
same mobile operators network, or to subscribers of another mobile operators
network.
Advantageously, the identifier is a globally unique message identifier, which further
improves the performance when messages are delivered between different network
operators.
Advantageously, the list of subscribers that the message has been forwarded from is
inspected and invocation ofthe message-handling service is prevented {or a subscriber
which appears in the list of subscribers that the message has been forwarded from.
This can prevent a loop from occurring in the delivery trail between subscribers.
Advantageously, the method uses stored rules which specify a relationship between
services that have been applied to a message and message-handling services which can
be invoked. The rules are used to decide whether a message-handling service is
invoked. These rules can prevent a combination of services being applied to a message
which are likely to generate a large number ofmessages, or which are likely to cause a
loop to occur.
Advantageously, a particular message can be identified when it is subsequently
received by the same network entity which had previously handled the said inessage,
which is indicative ofa potential loop in the delivery trail having occurred. A message
can be compared with a list of identifiers of messages previously processed by the
network entity. The identifier can take the fonn ofa unique message identifier carried
by a message, or a message can be identified based on one characteristic tield, or a
combination ofcharacteristic fields. within the message.
Various ways are described for associating the delivery trail information with a
message. These include: storing the delivery trail information as hidden text within the
message: storing the delivery trail information in the UserDataHeader (UDI-l) header of
the message; storing the delivery trail information in an extension container of a
Mobile Application Part (MAP) operation.
The additional information that is added by the methods described above can be used
in a proprietary manner solely by a first netvvork which generates the delivery trail
information, The first network can store the delivery trail information for it’s own use,
or it can add the delivery trail information to the message and inspect that information
when the message is received, again. by the first network. For example, delivery trail
information is associated with a message using one of the techniques described above
and, upon receipt of a message, the message is inspected to check if it includes the
additional information. If it does, the first network takes action based on this
information. In this case, a hop count >=l will indicate that the first network has seen
the message before and that, therefore, the message is likely to form part of a looped
delivery trail. Any information within the message indicating services that have been
applied to the message will indicate services applied by the first network.
Consequently, a message which is marked as having already been diverted is not
diverted again (high probability of a loop.)
Alternatively, delivery trail information can be used, and updated, by multiple network
operators. such that each network operator updates the delivery trail information (cg.
by incrementing the hop counter or by setting appropriate bits in the delivery trail
information) to indicate which services that network it has applied to the message.
Another aspect of the invention relates to methods of processing messages which are
used locally within the network of a single operator and provides a method of
managing SMS messages in a network comprising a plurality of subscribers. the
network supporting message—handling services for at least some of the subscribers
which can be enabled to forward a message to another subscriber. the method
comprising:
determining a delivery trail between network subscribers that will be followed
by an SMS message;
determining whether the delivery trail will follow a loop between network
entities or whether a predetermined limit of service forwardings will be applied to the
lT]CSSZlgC.
The method can be performed when a subscriber makes a request to set up a new
message—handling service. Alternatively, the method can be performed when a
message is received for a subscriber, and a ‘message-handling service needs to be
invoked for that subscriber (i.e. at service execution time). Advantageously, the
method further comprises receiving a request to enable a new message-handling
service for a subscriber, and performing the method in response to receiving that
request. If it is determined that the delivery trail will follow a loop, or the
predetermined limit of forwardings will be exceeded, the request to enable a new
message-handling service is refused. Advantageously, the method comprises receiving
a message for delivery to a first subscriber, and performing the method in response to
receiving that message. Ifit is determined that the delivery trail will follow a loop, or
the predetermined limit of message forwardings will be met or exceeded. the message
is delivered to the first subscriber and the message-handling service of the first
subscriber is not invoked for that message.
The functionality described here can be implemented in software, hardware or a
combination of these. The invention can be implemented by means of hardware
comprising several distinct elements, and by means of a suitably programmed
computer. Accordingly, another aspect of the invention provides software for
implementing the method.
It will be appreciated that software may be installed on a network entity at any point
during the life ofthe equipment. The software may be stored on an electronic memory
device, hard disk, optical disk or other machine-readable storage medium. The
software may be delivered as a computer program product comprising code which is
tangibly embodied on a machine—readable carrier or it may be downloaded to the
network entity via a network connection.
Brief Description of the Drawings
Embodiments of the invention will be described, by way of example only with
reference to the accompanying drawings in which:
Figure 1 shows a first example of a delivery loop arising from a message-handling
service (a copy to service);
I17
Figure 2 shows a second example of a delivery loop arising from a message—handling
service (an auto-response service);
Figure 3 shows the typical messaging networks of two network operators;
Figure 4 is a flow diagram oflogic performed by a network entity to process 2: received
message which carries delivery trail information;
Figure 5 is 21 flow diagram of logic performed by a network entity to process a received
message which stores delivery trail information about messages;
Figure 6 is a call flow diagram for delivering an SMS message in which signalling
between network entities uses additional information in a UDH header;
Figure 7 is another call flow diagram for delivering an SMS message in which
signalling between network entities uses additional information in an expanded UDH
header;
Figure 8 is a call flow diagram for delivering an SMS message which uses MAI’
signalling between network entities to carry additional information;
Figure 9 shows a way of generating a unique ID for a message based on fields ol‘ the
message;
i\)
(J:
Figure 10 is a call flow diagram for delivering an SMS message which uses the method
shown in Figure 9;
Figure l l is a ilow diagram of logic performed by a network entity to follow a delivery
trail olia message;
Figure 12 is a call flow diagram for delivering an SMS message which uses SMPP
signalling between network entities to carry additional infonnation.
Detailed Description of the Drawings
Figure 3 shows an example of a network in which smart services can be applied to
SMS messages. This network is described ‘in detail in the aforementioned
WO2006/040749. Figure 3 shows a first operator network 10 connected to a second
operator network 20. The first operator network 10 comprises a Mobile Switching
Centre (MSC) 11, a home location register (IILR) 12 and an associated Short Message
Service Centre (SMSC) l3, all of which are connected to a signalling routing node 14.
The second operator network (20) comprises a home location register (I--ILR) 22. a
Short Message Service Centre (SMSC) 23, 21 Mobile Switching Centre (MSC) 26, all
connected to the signalling routing node 21. The second operator network (20) also
comprises a Smart Service Control Node (SSCN) 24 and an intelligent signalling
routing node (ISR) 25. The intelligent signalling routing node 25 is connected to a
signalling network at the signalling routing node 21. The signalling routing node 25 is
capable of routing messages to the SSCN 24 and the HLR 22. Signalling routing
nodes 14, 21 in the two networks 10, 20 are connected via a signalling network 15
which typically uses Signalling System #7 (SS7).
in Figure 3, network 20 is shown as the home operator network of a particular
subscriber and network 10 is another operator’s network. In Figure 3 the elements of
network 10 are preceded by an ‘F-‘ to indicate that they belong to a ‘foreign’ operator.
The term ‘foreign’ does not necessarily mean that network 10 is overseas. Network 10
could be located within the same country, or a different country, compared to network
As an example 01‘ using this network. consider a user sends 21 SMS message front it
device (cg. a mobile telephone) in the first operator network 10 to a device in the
second operator‘ network 20. The SMS message delivery is managed by the SMSC 13
associated with the sender. The SMSC 13 initiates a message delivery attempt by
sending a location query to the HLR 22 associated with the second device.
Tlris lll,R query is transmitted over the signalling network 15 to the second operator
network 20 via the signalling routing nodes 14, 21, 25. The Intelligent Signalling
Routing node (ISR) 25 intercepts the inbound delivery attempt and routes it to the
Smart Services Control Node (SSCN) 24. The SSCN 24 examines the inbound
delivery attempt to determine whether Smart Services need to be invoked or applied to
the SMS message. Ifa Smart Service message is required for the message the SSCN
modities the location parameter of the inbound delivery attempt, for example
modifying the HLR query response, which is returned to the SMSC 13 in the first
operator's network. The modified value is such that the SMSC l3 in the first
operators network 10 delivers the actual message to the SSCN 24. In this regard the
SSCN 24 is acting as the serving MSC towards the SMSC 13 in the tirst operators
network 10. The Smart Services associated with the subscriber to the second network
are executed by a Smart Services Application 27. The Smart Services Application
27 can reside on the SSCN 24, or on a separate network server. The network entity
shown as a Smart Services Control Node (SSCN) 24 is also called an SMS Router and
that term will be used hereafter.
A non—exhaustive list of example Smart Services is: auto ‘on vacation‘ response,
copy/divert to e—mai], malicious content filter, legal interception of SMS messages for
law entorccment, copy to messages to an alternate destination, divert messages if it is
not reachable, information for outbound roamers, group messaging or personalized
short codes. Once a Smart Service is considered to be applicable to the message, the
SMS Delivery Attempt is re-routed via the SMS Router for Smart Service handling.
The SMS Router either executes the Smart Service logic (e.g. s "copy to email") on the
SMS Router locally or requests a separate system to execute the Smart Service logic.
Depending on the Smart Service logic response, the message deliver attempt may (i)
proceed onwards to the recipient device, eg. copy to lnbox smart service or (ii)
terminate the message successfully, e.g. divert to lnbox smart service or (iii) terminate
unsuccessfully, e.g. SMS barring smart service or (iv) terminate lo unsuccessfully with
a temporary problem, e.g. Prepaid charging smart service where message recipient
does not have enough balance. All of these actions are standard procedures that can be
invoked by the network when handling the delivery of an SMS message to a recipient
device. The entire process is transparent to the SMSC 13, that is no changes need to be
made to the SMSC l3 or no new special interfaces need to be configured or
implemented at the SMSC 13. As far as the SMSC 13 is concerned the message
delivery is being attempted towards the subscriber using the standardized procedures
(e.g. GSM Mobile Application Part / GSM 03.40 SMS) - the SMSC 13 is not aware
that any smart service logic processing is being executed.
Various ways of controlling message—handling services will now be described.
Fmbodiinents of the present invention provide ways of allowing a network entity to
reduce the number of unnecessarily forwarded messages, or to check whether invoking
a service on behalf of a user will cause a loop to occur. The methods work in one of
two ways:
(i) delivery trail information is added to a message by a network entity and
subsequently checked and updated by network entities that subsequently receive the
message (including the same network entity which first added the information);
(ii) a network locally stores (caches) delivery trail information for a message
when processing the message. This information is checked if the message
subsequently returns to the same network entity.
Figure 4 shows the general methods which a message—handling network entity can
perform for the first option (i) above. Firstly, at step 60, the entity receives an SMS
message for a subscriber who has requested a message—handling service should be
invoked. The message can be received from a subscriber within the same operator‘s
network, or from a subscriber of another operator’s network. Delivery trail
information in the message is inspected. As described below, some examples of the
delivery trail information are: a list of services that have already been applied to the
message, a hop counter (indicating the number of times the message has already been
forwarded‘) or a list of subscribers that the message has so far been forwarded between.
The method proceeds to follow one of the branches 61, 65, 67, depending on what
information the method makes use of. At step 61, the method inspects the list of
services that have already been applied to the message. The entity may use a set of
rules to decide whether the new service should be invoked, based on what services
have already been applied to the message. lfthe rules indicate that the service should
be invoked, the method proceeds to step 63 where the service is applied to the message
and the delivery trail information in the message is updated so that other network
entities can determine what services have been applied. If the rules indicate that the
service should not be invoked. the method proceeds to step 64.
At step 65, the hop counter is inspected. At step 66, the hop counter value is compared
to a threshold value indicating the maximum number of hops that are pemiitted before
services are inhibited. Ifthe maximum numberwdfhops has been exceeded, the method
proceeds to step 64 and the service is not invoked’. If the maximum number of hops
has not been exceeded, the method proceeds to step 63 and the service is applied to the
message and the hop counter in the message is updated.
At step 67, the subscriber list is inspected. At step 68, the method checks whether
invoking the new service would cause the message to be forwarded to a subscriber who
already appears in the list and, therefore, would cause a delivery loop. lfa loop would
occur. the method proceeds to step 64 and the service is not invoked. If a loop would
not occur, the method proceeds to step 63 and the service is applied to the message.
The subscriber list is updated.
If another network operator who receives the message understands the delivery trail
information, they can similarly inspect and make use ofthe delivery trail information.
and update the delivery trail information. If another network operator who receives the
message does not understand the delivery trail infonnation, they will simply ignore the
delivery trail information and will not update the information. In a simplest case, a
single network operator adds the delivery trail information to each message which it
sends. and inspects each received message to check if it contains the delivery trail
information.
Figure 5 shows the method performed by a message—handlirtg network entity to
achieve the second option (ii) above. The message—handling network entity stores
delivery trail state information for each message processed by that entity. alongside a
message II) for each ofthose message. The message ID corresponds to a message ll)
carried by it message. Firstly, at step 70, the entity receives an SMS message for £1
subscriber who has requested a messagc—handling service should be invoked. The
message can be received from a subscriber within the same operator’s network. or
from a subscriber of another operator‘s network. At step 71 the message ID in the
received message is checked against a stored list of message IDs. Ifthe network entity
has no corresponding ID in it’s list, then it indicates that the network has not yet
processed that message and so there is no potential for a delivery loop. Thus, the
method proceeds to step 72 and permits the service to be invoked. The entity creates
delivery trail state information which it stores locally. The state information can be
stored in any suitable form of storage, such aslRAM, Disk. Database (cg. store 28,
Figure 3) etc. This state information can comprise the (global) message ID, the
telephone number of message recipient and optionally current time—stamp and other
contextual information. Returning to step 71, ifthe network entity has a corresponding
II) in it’s list. then it indicates that the network has previously processed the same
message and there is a possibility that a delivery loop will occur if the new service is
invoked. At step 73 the network entity checks the stored state information for that
message ID. At step 74 the entity determines ifthe intended message recipient (i.c. the
user who will receive the message if the service is invoked) has previously been a
recipient of that message. If the state information indicates that the intended message
recipient has already been a recipient of the message, a delivery loop is about to occur.
The method proceeds to step 76 and does not apply the new service. Returning to step
74, if the state indicates that a loop will not occur, the method proceeds to step 75 and
invokes the service. The stored state is updated to refleet the new service just invoked
for the message.
Various options for carrying the delivery trail information, or a message ID, with a
message will now be described.
Hidden Text Characters Method
In this method, a network entity responsible for executing a smart service (eg. SMS
Router 24 or SS App 27) adds hidden text to the beginning ofa short message that is
being copied/diverted/auto-responded. The hidden text is sent within the body of the
text message and is hidden by adding the (carriage return) character directly
alter the text such that, when a terminal displays the message, the proprietary text is
overwritten and is not displayed to a user. The character should cause the cursor
on the terminal display to immediately return to the beginning ofthe line and to display
the remaining text carrying the real message, thus overwriting the ‘hidden text’
characters. While the character is preferred, any other character which has the
same effect as the character can also be used.
The hidden text can be used in a way which is known both by the network entity
creating the hidden text and the network entity responsible for checking tor, and acting
upon, the presence of the hidden text. One example of using hidden text is to use a
single ASCII character of hidden text. The bi-tiary bits forming this ASCII character
can be allocated as follows:
Bit 7 reserved for future use
Bit 6 indicates message is/was an auto-response message
Bit 5 indicates message is/has been diverted
Bit 4 indicates message is/has been copied
Bit 3 — O hop counter — number of smart services that have copied
diverted or auto-responded (max value 15)
It will be appreciated that this is one example of how the bits of a single ASCII
character can be allocated and that there are many other possible schemes for using
hidden text. Also, the method can use two or more ASCII characters followed by the
character. Additional ASCII characters can be used to carry one or more oi’:
0 a message identifier which will allow a message sent by a first network to
be identified if it is subsequently redelivered to the first network by a
looped delivery path;
0 a list of subscriber IDs that the message has been forwarded between, ie, a
delivery trail.
Although the additional information added to the message is hidden from a user, it
does form part of the SMS message, and uses some of the characters that would
otherwise be available to a user to compose a text message. Therefore. it is desirable
that the amount of hidden text should be kept to a minimum.
'l‘he hidden text can be used in a proprietary manner by the first network.
/\ltcrnativcl_v, different operators can cooperate to use the hidden text in a consistent
manner, with each network incrementing the hop counter (bits 0-3) and adding to the
list oliscrvices that have been applied to the message (bits 4-6).
When a network entity (SSCN, SMSC. SS Application) receives a message tor which a
service is to be invoked, the network entity:
checks if the 2"d character of the text is - this is used as a blunt
mechanism for detecting if loop detection hidden text is present.
it‘ the character is present in this position, then the hop-counter is
checked and if above a threshold value 15) then the message is not copied
forwarded or auto—responded. Interactions between services are also checked.
For example, rules can be set to: not divert or copy any auto-respond message;
not auto-respond to messages that are copied or diverted; not divert any
message which has previously been diverted. If the hop counter is below the
threshold value, the hop counter value is incremented (bits O—3), the values oi‘
bits 4-6 are copied and updated to reflect the service that has just been applied
to the message.
if the is not present then the network entity cannot check if a loop will
occur or if the number of hops has been exceeded. However, it inserts hidden
text plus the at the beginning of the new message before copying,
diverting or auto-responding. In this manner, any network entities which
recognise the meaning of the hidden text can inspect the hidden text.
This method is advantageous as the body of text should always be forwarded.
irrespective of what inter—network protocols are used between two network operators
(SMPP, GSM MAP, ANSI-41 MAP, etc), and irrespective of what type of wireless
technology the terminals use (GSM, CDMA ete.). since the ASCII values of the text
Iield are common.
Basic UDH method
3GPI’ 23.040 describes the encoding of short messages. Part of the encoding is the
User Data Header. which includes a number of Information Element Identifiers (IISI).
to
U:
llils in the range C0-D0 are reserved for Short Message Service Centre proprietary
uses. Sections 9.2.3.23 — 9.2.3.24 of 3Gl’P 23.040 describe the UD11 header.
This method carries information within the User Data Header (UDH) of short
messages which can be used to detect the presence of loops, or an excessive number ot‘
forwardings. The information can mark a message as being (or having previousl_v
been) diverted. copied or auto—responded.
In an embodiment ofthis method, a non-reserved 1E1 value is used to carry the delivery
trail information. Advantageously, one ofthe IE1s in the range C0—D0 is used although
any non-reserved IE1 value could be used. One example way of coding the IE1 octets
Octet l IE1 value xx [Loop Detection]
Octet 2 IE1 length (set to 1 for now but could be expanded)
Octet 3 Bit 7 for future use
Bit 6 indicates message is an auto-response inessagc
Bit 5 indicates message is/has been diverted
Bit 4 indicates message is/has been copied
Bit 3 ~ 0 hop counter — number of smart services that have
copied, diverted or auto—respondcd
(max value 15)
Octet 4 etc. for future use — can be used to indicate other as yet defined smart
services that have been invoked.
When a copy—to, divert—to or auto—response smart service is invoked on a message, the
network entity:
checks if the Loop Detection IE1 is present;
if it is present, then the hop—counter (bits 0-3) is checked. Ifthe hop—counter is
above the threshold value then the message is not copied, forwarded or auto-
responded. lntcractions between services are also checked, using stored rules,
in a similar manner as described above for the hidden text method.
If the IE] is not present then a new short message is constructed and the UDH
containing the Loop Detection IE1 is added to the beginning of the message
before copying, diverting or auto-responding. For the same reasons as
described above, this can allow other network entities which do recognise the
llrll to perform loop detection.
in the ease oi‘ concatenated short messages the loop detection IE] only needs to be
added to the lirst segment of the message.
Figure 6 shows an example call flow which is initiated by a subscriber ‘a’ of Network
Operator 1 using terminal MSa. Subscriber ‘a’ sends a message to a subscriber ‘b‘ of
Network Operator 2. Subscribers ‘b’, ‘c‘ and ‘d’ form a loop due to each of them
using a message divert service.
Call Flows — Divert Loop Detection using Basie UDH Method
1 Subscriber “a” submits a short message via the local SMSC for destination
subscriber “b”
Using normal MAP procedures (SriForSM and FSM) SMSC1 attempts to
deliver the short message to subscriber The message is routed in the
network of Network Operator 2 towards the SMS Router.
The message is triggered for smart services to the SS Application.
Since “b“ has a divert service so the original message is terminated
Message is acknowledged to SMSC]
O\'»/‘I-5‘-L»)
The smart service application submits a new message to the SMS Router
destined for subscriber “c". The message contains additional UDH
information indicating that the message has been diverted.
Using normal MAP procedures (SriForSM and FSM) SMS Router
attempts to deliver the short message to subscriber "c”. The message
contains divert information in the UserDataHeader (UDH) of the short
message. The message is intercepted in the network of Network Operator
3 on behalf of subscriber “c”.
Subscriber ”c” has a diversion service also. Using normal MAP procedures
(\SriForSM and PSM) SMSC3 attempts to deliver the short message to
subscriber “d“. The divened message should carry the UDI-I it received
unmodilied as part of any diverted message The message is intercepted in
network of Network Operator 4 on behalf of subscriber “d”.
Subscriber ”d" has a diversion service also. Using normal MAP
procedures (SriForSM and FSM) SMSC4 attempts to deliver the short
message to subscriber “b”. The diverted message should carry the Ul)ll it
received unmodified as part of any diverted message The message is
intercepted in network ofNetwork Operator 2 on behalfofsubscriber
The message is triggered for smart services to the SS Application. The
smart service application understands the UDH information and it‘ the
“number of hops” is exceeded it will not forward on the message,
I l Since “b” has a divert service the original message is terminated
Message is acknowledged to SMSC4
Because the short message loop has beeiiydetected, as a policy option the
smart service may submit the original message to the original destination
(ubw)
The original short message is delivered to “b”.
l5 A new short message indicating that diversion has caused a loop is
submitted to the short message by the smart service
The “new“ short message is delivered to subscriber "b”
The final steps 15, 16 send subscriber b a message notifying them that the message has
not been diverted (in accordance with their service settings) because a loop occurred.
A user may choose to update their service settings after receiving this message to
prevent further loops occurring. The sending of this message at steps 15, 16 is
optional.
Expanded UDH Method
This method also uses the UI)H header of GSM short messages in order to mark
messages as being diverted, copied or auto-responded. As before, one of the non-
reserved llils. such as one in the range C0-D0, is used for loop detection purposes.
The information contained in the IE1 can comprise a message ID. The short message
ID can be used by a message service network entity to identify when the same message
is received by the network for a second time. Thus, the message ID allows a network
entity to recognise when the message it is handling forms part ofa loop. Prelcrably.
the short message ID is a globally unique identifier of the message.
One way 0 l‘
creating a globally unique ID is to begin each 1D with a code which is unique to the
network operator (e.g. operator ‘ABC’ has code 123, operator ‘DEF‘ has the code 124
etc.) The remainder of the ID can be allocated with a unique number within that
network. The method for processing the message ID at a message—handling network
entity is as previously described with respect to Figure 5.
As an alternative to, or as an addition to, canying a message ID in a message. the llil
can carry information about the delivery trail of the message, such as a list of
subscribers who have received the message. The method for processing the message at
a message-handling network entity is as previously described with respect to Figure 4.
A-7
When a smart service application receives a short message it can identify if this
message has previously been copied, diverted or auto-responded from the information
in the User Data Header. It can use this information to determine if the new recipient
ofthe message has received this message previously and hence detect a loop.
Figure 7 shows an example call flow which is initiated by a subscriber ‘a‘ of Network
Operator 1 using terminal MSa. Subscriber ‘a’ sends a message to a subscriber ‘b‘ of
Network Operator 2. Subscribers ‘b’, ‘c’ and ‘d’ form a loop due to each of them
using a message divert service.
Call Flows — Divert Loop Detection using Expanded UDH Method
1 Subscriber “a” submits a short message via the local SMSC for destination
subscriber “b”
Using normal MAP procedures (SriForSM and FSM) SMSCI attempts to
deliver the short message to subscriber The message is routed in the
network of Network Operator 2 towards the SMS Router.
The message is triggered for smart services to the SS Application.
Since has a divert service so the original message is terminated
Message is acknowledged to SMSCI
O\k/1-$3
The smart service application submits a new message to the SMS Router
ca 93
destined for subscriber c. The message contains additional UDH
information that the message has been diverted:
Using normal MAP procedures (SriForSM and FSM) the SMS Router
attempts to deliver the short message to subscriber “c". The message
contains divert information in the UscrDataHeader (UDH) of the short
message. The message is intercepted in the network of Network Operator
3 on behalfof subscriber “c”.
R Subscriber ”c” has a diversion service also. Using normal MAP procedures
(SriForSM and FSM) SMSC3 attempts to deliver the short message to
subscriber "d”. The diverted message should carry the UDH it received
unmodified as part of any diverted message The message is intercepted in
the network of Network Operator 4 on behalf of subscriber “d”.
Subscriber ”d" has a diversion service also. Using normal MAI’
procedures (SriForSM and FSM) SMSE74 attempts to deliver the short
message to subscriber “b”. The diverted message should carry the UDH it
received unmodified as part of any diverted message The message is
intercepted in the network of Network Operator 2 on behalf of subscriber
The message is triggered for smart services to the SS Application. The
smart service application understands the UDH information and if the
forward ID information indicates that this message has already been
forwarded by the SS App it will not forward on the message.
Since “b" has a divert service the original message is terminated
Message is acknowledged to SMSC4
Because the short message loop has been detected, as a policy option the
smart service may submit the original message to the original destination
ch”)
The original short message is delivered to
A new short message indicating that diversion has caused a loop is
submitted to the short message by the smart service
l6 The “new” short message is delivered to subscriber “b”
MAP Method
The Mobile Application Part (MAP) is an application-layer protocol used in wireless
networks. The extensionContainer parameter of the MT~ForwardSM MAP operation
carries additional information about whether the message has been subject to divert,
copy or auto-response services. This additional information can be carried over the
"Can Flows _ Divert Loop Detection Iioiifg MAP Method
SS7 network using the MAP procedures. Any entity receiving or intercepting the short
message can view the additional information specifying previous copied, divert and
auto—response operations and can use this information to determine if there is a
possibility otia loop. The additional information can comprise: a list otisubseribers the
message has been routed between; a hop counter; a (globally unique) message ll), as
described for other embodiments.
Delivery of a short message in GSM networks uses an SriForSM MAP operation
which is sent from an SMSC to an HLR to acquire location information. The SMSC
shall send the short message in a subsequent MT-ForwardSM (FSM) MAP operation
destined for the MSC handling the destination subscriber. In Figure 3 the SM-Deliver
call llow consists ofan SriForSM and a MT-F0rwar'dSM.
Figure 8 shows an example call flow which is initiated by a subscriber ‘a’ of Network
Operator I using terminal MSa. Subscriber ‘a’ sends a message to a subscriber ‘b‘ of
Network Operator 2. Subscribers ‘b’, ‘e’ and ‘C1’ are part ofa loop due to each of them
using 21 message divert service.
Subscriberjagisubmits a short message via the local SMSC for destination
subscriber “b”
Using normal MAP procedures (SriForSM and FSM) SMSC] attempts to
deliver the short message to subscriber The message is routed in the
network ot‘ Network Operator 2 towards the SMS Router.
p The message is triggered for smart services to the SS Application.
‘ Since “b“ has a divert service so the original message is terminated Z
i Message is acknowledged to SMSC]
The smart service application submits a new message to the SMS Router.
The message contains infonnation that the message has been diverted‘
Usingviiornial MAP procedures (SriForSM and FSM) SMS Router
attempts to deliver the short message to subscriber “c”. The FSM MAP
operation contains divert information in the optional extension container
J MAP parameter. The message is intercepted in the network of Network
on behalf of subscriber “c”.
I Subscriber ”c” has a diversion service also. Using normal MAP pmceaurél?
(SriForSM and FSM) SMSC3 attempts to deliver the short message to
subscriber “d". The FSM MAI’ operation contains divert information in
the optional extension container MAP parameter. The message is
intercepted in the network ofNetwork Operator 4 on behalf of subscriber
“d".
subscriber “b" by the SMS Router.
The message is triggered for smart services to the SS Application.
I Since “b" has a divert service the original message is terminated
l2 is acknowledged to SMSC4
I 13 Because the short message loop has been detected, as a policy option
smart service may submit the original message to the original destination
ob")
The original short message is delivered to “b”.
TTA new short message indicating that diversion has caused a loop is
submitted to the short message by the smart service
The “new” short message is delivered to subscriber “b”
Unique Message ID Method
In previous embodiments which use a message ID, the message ID is carried within the
message. In this embodiment of the invention, a message ID is not carried within a
message. Instead. as illustrated in l9igure 9, a message—processing network entity
calculates a message ID based on existing contents of the message, such as the
destination address and message text. The message ID can be calculated using an
algorithm which operates on these fields (or other existing fields) of the message to
derive a number which is unique for the message. Figure 9 shows a ‘calculate message
ID’ function operating on the contents of fields 81. 82 of message 80. This avoids the
need to carry a message ID within the message and therefore overcomes problems of
compatibility between networks. Whenever a received message is to be subjected to a
divert, copy or auto—respond service 21 local store of message IDS is examined to see if
that message has previously been the subject of one of those services. Preferably, the
calculated message ID is used to access stored state which indicates services that have
been applied to the message, or other delivery trail information. The method of using
the message ID which is calculated using this method is the same as shown in Figure 5.
The call flow is detailed in Figure 10. A less preferable alternative to referencing
stored state information by calculating a message ID based on message fields is to
simply reference stored state information using the fields themselves. However, this is
much less preferable as it requires a much larger amount of information to be stored
locally.
One potential limitation of calculating a message ID based on existing fields of a
message is that the method does not have the capability to distinguish a
forwarded/copied message forming a delivery loop from a message that has been
submitted twice (in error or otherwise) by the same originator, since both the text and
the destination address will be the same. SMS Messages are usually delivered within a
short timescale (e.g. within a second, or several seconds). In contrast. redelivery
attempts by a user or network tend to occur over a longer period of time. The message
IDs stored locally at each network entity can be allocated a lifetime, after which they
are deleted from local storage. By setting this lifetime to a suitable value (eg. longer
than the time period when a delivery loop is likely to occur, but shorter than the time
period in which successive delivery attempts would be made) a network entity will
only suppress messages that are within a delivery loop. Alternatively, a network entity
can be arranged to not forward/copy the second delivery attempt of the message but, as
a local operator policy option, this can be delivered directly to the original destination.
This is considered an acceptable user experience as the original message would be
forwarded/copied etc. as expected and the second identical message terminated locally
to the subscriber (again as a local operator policy option).
Call Flows — Divert Loop Detection using Unique Message ID Method
Subscriber “a” submits a short message via the local SMSC for destination
I4
subscriber “b“
Using normal MAP procedures (SriForSM and FSM) SMSCI attempts to
deliver the short message to subscriber “b". The message is routed in the
network of Network Operator 2 towards the SMS Router.
The message is triggered for smart services to the SS Application. The SS
Application calculates a message ID for this short message.
Since "b“ has a divert service so the original message is terminated
Message is acknowledged to SMSCI
The smart service application submits a new message to the SMS Router.
Using normal MAP procedures (SriForSM and FSM) SMS Router
attempts to deliver the short message to" subscriber “c“. The message is
intercepted in the network of Network Operator 3 on behalf of subscriber
*9 )7
Subscriber ‘ c has a diversion service also. Using normal MAP procedures
(SriForSM and FSM) SMSC3 attempts to deliver the short message to
subscriber “d". The message is intercepted in the network of Network
Operator 4 on behalf of subscriber
Subscriber ”d" has a diversion service also. Using normal MAP
procedures (SriForSM and FSM) SMSC4 attempts to deliver the short
message to subscriber “b”. The message is intercepted in the network of
Network Operator 2 on behalf of subscriber “b” by the SMS Router.
The message is triggered for smart services to the SS Application. A
message ID is calculated for the short message and if is matches a locally
stored value, which has been created in a short configurable time. a loop
has been detected.
Since “b" has a divert service the original message is terminated
Message is acknowledged to SMSC4
Because the short message loop has been detected, as a policy option the
smart service may submit the original message to the original destination
vb")
The original short message is delivered to
A new short message indicating that diversion has caused a loop is
submitted to the short message by the smart service
IQ
U:
The “new” short message is delivered to subscriber “b"
A range of different methods have been described above. A network operator can use
a single one of these methods, or several of the methods. For example. a network
operator may use the MAP method (which require support between network operators)
and one of the UDH methods or the hidden text method (which do not require support
between network operators). Using a range of different methods is advantageous
where use of a particular method is not standardised across multiple operators.
The following text, and Figures 11-12, describe some further ways of processing
messages which can be used within the network of 5 single network operator.
Local Detection at Service set-up time
This method checks for the presence of a loop, at the time of setting up a service, by
following the delivery trail that will occur for a subscriber and ensuring that a
continuous loop will not result. The request to set up a new service will typically be
made by a subscriber. As an example, consider a subscriber A submits a request to set
up a divert service which will divert all of subscriber A’s short messages to subscriber
B. Before configuring the service for subscriber A, the service subscription record of
subscriber B is examined to see if subscriber A has any divert. copy or auto-response
service enabled. If B has a divert service enabled and has all his short messages
diverted to C then the service subscription record for C is examined to see if he has any
divert, copy or auto-response service enabled. This is continued until either:
(i) a loop is detected, i.e. the delivery trail is followed at least until a point at
which a loop is found to occur;
(ii) no loop is detected, i.e. the trail is followed through to the end and no loop
has occurred;
(iii) a maximum number of service applications (e.g. diversions) is reached.
The How chart of Figure 11 shows an example of the logic for implementing this
embodiment of the invention. A request to set up a new service is received at step 41.
The first ‘hop’ of the delivery trail is followed at step 42. This examines the
consequence of implementing the requested service. 1n the example described above.
the service requested by subscriber A would create a message delivery trail to
subscriber B. At step 43 a check is made whether the threshold number of hops has
been exceeded. If the threshold has been exceeded, the service request is refused at
step 44. If the threshold has not been exceeded, the method proceeds to step 45 and
checks if a loop exists. lfa loop exists. the service request is refused at step 46. If a
loop does not exist, the method proceeds to step 47 and checks if the end of the
delivery trail has been reached. If this is the end of the trail. the request is accepted at
step 48. Otherwise, the method returns to step 42. In the example above, if subscriber
R has configured a divert service, this would cause the method to return to step 42 and
check what effect the divert from subscriber B?wou1d have. If subscriber B had not
configured a divert service, the method would successfully at step 48 and allow the
service request.
When implemented in the network of a single operator, all subscriber records are
located in a local database 28 accessible by the Smart Services Application 27 and the
SSCN 24. If two operators share information about the services their subscribers have
enabled, a SSCN 24 or SS Application 27 accesses this information via a signalling
link between the networks. The logic shown in Figure 4 can be executed by the SSCN
Local Detection at service execution time
This method works in the same manner as described above for ‘local detection at
service set up time’ and as shown in Figure l l. The main difference is that the method
is performed when a message needs to be delivered, rather than when a request to set
up a service is received. This method checks for the presence ofa loop. at the time of
executing a service (i.e. delivering a message), by following the delivery trail that will
occur for a subscriber if that service is executed and ensuring that a continuous loop
will not result. The delivery trail is followed before exercising a divert-to. copy~to or
auto-respond service (in real time) which will send a message along the delivery trail.
ll’ it is found that executing a service will cause a loop to occur, the service is not
executed. Instead, the message is delivered directly to the subscriber without applying
the service. As an example, consider that a subscriber has set up an auto—respond
service. This method will check that the recipient of the auto-respond message does
not also have an auto-respond service set up before sending the message. This will
prevent a loop ofthe type shown in Figure 2 from occurring.
The two embodiments described above both require infonnation about what services
subscribers in the trail have enabled. This is likely to restrict their usefulness to
situations where all subscribers involved in a delivery trail are subscribers of the same
network operator. The method can also work where two (or more) network operators
share information about what services their respective subscribers have enabled.
However, if the delivery trail includes a subscriber of another network operator (who
does not share information) this embodiment canynot detect ifa loop will occur.
The following methods have wider use, and can be used to detect loops, or an
excessive number of service forwardings, where a delivery trail involves subscribers 01‘
different network operators.
SMPP optional parameter method
The Short Message Peer-to—Peer protocol (SMPP) is a protocol which can be used to
exchange messages between SMS peer entities. The SMPP specifications are available
at: http://www.smsforum.net. The SMPP protocol can be used between a SSCN 24
and a SMSC 23. When a service is executed on behalf of a subscriber, a new short
message is created (eg. as a result ofa divert, copy, auto-response etc.) and submitted
to the SMSC 23 using an SMPP operation. Additional SMPP option parameters
indicate the addresses of the originating and terminating subscribers plus all other
addresses that have been used in the past as part of other diverts, copies etc. In
addition the SMPP operation can include an optional parameter which indicates the
number of hops this message has been subjected to. This additional information added
to the SMPP operation gives the history of the delivery trail. The handling SMSC 23,
if it understands the new optional parameters, can decide whether to process the
message based on the trail information. In addition, ifthe “new” message is subject to
a smart service it can forward the received new optional parameters to the application
. This method is generally applicable to SMPP version 3.4 and 5.0.
Figure 12 shows an example call flow which is initiated by a subscriber ‘a‘ ofNetw0rk
Operator l using terminal MSa. Subscriber ‘a’ sends a message to a subscriber ‘b’ ofa
Network Operator 2. Subscriber ‘b’ has set up a divert service.
Git Flows — Divert Loop Detection using SMPP Method
I Subscriber “a‘” submits a short message via the local SMSC for
destination subscriber “b”
Using normal MAP procedures (Sril7orSlVl and FSM) SMSCI attempts to
deliver the short message to subscriber The message is routed in the
network of Network Operator 2 towards the SMS Router.
The message is triggered for smart services to the SS Application. The
Trigger information includes the original destination (“b”) and the
hopC ounter=0.
Since “b” has a divert service the original message is terminated. “b" is
set up to divert SMS to “c”.
n " Message is acknowledged to SMSCI
The smart service application submits a new message to the SMS Router
with as the destination. The message contains the information from
the original trigger (i.e. DA List and hop(.‘ounter) as optional SMPP
parameters.
I 7 SMS Router accepts the message by send SMPP-SM_Submit—response to
smait service application
Subscriber ”c” has a diversion servieeialiso. The message is triggered for
smart services to the SS Application. The Trigger information includes
the destination list (“b” and now “c") and the hopCounter=l
it) Since “c” has a divert service the original message is terminated on the
SMS Router. “c” is set up to divert sms to “d”.
T The smart service application submits a new message to the SMS Router
with “d" as the destination. The message contains the information from i
the original trigger (i.e. DA List and hopCounter) as optional SMPI’ ‘
parameters.
l l 1 SMS Router accepts the mcssageby send SMPP—SM_Submit~responsc to
smart service application.
t,».__.l_, , _ i
_ Subscriber ”d” has a diversion service also. The message is triggered Tor
smart services to the SS Application. The Trigger information includes
the destination list (“b“, “c” and now “d”) and the hopCounter=2.
Since has a divert service the original message is terminated on the
SMS Router. “d” is set up to divert SMS to “b”.
The smart service application submits a new message to the SMS Router
with as the destination. The message contains the information from
the original trigger (i.e. DA List and hopCounter) as optional SMPP
fmrameters
the DA List and terminates the message since a loop has been detected
The information added to the SMPP operations which specifies the history of the
delivery trail (e.g. List=b,c,d at step 14 of Figure 5) allows a network entity to detect
that a loop is about to occur. The hop counter allows a network entity to terminate a
message it‘ the hop counter reaches a predetermined limit.
This method can be used where different network operators are connected by SMPP.
However, where SS7 links connect different operators the SMPP information will be
lost.
The invention is not limited to the embodiments described herein, which may be
modified or varied without departing from the scope of the invention.
Claims (5)
1. A method of processing SMS messages at a message service entity of a first mobile operator network, the network comprising a plurality of subscribers and the network supporting message-handling services for at least some of the subscribers which forward a message to another subscriber. the method comprising: receiving a message; inspecting delivery trail information associated with the received message; and. controlling invocation of a message-handling service for the received message based on the inspected delivery trail information.
2. A method according to claim 1 wherein the network stores delivery trail information for messages previously processed by the message service entity. and the step of inspecting delivery trail information associated with the received message comprises using an identifier in the received message, or derived from the received message. to access the stored delivery trail information; the method optionally further comprising calculating an identifier for the received message using a plurality of fields of the received message.
3. A method according to claim 2 further comprising: comparing the message identifier in the received message with a list of stored message identifiers representing messages previously processed by the message service entity; and if the message identifier of the received message does not match a stored identifier in the list, allowing the invocation of the message—handling service; or if the message identifier of the received message matches a stored identifier in the list, accessing stored delivery trail information for the message; and allowing the invocation of the message-handling service on the basis of the stored delivery trail information for that message.
4. A method according to any one of the preceding claims wherein the delivery trail information associated with the received message comprises one or more of: information about the services which have already been applied to the message: a list of subscribers that the message has been forwarded between; a count of the number oftimes the message has been forwarded due to invocation of message-handling services.
5. An SMS message service network entity comprising a processor which is arranged to perform the method according to any one ofclaims 1 to 4.
Publications (2)
Publication Number | Publication Date |
---|---|
IE20070354U1 IE20070354U1 (en) | 2008-11-26 |
IES85146Y1 true IES85146Y1 (en) | 2009-03-04 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9730035B2 (en) | System and method for blocking the use of a service in a telecommunication system | |
EP2151133B1 (en) | Loop detection/prevention for sms messages | |
US8005493B2 (en) | Messaging system and method | |
EP1675334B1 (en) | Storing anti-spam black lists | |
US8526979B2 (en) | Method and apparatus for parent-controlled short message service | |
EP2204955A1 (en) | Method, apparatus and system for message identification | |
US20080081617A1 (en) | Method and Apparatus for Providing Virtual Mobile Phone Number | |
JP2009532769A (en) | Method and apparatus for implementing SMSSPAM filtering | |
KR20090003247A (en) | Electronic message forwarding control | |
US20140179359A1 (en) | Message router for concatenated sms | |
IES85146Y1 (en) | Loop detection/prevention for sms messages | |
EP2591618A1 (en) | A message router for concatenated sms | |
IE20070354U1 (en) | Loop detection/prevention for sms messages | |
IES84271Y1 (en) | A messaging system and method | |
IE20040693U1 (en) | A messaging system and method | |
CN103634756A (en) | Processing method and device for interaction of Internet-of-Things application and short message value-added service |