US11968276B2 - Proxy communication system that translates contact identifiers - Google Patents
Proxy communication system that translates contact identifiers Download PDFInfo
- Publication number
- US11968276B2 US11968276B2 US16/877,753 US202016877753A US11968276B2 US 11968276 B2 US11968276 B2 US 11968276B2 US 202016877753 A US202016877753 A US 202016877753A US 11968276 B2 US11968276 B2 US 11968276B2
- Authority
- US
- United States
- Prior art keywords
- proxy
- client device
- contact identifier
- communication system
- contact
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
- 238000004891 communication Methods 0.000 title claims abstract description 193
- 238000013507 mapping Methods 0.000 claims abstract description 71
- 230000004044 response Effects 0.000 claims description 5
- 230000001419 dependent effect Effects 0.000 abstract description 7
- 238000000034 method Methods 0.000 description 41
- 230000006870 function Effects 0.000 description 15
- 238000013519 translation Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2596—Translation of addresses of the same type other than IP, e.g. translation from MAC to MAC addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/02—Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/69—Identity-dependent
- H04W12/72—Subscriber identity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/60—Context-dependent security
- H04W12/69—Identity-dependent
- H04W12/75—Temporary identity
Definitions
- the described embodiments relate generally to communication. More particularly, the present embodiments relate to a proxy communication system that translates contact identifiers.
- a contact identifier such as a telephone number for telephone calls or text messages, an email address for email, and so on.
- the present disclosure relates to a proxy communication system that translates contact identifiers.
- the proxy communication system maps one or more client device contact identifiers to one or more proxy contact identifiers from a pool of proxy contact identifiers.
- the proxy communication system may facilitate communication on behalf of the client device using the proxy contact identifier.
- the proxy communication system may also communicate with the client device on behalf of the target device using the client device contact identifier.
- the mapping may be state dependent, such as different mappings based on a target device contact identifier, recent communications between the client device and the target device, and so on.
- a proxy communication system that translates contact identifiers includes at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor executes the instructions to receive a proxy mapping request from a client device using the at least one communication unit, map a client device contact identifier to a proxy contact identifier from a pool of proxy contact identifiers, and facilitate communication with a target device on behalf of the client device via the at least one communication unit using the proxy contact identifier.
- the proxy contact identifier is a phone number. In various examples, the proxy contact identifier is an email address.
- the at least one processor un-maps the proxy contact identifier from the client device contact identifier in response to a request from the client device.
- the at least one processor facilitates communication with the target device on behalf of the client device by receiving a proxy connection request from the client device, via the at least one communication unit, to communicate with a target device and communicating with the target device on behalf of the client device via the at least one communication unit using the proxy contact identifier.
- the at least one processor provides the proxy contact identifier to the target device when communicating with the target device on behalf of the client device.
- the at least one processor facilitates communication with the target device on behalf of the client device by providing the proxy contact identifier to the client device to provide to the target device instead of the client device contact identifier.
- a proxy communication system that translates contact identifiers includes at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor executes the instructions to receive a communication request, using the at least one communication unit, that addresses a proxy contact identifier from a pool of proxy contact identifiers, determine a mapping of the proxy contact identifier to multiple client device contact identifiers associated with multiple client devices, select a client device contact identifier associated with a client device from the multiple client device contact identifiers, and communicate with the client device on behalf of a target device via the at least one communication unit using the client device contact identifier.
- the at least one processor selects the client device contact identifier based on a previous communication between the at least one processor and the target device on behalf of the client device. In some examples, the at least one processor selects the client device contact identifier based on a target device contact identifier. In a number of examples, the client device contact identifier includes an extension. In various examples, the at least one processor selects the client device contact identifier based on a previous communication between the client device and the target device on behalf of the client device.
- the at least one processor maintains a state table in the at least one non-transitory storage medium and selects the client device contact identifier using the state table.
- the state table tracks recent transactions.
- a proxy communication system that translates contact identifiers includes at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor executes the instructions to create a mapping between a client device contact identifier for a client device and a proxy contact identifier from a pool of proxy contact identifiers, receive a communication request that addresses the proxy contact identifier from a target device via the at least one communication unit, and communicate with the client device on behalf of the target device via the at least one communication unit using the client device contact identifier.
- the client device is a first client device
- the client device contact identifier is a first client device contact identifier
- the at least one processor changes the mapping from the first client device contact identifier for the first client device to a second client device contact identifier for a second client device.
- the at least one processor changes the mapping to a null contact identifier.
- the at least one processor changes the mapping after a time period.
- the at least one processor changes the mapping after completion of an event.
- the at least one processor is a component of a private branch exchange.
- FIG. 1 depicts a first example proxy communication system that translates contact identifiers.
- FIG. 2 depicts a flow chart illustrating a first example method for proxy communication system translation of contact identifiers. This method may be performed by the system of FIG. 1 .
- FIG. 3 depicts a flow chart illustrating a second example method for proxy communication system translation of contact identifiers. This method may be performed by the system of FIG. 1 .
- FIG. 4 depicts a flow chart illustrating a third example method for proxy communication system translation of contact identifiers. This method may be performed by the system of FIG. 1 .
- FIG. 5 depicts a flow chart illustrating a fourth example method for proxy communication system translation of contact identifiers. This method may be performed by the system of FIG. 1 .
- FIG. 6 depicts a flow chart illustrating a fifth example method for proxy communication system translation of contact identifiers. This method may be performed by the system of FIG. 1 .
- FIG. 7 depicts a first example of translation of contact identifiers performed by a proxy communication system such as the system of FIG. 1 .
- FIG. 8 depicts a second example of translation of contact identifiers performed by a proxy communication system such as the system of FIG. 1 .
- One way that people may attempt to restrict access to their contact identifiers may be to use anonymous calling to block their telephone number from being provided to other people whom they call. This may prevent the other people from gaining access to their telephone number.
- many people do not answer anonymous calls since anonymous calls are often associated with solicitations or scams.
- such a technique does not typically provide any way for the other people to call the people back.
- people may use anonymous calling to prevent other people from calling them back indiscriminately, they may still want the other people to be able to call them back under some limited circumstances. Since anonymous calling does not provide this ability, the people would still have to provide their telephone number to the other people, defeating the purpose of using anonymous calling.
- Other existing solutions have similar issues.
- the proxy communication system may have an available pool of contact identifiers, such as telephone numbers, email addresses, text or other message identifiers, and so on.
- the proxy communication system maps one of this pool to contact identifiers for a client device.
- the client device may make outbound network connections via the proxy communication system, which may complete the network connections using the pool contact identifier instead of the client device contact identifier.
- an inbound connection may use the pool contact identifier to reach the proxy communication system, which may complete the connection using the mapped client device contact identifier. This may provide configurable anonymity for both outbound and inbound connections in a way that can be reconfigured at any time.
- mapping may be dependent on various states (such as different mappings based on the caller or callee) without providing indications that such a proxy communication system is in use, such as is conveyed when callers block their number.
- This may be configured and de-configured on a per transaction basis for apps or other applications, such as rideshare apps to enable one or more communications between driver and passenger for the duration of the transaction without exposing the personal information of one or both.
- This may also be used for purposes other than anonymity, such as where the proxy communication system uses the mappings to redirect callers of a general number to the extension of a respective party based on their calling number.
- the system may be able to perform communication anonymizing and/or routing functions that the system would not previously have been able to perform absent the technology disclosed herein. This may also enable the system to provide communication anonymizing and/or routing functions more efficiently while consuming fewer hardware and/or software resources as more resource consuming communication anonymizing and/or routing techniques and/or hardware and/or software components may be omitted, reducing unnecessary hardware and/or software components and providing greater system flexibility.
- the proxy communication system maps one or more client device contact identifiers to one or more proxy contact identifiers from a pool of proxy contact identifiers.
- the proxy communication system may facilitate communication on behalf of the client device using the proxy contact identifier.
- the proxy communication system may also communicate with the client device on behalf of the target device using the client device contact identifier.
- the mapping may be state dependent, such as different mappings based on a target device contact identifier, recent communications between the client device and the target device, and so on.
- FIGS. 1 - 8 These and other embodiments are discussed below with reference to FIGS. 1 - 8 . However, those skilled in the art will readily appreciate that the detailed description given herein with respect to these Figures is for explanatory purposes only and should not be construed as limiting.
- FIG. 1 depicts a first example proxy communication system 100 that translates contact identifiers.
- the system 100 may include one or more proxy devices 101 that are operable to communicate with one or more client devices 102 and one or more target devices 103 .
- the proxy device 101 may map one or more client device contact identifiers for and/or otherwise associated with the client device 102 to one or more proxy contact identifiers from a pool of proxy contact identifiers associated with the proxy device 101 .
- the proxy device 101 may facilitate communication with the target device 103 on behalf of the client device 102 using the proxy contact identifier. In this way, the communication may appear to the target device 103 as coming from the proxy contact identifier.
- the proxy device 101 may receive a proxy connection request from the client device 102 to communicate with the target device 103 and may communicate with the target device 103 on behalf of the client device 102 using the proxy contact identifier.
- the proxy device 101 may provide the proxy contact identifier to the client device 102 , which the client device 102 may provide when communicating with the target device 103 .
- the proxy device 101 may also communicate with the client device 102 on behalf of the target device 103 using the client device contact identifier.
- the system 100 may be able to perform communication anonymizing and/or routing functions that the system 100 would not previously have been able to perform absent the technology disclosed herein. This may also enable the system 100 to provide communication anonymizing and/or routing functions more efficiently while consuming fewer hardware and/or software resources as more resource consuming communication anonymizing and/or routing techniques and/or hardware and/or software components may be omitted, reducing unnecessary hardware and/or software components and providing greater system 100 flexibility.
- the contact identifiers may be telephone numbers. In other implementations, the contact identifiers may be email addresses and/or any other mechanism used to route communications. Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- a rideshare app executing on the client device 102 may allow a driver to request an anonymized telephone number to use to call a scheduled passenger.
- the client device 102 may contact the proxy device 101 .
- the proxy device 101 may have a contact identifier for the client device 102 with a proxy contact identifier.
- the proxy device 101 may initiate communication with the target device 103 associated with the scheduled passenger.
- the proxy device 101 may provide the proxy contact identifier to the target device 103 as part of such communication.
- the scheduled passenger may subsequently try to contact the driver using the proxy contact identifier.
- the proxy device 101 may receive the communication, determine that the proxy contact identifier maps to the contact identifier for the client device 102 , and communicate with the client device 102 using the contact identifier for the client device 102 . For example, the proxy device 101 may forward the communication to the client device 102 , route the communication to the client device 102 , exchange data for the communication between the target device 103 and the client device 102 , and so on.
- the mapping may be state dependent.
- the proxy device 101 may create and use different mappings for different target device contact identifiers associated with different target devices 103 .
- two different people may call a general insurance number. Each person may have a different agent assigned to their policy.
- the proxy device 101 may use telephone numbers associated with the people to consult a state table, determine the respective agent associated with each person, determine the contact identifier associated with each respective agent, and route each person to their respective agent's call queue.
- the proxy device 101 may create and use different mappings based on previous communications between one or more client devices 102 and one or more target devices 103 .
- a customer service line may use a single telephone number for a number of different customer service representatives. Each customer service representative may be associated with a different extension.
- the proxy device 101 may consult a state table to see if a contact identifier associated with the respective target device 103 recently communicated with a client device 102 associated with one of the customer service agents. If not, the proxy device 101 may route the call to a general queue for a next available customer service agent.
- the proxy device 101 may route the call to the extension of that customer service agent. This may allow the person to reach the customer service agent they were speaking to without waiting in the general queue if accidentally disconnected. This may also allow the person to speak again to the customer service agent who may already be familiar with the person's situation, may still have information for the person and/or the person's issue accessible on the customer service agent's computer and/or other device, and so on.
- the proxy device 101 may have an available pool of contact identifiers, such as telephone numbers, email addresses, text or other message identifiers, and so on.
- the proxy device 101 may map one of this pool to contact identifiers for the client device 102 , and/or subsequently un-map (such as to re-map the one of the pool to another client device 102 , to a null contact identifier that is not associated with a client device 102 in order to block communication, and so on).
- the client device 102 may make outbound network connections via the proxy device 101 , which may complete the network connections using the pool contact identifier instead of the client device contact identifier.
- an inbound connection may use the pool contact identifier to reach the proxy device 101 , which may complete the connection using the mapped client device contact identifier. This may provide configurable anonymity for both outbound and inbound connections in a way that can be reconfigured at any time.
- the mapping may be dependent on various states (such as different mappings based on a caller, based on a callee, and so on) without providing indications that such a proxy communication system is in use, such as is conveyed when callers block their number.
- This may be configured and de-configured on a per transaction basis for apps or other applications, such as rideshare apps to enable one or more communications between driver and passenger for the duration of the transaction without exposing the personal information of one or both.
- This may also be used for purposes other than anonymity, such as where the proxy communication system uses the mappings to redirect callers of a general number to the extension of a respective party based on their calling number.
- the proxy device 101 may receive a proxy mapping request from the client device.
- the proxy device 101 may map a client device contact identifier for the client device 102 to a proxy contact identifier from a pool of proxy contact identifiers.
- the proxy device 101 may facilitate communication with the target device 103 on behalf of the client device 102 using the proxy contact identifier.
- the proxy device 101 may subsequently receive a request from the client device 102 to un-map the client device contact identifier.
- the client device 102 may be done using the proxy contact identifier and may want to prevent further communications from the proxy contact identifier.
- the proxy device 101 may un-map the client device contact identifier from the proxy contact identifier and re-map the proxy contact identifier elsewhere, such as to another client device contact identifier, to a null contact identifier that is not associated with a client device 102 in order to block communication, and so on.
- the proxy device 101 may receive a communication request that addresses a proxy contact identifier from a pool of proxy contact identifiers.
- the proxy device 101 may determine a mapping of the proxy contact identifier to multiple client device contact identifiers associated with multiple client devices 102 .
- the proxy device 101 may select a client device contact identifier associated with a client device 102 from the multiple client device contact identifiers and communicate with the client device 102 on behalf of a target device 103 .
- the proxy device 101 may select the client device contact identifier using a state table.
- the state table may track recent transactions. For example, the state table may track recent communications between the client device 102 and the target device 103 , between the proxy device 101 and the target device 103 on behalf of the client device 102 , and so on.
- the proxy device 101 may use such recently tracked communications to select client device contact identifiers that are associated with recent communications with the target device 103 .
- the proxy device 101 may create a mapping between a client device contact identifier for a client device 102 and a proxy contact identifier from a pool of proxy contact identifiers.
- the proxy device 101 may receive a communication request that addresses the proxy contact identifier from a target device 103 .
- the proxy device 101 may communicate with the client device 102 on behalf of the target device 103 using the client device contact identifier.
- the proxy device 101 may subsequently change the mapping.
- the proxy device 101 may change the mapping after a time period (such as thirty minutes, a day, and so on), upon completion of a transaction or other event, upon request from the client device 102 , and so on.
- the proxy device 101 and/or the client device 102 may provide additional information beyond just the proxy contact identifier when communicating with the target device 103 .
- telephones often display a name (such as a person's name, the name of a business, and so on) when displaying a calling number related to an incoming call.
- the proxy device 101 and/or the client device 102 may provide a replacement name instead of the actual name of the person or entity associated with the client device 102 when communicating with the target device 103 .
- a person named “Francine Jones” may be associated with the client device 102 , but the proxy device 101 and/or the client device 102 may provide the name “Frank Smith” instead of “Francine Jones” when communicating with the target device 103 .
- This additional information may be stored in and/or associated with the mapping.
- the system 100 may be used by the driver of a rideshare app named “Fred Rockwell” using the driver's personal cell phone to contact a passenger for purposes of locating the passenger for a pickup. However, the passenger may not know who the driver is and may ignore the call. As such, the system 100 may replace the name “Fred Rockwell” with the name of the rideshare app so that the passenger knows who is calling and knows that the caller is authorized to communicate on behalf of the rideshare app.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- the proxy device 101 may be any kind of electronic device. Examples of such devices include, but are not limited to, one or more desktop computing devices, laptop computing devices, server computing devices, mobile computing devices, tablet computing devices, set top boxes, digital video recorders, televisions, displays, wearable devices, smart phones, set top boxes, digital media players, a private branch exchange component, and so on.
- the proxy device 101 may include one or more processors 104 and/or other processing units and/or controllers, one or more non-transitory storage media 106 (which may take the form of, but is not limited to, a magnetic storage medium; optical storage medium; magneto-optical storage medium; read only memory; random access memory; erasable programmable memory; flash memory; and so on), one or more communication units 105 , and/or other components.
- the processor may execute instructions stored in the non-transitory storage medium 106 to perform various functions.
- Such functions may include maintaining a pool of proxy contact identifiers, mapping client device contact identifiers to proxy contact identifiers, maintaining a state table, evaluating a state table, storing the mapping 113 and/or state table in the non-transitory storage medium 106 , communicating with the client device 102 and/or the target device 103 via the communication unit 105 and/or one or more communication networks, facilitating communication between the client device 102 and the target device 103 , receiving mapping requests, receiving un-mapping requests, selecting client device contact identifiers, un-mapping client device contact identifiers from proxy contact identifiers, and so on.
- the client device 102 may be any kind of electronic device.
- the client device 102 may include one or more processors 107 and/or other processing units and/or controllers, one or more non-transitory storage media 109 , one or more communication units 108 , and/or other components.
- the processor 107 may execute instructions stored in the non-transitory storage medium 109 to perform various functions. Such functions may include requesting proxy mapping, requesting proxy connection, communicating with the proxy device 101 and/or the target device 103 via the communication unit, and so on.
- the target device 103 may be any kind of electronic device.
- the target device 103 may include one or more processors 110 and/or other processing units and/or controllers, one or more non-transitory storage media 112 , one or more communication units 111 , and/or other components.
- the processor 110 may execute instructions stored in the non-transitory storage medium 112 to perform various functions. Such functions may include requesting communication with the proxy device 101 via the communication unit 111 , communication with the client device 102 via the communication unit 111 , and so on.
- system 100 is illustrated and described as including particular components arranged in a particular configuration, it is understood that this is an example. In a number of implementations, various configurations of various components may be used without departing from the scope of the present disclosure.
- the system 100 is illustrated and described as the proxy device 101 directly communicating with the client device 102 and the target device 103 using the same communication unit 105 .
- the proxy device 101 may include multiple communication units 105 , one or more of which may be used to communicate with the client device 102 (such as via an internal and/or other first network) while one or more others may be used to communicate with the target device 103 (such as via an external and/or other second network).
- the proxy device 101 may include multiple communication units 105 , one or more of which may be used to communicate with the client device 102 (such as via an internal and/or other first network) while one or more others may be used to communicate with the target device 103 (such as via an external and/or other second network).
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 2 depicts a flow chart illustrating a first example method 200 for proxy communication system translation of contact identifiers. This method 200 may be performed by the system 100 of FIG. 1 .
- an electronic device may receive a proxy mapping request from a client device.
- the request may specify a client device contact identifier and request a proxy contact identifier to use for communication with a target device instead of the client device contact identifier.
- the electronic device may map the client device contact identifier to a proxy contact identifier. For example, the electronic device may maintain and/or have access to a pool of multiple proxy contact identifiers. The electronic device may map one or more of this pool to one or more client device contact identifiers.
- the electronic device may facilitate communication with a target device on behalf of the client device using the proxy contact identifier.
- the electronic device may receive a proxy connection request from the client device to communicate with the target device and may communicate with the target device on behalf of the client device using the proxy contact identifier.
- the electronic device may provide the proxy contact identifier to the target device when communicating with the target device on behalf of the client device.
- the electronic device may provide the proxy contact identifier to the client device for the client device to provide to the target device instead of the client device contact identifier when the client device communicates with the target device directly.
- this example method 200 may be implemented as a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing devices, such as the proxy device 101 of FIG. 1 .
- example method 200 is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure.
- operation 210 is illustrated and described as the electronic device receiving a proxy mapping request from a client device. However, it is understood that this is an example. In some implementations, the electronic device may map a client device contact identifier to a proxy contact identifier without receiving a request. Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 3 depicts a flow chart illustrating a second example method 300 for proxy communication system translation of contact identifiers. This method 300 may be performed by the system 100 of FIG. 1 .
- an electronic device may receive a proxy mapping request.
- the proxy mapping request may be to map one or more telephone number, email address, messaging identifier, and/or other client device contact identifier to one or more proxy contact identifiers.
- the electronic device may perform the mapping.
- the electronic device may receive a proxy connection request from a client device associated with the proxy mapping request to communicate with a target device.
- the proxy connection request may request to communicate with the target device using the mapped proxy connection identifier.
- the electronic device may communicate with the target device on behalf of the client device using the proxy contact identifier. As part of communicating with the target device on behalf of the client device, the electronic device may provide the proxy contact identifier to the target device instead of a client device contact identifier associated with the client device. In some examples, the electronic device may relay one or more exchanges of data between the client device and the target device for the communication. In other examples, the electronic device may initiate the communication, whereupon the client device and the target device subsequently communicate directly. Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- this example method 300 may be implemented as a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing devices, such as the proxy device 101 of FIG. 1 .
- example method 300 is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure.
- the method 300 is illustrated and described as the client device initiating contact with the target device. However, it is understood that this is an example.
- the electronic device may be operable to use the proxy contact identifier to initiate communication with the client device on behalf of the target device.
- the proxy contact identifier may be operable to initiate communication with the client device on behalf of the target device.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 4 depicts a flow chart illustrating a third example method 400 for proxy communication system translation of contact identifiers. This method 400 may be performed by the system 100 of FIG. 1 .
- an electronic device may receive a proxy mapping request.
- the electronic device may generate a mapping in response to the request.
- the proxy device may provide a proxy contact identifier associated with the mapping to a client device associated with the mapping for the client device to provide to the target device instead of a client device contact identifier associated with the client device.
- the client device may provide the proxy contact identifier to the target device instead of a client device contact identifier when communicating with the target device.
- this example method 400 may be implemented as a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing devices, such as the proxy device 101 of FIG. 1 .
- example method 400 is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure.
- operation 430 is illustrated and described as the electronic device providing the proxy contact identifier to the client device.
- the electronic device may provide the proxy contact identifier to the target device.
- the electronic device may provide the proxy contact identifier to the target device instead of the client device contact identifier when communicating with the target device on behalf of the client device.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 5 depicts a flow chart illustrating a fourth example method 500 for proxy communication system translation of contact identifiers. This method 500 may be performed by the system 100 of FIG. 1 .
- an electronic device may receive a communication request addressing a proxy contact identifier.
- the electronic device may receive the communication request from a target device.
- the electronic device may determine a mapping associated with the proxy contact identifier.
- the electronic device may select a client device contact identifier using the mapping.
- the mapping may be between the proxy contact identifier and a single client device contact identifier.
- the mapping may be between the proxy contact identifier and multiple client device contact identifiers.
- the electronic device may select the client device contact identifier from the multiple client device contact identifiers. The electronic device may perform such a selection based on previous communications with the target device associated with the client device contact identifier, based on a target device contact identifier associated with the target device, based on a state table, and so on.
- the electronic device may communicate with a client device on behalf of a target device using the client device contact identifier.
- the electronic device may communicate with the client device by routing the communication request to the client device, by passing messages back and forth between the client device and the target device, by initiating a communication between the target device and the client device, and so on.
- two different people may call a general insurance number. Each person may have a different agent assigned to their policy.
- the electronic device may use telephone numbers associated with the people to consult a state table, determine the respective agent associated with each person, and determine the contact identifier associated with each respective agent.
- the electronic device may create and use different mappings based on previous communications. For example, a customer service line may use a single telephone number for a number of different customer service representatives. Each customer service representative may be associated with a different extension.
- the electronic device may consult a state table to see if a contact identifier associated with the person recently communicated with one of the customer service agents.
- this example method 500 may be implemented as a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing devices, such as the proxy device 101 of FIG. 1 .
- example method 500 is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure.
- the method 500 is illustrated and described as including the separate operations of determining mapping and selecting a client device contact identifier. However, it is understood that this is an example. In some implementations, a single operation may select a client device contact identifier using such a mapping. In such an implementation, multiple operations may not be performed. Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 6 depicts a flow chart illustrating a fifth example method 600 for proxy communication system translation of contact identifiers. This method 600 may be performed by the system 100 of FIG. 1 .
- an electronic device (such as the proxy device 101 of FIG. 1 ) may create a mapping between a client device contact identifier and a proxy contact identifier.
- the electronic device may receive a communication request that addresses the proxy contact identifier from a target device.
- the electronic device may communicate with the client device on behalf of the target device using the client device contact identifier associated with the client device.
- the electronic device may look up in the mapping to determine the client device contact identifier that is mapped to the proxy contact identifier. The electronic device may then use the determined client device contact identifier to communicate with the client device on behalf of the target device.
- this example method 600 may be implemented as a group of interrelated software modules or components that perform various functions discussed herein. These software modules or components may be executed within a cloud network and/or by one or more computing devices, such as the proxy device 101 of FIG. 1 .
- example method 600 is illustrated and described as including particular operations performed in a particular order, it is understood that this is an example. In various implementations, various orders of the same, similar, and/or different operations may be performed without departing from the scope of the present disclosure.
- operation 630 is illustrated and described as the electronic device communicating with the client device on behalf of the target device using the client device contact identifier. However, it is understood that this is an example. In some implementations, the electronic device may forward the communication request to the client device using the client device contact identifier instead of communicating with the client device on behalf of the target device.
- the electronic device may forward the communication request to the client device using the client device contact identifier instead of communicating with the client device on behalf of the target device.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 7 depicts a first example 700 of translation of contact identifiers performed by a proxy communication system, such as the system 100 of FIG. 1 .
- a rideshare app driver at a first location 732 may wish to contact a passenger at a second location 733 to locate the passenger for pickup.
- the driver may not wish to share the driver's telephone number (illustrated as 555-1111) with the passenger.
- the driver may use a mobile device 702 associated with the 555-1111 telephone number to submit a proxy mapping request to a proxy device 701 at a third location 731 .
- the proxy device 701 may map the 555-1111 telephone number to a 555-9000 proxy telephone number and may facilitate communication with a tablet computing device 703 of the passenger that is associated with a 555-2222 telephone number using the 555-9000 proxy telephone number instead of the 555-1111 telephone number. Subsequently, the proxy device 701 may be able to receive communication requests from the tablet computing device 703 that address the 555-9000 proxy telephone number to initiate communication with the mobile device 702 without the tablet computing device 703 using the 555-1111 telephone number. When the ride is complete, the driver may use the mobile device 702 to request the proxy device 701 un-map the 555-1111 telephone number from the 555-9000 proxy telephone number.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- FIG. 8 depicts a second example 800 of translation of contact identifiers performed by a proxy communication system, such as the system 100 of FIG. 1 .
- a cell phone service plan salesperson at a first location 832 may use a headset 802 associated with a 555-1111 telephone number to call a landline 803 of a person at a second location 833 associated with a 555-2222 telephone number.
- the cell phone service plan salesperson may sell cell phone service plans for a company.
- the cell phone service plan salesperson may use the headset 802 to call the person via a proxy device 801 that maps the 555-1111 telephone number to a 800-999-9999 company telephone number that is used for all outgoing cell phone service plan sales calls.
- the proxy device 801 may consult a state table to determine that the person and the cell phone service plan salesperson were recently communicating, map the 555-2222 telephone number to the mapping between the 555-1111 telephone number and the 800-999-9999 company telephone number, and route the person's call to the headset 802 so that the person and the cell phone service plan salesperson can continue their call.
- Various configurations are possible and contemplated without departing from the scope of the present disclosure.
- a proxy communication system that translates contact identifiers may include at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor may execute the instructions to receive a proxy mapping request from a client device using the at least one communication unit, map a client device contact identifier to a proxy contact identifier from a pool of proxy contact identifiers, and facilitate communication with a target device on behalf of the client device via the at least one communication unit using the proxy contact identifier.
- the proxy contact identifier may be a phone number. In various examples, the proxy contact identifier may be an email address.
- the at least one processor may un-map the proxy contact identifier from the client device contact identifier in response to a request from the client device.
- the at least one processor may facilitate communication with the target device on behalf of the client device by receiving a proxy connection request from the client device, via the at least one communication unit, to communicate with a target device and communicating with the target device on behalf of the client device via the at least one communication unit using the proxy contact identifier.
- the at least one processor may provide the proxy contact identifier to the target device when communicating with the target device on behalf of the client device.
- the at least one processor may facilitate communication with the target device on behalf of the client device by providing the proxy contact identifier to the client device to provide to the target device instead of the client device contact identifier.
- a proxy communication system that translates contact identifiers may include at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor may execute the instructions to receive a communication request, using the at least one communication unit, that addresses a proxy contact identifier from a pool of proxy contact identifiers, determine a mapping of the proxy contact identifier to multiple client device contact identifiers associated with multiple client devices, select a client device contact identifier associated with a client device from the multiple client device contact identifiers, and communicate with the client device on behalf of a target device via the at least one communication unit using the client device contact identifier.
- the at least one processor may select the client device contact identifier based on a previous communication between the at least one processor and the target device on behalf of the client device. In some examples, the at least one processor may select the client device contact identifier based on a target device contact identifier. In a number of examples, the client device contact identifier may include an extension. In various examples, the at least one processor may select the client device contact identifier based on a previous communication between the client device and the target device on behalf of the client device.
- the at least one processor may maintain a state table in the at least one non-transitory storage medium and selects the client device contact identifier using the state table.
- the state table may track recent transactions.
- a proxy communication system that translates contact identifiers may include at least one communication unit, at least one non-transitory storage medium that stores instructions, and at least one processor.
- the at least one processor may execute the instructions to create a mapping between a client device contact identifier for a client device and a proxy contact identifier from a pool of proxy contact identifiers, receive a communication request that addresses the proxy contact identifier from a target device via the at least one communication unit, and communicate with the client device on behalf of the target device via the at least one communication unit using the client device contact identifier.
- the client device may be a first client device
- the client device contact identifier may be a first client device contact identifier
- the at least one processor may change the mapping from the first client device contact identifier for the first client device to a second client device contact identifier for a second client device.
- the at least one processor may change the mapping to a null contact identifier.
- the at least one processor may change the mapping after a time period.
- the at least one processor may change the mapping after completion of an event.
- the at least one processor may be a component of a private branch exchange.
- the proxy communication system maps one or more client device contact identifiers to one or more proxy contact identifiers from a pool of proxy contact identifiers.
- the proxy communication system may facilitate communication on behalf of the client device using the proxy contact identifier.
- the proxy communication system may also communicate with the client device on behalf of the target device using the client device contact identifier.
- the mapping may be state dependent, such as different mappings based on a target device contact identifier, recent communications between the client device and the target device, and so on.
- the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are examples of sample approaches. In other embodiments, the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter.
- the accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented.
- the described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure.
- a non-transitory machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer).
- the non-transitory machine-readable medium may take the form of, but is not limited to, a magnetic storage medium (e.g., floppy diskette, video cassette, and so on); optical storage medium (e.g., CD-ROM); magneto-optical storage medium; read only memory (ROM); random access memory (RAM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; and so on.
- a magnetic storage medium e.g., floppy diskette, video cassette, and so on
- optical storage medium e.g., CD-ROM
- magneto-optical storage medium e.g., magneto-optical storage medium
- ROM read only memory
- RAM random access memory
- EPROM and EEPROM erasable programmable memory
- flash memory and so on.
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/877,753 US11968276B2 (en) | 2020-05-19 | 2020-05-19 | Proxy communication system that translates contact identifiers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/877,753 US11968276B2 (en) | 2020-05-19 | 2020-05-19 | Proxy communication system that translates contact identifiers |
Publications (2)
Publication Number | Publication Date |
---|---|
US20210368018A1 US20210368018A1 (en) | 2021-11-25 |
US11968276B2 true US11968276B2 (en) | 2024-04-23 |
Family
ID=78608558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/877,753 Active 2041-11-04 US11968276B2 (en) | 2020-05-19 | 2020-05-19 | Proxy communication system that translates contact identifiers |
Country Status (1)
Country | Link |
---|---|
US (1) | US11968276B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185232A1 (en) * | 2002-04-02 | 2003-10-02 | Worldcom, Inc. | Communications gateway with messaging communications interface |
US8676181B2 (en) | 2009-12-27 | 2014-03-18 | At&T Intellectual Property I, L.P. | Mobile phone number anonymizer |
US9621495B1 (en) | 2012-12-10 | 2017-04-11 | Jeffrey Brian Shumate | Anonymous messaging proxy |
US10560841B2 (en) | 2017-05-24 | 2020-02-11 | Twilio Inc. | Facilitating anonymized communication sessions |
US20200050795A1 (en) * | 2018-08-13 | 2020-02-13 | Pebblepost, Inc. | Associating anonymized identifiers with addressable endpoints |
-
2020
- 2020-05-19 US US16/877,753 patent/US11968276B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030185232A1 (en) * | 2002-04-02 | 2003-10-02 | Worldcom, Inc. | Communications gateway with messaging communications interface |
US8676181B2 (en) | 2009-12-27 | 2014-03-18 | At&T Intellectual Property I, L.P. | Mobile phone number anonymizer |
US9621495B1 (en) | 2012-12-10 | 2017-04-11 | Jeffrey Brian Shumate | Anonymous messaging proxy |
US10560841B2 (en) | 2017-05-24 | 2020-02-11 | Twilio Inc. | Facilitating anonymized communication sessions |
US20200050795A1 (en) * | 2018-08-13 | 2020-02-13 | Pebblepost, Inc. | Associating anonymized identifiers with addressable endpoints |
Also Published As
Publication number | Publication date |
---|---|
US20210368018A1 (en) | 2021-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8879713B2 (en) | Optimized method to select and retrieve a contact center transaction from a set of transactions stored in a queuing mechanism | |
JP5823984B2 (en) | Portable continuity object | |
US8938221B2 (en) | System and method for providing a callback cloud | |
US8416943B2 (en) | System and method for distributing customer contacts | |
US9473638B1 (en) | Systems and methods for providing access to available agent | |
US9118760B2 (en) | Systems and methods for coordinated voice and data communications | |
US7231034B1 (en) | “Pull” architecture contact center | |
US6463149B1 (en) | Web page synchronization system and method | |
US9807237B2 (en) | System and method for a progressive dialer for outbound calls | |
US8666052B2 (en) | Universal phone number for contacting group members | |
US11375064B1 (en) | IPBX control interface for distributed networks | |
US9106724B1 (en) | Communication aggregation | |
US11025774B1 (en) | Hold time reducer | |
US11627219B2 (en) | Customization of CNAM information for calls placed to mobile devices | |
EP2963957B1 (en) | Method and device for calling by binding client to terminal | |
US11968276B2 (en) | Proxy communication system that translates contact identifiers | |
US10129407B1 (en) | Bridging a third party onto a contact center communication | |
JP2006180028A (en) | Speech connection system and speech connection method in call center | |
US20120039456A1 (en) | Methods and apparatuses related to a telephone call completion service | |
JP2020088461A (en) | Originator information provision server, originator information provision system, and originator information provision method | |
US20140310783A1 (en) | Messaging gateway for directory and anonymous services | |
US20220094788A1 (en) | Systems and methods for routing a call with local telecommunication platforms | |
US20210127013A1 (en) | In-call messaging for inactive party | |
US20190372918A1 (en) | A system for getting service over instant messaging application | |
WO2021050586A1 (en) | Customization of cnam information for calls placed to mobile devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: T-MOBILE USA, INC., WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BYRNE, CAMERON;REEL/FRAME:052698/0611 Effective date: 20200517 |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STCV | Information on status: appeal procedure |
Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER |
|
STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |