Connection using geographic telephone numbers

文档序号:1510748 发布日期:2020-02-07 浏览:3次 中文

阅读说明:本技术 使用地理电话号码的连接 (Connection using geographic telephone numbers ) 是由 A·A·哈桑 D·M·哈利 R·A·佩纳尔 于 2018-05-23 设计创作,主要内容包括:描述了使用地理电话号码进行连接的技术。根据各种实现方式,在本文中所描述的技术使得能够施行与使用不同位置处的电话号码有关的各种策略。例如,在本文中所描述的技术使得在地理电话号码的允许地理区域的外部的客户端设备能够使用非地理电话号码来连接呼叫,同时使用地理电话号码对所述呼叫进行路由。(Techniques for connecting using geographic telephone numbers are described. According to various implementations, the techniques described herein enable enforcement of various policies related to using telephone numbers at different locations. For example, techniques described herein enable a client device outside of an allowed geographic area of geographic phone numbers to connect calls using non-geographic phone numbers while routing the calls using geographic phone numbers.)

1. A system for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device, the system comprising:

at least one processor; and

one or more computer-readable storage media comprising instructions stored thereon that, in response to execution by the at least one processor, cause the system to perform operations comprising:

receiving a request to connect a call from a client device to a Public Switched Telephone Network (PSTN) device;

determining whether a current location of the client device is an allowed location using a geographic number assigned to the client device; and

performing an action based on the determination, the action comprising one of:

based on determining that the current location of the client device is an allowed location using the geographic number, causing the call to be connected between the PSTN device and the client device using the geographic number; or

Causing the call to be connected between the PSTN device and the client device using an alternate number and the geographic number based on determining that the current location of the client device is not an allowed location using the geographic number.

2. The system of claim 1, wherein the request comprises an Internet Protocol (IP) communication comprising one or more of: an identifier of the client device or a location of the client device.

3. The system of claim 1, wherein the substitute number comprises a non-geographic number.

4. The system of claim 1, wherein the determining comprises querying a call policy that specifies one or more geographic locations allowed to use the geographic number.

5. The system of claim 1, wherein the determining comprises querying a call policy that specifies one or more geographic locations allowed to use the geographic number, and wherein the call policy is based at least in part on a regulatory policy applied to one or more portions of the geographic number.

6. The system of claim 1, wherein the determining comprises:

transmitting a query to a remote service including a location of the client device; and

receiving a query response indicating whether the current location is an allowed location using the geographic number.

7. The system of claim 1, wherein the determining comprises: determining that the current location of the client device is an allowed location using the geographic number, and the actions include: causing the call to be connected between the PSTN device and the client device using the geographic number, comprising:

routing call media from the client device to a PSTN network using the geographic number; and

receiving media of a call from the PSTN device routed using the geographic number.

8. The system of claim 1, wherein the determining comprises: determining that the current location of the client device is an allowed location using the geographic number, and the actions include: causing the call to be connected between the PSTN device and the client device using the geographic number, comprising:

routing call media from the client device to a PSTN network using the geographic number;

receiving call media from the PSTN device routed using the geographic number; and

forwarding the call media received from the PSTN device to the client device via an Internet Protocol (IP) communication.

9. The system of claim 1, wherein the determining comprises: determining that the current location of the client device is not an allowed location using the geographic number, and the actions include: causing the call to be connected between the PSTN device and the client device using the surrogate number and the geographic number, comprising:

routing call media from the client device to a PSTN network using the surrogate number; and

receiving media of a call from the PSTN device routed using the alternate number.

10. The system of claim 1, wherein the determining comprises: determining that the current location of the client device is not an allowed location using the geographic number, and the actions include: causing the call to be connected between the PSTN device and the client device using the surrogate number and the geographic number, comprising:

routing call media from the client device to a PSTN network using the surrogate number;

receiving call media from the PSTN device routed using the alternate number; and

forwarding the call media received from the PSTN device to the client device via an Internet Protocol (IP) communication.

11. A computer-implemented method for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device, the method comprising:

receiving a call request from a non-geographic number to connect a client device to a Public Switched Telephone Network (PSTN) device;

mapping the non-geographic number to a geographic number associated with the client device; and

connecting the call to the PSTN device as originating from the geographic number.

12. The method of claim 11, wherein the mapping comprises querying a database to identify a user profile, the user profile comprising the non-geographic number and the geographic number.

13. The method of claim 11, wherein the mapping comprises:

confirming that the non-geographic number is associated with an account for a telecommunication service;

transmitting a query to the communication service identifying the account; and

receiving the geographic number from the communication service.

14. The method of claim 11, wherein the call request is received from a communication service, and wherein the method further comprises:

receiving call media from the communication service addressed using the non-geographic number; and

forwarding the call media to the PSTN device as originating from the geographic number.

15. The method of claim 11, wherein the call request is received from a communication service, and wherein the method further comprises:

receiving call media from the PSTN device addressed to the geographic number; and

forwarding the call media to the communication service addressed using the non-geographic number.

Background

Today's mobile devices provide a great number of portable functions for users. For example, smart phones, tablets, laptops, etc., enable users to perform a variety of different tasks without being tied to a particular location. The ability to conduct various types of communications in a mobile scenario is particularly useful. For example, mobile devices often include functionality for communicating different types of communications with other devices and/or services, such as voice calls, video calls, messaging, and so forth. Thus, a user may utilize a mobile device to communicate with other users via a variety of different communication modes.

While mobile devices enable communication in a variety of scenarios, there are challenges to continually enable users to communicate via a particular device as they move between geographic locations.

Disclosure of Invention

This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.

Techniques for connecting using geographic telephone numbers are described. According to various implementations, the techniques described herein enable enforcement of various policies related to the use of telephone numbers at different locations. For example, the techniques described herein enable a client device outside of an allowed geographic area of geographic phone numbers to connect a call using a non-geographic phone number, while routing the call using the geographic phone number.

Drawings

The detailed description is described with reference to the accompanying drawings. In the drawings, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.

FIG. 1 is an illustration of an environment in an exemplary implementation that is operable to employ techniques described herein.

Fig. 2 depicts an exemplary implementation scenario for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device in accordance with one or more implementations.

Fig. 3 depicts an exemplary implementation scenario for connecting a call between a client device and a PSTN device in accordance with one or more implementations.

Fig. 4 is a flow diagram that describes steps in a method for connecting at least a portion of a call using a geographic number in accordance with one or more implementations.

Fig. 5 is a flow diagram that describes steps in a method for connecting a call using a non-geographic number and a geographic number in accordance with one or more implementations.

Fig. 6 is a flow diagram that describes steps in a method for connecting a call from a PSTN device using a geographic number and a non-geographic number in accordance with one or more implementations.

Fig. 7 is a flow diagram that describes steps in a method for obtaining information related to a connected call in accordance with one or more implementations.

Fig. 8 illustrates an exemplary system and computing device described with reference to fig. 1 configured to implement implementations of the techniques described herein.

Detailed Description

Techniques for connecting using geographic telephone numbers are described. In general, a telephone number refers to a set of characters that can be used to initiate communication with a particular resource. According to various implementations, the techniques described herein enable enforcement of various policies related to using telephone numbers at different locations. For example, a particular regulatory policy may specify that certain geographically specific telephone numbers (e.g., numbers with a particular area code) are not allowed to be used outside of a defined geographic area. Thus, techniques for connecting using a geographic telephone number enable client devices located outside of an allowed geographic area of the geographic telephone number to connect calls using non-geographic telephone numbers, while routing the calls using the geographic telephone number.

The use of the term "telephone number" herein should not be construed as limiting, and it should be appreciated that "telephone number" may refer to any string of characters, numbers, and/or text that may be used to participate in the exchange of communication media across a network and between different devices. In at least some implementations, the telephone number represents a number that can be used to route calls between an Internet Protocol (IP) network and a public switched telephone network ("PSTN").

In the discussion that follows, an exemplary environment is first described that is operable to employ the techniques described herein. Next, some exemplary scenarios for connecting using a geographic phone number are described in accordance with one or more implementations. Some example flows are described hereinafter in accordance with one or more implementations. Finally, exemplary systems and devices operable to employ the techniques discussed herein are described in accordance with one or more implementations.

Having presented an overview of exemplary implementations in accordance with one or more implementations, consider now an exemplary environment in which exemplary implementations may be employed.

Fig. 1 is an illustration of an environment 100 in an exemplary implementation operable to employ techniques for connecting using geographic telephone numbers as described herein. The environment 100 includes a services network 102 hosted and/or managed by a communication service 104. In general, the services network 102 represents wireless connections and/or wired connections that support different forms of communication. The services network 102 represents, for example, a combination of interconnected wireless and wired networks that enable communication at various geographic locations and via various different communication modes.

Communication service 104 represents a service that performs various tasks to manage communications between different endpoint devices. The communication service 104 can, for example, manage initiation, regulation, and termination of communication sessions. Examples of communication services 104 include voice over internet protocol (VoIP) services, online conferencing services, unified communications and collaboration (UC & C) services, and so forth.

The services network 102 is communicatively connected to a public switched telephone network ("PSTN") 106 to enable communication between client devices 108 and other devices and/or services, such as PSTN device 110. Client device 108 represents an end-user device configured to communicate via serving network 102. The client device 108 may be configured in a variety of ways, such as a wireless cellular telephone (e.g., a smart phone), a tablet computer, a laptop computer, and so on. One exemplary implementation of client device 108 is presented below as computing device 802 of fig. 8.

PSTN device 110 generally represents a telephone-enabled device that is connected, directly or indirectly, to PSTN network 106. Environment 100 also includes a PSTN manager 112, which represents the infrastructure (e.g., hardware and logic) that implements the implementation and operation of PSTN network 106. PSTN manager 112 includes PSTN switch 114, which represents functionality for handling calls traversing PSTN network 106. Additional functions of the PSTN switch 114 are discussed below.

The client device 108 includes a communication client 116, which represents functionality for enabling different forms of communication via the client device 108. Examples of communication clients 116 include VoIP clients, video communication applications, messaging applications, content sharing applications, and combinations thereof. For example, the communication client 116 enables different communication modes to be combined to provide various communication scenarios. In at least some implementations, the communication client 116 represents an application installed on the client device 108. Additionally or alternatively, the communication client 116 can be implemented in whole or in part as a remote application, such as accessed via a web browser, web application, or the like. According to various implementations, the communication client 116 is configured to enable various types of communication via interaction with the communication service 104.

The communication client 116 is associated with a user profile 118, the user profile 118 representing a manner by which the communication client 116 and the communication service 104 are utilized to authenticate a particular user and to track user-specific authentication information (e.g., username, password, etc.), user settings, contacts, and other data for that user. In at least some implementations, the user profile 118 is portable, enabling a user to authenticate with different instances of the communication client 116 and place calls via different instances of the communication client 116 that are identified as connected to the user profile 118. The user profile 118 is associated with a user Identifier (ID)120, the user ID 120 representing the manner in which the communication service 104 identifies the user of the client device 108. In at least some implementations, the service ID 120 is used to initiate communications from the client device 108 via the communication service 104 and through the services network 102.

The client device 108 also includes a communication module 122 and a location module 124. The communication module 122 represents functionality to enable the client device 108 to transmit data to the services network 102 via a wired connection and/or a wireless connection. Location module 124 represents functionality to receive, transmit, and/or process location information. The location module 124 supports the transmission, reception, and processing of location information, for example, according to various different techniques, such as Global Positioning System (GPS), cellular communications, WiFi, and the likeTMSatellite communications, Radio Frequency (RF) communications, subnet information, ethernet switch and/or port data, Internet Protocol (IP) address information, and the like.

According to various implementations, the location module 124 can communicate with the location information system 126 to obtain location information for the client device 108. The location information system 126 is representative of various types of location information systems capable of transmitting and/or receiving location information. Examples of location information systems 126 include GPS satellites, cellular telephone networks, wireless data (e.g., WiFi)TM) A network, a Location Information Service (LIS), a Radio Frequency Identifier (RFID) function, a subnet of a wired network, an ethernet switch and/or port, etc.

According to various implementations, location information can be communicated between the location module 124 and the location information system 126 to enable determination of the location of the client device 108. Examples of location information include GPS coordinates, street addresses, network locations, locations relative to cellular towers and/or cellular base stations, and the like. In general, the techniques described herein are capable of determining how to handle calls to and from the client device 108 based on the particular location of the client device 108.

Environment 100 also includes a telephone number manager ("number manager") 128, telephone number manager 128 representing functionality to perform various aspects of the techniques for connecting using geographic telephone numbers discussed herein. For example, the number manager 128 can determine a particular phone number for dialing and/or receiving a phone call for the client device 108 at a particular location.

In general, the number manager 128 represents a remote service that is remote from the client device 108 and that is capable of providing services related to connecting using a geographic telephone number. Number manager 128 includes a call policy 130 and a telephone number database ("number DB") 132. The call policies 130 represent different policies that can be applied to determine which telephone number is used for a particular device at a particular location, such as for outgoing calls and/or incoming calls.

Number DB 132 represents a database that stores different telephone numbers assigned to different devices, such as client device 108. For example, the number DB 132 stores telephone numbers to be used at different geographical locations. The number DB 132 includes a number profile 134 for the client device 108. Number profile 134 typically includes different telephone numbers that are specific to client device 108 and can be used to place outgoing calls and/or to place incoming calls for client device 108. In this particular example, number profile 134 includes a geographic phone number ("geographic number") 136 and a non-geographic phone number ("non-geographic number") 138. Generally, geographic number 136 represents a telephone number associated with a particular geographic usage constraint. For example, geographic number 136 is only allowed for use in a particular geographic area. However, non-geographic number 138 represents a telephone number that does not have geographic usage restrictions. For example, the non-geographic number 138 may be utilized across a variety of different geographic regions.

According to various implementations, based on the current location of the client device 108, the number manager 128 can apply the call policy 130 based on the location to identify from the number profile 134 which of the geographic number 136 or the non-geographic number 138 is to be used by the client device 108 for the call. As used herein, "making a call" can refer to placing a call from a client device 108 and/or receiving a call placed from a different device at the client device 108.

In addition to or in lieu of the number DB 132 maintained by the number manager 128, the PSTN manager 112 may maintain a local PSTN Database (DB)140, the database 140 representing a local DB that the number manager 128 may use to perform various aspects of connecting using geographic telephone numbers as described herein. In general, the PSTN DB 140 may be populated with information from the number DB 132. For example, the number manager 128 can push information from the number DB 132 to various entities, including the PSTN manager 112.

In at least some implementations, the number manager 128 can be implemented and/or managed by an entity such as the communication service 104, the PSTN manager 112, a data network (e.g., wired and/or wireless), and so on. Alternatively or additionally, number manager 128 can be implemented as a stand-alone service for generating, managing, and/or communicating telephone number policies, telephone numbers, and the like.

According to one or more implementations, instances of call policies 130 can be configured based on information provided by and/or interacted with by administrative service 142. Regulatory service 142 represents, for example, a governmental agency that generates and applies regulatory policies 144. In at least some implementations, the administration service 142 includes government agencies that administer various aspects of communications at different geographic locations. Exemplary functions of the administration service 142 include management of telephone numbering plans (including allocation and management of area codes, dialing codes, etc.), management of wired and/or wireless communication resources, allocation of wireless bandwidth, etc. As used herein, the term "area code" generally refers to a fixed length or variable length set of numbers that are used to route calls to a communication system at a particular geographic and/or political location. Examples of region codes include: fixed length 3-bit digital codes (such as used in the united states, canada), variable length codes (such as used in germany and japan), and the like. Generally, the area code is not specific to a particular subscriber, but rather is used to route calls to a general area, and may be associated with various geographic usage constraints, such as based on regulatory policies 144.

Policing policy 144 represents a policy that allocates communication resources for different purposes and specifies actions related to allowing and disallowing communications. In at least some implementations, the policing policy 144 defines different geographic regions for different telephone numbers, such as region codes to be used for particular geographic locations. In addition, regulatory policy 144 may specify that telephone numbers with certain area codes may not be used outside of the respective defined location, such as a location defined by political boundaries, geographic coordinates, and the like.

As mentioned above, instances of call policies 130 can be configured based on interactions with administration service 142. For example, a particular regulatory policy 144 may specify that a certain area code is not allowed to be used outside of the geographic area defined for that area code. Thus, the number manager 128 can configure a particular call policy 130 to reflect that the telephone number with the area code is not used outside of the geographic area. For example, a particular regulatory policy 144 may specify that geographic number 136 may not be used for calls outside of a specified geographic area (such as defined by discrete geographic boundaries). Thus, as described further below, the different telephone numbers identified in the number profile 134 can be selected from completed calls for the client device 108 and based on the call policy 130.

Having described an exemplary environment in which the techniques described herein may operate, consider now some exemplary implementation scenarios for connecting using geographic telephone numbers in accordance with one or more implementations.

Fig. 2 depicts an exemplary implementation scenario 200 for connecting a call between a client device and a PSTN device in accordance with one or more implementations.

In scenario 200, a call event 202 occurs that causes the client device 108 to initiate a call to the PSTN device 110. The user of client device 108, for example, dials the telephone number of PSTN device 110. Based on the call event 202, the communication client 116 communicates a call request 204 to the communication service 104. Generally, the call request 204 indicates a request to connect a call between the client device 108 and the PSTN device 110 and includes various information, such as the service ID 120, a telephone number for the PSTN device 110, and location information for the client device 108. For example, the client device 108 determines its location via interaction with the location information system 126 and includes its location with the call request 204. In at least one implementation, the call request is an IP-based request that includes data packets with various information related to the call request 204.

The communication service 104 receives the call request 204 and determines, based on the location information, that the client device 108 is outside of an allowed geographic area for the geographic number 136. The communication service 104, for example, transmits a query 206 to the number manager 128, and the query 206 includes information such as the service ID 120 and the location of the client device 108. The number manager 128 performs a lookup in the number DB 132 and locates the number profile 134 for the client device 108. By comparing the location and geographic number 136 of the client device 108 to the particular call policy 130, the number manager 128 determines that the client device 108 is currently outside of the geographic area where use of the geographic number 136 is permitted. Thus, the number manager 128 returns a query response 208 to the communication service 104, the query response 208 indicating that the client device 108 is outside of the allowed geographic area for the geographic number 136.

Thus, the communication service 104 initiates a connection request 210 to the PSTN manager 112 using the non-geographic number 138. As mentioned above, the non-geographic number 138 is not associated with geographic usage constraints and, therefore, may be used to place calls at a variety of different locations. In at least one implementation, the connection request 210 includes the non-geographic number 138 and the geographic number 136, and may optionally include the service ID 120. Alternatively or additionally, the PSTN manager 112 can perform a lookup and/or query the number manager 128 in the PSTN DB 140 to match the non-geographic number 138 with the geographic number 136. For example, the PSTN manager 112 can query the number manager 128 and/or the PSTN DB 140 with the non-geographic number 138 to confirm that the client device 108 has a number profile 134 associated with the communication service 104 and that the number profile 134 has a geographic number 136 to be used to connect a call for the client device 108.

In at least one implementation, PSTN switch 114 is located in a geographic location that allows use of geographic number 136. Thus, PSTN switch 114 transmits call request 212 to PSTN device 110 using geographic number 136. PSTN device 110 accepts call request 212 and establishes communication session 214 between client device 108 and PSTN device 110. In general, and as described in detail below, the portion of the communication session 214 between the client device 108 and the communication service 104 is routed using IP communications, the portion of the communication session 214 between the communication service 104 and the PSTN switch 114 is routed using the non-geographic number 138, and the portion of the communication session 214 between the PSTN switch 114 and the PSTN device is routed using the geographic number 136. Thus, PSTN device 110 identifies communication session 214 as originating from geographic number 136.

Typically, calls initiated from PSTN device 110 to client device 108 will be handled in a similar manner. For example, PSTN device 110 will dial geographic number 136. The PSTN switch 114 will determine that the geographic number 136 is mapped to the user profile 118 and that the client device 108 is currently outside of the geographic area for the geographic number 136. For example, the PSTN manager 112 can query the PSTN DB 140 and/or the number manager 128 with the geographic number 136. A response to the query can indicate that the client device 108 is currently outside of the allowed geographic area for the geographic number 136, and that the client device 108 has a non-geographic number 138 that can be used to complete the call. Thus, the PSTN switch 114 may then route the call request to the non-geographic number 138 so that a communication session may be established between the PSTN device 110 and the client device 108.

In at least one implementation, PSTN switch 114 can receive the call request from PSTN device 110, can determine that geographic number 136 is associated with a profile for communication service 104 (e.g., a query via PSTN DB 140), and can notify communication service 104 of the call request. The communication service 104 can then determine that the client device 108 is currently outside of the allowed geographic area for the geographic number 136 (e.g., via a query to the client device 108), and can instruct the PSTN manager 112 to complete the call to the communication service 104 via the non-geographic number 138. The PSTN switch 114 then dials the non-geographic number 138, the non-geographic number 138 connects the call to the communication service 104, and the call to the communication client 116 of the client device 108 is then completed via the IP-based call request.

Thus, the techniques described herein enable connecting calls for the client device 108 using, at least in part, the geographic number 136 even when the client device 108 is outside of a geographic area that restricts use of the geographic number 136. Thus, PSTN device 110 receives communication session 214 that occurred with geographic number 136. The Called Identifier (CID) received at PSTN device 110, for example, identifies the calling medium of communication session 214 as originating from geographic number 136, rather than non-geographic number 138.

In a different exemplary scenario, consider that the client device 108 is located in a geographic area where the use of the geographic number 136 is permitted. The particular call policy 130, for example, indicates a geographic number 136 that is allowed to be used by the client device 108 for making calls at the current location of the client device 108. For example, the communication service 104 determines that the current location of the client device 108 is an allowed location using the geographic number 136, such as via a query 206 to the number manager 128. Thus, the communication service 104 can place a call to the PSTN manager 112 using the geographic number 136, and the PSTN switch 114 can complete the call to the PSTN device 110 using the geographic number 136 to connect the communication session 214 between the PSTN device 110 and the client device 108.

Fig. 3 depicts an exemplary implementation scenario 300 for connecting a call between a client device and a PSTN device in accordance with one or more implementations. Scenario 300, for example, represents a data flow for communication session 214 discussed above.

The scenario 300 includes a session portion 302a, a session portion 302b, and a session portion 302 c. In general, session portions 302a-302c represent different data streams that are combined together to communicate the media of communication session 214 discussed above. For example, the session portions 302a-302c represent two-way communication of call media between the client device 108 and the PSTN device 110.

The session portion 302a represents a connection between the client device 108 and the communication service 104. In at least one implementation, the session portion 302a represents IP-based communications that include data packets filled with call media and may include other types of data, such as call control information. In the incoming direction, for example, the communication service 104 forwards call media received from the PSTN device to the client device via IP communication.

Further, the session portion 302b represents IP-based communications (e.g., VoIP communications) between the communication service 104 and the PSTN switch 114. Finally, session portion 302c represents PSTN communications between PSTN switch 114 and PSTN device 110.

In implementations where the client device 108 is outside of a geographic area that allows use of the geographic number 136, the session portion 302b is addressed using the non-geographic number 138 while the session portion 302c is addressed (e.g., dialed) using the geographic number 136. However, in implementations where the client device 108 is in a geographic location that allows for the use of the geographic number 136, the two session portions 302b, 302c are addressed using the geographic number 136.

Accordingly, the techniques described herein enable using location information of a communication endpoint (e.g., client device 108) to determine whether to use a geographic number or a non-geographic number to connect a call to the communication endpoint. Further, when a portion of a call is connected from an endpoint device using a non-geographic number, the call to the called device can be completed using the geographic number, making the call appear to originate from the geographic number.

Having discussed some example implementation scenarios, consider now a discussion of some example procedures in accordance with one or more implementations.

The following discussion describes some exemplary procedures for connecting using a geographic phone number in accordance with one or more implementations. The example flow may be employed in the environment 100 of fig. 1, the system 800 of fig. 8, and/or any other suitable environment. The flow represents, for example, an exemplary manner of performing various aspects of the scenarios described above. In at least some implementations, the steps described for the various processes can be implemented automatically and independently of user interaction. Further, various steps of the flow may be performed at the client device 108, at the communication service 104, at the number manager 128, at the PSTN manager 112, and/or via interactions between these entities.

FIG. 4 is a flow diagram that describes steps in a method in accordance with one or more implementations. For example, the method describes an exemplary manner of connecting at least a portion of a call using a geographic number.

Step 400 receives a request to connect a call from a client device to a PSTN device. For example, the communication service 104 receives a call request from the client device 108 to call the PSTN device 110. In at least one implementation, the request is received from the client device 108 as an IP-based communication.

Step 402 determines whether the current location of the client device is an allowed location using a geographic number assigned to the client device. The communication service 104, for example, determines whether the client device 108 is located at a geographic location that allows use of the geographic number 136. In at least one implementation, the communication service 104 can query the number manager 128 for this information. For example, the number manager 128 confirms that the client device 108 is associated with the number profile 134, and thus the geographic number 136. The number manager 128 can then determine whether to allow use of the geographic number 136 at the current location of the client device 108, such as based on the call policy 130 applied to the geographic number 136.

If the current location of the client device 108 is an allowed location using the geographic number 136 ("yes"), step 404 connects the call between the PSTN device and the client device using the geographic number. For example, communication service 104 dials the telephone number of PSTN device 110 using geographic number 136, geographic number 136 connecting client device 108 to PSTN switch 114. PSTN switch 114 then completes the call to PSTN device 110 using geographic number 136 as the calling device number for the call.

If the current location of the client device 108 is not an allowed location using the geographic number 136 ("NO"), step 406 connects the environment between the PSTN device and the client device using the alternate number and the geographic number. In at least one implementation, the substitute number is a non-geographic number. Communication service 104 dials the telephone number of PSTN device 110 using, for example, non-geographic number 138. This connects the call to PSTN switch 114, and PSTN switch 114 then uses geographic number 136 to complete the call to the PSTN device. Thus, call media can be used to route calls using the non-geographic number 138 for connections between the client device 108 and the PSTN switch 114 and the geographic number 136 for connections between the PSTN switch 114 and the PSTN device 110. Typically, this causes PSTN device 110 to receive the incoming media as originating from geographic number 136.

FIG. 5 is a flow diagram that describes steps in a method in accordance with one or more implementations. For example, the method describes an exemplary manner of connecting a call using a non-geographic number and a geographic number.

Step 500 receives a call request from a non-geographic number to connect a client device to a PSTN device. The PSTN manager 112 receives a call request, for example, from the communication service 104, to dial using the non-geographic number 138. Typically, the call request includes a telephone number for PSTN device 110.

Step 502 maps the non-geographic number to a geographic number associated with the client device. For example, the PSTN manager 112 queries the PSTN DB 140 and/or the number manager 128 with the non-geographic number 138. The response to the query indicates that the non-geographic number 138 is associated with the subscriber of the communication service 104 having the geographic number 136.

Step 504 connects the call to the PSTN device as originating from a geographic number. The PSTN switch 114 dials the telephone number of the PSTN device, for example, using the geographic number 136 as the calling telephone number. Thus, the call is connected using the geographic number 136 between the PSTN switch 114 and the PSTN device 110 and the non-geographic number 138 between the PSTN switch and the client device 108.

FIG. 6 is a flow diagram that describes steps in a method in accordance with one or more implementations. For example, the method describes an exemplary way of connecting calls from PSTN devices using geographic numbers and non-geographic numbers.

Step 600 receives a call request from a PSTN device to connect a call to a device having a geographic telephone number. PSTN manager 112 receives a call request, for example from PSTN device 110, requesting a connection to geographic number 136.

Step 602 maps the geographic telephone number to a user account that includes the geographic telephone number and a non-geographic telephone number. For example, the PSTN manager 112 queries the PSTN DB 140 and/or the number manager 128 to confirm whether the geographic number 136 is associated with the user profile of the communication service 104. The PSTN manager 112 receives a query response indicating that the geographic number is associated with the user profile 118 of the communication service 104.

Step 604 confirms that the client device for the user account is located in a geographic location that does not allow use of the geographic phone number. For example, the query response mentioned above indicates that the client device 108 is currently located in a geographic location that does not allow call routing using the geographic number 136.

Step 606 connects the call to the client device using the non-geographic number and connects the call to the PSTN device using the geographic number. For example, the PSTN switch 114 connects the call to the communication service 104 using the non-geographic number 138, while connecting the call to the PSTN device using the geographic number 136 as a routing number for the call media from the client device 108. Thus, the call appears to PSTN device 110 to be routed from geographic number 136.

FIG. 7 is a flow diagram that describes steps in a method in accordance with one or more implementations. For example, the method describes an exemplary manner for obtaining information related to connecting a call.

Step 700 communicates a query for information related to connecting a call between a client device and a PSTN device. For example, the communication service 104 and/or the PSTN manager 112 queries the number manager 128 for information related to the connection call. The query may request various information, such as the location of the client device 108, whether the client device 108 is located in a geographic area that allows use of the geographic number 136, the geographic telephone number and/or non-geographic telephone number of the client device 108, and so forth.

Step 702 receives a response including information. For example, the communication service 104 and/or the PSTN manager 112 receives a response from the number manager 128 that includes the requested information. Thus, a call connection procedure can be handled based on the requested information, such as described above.

Thus, the techniques described herein for connecting using geographic telephone numbers enable devices to roam between different locations and engage in telephone communications at the locations, which maintains adherence to various policies governing telephones at different locations. Further, when a device owning a geographic telephone number is outside of a geographic location frame that allows use of the geographic telephone number, the techniques described herein enable both non-geographic telephone numbers and geographic telephone numbers to be used for call routing, thereby maintaining compliance with call policies for the geographic telephone number while another device involved in the call receives call media that is routed using the geographic telephone number.

Having discussed some example flows, consider now a discussion of example systems and devices according to one or more implementations.

Fig. 8 illustrates an exemplary system, generally at 800, that includes an exemplary computing device 802 that represents one or more computing systems and/or devices that may implement the various techniques described herein. For example, the client device 108, the communication service 104, and/or the PSTN manager 112 discussed above with reference to fig. 1 can be embodied as a computing device 802. Computing device 802 may be, for example, a server of a service provider, a device associated with a client (e.g., a client device), a system-on-chip, and/or any other suitable computing device or computing system.

The exemplary computing device 802 as illustrated includes a processing system 804, one or more computer-readable media 806, and one or more input/output (I/O) interfaces 808 communicatively coupled to each other. Although not shown, the computing device 802 may also include a system bus or other data and command transfer system that couples the various components to one another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. Various other examples are also contemplated, such as control lines and data lines.

Processing system 804 represents functionality to perform one or more operations using hardware. Thus, the processing system 804 is illustrated as including hardware elements 810 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. Hardware element 810 is not limited by the materials from which it is formed or the processing mechanisms employed therein. For example, a processor may include semiconductor(s) and/or transistors (e.g., electronic Integrated Circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions.

The computer-readable medium 806 is illustrated as including memory/storage 812. Memory/storage 812 represents memory/storage capacity associated with one or more computer-readable media. Memory/storage 812 may include volatile media (such as Random Access Memory (RAM)) and/or nonvolatile media (such as Read Only Memory (ROM), flash memory, optical disks, magnetic disks, and so forth). The memory/storage 812 may include fixed media (e.g., RAM, ROM, a fixed hard drive, etc.) as well as removable media (e.g., flash memory, a removable hard drive, an optical disk, and so forth). The computer-readable medium 806 may be configured in a variety of other ways as further described below.

Input/output interface(s) 808 represent functionality that allows a user to enter commands and information to computing device 802, and also allows information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone (e.g., for voice recognition and/or voice input), a scanner, touch functionality (e.g., capacitive or other sensors configured to detect physical touch), a camera (e.g., which may employ visible or invisible wavelengths (such as infrared frequencies) to detect motion not involving touch as gestures), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, a haptic response device, and so forth. Accordingly, the computing device 802 may be configured in various ways to support user interaction as described further below.

Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The terms "module," "functionality," and "component" as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.

An implementation of the described modules and techniques may be stored on or transmitted across some form of computer readable media. Computer readable media can include a variety of media that can be accessed by computing device 802. By way of example, and not limitation, computer-readable media may comprise "computer-readable storage media" and "computer-readable signal media".

A "computer-readable storage medium" may refer to media and/or devices that can persistently store information as compared to merely signal transmission, carrier wave, or signal per se. The computer readable storage medium does not include the signal itself. Computer-readable storage media include hardware such as volatile and nonvolatile, removable and non-removable media and/or storage devices implemented in methods or technology suitable for storage of information such as computer-readable instructions, data structures, program modules, logic elements/circuits or other data. Examples of computer readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage devices, tangible media, or an article of manufacture suitable for storing the desired information and accessible by a computer.

"computer-readable signal medium" may refer to a signal-bearing medium configured to transmit instructions to hardware of computing device 802, such as via a network. Signal media may typically embody computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, data signal, or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, Radio Frequency (RF), infrared and other wireless media.

As previously described, hardware element 810 and computer-readable medium 806 represent instructions, modules, programmable device logic, and/or fixed device logic implemented in hardware that may be employed in some implementations to implement at least some aspects of the techniques described herein. The hardware elements may include components of an integrated circuit or system-on-a-chip, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), Complex Programmable Logic Devices (CPLDs), and other implementations in silicon chips or other hardware devices. In this context, a hardware element may serve as a processing device for performing program tasks defined by instructions, modules, and/or logic embodied by the hardware element, as well as a hardware device for storing executable instructions, such as the computer-readable storage medium described previously.

Combinations of the foregoing may also be used to implement the various techniques and modules described herein. Thus, software, hardware, or program modules, as well as other program modules, may be embodied as one or more instructions and/or logic embodied on some form of computer-readable storage medium and/or implemented by one or more hardware elements 810. Computing device 802 may be configured to implement particular instructions and/or functions corresponding to software and/or hardware modules. Thus, implementations by the computing device 802 as software-executable modules may be implemented, at least in part, in hardware, for example, using hardware elements 810 of a processing system and/or a computer-readable storage medium. The instructions and/or functions may be executable/operable by one or more articles of manufacture (e.g., one or more computing devices 802 and/or processing systems 804) to implement the techniques, modules, and examples described herein.

As further illustrated in fig. 8, the exemplary system 800 enables a ubiquitous environment for a seamless user experience when running applications on a Personal Computer (PC), television device, and/or mobile device. When transitioning from one device to another while utilizing an application, playing a video game, watching a video, etc., the service and application operate substantially similarly in all three environments for a common user experience.

In the exemplary system 800, multiple devices are interconnected through a central computing device. The central computing device may be local to the plurality of devices or may be located remotely from the plurality of devices. In one implementation, the central computing device may be a cloud of one or more server computers connected to the plurality of devices through a network, the internet, or other data communication link.

In one implementation, the interconnect architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to users of the multiple devices. Each of the multiple devices may have different physical requirements and functionality, and the central computing device uses the platform to deliver to the devices an experience that is both tailored to the device and generic to all devices. In one implementation, a class of target devices is created and the experience is customized for a general class of devices. A class of devices may be defined by physical characteristics, usage types, or other common characteristics of the devices.

In various implementations, computing device 802 may assume a variety of different configurations, such as for use with computer 814, mobile device 816, and television 818. Each of these configurations includes devices that may have generally different structures and capabilities, and thus computing device 802 may be configured according to one or more different device classes. For example, the computing device 802 may be implemented as the computer 814 class of devices that includes personal computers, desktop computers, multi-screen computers, laptop computers, netbooks, and so forth.

The computing device 802 may also be implemented as a mobile 816 class device including a mobile device, such as a mobile phone, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. The computing device 802 may also be implemented as a television 818 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, game consoles, and the like.

The techniques described herein may be supported by these various configurations of the computing device 802 and are not limited to the specific examples of the techniques described herein. For example, the functionality discussed with reference to number manager 128 and/or number manager 128 may be implemented in whole or in part through the use of a distributed system, such as on "cloud" 820 via platform 822 as described below.

Cloud 820 includes and/or represents a platform 822 for resources 824. Platform 822 abstracts underlying functionality of hardware (e.g., servers) and software resources of cloud 820. Resources 824 may include applications and/or data used when computer processing is performed on a server remote from computing device 802. Resources 824 may also include services provided over the internet and/or over a user network (e.g., a cellular or Wi-Fi network).

The platform 822 may abstract resources and functionality to connect the computing device 802 with other computing devices. The platform 822 may also be used to abstract scaling of resources to provide a corresponding level of scaling for encountered demand for the resources 824 implemented via the platform 822. Thus, in interconnected device implementations, implementations of functionality described herein may be distributed throughout the environment 800. For example, the functionality may be implemented in part on the computing device 802 and via the platform 822 that abstracts the functionality of the cloud 820.

Various methods are discussed herein that may be implemented to perform the techniques discussed herein. Aspects of the methods may be implemented in hardware, firmware, or software, or a combination thereof. The methods are shown as a set of steps that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Further, operations illustrated with respect to a particular method may be combined and/or interchanged with operations of different methods, in accordance with one or more implementations. Aspects of the method can be implemented via interactions between the various entities discussed above with reference to environment 100.

In the discussion herein, various implementations are described. It is to be appreciated and understood that each implementation described herein can be used alone or in combination with one or more other implementations described herein. Other aspects of the technology discussed herein relate to one or more of the following implementations.

A system for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device, the system comprising: at least one processor; and one or more computer-readable storage media comprising instructions stored thereon that, in response to execution by the at least one processor, cause the system to perform operations comprising: receiving a request to connect a call from a client device to a Public Switched Telephone Network (PSTN) device; determining whether a current location of a client device is an allowed location using a geographic number assigned to the client device; and performing an action based on the determination, the action comprising one of: based on determining that the current location of the client device is an allowed location using the geographic number, connecting the call between the PSTN device and the client device using the geographic number; or connect the call between the PSTN device and the client device using an alternate number and a geographic number based on determining that the current location of the client device is not an allowed location using the geographic number.

In addition to any of the above systems, any one or combination of the following: wherein the request comprises an Internet Protocol (IP) communication, the IP communication comprising one or more of: an identifier of the client device or a location of the client device; wherein the substitute number comprises a non-geographic number; wherein the determining comprises querying a call policy specifying one or more geographic locations allowed to use the geographic number; wherein the determining comprises querying a call policy specifying one or more geographic locations allowed to use the geographic number, and wherein the call policy is based at least in part on an administrative policy applied to one or more portions of the geographic number; wherein the determining comprises: transmitting a query to a remote service including a location of a client device; and receiving a query response indicating whether the current location is an allowed location using a geographic number; wherein the determining comprises: determining that the current location of the client device is an allowed location using the geographic number, and the actions include: causing a call to be connected between the PSTN device and the client device using the geographic number, comprising: routing call media from the client device to the PSTN network using the geographic number; and receiving call media routed using the geographic number from a PSTN device; wherein the determining comprises: determining that the current location of the client device is an allowed location using the geographic number, and the actions include: causing a call to be connected between the PSTN device and the client device using the geographic number, comprising: routing call media from the client device to a PSTN network using the geographic number; receiving call media from the PSTN device that is routed using the geographic number; and forwarding the call media received from a PSTN device to the client device via Internet Protocol (IP) communication; wherein the determining comprises: determining that the current location of the client device is not an allowed location using the geographic number, and the actions include: causing a call to be connected between the PSTN device and the client device using an alternate number and a geographic number, comprising: routing call media from the client device to the PSTN network using the surrogate number; and receiving call media from the PSTN device routed using the alternate number; wherein the determining comprises: determining that the current location of the client device is not an allowed location using a geographic number, and the actions include: causing a call to be connected between the PSTN device and the client device using an alternate number and a geographic number, comprising: routing call media from the client device to the PSTN network using the surrogate number; receiving call media from the PSTN device that is routed using the alternate number; and forwarding call media received from the PSTN device to the client device via Internet Protocol (IP) communication.

A computer-implemented method for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device, the method comprising: receiving a call request from a non-geographic number to connect a client device to a Public Switched Telephone Network (PSTN) device; mapping the non-geographic number to a geographic number associated with the client device; and connecting the call to the PSTN device as originating from the geographic number.

In addition to any of the methods described above, any one or combination of: wherein the mapping comprises querying a database to identify a user profile, the user profile comprising a non-geographic number and a geographic number; wherein the mapping comprises: confirming that the non-geographic number is associated with an account of the telecommunication service; transmitting a query identifying the account to a communication service; and receiving a geographic number from the communication service; wherein the call request is received from a communication service, and wherein the method further comprises: receiving call media addressed using the non-geographic number from a communication service; and forwarding call media to the PSTN device as originating from the geographic number; wherein the call request is received from a communication service, and wherein the method further comprises: receiving call media from a PSTN device addressed to the geographic number; and forwarding call media addressed using the non-geographic number to a communication service.

A computer-implemented method for connecting a call between a client device and a Public Switched Telephone Network (PSTN) device, the method comprising: receiving a call request from a PSTN device to connect a call to a device having a geographic telephone number; mapping the geographic phone number to a user account that includes the geographic phone number and a non-geographic phone number; confirming that a client device for the user account is located in a geographic location that does not allow use of the geographic phone number; and connecting a call to the client device using the non-geographic number and to the PSTN device using the geographic number.

In addition to any of the methods described above, any one or combination of the following: wherein the mapping comprises: confirming that the user account is associated with the communication service; querying a communication service using the geographic number; and receiving the non-geographic number from the communication service; wherein the confirmation is based on a call policy identifying one or more geographic locations that allow use of the geographic telephone number; wherein the user account is associated with a communication service, and wherein the connecting comprises transmitting a call request to the communication service using the non-geographic number; wherein the user account is associated with a communication service, and wherein the method further comprises: receiving call media from the PSTN device addressed to the geographic number; and forwarding call media addressed using the non-geographic number to a communication service.

Techniques for connecting using geographic telephone numbers are described. Although implementations have been described in language specific to structural features and/or methodological acts, it is to be understood that implementations defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed implementations.

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用户终端、服务器装置和通信参数的设定方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类