WO2024107896A1 - Routage de messages par une plate-forme de services de communication - Google Patents
Routage de messages par une plate-forme de services de communication Download PDFInfo
- Publication number
- WO2024107896A1 WO2024107896A1 PCT/US2023/079908 US2023079908W WO2024107896A1 WO 2024107896 A1 WO2024107896 A1 WO 2024107896A1 US 2023079908 W US2023079908 W US 2023079908W WO 2024107896 A1 WO2024107896 A1 WO 2024107896A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- message routing
- providers
- provider
- messages
- Prior art date
Links
- 238000004891 communication Methods 0.000 title description 71
- 238000006243 chemical reaction Methods 0.000 claims abstract description 141
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 49
- 230000015654 memory Effects 0.000 description 16
- 230000000875 corresponding effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000005457 optimization Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000007774 longterm Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001747 exhibiting effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/066—Format adaptation, e.g. format conversion or compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/214—Monitoring or handling of messages using selective forwarding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/80—Ingress point selection by the source endpoint, e.g. selection of ISP or POP
- H04L45/85—Selection among different networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/56—Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
- H04L45/3065—Route determination based on the nature of the carried application for real time traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/21—Monitoring or handling of messages
- H04L51/212—Monitoring or handling of messages using filtering or selective blocking
Definitions
- SMS Short Messaging Service
- MMS Multimedia Messaging Service
- FIG. 1 illustrates an example system architecture of a communication services platform, in accordance with aspects of the disclosure.
- FIG. 2 is a flow diagram of an example method of estimating message conversion rates based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- FIG. 3 schematically illustrates a memory data structure which can be employed for storing message delivery data by communication services platform operating in accordance with aspects of the present disclosure.
- Fig. 4 graphically illustrates an example message routing strategy implemented by the communication services platform operating in accordance with aspects of the present disclosure.
- Fig. 5 is a flow diagram of an example method 500 of detecting statistically significant changes in provider-specific message conversion rates based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- Fig. 6 is a flow diagram of an example method of selecting message routing providers for no-feedback customers based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- FIG. 7 is a block diagram illustrating an exemplary computer system, in accordance with some implementations of the disclosure.
- an organization may use messaging to forward to client devices of its end users one-time passwords for a two-factor authentication scheme.
- an organization may use messaging to send promotional messages to client devices of its end users.
- an organization may use messaging to send appointment reminders to client devices of its end users and may further request the message receiver to reply to either confirm or cancel an appointment.
- SaaS Software as a Service
- IM IM Messaging
- Message routing providers that are utilized by a given communication services platform may employ different communication technologies, networks, and/or configurations, which may result in different values of one or more chosen quality and/or performance metrics.
- a performance metric maybe derived from a message conversion rate, which reflects an estimated likelihood of successful message delivery to the intended recipients.
- each message routing provider may have its own pricing model, which may be, e.g., a fixed price for routing a specified number of messages, volumedependent price, time-of-day dependent price, and/or various combinations of these and other pricing models.
- each customer of a communication services platform may choose a suitable traffic optimization objective, which may be expressed by a set of requirements, e.g., specifying the desired message conversion rate and price.
- the communication services platform may dynamically allocate customer-originating messages to the available message routing providers serving a specified destination network (which may be identifier, e.g., by the Mobile Country Code (MCC) and/or Mobile Network Code (MNC)).
- MCC Mobile Country Code
- MNC Mobile Network Code
- the communication services platform may utilize customer-provided message delivery feedback in order to estimate the message conversion rates for the available message routing providers.
- the naive technique for computing the message conversion rates as provider-specific ratios of the messages transmitted by a specific routing provider that were successfully delivered to respective client devices may not always produce useful results since the customer-reported message delivery feedback may be distorted.
- Such distortions may be caused by the fact that the message delivery is not measured by a customer directly, but rather is based on end user’s actions following a successful message delivery (e.g., an end user entering the on-time password that had been sent to their client device via an SMS), and such actions may not always be strictly correlated with successful message delivery (e.g., an end user may fail to proceed with an attempted authentication process despite the successful delivery of an one-time password via an SMS to their client device).
- the parameters of the statistical distributions would likely be dependent on a specific application being utilized by end users, and thus the values of such parameters may not be easily determined by the communication services platform. For example, an end user is more likely to utilize a one-time password delivered via SMS for logging into a personal banking application than click on a link embedded into a promotional message. Furthermore, the customer-reported message delivery feedback may be distorted due to on various other unpredictable and/or unknown factors.
- some customers may provide delayed message delivery feedback, aggregated message delivery feedback, or no message delivery feedback at all, thus preventing the communication services platform from using even the naively computed message conversion rates for making message routing decisions.
- aspects of the present disclosure address the above-mentioned and other challenges by estimating the provider-specific message conversion rates based on message delivery feedback provided by multiple message-originating entities (e.g., customers of the communication services platform).
- message delivery data reported by multiple customers is utilized for making routing decisions for the feedback providing customers and/or for no-feedback customers.
- Each of the customers may have its own traffic optimization objective expressed by a corresponding set of requirements.
- the routing decisions may be made by the communication servicesplatform by feedingthe computed message conversion rates to one or more customer-specific routing models.
- a routing model may treat the message conversion rates as estimated likelihood of message delivery by respective message routing provider.
- the routing module may distribute the customer-originated messages among the routing providers in order to satisfy the customer-specific traffic optimization objective.
- the message delivery feedback reported by multiple feedback-providing customers is pooled together and utilized for estimating provider-specific message conversion rates, which then are used for routing decisions for message delivery feedback-providing customers and/or no-feedback customers.
- a communication services platform receives, from multiple feedback-providing customers, message delivery data reflecting message delivery outcomes by a pool of message routing providers to the specified destination network. Based on the message delivery data, the communication services platform determines raw message conversion rates for respective message routing providers, such that each raw message conversion rate reflects the ratio of a number of delivered messages to the number of forwarded messages by a respective message routing provider. The raw message conversion rates may then be normalized by the maximum raw message conversion rate among the raw message conversion rate for the pool of message routing providers.
- a respective confidence interval may then be determined based on the number of forwarded messages by the respective message routing provider, such that higher numbers of forwarded messages would yield narrower confidence intervals.
- a corresponding upper confidence bound may be determined as a linear combination (e.g., the sum) of the corresponding normalized raw message conversion rate and the corresponding confidence interval.
- the communication services platform may then compute pairwise normalized message conversion rate differences for each pair of message routing providers.
- the computed values may then be weighted by a set of weight coefficients, which may be based, e.g., on inverse squared sums of the confidence intervals of the respective provider pair.
- a system formed by the equations specifying the weighted pairwise normalized message conversion rate differences may then be solved to produce the message conversion rates that can be utilized for making message routing decisions, as described in more detail herein below.
- the communication services platform may maintain provider-specific sliding windows, such that each sliding window would include a predefined number of messages of a chosen message routing provider Responsive to detecting a significant difference between the message conversion rates in the current and previous sliding windows of a certain message routing provider, the communication services platform may reset the message delivery counters associated with this provider before proceeding to compute the message conversion rates, as described in more detail herein below.
- the present disclosure addresses the technical problem of accurately estimating the likelihood of successful message delivery by a message routing provider based on message delivery feedback reflecting the provider’s past performance in delivering messages for multiple customers.
- a technical solution to the above-identified technical problem involves generating a system of equations specifying weighted pairwise normalized message conversion rate differences, which may then is solved numerically to produce the message conversion rates that can be utilized for making message routing decisions.
- Another technical solution to the above-identified technical problem involves detecting and reacting to abruptly changing provider-specific message conversion rates by monitoring provider-specific sliding windows and resetting the message delivery counters associated with a message routing provider exhibiting a significant difference between the message conversion rates in the current and previous sliding windows.
- the technical effect includes utilizing message delivery data reported by multiple customers for making routing decisions for the feedback providing customers and/or for no-feedback customers, thus increasing the accuracy of predicted message conversion rates due to the larger available data set. Furthermore, abrupt changes in provider-specific message conversion rates may be detected faster due to the larger available data set. Finally, the provider exploration costs and associated performance sacrifices may be shared between multiple customers. “Provider exploration” herein refers to a technique involving routing a certain number of messages to multiple suboptimal providers, in order to collect message delivery data that is sufficient for estimating the message conversion rates for each of those providers, as described in more detail herein below.
- Fig 1 illustrates an example distributed system architecture (“system”) 100 implemented in accordance with aspects of the present disclosure.
- the distributed system architecture 100 supports a communication services platform 110, which may be implemented by one or more general purpose or specialized computing devices (such as servers), data stores (e.g., hard disks, memories, databases), networks, other hardware components that are utilized to run one or more software services, such as message routing services, and various middleware and operating systems.
- the computing devices may be disposed in one or more physical locations, which may include geographically distributed physical locations.
- communication services platform 110 may implement a Software as a Service (SaaS) platform that provides messaging services for forwarding messages (such as SMS messages, MMS messages, and/or IM messages) generated by multiple message-originating entities (e.g., customers 120A-120K of the communication services platform) to client devices 150A-150N via a pool of message routing providers 130A-130L serving respective destination networks 140A-140M.
- the communication services platform 110 may further provide various other services, including voice services, electronic mail services, video services, and/or chat messaging services.
- the communication servicesplatform 110 may be accessed (e.g., via one or more application programming interface (API) endpoints) by customer computing devices 120A- 120K via a communication network, which can include one or more public networks (e.g., the Internet) and/or private networks (e g., a local area network (LAN) or wide area network (WAN)) utilizing various physical and datalink layer technologies, such as wired networks (e.g., Ethernet network), wireless networks (e.g., an 802.11 network or a Wi-Fi network), and/or cellular networks (e.g., a Long Term Evolution (LTE) network).
- API application programming interface
- a customer computing device 120A-120K may be represented by a general purpose or specialized computing device implementing a server running one or more applications that utilize one or more messaging technologies (such as Short Message Service (SMS) or Multimedia Messaging Service (MMS)) for communicating with client applications running on client devices 150A-150N.
- SMS Short Message Service
- MMS Multimedia Messaging Service
- a client device 150A-150N may be represented by a general purpose or specialized computing device, such as a mobile communication device (e g., a smartphone), a portable computer (PC), a wearable device (e.g., smartwatch, smart glasses, etc.), a network- connected television set, a smart appliance (e g., a video doorbell), etc.
- a client device 150 may run one or more client applications that communicate (e g., using one or more messaging technologies) with one or more customer computing device 120A-120K.
- a client application running on a client device 150 may be a web application or a standalone application implementing a graphical user interface (GUI).
- GUI graphical user interface
- an API endpoint exposed by the communication services platform 110 may be accessed via a resource identifier, such a universal resource identifier (URI).
- the API endpoint may receive requests and return responses from/to customers 120A-120K.
- the API endpoint may implement, e.g., a REST (Representational State Transfer) API, a GraphQL API, a SOAP (Simple Object Access Protocol) API accessible via HTTP (Hypertext Transfer Protocol)/HTTPS (Hypertext Transfer Protocol Secure) or other suitable application layer protocols.
- the API endpoint may be used for initiating a messaging request that may include one or more destination identifiers (e.g., recipient phone numbers), the message content (e.g., text and/or multimedia content), and the origin identifier (e.g., a sender phone number).
- destination identifiers e.g., recipient phone numbers
- the message content e.g., text and/or multimedia content
- the origin identifier e.g., a sender phone number
- outgoing messages may be automatically assigned an origin identified that is associated with the customer account.
- Message routing providers 130A-130L that are utilized by a given communication services platform may employ different communication technologies, networks, and/or configurations.
- each messaging provider 130 may route the incoming messages to specified destinations via one or more messaging gateways (e.g., SMS gateways).
- message routing providers 130A-130L may exhibit different values of one or more chosen quality and/or performance metrics.
- a performance metric may be derived from a message conversion rate, which reflects an estimated likelihood of successful message delivery to the intended recipients.
- each message routing provider 130A-130L may have its own pricing model, which may be, e.g., a fixed price for routing a specified number of messages, volume-dependent price, time- of-day dependent price, and/or various combinations of these and other pricing models.
- each customer 120A-120K of the communication services platform 110 may choose its own traffic optimization objective, which may be expressed by a set of requirements, e.g., specifying the desired message conversion rate and price.
- the set of requirements may prescribe maximizing the message conversion rate while not exceeding a specified maximum price.
- the set of requirements may prescribe minimizing the price while not falling below a specified minimum message conversion rate.
- the communication services platform 110 may dynamically allocate customer-originating messages to the available message routing providers for a specified destination network (e.g., identified by the Mobile Country Code (MCC) and/or Mobile Network Code (MNC)).
- the destination network identifier(s) may be derived from the destination phone number or other destination endpoint identifier.
- the communication services platform 110 may identify, in an MCC/MNC directory, a record mapping at least a part of the destination phone number to the corresponding destination network (identified by the MCC and/or MNC). Then, the communication servicesplatform 110 may select, from the pool of available message routing providers, a subset of message routing providers 130A-130L that serve the identified destination network.
- the communication services platform 110 may utilize the messaging providers’ message conversion rates and pricing models for selecting a messaging provider.
- the routing decisions may be made by the message routing module 151 of the communication services platform 110 by feeding the computed message conversion rates to one or more customer-specific routing models.
- a routing model may treat the message conversion rates as estimated likelihood of message delivery by respective message routing provider. Accordingly, the routing module may distribute the customer-originated messages among the routing providers in order to satisfy the customer-specific traffic optimization objective.
- the message delivery feedback reported by multiple feedbackproviding customers is pooled together and utilized for estimating provider-specific message conversion rates, which then are used for routing decisions for message delivery feedbackproviding customers and/or no-feedback customers, as described in more detail herein below.
- the users may be provided with an opportunity to control whether the communication services platform 110 collects user information, or to control whether and/or how to receive content from the communication services platform 110 that may be more relevant to the user.
- certain data may be treated in one or more ways before it is stored or used, so that personally identifiable information is removed.
- a user’s identity may be treated so that no personally identifiable information may be determined for the user, or a user’s geographic location may be generalized where location information is obtained (such as to a city, ZIP code, or state level), so that a particular location of a user cannot be determined.
- the user may have control over how information is collected about the user and used by the communication services platform 110.
- Fig 2 is a flow diagram of an example method 200 of estimating message conversion rates based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- the method 200 can be performed for each destination network that is served by the communication services platform.
- the method 200 may be performed by processing logic that may include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof.
- the method 200 is performed by the one or more modules (e.g., message routing module 151) of the communication services platform 110 of Fig. 1.
- the processing logic implementing the method identifies a pool of message routing providers serving a specified destination network, as described in more detail herein above.
- the processing logic receives, from multiple messageoriginating entities (e.g., customers of the communication services platform) message delivery data reflecting message delivery by the pool of message routing providers to the specified destination network.
- the message delivery data provided to the communication services platform by each customer includes, for each message routing provider that has been employed to route the customer’s messages, the number of messages routed and the number of messages successfully delivered.
- the message delivery data may be sent periodically by each customer to the communication services platform, such that the communication services platform may maintain the cumulative total numbers of messages routed and successfully delivered by each provider for each customer.
- the communication services platform may employ the example data structure 300 of Fig. 3 for storing the cumulative total numbers of messages routed and successfully deliveredby each provider for each customer.
- the example data structure 300 is maintained by the communication services platform for storing the customer-reported message delivery data reflecting message routing and delivery to a specified destination network serviced by a pool of message routing providers.
- the example data structure 300 is a rectangular two-dimensional table, each vector of the first dimension of which (e.g., each row) of which corresponds to a message routing provider of the pool of message routing providers servicingthe destination network.
- each vector of the second dimension (e.g., each column) of the example data structure 300 corresponds to a feedback-providing customer that periodically reports the message delivery data to the communication services network.
- each cell of the table identified by an intersection of a row and a column contains two numbers: the number of messages that have been routed by the provider identified by the index of the row for the customer identified by the index of the column and the number of messages that have been successfully delivered to the respective recipients.
- the communication services platform may periodically receive the message delivery data from the feedback-providing customers and maintain the cumulative total numbers of messages routed and successfully delivered by each provider for each customer.
- example data structure 300 is shown as a two-dimensional table, in various other implementations, other types of data structures, such as linear arrays or multi-dimensional arrays, can be employed.
- the processing logic determines, based on the message delivery data, a set of raw message conversion rates for respective message routing providers and customers.
- Each raw message conversion rate of the set of raw message conversion rates is computed as the ratio of the number of delivered messages to the number of forwarded messages by a given message routing provider for a given customer:
- CRy is the message conversion rate for message routing provider i routing messages originated by customer j
- Dy is the number of messages successfully delivered by message routing provider i for customer j
- Ry is the number of messages routed by message routing provider i for customer j.
- the processing logic determines, for each raw message conversion rate of the set of computed raw message conversion rates, a corresponding confidence interval.
- the confidence interval reflects the number of forwarded messages by a given message routing provider to a given customer.
- the confidence interval can be computed based on the Student’s distribution with specified desired distribution parameters (e g., 95% confidence interval).
- the processing logic normalizes each customer’s set of raw message conversion rates (e.g., corresponding to the message delivery data stored in a given column of the example data structure 300) by the maximum raw message conversion rate among the set of raw message conversion rates:
- CRNy is the normalized message conversion rate for message routing provider i routing messages originated by customer j
- max is the maximum message conversion rate among all message conversion rates for customer j.
- the processing logic computes the pairwise normalized message conversion rate differences for each pair of message routing providers based on the message delivery data of a given customer. Accordingly, for customer j, a set of pairwise differences is computed CRN - CRNy for all providers k and I, where k 1.
- the processing logic calculates the average weighted pairwise differences of normalized conversion rate across all customers for each routing message provider pair.
- the weight coefficients may be chosen as the inverse squared sum of the confidence interval values of the corresponding message routing provider pair:
- WklJ l/(CIlg + Cl ) 2 , [0056]
- w k!j is the weight coefficient to be applied to the pairwise message conversion rate difference of message routing providers k and / based on the message delivery data of the customer j. Accordingly, the adjusted pairwise normalized message conversion rate differences calculated across all customers can be expressed as follows:
- CR k and CRi are message conversion rates for providers k and I respectively, based on the message delivery data reported by multiple customers.
- the pairwise differences form a system of linear equations for which each equation is linearly weighted
- the processing logic solves the system of linear equations formed by the adjusted pairwise normalized message conversion rate differences computed at operation 280.
- the solution may be obtained by solving a convex linear optimization task with the objective to minimize the least squared error and while bounding the resulting conversing rate to be between 0 and 1 .
- the solution may be shifted such that the message routing provider with the highest normalized message conversion rate has the highest possible message conversion rate (i.e., 100%). This determines provider-specific message conversion rates.
- the processing logic aggregates the messages routed by each message routing providers based on the message delivery data, thus computing providerspecific UCBs of message conversion rates:
- UCBj is the upper confidence bound for message routing provider i based on the message delivery data reported by all customers, and C7 ; is the confidence interval for message routing provider i computed based on the number of messages routed.
- the processing logic identifies one or more message routing providers for routing one or more messages to the destination network.
- the routing decisions may be made based on the message conversion rates for respective message routing providers computed at operation 250.
- the routing decisions may be made based on the upper confidence bounds of message conversion rates for respective message routing providers computed at operation 255.
- each of the customers may have its own traffic optimization objective expressed by a corresponding set of requirements, e.g., specifying the desired message conversion rate and price.
- the set of requirements may prescribe maximizing the message conversion rate while not exceeding a specified maximum price.
- the set of requirements may prescribe minimizing the price while not falling below a specified minimum message conversion rate.
- the communication services platform In order to meet the customer requirements, the communication services platform
- the communication servicesplatform may feed the computed message conversion rates to one or more customer-specific routing models.
- a routing model may treat the message conversion rates as estimated likelihood of message delivery by respective message routing provider.
- the routing module may distribute the customer-originated messages among the routing providers in order to satisfy the customer-specific traffic optimization objective.
- the customer requirements and the computed message conversion rates may be utilized to formulate a linear optimization task, the solution of which can representthe message allocation strategy (i.e., the number of messages to be allocated to each message routing provider of a chosen subset of message routing providers serving the given destination network) that would satisfy the customer requirements.
- Fig. 4 graphically illustrates an example message routing strategy implemented by the communication services platform operating in accordance with aspects of the present disclosure.
- the set of customer requirements prescribes maximizing the message conversion rate while not exceeding a specified maximum cost.
- the communication services platform allocates, based on the computed message conversion rates, the first portion 430 of messages to message routing provider A, which has the best message conversion rate and the highest per-message price; the second portion of messages 440 is allocated to message routing provider B, which has the second best message conversion rate and a lower per-message price, such that the total cost of message delivery for the customer would not exceed the specified maximum cost.
- a third portion of messages 450 is allocated to a provider C for exploration, i.e., for determining the provider’s message conversion rate, even if such allocation may produce a slightly suboptimal overall allocation.
- the number of messages allocated to a provider for exploration may be limited by a predefined threshold number of share (e.g., 5%) of all messages for a given customer.
- the message routing platform detects a significant change in the message conversion rate of the message routing provider A.
- “Significant” change herein is defined as a change of the message conversion rate that exceeds a predefined threshold portion of the message conversion rate (e.g., 10%) and thus requires swift updating of the current message routing strategy.
- a predefined threshold portion of the message conversion rate e.g. 10%
- An example method of detecting a significant change in a message conversion rate is described herein below with reference to Fig 5.
- the communication services platform allocates, based on the updated message conversion rates, the first portion 460 of messages to message routing provider D, which now has the best message conversion rate and the highest per-message price; the second portion of messages 470 is allocated to message routing provider B, which has the second best message conversion rate and a lower per-message price; the third portion of messages 480 is allocated to message routing provider E, which has a lower message conversion rate and a lower per-message price, such that the total cost of message delivery for the customer would not exceed the specified maximum cost.
- the message delivery feedback reported by multiple feedback-providing customers is pooled together and utilized for estimating provider-specific message conversion rates, which then are used for routing decisions (e.g., by method 200) for message delivery feedback-providing customers and/or no-feedback customers.
- Fig. 5 is a flow diagram of an example method 500 of detecting statistically significant changes in provider-specific message conversion rates based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- the method 500 may be performed by processing logic that may include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof.
- the method 500 is performed by the one or more modules (e.g., message routing module 151) of the communication services platform 110 of Fig. 1. Although shown in a particular sequence or order, unless otherwise specified, the order of the operations maybe modified.
- the processing logic implementing the method identifies a pool of message routing providers associated with a specified destination network, as described in more detail herein above.
- the processing logic receives, from multiple messageoriginating entities (e g., customers of the communication services platform) message delivery data reflecting message delivery by the pool of message routing providers to the specified destination network
- the message delivery data provided to the communication services platform by each customer includes, for each message routing provider that has been employed to route the customer’s messages, the number of messages routed and the number of messages successfully delivered.
- the message delivery data may be sent periodically by each customer to the communication services platform, such that the communication services platform may maintain the cumulative total numbers of messages routed and successfully delivered by each provider for each customer.
- the communication services platform may employ the example data structure 300 of Fig. 3 for storing the cumulative total numbers of messages routed and successfully deliveredby each provider for each customer.
- the processing logic compares the number of messages successfully routed by a certain message routing provider in the previous short-term sliding window and the number of messages successfully routed by the certain message routing provider in the current short-term sliding window.
- Each sliding window is defined by a timeframe during which a chosen message routing provider has routed a predefined number (e.g., 1000) of messages.
- the short-term sliding window would include the predefined number of messages routed by the chosen message routing provider and would further include all the messages that have been routed by other message routing providers of the pool of message routing providers within a chosen long-term sliding window (i.e., a timeframe based on which the message conversion rates of message routing providers are estimated; it is typically many folds larger than the short-term sliding window). Accordingly, for each message routing provider, the communication services platform maintains a corresponding current and previous sliding windows in order to detect significant changes in the message conversion rate for that provider.
- the processing logic Responsive to determining, at operation 530, that the difference between the number of messages successfully routed by a chosen message routing provider in the previous sliding window and the number of messages successfully routed by the certain message routing provider in the current sliding window exceeds a predefined threshold, the processing logic, at operation 540, resets message delivery counters associated with the certain message routing provider in the long-term sliding window.
- the processing logic estimates, based on the updated message delivery data, for each message routing provider of the plurality of message routing providers, a corresponding updated message conversion rate, as described in more detail herein above with references to Fig. 2.
- the long-term sliding window is shifted such that it includes only historical routing outcomes after the reset
- the processing logic identifies one or more message routing providers for routing one or more messages to the destination network, based on the message conversion rates for respective message routing providers computed at operation 550, as described in more detail herein above with references to Fig. 4.
- Fig. 6 is a flow diagram of an example method 600 of selecting message routing providers for no-feedback customers based on message delivery data reported by multiple customers, in accordance with aspects of the present disclosure.
- the method 600 may be performedby processing logic that may include hardware (e.g., processing device, circuitry, dedicated logic, programmable logic, microcode, hardware of a device, integrated circuit, etc.), software (e.g., instructions run or executed on a processing device), or a combination thereof.
- the method 600 is performedby the one or more modules (e.g., message routing module 151) of the communication services platform 110 of Fig. 1. Although shown in a particular sequence or order, unless otherwise specified, the order of the operations may be modified.
- the processing logic implementing the method identifies a pool of message routing providers associated with a specified destination network, as described in more detail herein above.
- the processing logic receives, from multiple messageoriginating entities (e g., customers of the communication services platform) message delivery data reflecting message delivery by the pool of message routing providers to the specified destination network.
- the message delivery data provided to the communication services platform by each customer includes, for each message routing provider that has been employed to route the customer’s messages, the number of messages routed and the number of messages successfully delivered.
- the message delivery data may be sent periodically by each customer to the communication services platform, such that the communication services platform may maintain the cumulative total numbers of messages routed and successfully delivered by each provider for each customer.
- the communication services platform may employ the example data structure 300 of Fig. 3 for storing the cumulative total numbers of messages routed and successfully deliveredby each provider for each customer.
- the processing logic estimates, based on the message delivery data, for each message routing provider of the plurality of message routing providers, a corresponding message conversion rate reflecting a likelihood of successful message delivery by a respective message routing provider to the specified destination network, as described in more detail herein above with references to Fig. 2.
- the processing logic receives, from a message-originating entity that has not provided at least part of the message delivery data, one or more messages to be forwarded to their respective destinations.
- the processing logic identifies, based on message conversion rates for respective message routing providers, one or more message routing providers for routing the one or more messages to the destination network, as described in more detail herein above with references to Fig. 4.
- Fig. 7 is a block diagram illustrating an exemplary computer system 700, in accordance with an implementation of the disclosure.
- the computer system 700 executes one or more sets of instructions that cause the machine to perform any one or more of the methodologies discussed herein.
- Set of instructions, instructions, and the like may refer to instructions that, when executed by computer system 700, cause computer system 700 to perform one or more operations of message routing module 151.
- the machine may operate in the capacity of a server or a client device in a client-server network environment, or as a peer machine in a peer-to-peer (or distributed) network environment.
- the machine may be a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile telephone, a web appliance, a server, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.
- PC personal computer
- PDA personal digital assistant
- STB set-top box
- PDA personal digital assistant
- mobile telephone a web appliance
- server a server
- network router switch or bridge
- the computer system 700 includes a processing device 702, a main memory 704 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.), a static memory 707 (e g., flash memory, static random access memory (SRAM), etc ), and a data storage device 717, which communicate with each other via a bus 708.
- main memory 704 e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM) or Rambus DRAM (RDRAM), etc.
- DRAM dynamic random access memory
- SDRAM synchronous DRAM
- RDRAM Rambus DRAM
- static memory 707 e.g., flash memory, static random access memory (SRAM), etc
- SRAM static random access memory
- the processing device 702 represents one or more general -purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, the processing device 702 may be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, or a processing device implementing other instruction sets or processing devices implementing a combination of instruction sets.
- the processing device 702 may also be one or more special -purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like.
- the processing device 702 is configured to execute instructions of the distributed system architecture 100 and the message routing module 151 for performing the operations discussed herein.
- the computer system 700 may further include a network interface device 722 that provides communication with other machines over a network 718, such as a local area network (LAN), an intranet, an extranet, or the Internet.
- the computer system 700 also may include a display device 710 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)), an alphanumeric input device 712 (e.g., a keyboard), a cursor control device 714 (e.g., a mouse), and a signal generation device 720 (e.g., a speaker).
- a display device 710 e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)
- an alphanumeric input device 712 e.g., a keyboard
- a cursor control device 714 e.g., a mouse
- a signal generation device 720 e.g., a speaker
- the data storage device 717 may include a non -transitory computer-readable storage medium 724 on which is stored the sets of instructions of the distributed system architecture 100 of the message routing module 151 implementing the methods described herein.
- the sets of instructions of the distributed system architecture 100 and of the message routing module 151 may also reside, completely or at least partially, within the main memory 704 and/or within the processing device 702 during execution thereof by the computer system 700, the main memory 704 and the processing device 702 also constituting computer- readable storage media.
- the sets of instructions may further be transmitted or received over the network 718 via the network interface device 722.
- While the example of the computer-readable storage medium 624 is shown as a single medium, the term “computer-readable storage medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the sets of instructions.
- the term “computer-readable storage medium” may include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that causes the machine to perform any one or more of the methodologies of the disclosure.
- the term “computer-readable storage medium” may include, but not be limited to, solid-state memories, optical media, and magnetic media.
- This apparatus may be specially constructed for the required purposes, or it may include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer.
- a computer program may be stored in a computer readable storage medium, such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), a magnetic or optical card, or any type of media suitable for storing electronic instructions.
- a computer readable storage medium such as, but not limited to, any type of disk including a floppy disk, an optical disk, a compact disc read-only memory (CD-ROM), a magnetic-optical disk, a read-only memory (ROM), a random access memory (RAM), an erasable programmable read-only memory (
- example or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example’ or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion.
- the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations.
- one or more processing devices for performing the operations of the above described implementations are disclosed. Additionally, in implementations of the disclosure, a non-transitory computer-readable storage medium stores instructions for performing the operations of the described implementations. Also in other implementations, systems for performingthe operations of the described implementations are also disclosed.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Un procédé donné à titre d'exemple de sélection de fournisseurs de routage de messages sur la base de données de distribution de messages rapportées par de multiples clients comprend : l'identification d'une pluralité de fournisseurs de routage de messages desservant un réseau de destination spécifié ; la réception, en provenance d'une pluralité d'entités d'origine de messages, des données de distribution de messages reflétant la distribution de messages par la pluralité de fournisseurs de routage de messages au réseau de destination spécifié ; l'estimation, sur la base des données de distribution de messages, pour chaque fournisseur de routage de messages parmi la pluralité de fournisseurs de routage de messages, un taux de conversion de message correspondant reflétant une probabilité de réussite de distribution de message par un fournisseur de routage de messages respectif au réseau de destination spécifié ; la réception d'un ou plusieurs messages en provenance d'une entité d'origine de message qui n'a pas fourni au moins une partie des données de distribution de messages ; et l'identification, sur la base des taux de conversion de messages pour des fournisseurs de routage de messages respectifs, d'un ou plusieurs fournisseurs de routage de messages pour router le ou les messages vers le réseau de destination.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/988,750 | 2022-11-16 | ||
US17/988,750 US20240163237A1 (en) | 2022-11-16 | 2022-11-16 | Message routing by communication services platform |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024107896A1 true WO2024107896A1 (fr) | 2024-05-23 |
Family
ID=89321804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2023/079908 WO2024107896A1 (fr) | 2022-11-16 | 2023-11-15 | Routage de messages par une plate-forme de services de communication |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240163237A1 (fr) |
WO (1) | WO2024107896A1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9467970B1 (en) * | 2015-05-15 | 2016-10-11 | PagerDuty, Inc. | Robust routing and delivery of notifications |
US20210264489A1 (en) * | 2020-02-24 | 2021-08-26 | Twilio Inc. | Message exchange system |
US20210344575A1 (en) * | 2020-04-29 | 2021-11-04 | Twilio Inc. | Message routing optimization system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE503323T1 (de) * | 2005-12-02 | 2011-04-15 | Microsoft Corp | Nachrichtendienst |
US10476782B2 (en) * | 2015-08-03 | 2019-11-12 | Nexmo, Inc. | Systems and methods for adaptive routing |
US10999236B2 (en) * | 2016-06-17 | 2021-05-04 | Facebook, Inc. | Selection of service providers for message transmission on online social networks |
US10356570B1 (en) * | 2018-01-02 | 2019-07-16 | Syniverse Technologies, Llc | System and method for determining conversion rate for short message service (SMS) messaging |
US11223553B1 (en) * | 2021-07-28 | 2022-01-11 | Bandwidth, Inc. | Techniques for routing messages through a message delivery network |
US20230232223A1 (en) * | 2022-01-18 | 2023-07-20 | Telesign Corporation | Automated message routing changes based on completion rate |
-
2022
- 2022-11-16 US US17/988,750 patent/US20240163237A1/en active Pending
-
2023
- 2023-11-15 WO PCT/US2023/079908 patent/WO2024107896A1/fr unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9467970B1 (en) * | 2015-05-15 | 2016-10-11 | PagerDuty, Inc. | Robust routing and delivery of notifications |
US20210264489A1 (en) * | 2020-02-24 | 2021-08-26 | Twilio Inc. | Message exchange system |
US20210344575A1 (en) * | 2020-04-29 | 2021-11-04 | Twilio Inc. | Message routing optimization system |
Also Published As
Publication number | Publication date |
---|---|
US20240163237A1 (en) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220116349A1 (en) | Messaging platform communication processing using message cluster detection and categorization | |
US10812323B2 (en) | Techniques to provide relay server configuration for geographically disparate client devices | |
US10356567B2 (en) | Multi-channel communication system | |
US20220086719A1 (en) | Network nodes for joint mec host and upf selection | |
US10813031B2 (en) | System and method for relaying information | |
EP3332330B1 (fr) | Systèmes et procédés de routage adaptatif | |
US10880697B2 (en) | Multi-channel communication system | |
US7336773B2 (en) | Method and system for multi-mode communication with sender authentication | |
US9338613B2 (en) | Intelligent messaging system to convert email to SMS, EMS and MMS | |
US10257673B1 (en) | Messaging system using enterprise numbers | |
JP2007325190A (ja) | プッシュゲートウェイ、在圏登録サーバ、携帯端末、プッシュシステム及びプッシュ方法 | |
CN101729491A (zh) | 一种增强基于脚本业务的应用可靠性的方法、装置和系统 | |
Tao et al. | Contacts-aware opportunistic forwarding in mobile social networks: A community perspective | |
US20240163237A1 (en) | Message routing by communication services platform | |
WO2012006659A1 (fr) | Procédé et système pour le routage de messages électroniques | |
CN107135170B (zh) | 一种内容中心网络的高质量QoS保证方法 | |
CN103096273B (zh) | 一种上行短消息发送的方法、设备及系统 | |
US20090094333A1 (en) | Collaborative Electronic Mail Filtering | |
US11882086B1 (en) | Dynamically distributing messaging resources in software as a service messaging platform | |
JP2014178822A (ja) | メッセージ送信方法、装置およびシステム | |
US11144851B2 (en) | System and methods for managing communications events | |
US20220248205A1 (en) | 5g and satellite parallel service | |
WO2010136835A1 (fr) | Autorisation réactive pour publications | |
US20090313637A1 (en) | Method and system for preferential reply routing | |
KR101476169B1 (ko) | 메시지 서비스 제공 방법 |
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: 23828582 Country of ref document: EP Kind code of ref document: A1 |