WO2012006659A1 - Method and system for routing of electronic messages - Google Patents

Method and system for routing of electronic messages Download PDF

Info

Publication number
WO2012006659A1
WO2012006659A1 PCT/AU2011/000824 AU2011000824W WO2012006659A1 WO 2012006659 A1 WO2012006659 A1 WO 2012006659A1 AU 2011000824 W AU2011000824 W AU 2011000824W WO 2012006659 A1 WO2012006659 A1 WO 2012006659A1
Authority
WO
WIPO (PCT)
Prior art keywords
gateway
messages
delivery
message
electronic
Prior art date
Application number
PCT/AU2011/000824
Other languages
French (fr)
Inventor
Matthew Stephen Fitzgerald
Michael Pollitt
Timothy Stroh
Original Assignee
With One Button Pty Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from AU2010903138A external-priority patent/AU2010903138A0/en
Application filed by With One Button Pty Ltd filed Critical With One Button Pty Ltd
Publication of WO2012006659A1 publication Critical patent/WO2012006659A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/23Reliability checks, e.g. acknowledgments or fault reporting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W48/00Access restriction; Network selection; Access point selection
    • H04W48/18Selecting a network or a communication service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/246Connectivity information discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/24Interfaces between hierarchically similar devices between backbone network devices

Definitions

  • Embodiments relate generally to computerized methods and systems for routing of electronic messages.
  • Such electronic messages include, but are not limited to, SMS, MMS, EMS and instant messaging.
  • Electronic messaging-based applications developed for mobile telephony enabled devices include SMS (short messaging service), MMS (multimedia messaging service) and EMS (enhanced messaging service). All messaging applications have common functions such as storage, routing and interfaces.
  • message-based alert system applications include mobile advertising, scheduling and rostering, for instance in the labour market or sports environment, and logistics management.
  • SMS Mobile advertising is a large revenue generator for operators across a number of media such as MMS, WAP and SMS. Due to its ubiquity, SMS is a good starting point for operators to enter this new market and realize high response rates and revenues on campaigns.
  • SMS messages may be dispatched to potential staff from a pool of staff. Having received the SMS message, staff simply respond to the message by specifying themself for a position that is needed to be filled and by nominating a time and date. On receiving responses from potential staff, each available shift is allocated to the first received response and an acknowledgement is sent to the successful staff bidder.
  • organisations are able to deploy customizable, relevant content to mobile devices via relevant protocols.
  • SMS Short Messaging Service Centre
  • An SMS message sent by a mobile user is first delivered to the user's network SMSC before being routed to the recipient. If the recipient's network is operated by a different provider or employs different wireless standards, the message may pass through more than one SMSC or SMSC gateway before reaching its final destination.
  • Signalling System 7 provides the transport mechanism for SMS traffic.
  • SS7 provides the transport mechanism for SMS traffic.
  • Some embodiments relate to a computerized method for routing of electronic messages, the method comprising:
  • monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
  • the selection of said gateway may be conditional on said gateway being available to route said electronic message to a specified destination address and on a weighted or non-weighted determination of quality of delivery and price of delivery.
  • the weights applied to enable a determination of quality of delivery and/or price of delivery may be set by a customer on behalf of whom the message or messages are to be sent. It should be appreciated therefore that the weights applied may not be the same from one customer to another. For instance, customer A may specify that the selection of gateway is weighted 100% towards quality of delivery, irrespective of price (i.e., 0% weighting towards price of delivery of said messages), that is select the gateway whose assessment reflected the optimum quality of delivery. Customer B may specify that the selection of gateway is weighted 100% towards quality of delivery and best price of delivery, that is if the assessment of gateways A and B reflected the same measure of quality yet the cost to route messages through gateway A is cheaper than gateway B, then gateway A would be selected.
  • any one or more of which, may be used to assess a gateways quality of delivery may include a measure of message latency and character encoding.
  • Message latency may include a measure of the time taken to receive delivery receipts from the gateway providers, and a measure of the time taken to receive confirmation receipts received from suppliers.
  • Message latency may be measured by pinging. For example x messages dispatched from a mobile handset may be delivered via each of said gateways and a confirmation receipt (a 'ping') is requested. In each instance the time between dispatching the message and receiving the ping, the latency, is measured.
  • the complete GSM character set may be dispatched from a mobile handset and delivered via each of said gateways.
  • the result is analysed to ensure that the same character set is accurately received on each phone, and the analysis used to determine a measure of quality.
  • the step of assessing a quality of delivery of electronic messages may be based on a historical determination, for instance the quality of delivery for any particular message may be determined over a period of hours, days, weeks or months.
  • the computerized method may further comprise automatically routing said electronic message to said selected gateway.
  • the step of receiving an electronic message may comprise identifying said message's destination network.
  • the step of receiving an electronic message may further comprise storing the electronic message's content.
  • the computerized method may further comprise updating a router table which includes a list of available gateways to route said electronic messages.
  • the computerized method may further comprise ordering said list according to price. The list may be ordered according to price for a given minimum level of quality of service.
  • the computerized method may further comprise dynamically updating said list of available gateways.
  • the step of refreshing said list of available gateways may be time based or volume based. In this sense, the step of monitoring connectivity between a message router and at least two gateways may be continuous. Dynamically updating said list of available gateways in such a manner may reduce processing load.
  • a measure of a respective gateway's availability to route electronic messages to one or more destination networks may comprise querying respective SMPP protocol communication channels.
  • the measure of a respective gateway's availability to route electronic messages to one or more destination networks may comprise determining whether the assessed quality of delivery for any of said gateways exceeds a predetermined threshold. In a non limiting example, if the failure rate increases by at least x% in a predetermined period T p and for a predetermined volume V p of messages routed within that period, then the particular gateway may be considered unavailable.
  • the determination of the best price of delivery may comprise forecasting a volume of traffic passing through each gateway within a predetermined period of time.
  • the step of continuously monitoring connectivity between the message router and respective gateways may include the router querying a status of each SMPP node, where each respective SMPP node is associated with a gateway. This process may occur via a TCP/IP call to an open socket on the respective SMPP node.
  • Some embodiments relate to a system for routing of electronic messages, the system comprising:
  • an electronic message router configured to monitor connectivity to at least two gateways that route electronic messages to intended recipients, to determine each respective gateway's availability to route electronic messages to one or more destination networks, and further configured to assess a quality of delivery of electronic messages via each of said gateways;
  • a processor operable on receiving an electronic message to select a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of price of delivery and quality of delivery.
  • Some embodiments relate to a computerised method for routing of electronic messages, where the electronic messages are discrete routable electronic messages that employ a store-and-forward transmission process, such as SMS and MMS messages, the method comprising:
  • monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
  • the at least one delivery parameter may include at least one of quality of delivery, price of delivery, length of the message, terminating network (i.e. destination address) for the message and time of day at the terminating network.
  • the electronic messages may be of a type capable of being broadcast from a single source to multiple destinations. The electronic messages are preferably independent of a voice call.
  • Some embodiments relate to a method of routing messages to one or more telephone network destinations, the messages being of a type that has content to be displayed on a device enabled for telephony, the method comprising:
  • determining delivery parameters associated with a plurality of gateways configured to route the messages to the one or more cellular network destinations; receiving at least one of the messages at a server for transmission to a specified destination address;
  • Some embodiments relate to a system comprising means to take mobile terminated SMS messages from an online distributed message queue and route them individually to a selected SMPP gateway according to either or both of recent delivery quality and price.
  • Some embodiments relate to a method comprising taking mobile terminated SMS messages from an online distributed message queue and routing them individually to a selected SMPP gateway according to either or both of recent delivery quality and price.
  • Figure 1 shows a schematic illustration of a routing system comprising hardware and software application layers which enable described embodiments to be performed.
  • Figure 2 shows a flow chart illustrating the lifecycle of a message as it is routed in accordance with described embodiments.
  • Figure 3a schematically shows a simplified pricing model.
  • Figures 3b to 3d schematically show sets of routes used to determine a pricing model.
  • SMS short electronic messages
  • EMS mobile phone
  • MSS mobile phone
  • the messages addressed by this description are discrete routable electronic messages that employ a store-and-forward transmission process to a telephone network destination, such as a cellular network destination.
  • electronic message as discussed herein is not intended to include data transmitted as part of a voice-over-internet (VoIP) connection. That is, the electronic messages are independent of a voice call.
  • VoIP voice-over-internet
  • Described embodiments are generally not applicable to transmission of messages where there are public telephony networks at each end with a data or telephony network handling communication between such networks. Rather, embodiments are applicable to arrangements that employ a telephony network at only one end, where the messages originate at a data network location and are processed through software to be sent to a remote telephony network location.
  • Embodiments allow electronic messages to be routed dynamically and to multiple channels depending on the terminating network, structured pricing, and the quality of the route as determined by delivery rates.
  • the system and methodology is designed to take mobile terminated SMS messages from an online distributed message queue and route them individually to a selected SMPP gateway as determined by either or both of recent delivery quality and price.
  • SMS messages intended for sending to designated recipients are written from a client system 101 to an online message queue 102 over a data network connection (not shown), at step 205.
  • SMS messages are then read from the online input message queue 102 using a multithreaded process 106 which is designed to quickly read messages and save them locally for the router 110 to handle.
  • the messages are then placed in a local message queue 108, at step 210.
  • the router 110 subscribes to the intake local messages queue 108 and forwards the messages individually to a selected routing queue 114 of multiple such queues 114. It is event driven in that it doesn't poll the queue for new messages periodically, rather they are 'pushed' and processed by the router 1 10 sequentially. The number of unsent messages in this queue 108 additionally can be used as a performance indicator.
  • Input message queue 102, process 106, message queue 108, router 110 and routing queues 114 may be hosted on a single physical or virtual server or across multiple such servers.
  • Such one or more servers include one or more processors and suitable memory to store code modules for execution by the one or more processors to perform the monitoring, storing (i.e. message buffering), assessing and routing functions described herein.
  • the router 1 10 On reading in a new SMS message from the local message queue 108, at step 215, the router 1 10 interprets the structured data of the message and saves the content of the message into the database 1 12. The router 1 10 then looks up the destination network associated with the particular SMS message, at step 220.
  • the destination network is derived from the destination (mobile) telephone number. This number is used to lookup the destination network in a "Mobile Number Porting" (MNP) database, which includes a record of all ported mobile numbers.
  • MNP databases are available in all countries that allow MSISDN porting.
  • the router 1 10 also infers the destination country of the message from the destination MSISDN. Portability of mobile numbers from one carrier to another can be advantageous to the holder of the telephone number. However it also means that a system cannot infer the carrier from any particular mobile phone number by its prefix.
  • the MNP database is published as change files on an authenticated FTP server. The system 100 updates its copy of the MNP database by downloading and applying weekly change files.
  • a client 101 can request dispatch of several thousand messages in a multi-cast one-to-many message transmission.
  • the client 101 may specify that pricing is more important than quality of delivery.
  • the client 101 may request the cheapest possible route while ensuring a minimum level of quality (for instance latency ⁇ 20 minutes 90% of the time).
  • the quality of delivery of an SMS gateway 118 is derived from observations of SMS delivery reports.
  • the delivery reports contain information about individual SMS messages and the reports are returned by the SMS gateways.
  • the information returned may indicate: "delivery failed", “delivery succeeded” or "unknown", the latter either explicitly or inferred through absence of any information.
  • aggregating this information for an active gateway to determine quality is a very intensive process, requiring several database reads.
  • the task of aggregating the information may not be performed by the router 110 and may instead be performed by a separate dedicated processor (not shown).
  • the aggregated information is then passed to the router 110, which then uses the aggregated information to make an informed assessment of selection of gateway either alone, or together with a determination of best price, the choice being determined by either the client, by client preference rules, or by configuration through a configuration and reporting module 120, at step 222. Having assessed quality, the router 1 10 then calculates the cheapest connected and working route for this message, at step 225. Assuming the cheapest connected working route is above the minimum level of quality, this becomes the selected gateway. Initially the router 1 10 updates its list of available routes. This is a list of working SMS gateways with available destination networks for each. The availability of an SMS gateway is assessed by querying the SMPP nodes 1 16 directly. Reporting connectivity status requires an inter-process call whereby the router 1 10 queries the SMPP nodes 116 for their status. This is done with a straight TCP/IP call to an open socket on the SMPP node.
  • SMS gateways Destination networks for SMS gateways are also deemed unavailable if the SMS delivery report reports failures for any particular gateway, which exceed a certain threshold. This is configurable, but a typical rule is the failure rate increases by more than 10% in a five minute period, where the volume is more than 100 messages in that period. Routes that are deemed to be unavailable based on this rule may become available to use again after a dynamic reassessment of availability, and quality of delivery following a timeout period. The list of available SMS gateways is then ordered by terminating network and price. It will be appreciated by those skilled in the art that SMS providers may not charge a fixed price for SMS messages. Instead, they have monthly volume triggered discount rates. The discounted rate can apply to either all messages or just to those within a certain volume range.
  • price brackets there are many price brackets. This makes the concept of pricing messages difficult as the price for a given message can depend on future volume.
  • prices are forecast in the sense that they are based on historical monthly volumes. A linear extrapolation is used whereby it is assumed that future volumes will be similar to recent volumes. Pricing is further complicated by the fact that SMS providers have different prices depending on the terminating network. Therefore for any particular SMS provider there will likely be several price brackets.
  • terminating networks may be grouped so traffic to some terminating networks are subject to one set of price brackets and traffic to any of these networks contributes to the volume. The destination network groupings may be different depending on the SMS provider.
  • SMS gateway gwi
  • the networks are grouped arbitrarily and pricing functions operate on the monthly volumes of each respective group. For example, we may have two groups of networks, gwi and gw 2 and two pricing functions pi and p2 where,
  • pi are arbitrary functions that result from the commercial arrangements with the respective SMS provider and i; ; is the monthly SMS volume sent to gateway gw;.
  • the router 1 10 retrieves the message from the database 1 12 and passes the SMS message to the destination SMPP node 116 by writing it to the corresponding routing queue 114, at step 230.
  • Each SMPP node 1 16 has a dedicated routing queue 114 and this is used as the distribution mechanism. This mechanism additionally allows message recovery in the event of a SMPP node failure.
  • the SMPP nodes 116 handle all the details of communicating with the SMS gateways 118 via the SMPP protocol.
  • An SMPP node 1 16 will read a message from its associated routing queue 1 14, at step 235, and then route the message internally to one of its SMPP connections depending on the selected gateway, at step 240.
  • An external sending agent may then write the SMS message, for example as a JSON string, to a remote online message queue (not shown) at step 245. That sending agent may read information regarding the state of the message from the online message queue at step 250 to monitor its delivery status.
  • SMPP nodes 1 16 are configured such that an open socket is exposed in order to allow the router 1 10 and a configuration and reporting module 120 to directly request information about their internal status.
  • the SMPP nodes 116 report on the number of unsent messages they have in memory and the number of bound SMPP connections they have with their respective SMS gateways 1 18.
  • the SMPP nodes 116 may have a one-to-one relationship with the gateways 118.
  • the SMPP nodes 1 16 also receive SMS delivery report information from the SMS gateways 1 18. This information is passed back to the originating client 101 via the SMPP nodes 1 16 to a second output (SQS) queue 104, which communicates this information to client 101.
  • SMS short delivery report
  • the SMPP nodes 1 16 store SMS messages internally while they are being processed. If an SMPP node 116 fails critically while it's holding messages in memory, the messages are not lost. These messages reappear on the routing queue 1 14 and become available to be passed to another SMPP node. Unacknowledged messages that have been picked up by a consumer, where the consumer subsequently terminates its connection with the queue are reallocated via a queue mechanism of routing queue 1 14 to be picked up by another consumer.
  • the system 100 may employ a queue sweeper application 122 executing on the one or more servers, which monitors the routing queues 1 14 looking for particular queues with messages which are not being consumed.
  • the function of the queue sweeper 122 is to recover SMS messages which, while being routed to an SMPP node 1 16, had their connection terminated before the message was delivered to the designated SMS gateway.
  • An SMPP node 1 16 is deemed to be 'dead' if it has no bound SMPP connections or does not respond to a status query. In this case the message or messages are removed from the offending SMPP node 116 by the queue sweeper 122 and passed back to the router 1 10. The messages are then rerouted as if they were new messages.
  • a configuration and reporting module 120 may be provided for configuration of system 100 and reporting of its performance and activities.
  • the configuration and reporting module 120 may comprise a website or web interface, for example. Through the web interface provided by configuration and reporting module 120, authorised users can: monitor SMS traffic and cost reports (with breakdowns by SMS gateway and terminating network), monitor the current live routes, configure new SMS gateways and associated data connections, pricing etc., monitor price and volume charts, monitor actual SMS messages in full detail, monitor message counts for all routing queues, receive status reports for all processes.

Abstract

Embodiments relate generally to computerized methods and systems and program storage for routing of electronic messages. A method according to some embodiments comprises: monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks; assessing a quality of delivery of electronic messages via each of said gateways; and having received an electronic message, selecting a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of quality of delivery and price of delivery.

Description

Method and System for Routing of Electronic Messages
Technical Field
Embodiments relate generally to computerized methods and systems for routing of electronic messages. Such electronic messages include, but are not limited to, SMS, MMS, EMS and instant messaging.
Background Art
The widespread access to mobile networks has led to rapid growth in the numbers of users of electronic messaging based applications. Electronic messaging-based applications developed for mobile telephony enabled devices include SMS (short messaging service), MMS (multimedia messaging service) and EMS (enhanced messaging service). All messaging applications have common functions such as storage, routing and interfaces.
One such application is the field of electronic message-based alert systems. Specific examples of message-based alert system applications include mobile advertising, scheduling and rostering, for instance in the labour market or sports environment, and logistics management.
Mobile advertising is a large revenue generator for operators across a number of media such as MMS, WAP and SMS. Due to its ubiquity, SMS is a good starting point for operators to enter this new market and realize high response rates and revenues on campaigns.
In an example of a rostering application, SMS messages may be dispatched to potential staff from a pool of staff. Having received the SMS message, staff simply respond to the message by specifying themself for a position that is needed to be filled and by nominating a time and date. On receiving responses from potential staff, each available shift is allocated to the first received response and an acknowledgement is sent to the successful staff bidder. Advantageously, organisations are able to deploy customizable, relevant content to mobile devices via relevant protocols.
In relation to SMS, a Short Messaging Service Centre (SMSC) is responsible for handling the delivery of SMS messages in a wireless communications network. An SMS message sent by a mobile user is first delivered to the user's network SMSC before being routed to the recipient. If the recipient's network is operated by a different provider or employs different wireless standards, the message may pass through more than one SMSC or SMSC gateway before reaching its final destination. Signalling System 7 (SS7) provides the transport mechanism for SMS traffic. However the cost of message delivery, and quality of delivery, varies widely depending on the provider of the mobile service and the service provider of the recipient.
For applications such as rostering and logistics it is imperative that messages are delivered to intended recipients at the intended time. It is desired to address or ameliorate one or more shortcomings or disadvantages associated with prior message routing techniques, or to at least provide a useful alternative thereto.
Summary
Some embodiments relate to a computerized method for routing of electronic messages, the method comprising:
monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
assessing a quality of delivery of electronic messages via each of said gateways; and
having received an electronic message, selecting a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of quality of delivery and price of delivery.
The selection of said gateway may be conditional on said gateway being available to route said electronic message to a specified destination address and on a weighted or non-weighted determination of quality of delivery and price of delivery.
The weights applied to enable a determination of quality of delivery and/or price of delivery may be set by a customer on behalf of whom the message or messages are to be sent. It should be appreciated therefore that the weights applied may not be the same from one customer to another. For instance, customer A may specify that the selection of gateway is weighted 100% towards quality of delivery, irrespective of price (i.e., 0% weighting towards price of delivery of said messages), that is select the gateway whose assessment reflected the optimum quality of delivery. Customer B may specify that the selection of gateway is weighted 100% towards quality of delivery and best price of delivery, that is if the assessment of gateways A and B reflected the same measure of quality yet the cost to route messages through gateway A is cheaper than gateway B, then gateway A would be selected.
Several parameters, any one or more of which, may be used to assess a gateways quality of delivery, these may include a measure of message latency and character encoding.
Message latency may include a measure of the time taken to receive delivery receipts from the gateway providers, and a measure of the time taken to receive confirmation receipts received from suppliers.
Message latency may be measured by pinging. For example x messages dispatched from a mobile handset may be delivered via each of said gateways and a confirmation receipt (a 'ping') is requested. In each instance the time between dispatching the message and receiving the ping, the latency, is measured.
Regarding character encoding, the complete GSM character set may be dispatched from a mobile handset and delivered via each of said gateways. The result is analysed to ensure that the same character set is accurately received on each phone, and the analysis used to determine a measure of quality.
The step of assessing a quality of delivery of electronic messages may be based on a historical determination, for instance the quality of delivery for any particular message may be determined over a period of hours, days, weeks or months.
The computerized method may further comprise automatically routing said electronic message to said selected gateway.
The step of receiving an electronic message may comprise identifying said message's destination network. The step of receiving an electronic message may further comprise storing the electronic message's content. The computerized method may further comprise updating a router table which includes a list of available gateways to route said electronic messages. The computerized method may further comprise ordering said list according to price. The list may be ordered according to price for a given minimum level of quality of service.
The computerized method may further comprise dynamically updating said list of available gateways. The step of refreshing said list of available gateways may be time based or volume based. In this sense, the step of monitoring connectivity between a message router and at least two gateways may be continuous. Dynamically updating said list of available gateways in such a manner may reduce processing load.
A measure of a respective gateway's availability to route electronic messages to one or more destination networks may comprise querying respective SMPP protocol communication channels. Optionally, or additionally, the measure of a respective gateway's availability to route electronic messages to one or more destination networks may comprise determining whether the assessed quality of delivery for any of said gateways exceeds a predetermined threshold. In a non limiting example, if the failure rate increases by at least x% in a predetermined period Tp and for a predetermined volume Vp of messages routed within that period, then the particular gateway may be considered unavailable.
The determination of the best price of delivery may comprise forecasting a volume of traffic passing through each gateway within a predetermined period of time.
The step of continuously monitoring connectivity between the message router and respective gateways may include the router querying a status of each SMPP node, where each respective SMPP node is associated with a gateway. This process may occur via a TCP/IP call to an open socket on the respective SMPP node.
Some embodiments relate to a system for routing of electronic messages, the system comprising:
an electronic message router configured to monitor connectivity to at least two gateways that route electronic messages to intended recipients, to determine each respective gateway's availability to route electronic messages to one or more destination networks, and further configured to assess a quality of delivery of electronic messages via each of said gateways; and
a processor operable on receiving an electronic message to select a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of price of delivery and quality of delivery.
Some embodiments relate to a computerised method for routing of electronic messages, where the electronic messages are discrete routable electronic messages that employ a store-and-forward transmission process, such as SMS and MMS messages, the method comprising:
monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
assessing a quality of delivery of electronic messages via each of said gateways; and
having received an electronic message for transmission, selecting a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and based on a determination of at least one delivery parameter. The at least one delivery parameter may include at least one of quality of delivery, price of delivery, length of the message, terminating network (i.e. destination address) for the message and time of day at the terminating network. The electronic messages may be of a type capable of being broadcast from a single source to multiple destinations. The electronic messages are preferably independent of a voice call.
Some embodiments relate to a method of routing messages to one or more telephone network destinations, the messages being of a type that has content to be displayed on a device enabled for telephony, the method comprising:
determining delivery parameters associated with a plurality of gateways configured to route the messages to the one or more cellular network destinations; receiving at least one of the messages at a server for transmission to a specified destination address; and
routing the at least one message from the server to one of the gateways based on the determined delivery parameters.
Some embodiments relate to a system comprising means to take mobile terminated SMS messages from an online distributed message queue and route them individually to a selected SMPP gateway according to either or both of recent delivery quality and price.
Some embodiments relate to a method comprising taking mobile terminated SMS messages from an online distributed message queue and routing them individually to a selected SMPP gateway according to either or both of recent delivery quality and price. Brief Description of the Drawings
Figure 1 shows a schematic illustration of a routing system comprising hardware and software application layers which enable described embodiments to be performed. Figure 2 shows a flow chart illustrating the lifecycle of a message as it is routed in accordance with described embodiments.
Figure 3a schematically shows a simplified pricing model.
Figures 3b to 3d schematically show sets of routes used to determine a pricing model.
Detailed Description
The system and methodology are described in relation to short electronic messages (in this instance SMS) that are delivered to mobile handsets via the digital mobile communications system. While embodiments are described with reference to SMS as an example, embodiments are applicable to routing other types of short messages as well, such as EMS, MSS or other messages of a similar type that are to be displayed on a telephony enabled device, such as a mobile phone. The messages addressed by this description are discrete routable electronic messages that employ a store-and-forward transmission process to a telephone network destination, such as a cellular network destination. The term "electronic message" as discussed herein is not intended to include data transmitted as part of a voice-over-internet (VoIP) connection. That is, the electronic messages are independent of a voice call. Described embodiments are generally not applicable to transmission of messages where there are public telephony networks at each end with a data or telephony network handling communication between such networks. Rather, embodiments are applicable to arrangements that employ a telephony network at only one end, where the messages originate at a data network location and are processed through software to be sent to a remote telephony network location.
Embodiments allow electronic messages to be routed dynamically and to multiple channels depending on the terminating network, structured pricing, and the quality of the route as determined by delivery rates. As exemplified in the description which follows, the system and methodology is designed to take mobile terminated SMS messages from an online distributed message queue and route them individually to a selected SMPP gateway as determined by either or both of recent delivery quality and price.
Referring to Figures 1 and 2, a routing system 100 and method 200 are shown and described in further detail. SMS messages intended for sending to designated recipients are written from a client system 101 to an online message queue 102 over a data network connection (not shown), at step 205.
SMS messages are then read from the online input message queue 102 using a multithreaded process 106 which is designed to quickly read messages and save them locally for the router 110 to handle. The messages are then placed in a local message queue 108, at step 210.
The router 110 subscribes to the intake local messages queue 108 and forwards the messages individually to a selected routing queue 114 of multiple such queues 114. It is event driven in that it doesn't poll the queue for new messages periodically, rather they are 'pushed' and processed by the router 1 10 sequentially. The number of unsent messages in this queue 108 additionally can be used as a performance indicator. Input message queue 102, process 106, message queue 108, router 110 and routing queues 114 may be hosted on a single physical or virtual server or across multiple such servers. Such one or more servers include one or more processors and suitable memory to store code modules for execution by the one or more processors to perform the monitoring, storing (i.e. message buffering), assessing and routing functions described herein. On reading in a new SMS message from the local message queue 108, at step 215, the router 1 10 interprets the structured data of the message and saves the content of the message into the database 1 12. The router 1 10 then looks up the destination network associated with the particular SMS message, at step 220. The destination network is derived from the destination (mobile) telephone number. This number is used to lookup the destination network in a "Mobile Number Porting" (MNP) database, which includes a record of all ported mobile numbers. MNP databases are available in all countries that allow MSISDN porting. The router 1 10 also infers the destination country of the message from the destination MSISDN. Portability of mobile numbers from one carrier to another can be advantageous to the holder of the telephone number. However it also means that a system cannot infer the carrier from any particular mobile phone number by its prefix. The MNP database is published as change files on an authenticated FTP server. The system 100 updates its copy of the MNP database by downloading and applying weekly change files.
In one example, a client 101 can request dispatch of several thousand messages in a multi-cast one-to-many message transmission. In this instance, the client 101 may specify that pricing is more important than quality of delivery. The client 101 may request the cheapest possible route while ensuring a minimum level of quality (for instance latency < 20 minutes 90% of the time).
The quality of delivery of an SMS gateway 118 is derived from observations of SMS delivery reports. The delivery reports contain information about individual SMS messages and the reports are returned by the SMS gateways. The information returned may indicate: "delivery failed", "delivery succeeded" or "unknown", the latter either explicitly or inferred through absence of any information. As will be appreciated, aggregating this information for an active gateway to determine quality is a very intensive process, requiring several database reads. In some embodiments, the task of aggregating the information may not be performed by the router 110 and may instead be performed by a separate dedicated processor (not shown). The aggregated information is then passed to the router 110, which then uses the aggregated information to make an informed assessment of selection of gateway either alone, or together with a determination of best price, the choice being determined by either the client, by client preference rules, or by configuration through a configuration and reporting module 120, at step 222. Having assessed quality, the router 1 10 then calculates the cheapest connected and working route for this message, at step 225. Assuming the cheapest connected working route is above the minimum level of quality, this becomes the selected gateway. Initially the router 1 10 updates its list of available routes. This is a list of working SMS gateways with available destination networks for each. The availability of an SMS gateway is assessed by querying the SMPP nodes 1 16 directly. Reporting connectivity status requires an inter-process call whereby the router 1 10 queries the SMPP nodes 116 for their status. This is done with a straight TCP/IP call to an open socket on the SMPP node.
Destination networks for SMS gateways are also deemed unavailable if the SMS delivery report reports failures for any particular gateway, which exceed a certain threshold. This is configurable, but a typical rule is the failure rate increases by more than 10% in a five minute period, where the volume is more than 100 messages in that period. Routes that are deemed to be unavailable based on this rule may become available to use again after a dynamic reassessment of availability, and quality of delivery following a timeout period. The list of available SMS gateways is then ordered by terminating network and price. It will be appreciated by those skilled in the art that SMS providers may not charge a fixed price for SMS messages. Instead, they have monthly volume triggered discount rates. The discounted rate can apply to either all messages or just to those within a certain volume range. Typically there are many price brackets. This makes the concept of pricing messages difficult as the price for a given message can depend on future volume. In some embodiments, prices are forecast in the sense that they are based on historical monthly volumes. A linear extrapolation is used whereby it is assumed that future volumes will be similar to recent volumes. Pricing is further complicated by the fact that SMS providers have different prices depending on the terminating network. Therefore for any particular SMS provider there will likely be several price brackets. Moreover, terminating networks may be grouped so traffic to some terminating networks are subject to one set of price brackets and traffic to any of these networks contributes to the volume. The destination network groupings may be different depending on the SMS provider. For illustration purposes we consider a single SMS gateway (gwi) which is capable of routing SMS messages to four destination networks (nl5 n2, n3 and ¾). The networks are grouped arbitrarily and pricing functions operate on the monthly volumes of each respective group. For example, we may have two groups of networks, gwi and gw2 and two pricing functions pi and p2 where,
gwi = ni, n2, n3
gw2 = n4
Figure imgf000011_0001
Pz = ?½(¾)
pi are arbitrary functions that result from the commercial arrangements with the respective SMS provider and i;; is the monthly SMS volume sent to gateway gw;. The total monthly price is then p + p2, or more generally: price = ∑Pi
The pricing in this example is illustrated in Figure 3 a.
The situation becomes more complicated when there are multiple gateways sending to the same set of networks but with different network groups and different pricing functions. In this situation, there exists a set of routes, that is network gateway pairs, that combine to give the lowest overall monthly price. Figures 3b to 3d illustrate these situations. The pairs may be written as: gwi -> ni gwi -> n2 gw2 -> n3 gw3 -> n4
Note that if one of these routes becomes unavailable, the next best combination of routes may be completely different and they may all need to change.
When a suitable route is found (assuming the route is selected on the basis of availability coupled with best price), the router 1 10 retrieves the message from the database 1 12 and passes the SMS message to the destination SMPP node 116 by writing it to the corresponding routing queue 114, at step 230. Each SMPP node 1 16 has a dedicated routing queue 114 and this is used as the distribution mechanism. This mechanism additionally allows message recovery in the event of a SMPP node failure. The SMPP nodes 116 handle all the details of communicating with the SMS gateways 118 via the SMPP protocol. An SMPP node 1 16 will read a message from its associated routing queue 1 14, at step 235, and then route the message internally to one of its SMPP connections depending on the selected gateway, at step 240. An external sending agent (not shown) may then write the SMS message, for example as a JSON string, to a remote online message queue (not shown) at step 245. That sending agent may read information regarding the state of the message from the online message queue at step 250 to monitor its delivery status. SMPP nodes 1 16 are configured such that an open socket is exposed in order to allow the router 1 10 and a configuration and reporting module 120 to directly request information about their internal status. The SMPP nodes 116 report on the number of unsent messages they have in memory and the number of bound SMPP connections they have with their respective SMS gateways 1 18. The SMPP nodes 116 may have a one-to-one relationship with the gateways 118.
The SMPP nodes 1 16 also receive SMS delivery report information from the SMS gateways 1 18. This information is passed back to the originating client 101 via the SMPP nodes 1 16 to a second output (SQS) queue 104, which communicates this information to client 101.
The SMPP nodes 1 16 store SMS messages internally while they are being processed. If an SMPP node 116 fails critically while it's holding messages in memory, the messages are not lost. These messages reappear on the routing queue 1 14 and become available to be passed to another SMPP node. Unacknowledged messages that have been picked up by a consumer, where the consumer subsequently terminates its connection with the queue are reallocated via a queue mechanism of routing queue 1 14 to be picked up by another consumer. In addition, the system 100 may employ a queue sweeper application 122 executing on the one or more servers, which monitors the routing queues 1 14 looking for particular queues with messages which are not being consumed. The function of the queue sweeper 122 is to recover SMS messages which, while being routed to an SMPP node 1 16, had their connection terminated before the message was delivered to the designated SMS gateway. An SMPP node 1 16 is deemed to be 'dead' if it has no bound SMPP connections or does not respond to a status query. In this case the message or messages are removed from the offending SMPP node 116 by the queue sweeper 122 and passed back to the router 1 10. The messages are then rerouted as if they were new messages.
As indicated above, a configuration and reporting module 120 may be provided for configuration of system 100 and reporting of its performance and activities. The configuration and reporting module 120 may comprise a website or web interface, for example. Through the web interface provided by configuration and reporting module 120, authorised users can: monitor SMS traffic and cost reports (with breakdowns by SMS gateway and terminating network), monitor the current live routes, configure new SMS gateways and associated data connections, pricing etc., monitor price and volume charts, monitor actual SMS messages in full detail, monitor message counts for all routing queues, receive status reports for all processes.
It will be appreciated by persons skilled in the art that numerous variations and/or modifications may be made to the described embodiments without departing from the scope of the invention as broadly described. The present embodiments are, therefore, to be considered in all respects as illustrative and not restrictive.

Claims

CLAIMS:
1. A computerized method for routing of electronic messages, the method comprising:
monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
assessing a quality of delivery of electronic messages via each of said gateways; and
having received an electronic message, selecting a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of quality of delivery and price of delivery.
2. The method of claim 1, wherein selection of said gateway is conditional on said gateway being available to route said electronic message to a specified destination address and on a weighted determination of quality of delivery and price of delivery.
3. The method of claim 2, wherein one or more parameters are used to assess the quality of delivery of each gateway, wherein the parameters include at least one of a measure of message latency and character encoding.
4. The method of claim 3, wherein assessing the quality of delivery messages is based on a historical determination of quality over a period of time.
5. The method of any one of claims 1 to 4, further comprising automatically routing said received electronic message to said selected gateway.
6. The method of any one of claims 1 to 5, wherein receiving an electronic message comprises identifying a destination network of said message.
7. The method of any one of claims 1 to 6, wherein receiving an electronic message comprises storing a content of the electronic message.
8. The method of any one of claims 1 to 7, further comprising repeatedly updating a router table based on the monitoring and assessing, the router table including a list of available gateways to which said electronic messages can be routed.
9. The method of claim 8, further comprising ordering said list according to price of delivery.
10. The method of claim 9, wherein the list is ordered according to price for a given minimum level of quality of service.
11. The method of any one of claims 1 to 10, wherein determination of the price of delivery comprises forecasting a volume of traffic passing through each gateway within a predetermined period of time.
12. The method of any one of claims 1 to 11, wherein the monitoring connectivity between a message router and at least two gateways is substantially continuous and wherein the updating is performed dynamically.
13. The method of any one of claims 1 to 12, further comprising determining a measure of a respective gateway's availability to route electronic messages to one or more destination networks by querying a status of a respective SMPP protocol communication channel of the gateway.
14. The method of any one of claims 1 to 13, further comprising determining a measure of a respective gateway's availability to route electronic messages to one or more destination networks by determining whether the assessed quality of delivery for said gateway exceeds a predetermined threshold.
15. The method of claim 14, wherein if a transmission failure rate of messages to a gateway increases by at least a predetermined percentage x% in a predetermined period
Tp and for a predetermined volume Vp of messages routed to the gateway within that period, then the particular gateway is considered unavailable.
16. A system for routing of electronic messages, the system comprising:
an electronic message router configured to monitor connectivity to at least two gateways that route electronic messages to intended recipients, to determine each respective gateway's availability to route electronic messages to one or more destination networks, and further configured to assess a quality of delivery of electronic messages via each of said gateways; and
a processor operable on receiving an electronic message to select a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and on a determination of at least one of price of delivery and quality of delivery.
17. A computerised method for routing of electronic messages, where the electronic messages are discrete routable electronic messages that employ a store-and-forward transmission process, such as SMS and MMS messages, the method comprising:
monitoring connectivity between a message router and at least two gateways configured to route electronic messages to intended recipients, in order to determine each respective gateway's availability to route electronic messages to one or more destination networks;
assessing a quality of delivery of electronic messages via each of said gateways; and
having received an electronic message for transmission, selecting a gateway through which to route said electronic message, the selection of said gateway conditional on said gateway being available to route said electronic message to a specified destination address and based on a determination of at least one delivery parameter.
18. A method of routing messages to one or more cellular network destinations, the messages being of a type that has content to be displayed on a device enabled for mobile telephony, the method comprising:
determining delivery parameters associated with a plurality of gateways configured to route the messages to the one or more cellular network destinations; receiving at least one of the messages at a server for transmission to a specified destination address; and
routing the at least one message from the server to one of the gateways based on the determined delivery parameters.
19. The method of claim 17 or claim 18, wherein the at least one delivery parameter includes at least one of quality of delivery, price of delivery, length of the message, terminating network for the message and time of day at the terminating network.
20. The method of any one of claims 1 to 15 and 17 to 19, wherein the electronic messages are of a type capable of being broadcast from a single source to multiple destinations.
21. The method of any one of claims 1 to 15 and 17 to 20, wherein the electronic messages are independent of a voice call.
22. A method comprising taking mobile terminated SMS messages from an online distributed message queue and routing the messages individually to a selected SMPP gateway according to either or both of recent delivery quality and price.
23. A system comprising means for performing the method of any one of claims 1 to 15 and 17 to 22.
24. A system comprising means to take mobile terminated SMS messages from an online distributed message queue and means to route the messages individually to a selected SMPP gateway according to either or both of recent delivery quality and price.
25. Computer-readable storage storing executable program instructions, which when executed by a computer system, cause the computer system to perform the method of any one of claims 1 to 15 and 17 to 22 or to implement the system of any one of claims 16, 23 and 24.
PCT/AU2011/000824 2010-07-14 2011-06-30 Method and system for routing of electronic messages WO2012006659A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2010903138A AU2010903138A0 (en) 2010-07-14 A computerized method and system for parallel routing of electronic messages
AU2010903138 2010-07-14

Publications (1)

Publication Number Publication Date
WO2012006659A1 true WO2012006659A1 (en) 2012-01-19

Family

ID=45468796

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AU2011/000824 WO2012006659A1 (en) 2010-07-14 2011-06-30 Method and system for routing of electronic messages

Country Status (1)

Country Link
WO (1) WO2012006659A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9485169B2 (en) 2014-07-23 2016-11-01 Nexmo Inc. Systems and methods for adaptive routing
US10356567B2 (en) 2014-11-24 2019-07-16 Nexmo, Inc. Multi-channel communication system
US10476782B2 (en) 2015-08-03 2019-11-12 Nexmo, Inc. Systems and methods for adaptive routing
US10880697B2 (en) 2015-03-24 2020-12-29 Nexmo, Inc. Multi-channel communication system
CN112833899A (en) * 2020-12-31 2021-05-25 吉林大学 Full-coverage path planning method for unmanned sanitation vehicle

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001035579A1 (en) * 1999-11-10 2001-05-17 Quintum Technologies, Inc. APPARATUS FOR A VOICE OVER IP (VoIP) TELEPHONY GATEWAY AND METHODS FOR USE THEREIN
US6426955B1 (en) * 1997-09-16 2002-07-30 Transnexus, Inc. Internet telephony call routing engine
US6791970B1 (en) * 1999-02-11 2004-09-14 Mediaring Ltd. PC-to-phone for least cost routing with user preferences
US20060092926A1 (en) * 2001-11-16 2006-05-04 Ibasis, Inc. System and method for accomplishing special call treatment in a Voice over Internet Protocol telephone system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6426955B1 (en) * 1997-09-16 2002-07-30 Transnexus, Inc. Internet telephony call routing engine
US6791970B1 (en) * 1999-02-11 2004-09-14 Mediaring Ltd. PC-to-phone for least cost routing with user preferences
WO2001035579A1 (en) * 1999-11-10 2001-05-17 Quintum Technologies, Inc. APPARATUS FOR A VOICE OVER IP (VoIP) TELEPHONY GATEWAY AND METHODS FOR USE THEREIN
US20060092926A1 (en) * 2001-11-16 2006-05-04 Ibasis, Inc. System and method for accomplishing special call treatment in a Voice over Internet Protocol telephone system

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9485169B2 (en) 2014-07-23 2016-11-01 Nexmo Inc. Systems and methods for adaptive routing
US20160359732A1 (en) * 2014-07-23 2016-12-08 Nexmo, Inc. Systems and methods for adaptive routing
US9853884B2 (en) * 2014-07-23 2017-12-26 Nexmo Inc. Systems and methods for adaptive routing
US10356567B2 (en) 2014-11-24 2019-07-16 Nexmo, Inc. Multi-channel communication system
US10880697B2 (en) 2015-03-24 2020-12-29 Nexmo, Inc. Multi-channel communication system
US10476782B2 (en) 2015-08-03 2019-11-12 Nexmo, Inc. Systems and methods for adaptive routing
CN112833899A (en) * 2020-12-31 2021-05-25 吉林大学 Full-coverage path planning method for unmanned sanitation vehicle
CN112833899B (en) * 2020-12-31 2022-02-15 吉林大学 Full-coverage path planning method for unmanned sanitation vehicle

Similar Documents

Publication Publication Date Title
RU2612583C2 (en) Marketplace for timely event data distribution
Lieser et al. Architecture for responsive emergency communications networks
US7269627B2 (en) Routing messages using presence information
US7941557B2 (en) Dynamical routing for text messaging
US8095612B2 (en) Ranking messages in an electronic messaging environment
US8234676B2 (en) System and method of delivering event notifications
EP1804432A1 (en) A method for limiting the forwarding times of the multimedia message for the multimedia messaging service center mmsc and a system thereof
CN106603394A (en) Method and device for realizing subscription notification
US20080101370A1 (en) Methods, systems, and computer program products for providing an enriched messaging service in a communications network
US10063703B2 (en) Intermediary device for data message network routing
US20110047483A1 (en) Messaging system
US8914447B2 (en) System and method for feature based message routing in a dynamic modular system architecture
WO2012006659A1 (en) Method and system for routing of electronic messages
US9338613B2 (en) Intelligent messaging system to convert email to SMS, EMS and MMS
US20130018886A1 (en) Effect measurement device, effect measurement method, and effect measurement program
CA2911989C (en) Method, system and apparatus for dectecting instant message spam
US20140364082A1 (en) System And Method For Routing A Message, And A Computer Program Product
WO2007109125A2 (en) System and method for activity monitoring and alerting
US20130044583A1 (en) Method, System and Program Product for Processing Requests
US8341396B1 (en) Dynamic selection and insertion of signature blocks during message transmission
US9439049B2 (en) System and method for message service gateway
CN104301874A (en) System notice transmitting method, device and system
TW200941977A (en) Data communication of fixed size data packages
US20120042097A1 (en) System and Method for Advanced Interoperability
US20110237276A1 (en) System and Method for Network Message Redirection and Application Matching

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11806127

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11806127

Country of ref document: EP

Kind code of ref document: A1