Dns redirecting for data roaming offering
Claim Score by NHIP
Abstract
A device may receive a request for domain name system (DNS) information to be provided to a user device communicating via a visited network. The device may identify roaming policy information associated with the user device and, based on the roaming policy information, may determine that the user device is restricted from sending or receiving data via the visited network. The device may determine DNS information, to be provided to the user device, that includes information that identifies a restricted DNS server to which the user device is to be directed. The device may provide the DNS information to the user device to cause the user device to be directed to the restricted DNS server. The user device may be directed to the restricted DNS server to permit a user of the user device to authorize the user device to send or receive data via the visited network.

Term
8.9 yearsto projected expiry
Projected expiry 30 August 2035, counted from filing; an application has no term until it is granted.
- Priority and filed
- Published
- Today
- Projected expiry
20 claims: 3 independent, 17 dependent
- 1Broadest claimClaim Score 58, broad(NHIP)A device, comprising:one or more processors to: receive a request for domain name system (DNS) information to be provided to a user device communicating via a visited network, the visited network being a network that is not a home network of the user device;identify, based on receiving the request, roaming policy information associated with the user device;determine, based on the roaming policy information, that the user device is restricted from sending or receiving data via the visited network;determine DNS information to be provided to the user device, the DNS information including information that identifies a restricted DNS server to which the user device is to be directed;and provide the DNS information to the user device, the DNS information being provided to the user device to cause the user device to be directed to the restricted DNS server, the user device being directed to the restricted DNS server in order to permit a user of the user device to authorize the user device to send or receive data via the visited network.
- 8A computer-readable medium storing instructions, the instructions comprising:one or more instructions that, when executed by one or more processors, cause the one or more processors to: receive a request for domain name system (DNS) information to be provided to a user device communicating via a visited network, the visited network being a network that is not a home network of the user device;determine, based on receiving the request, roaming policy information associated with the user device;determine, based on the roaming policy information, that the user device is restricted from receiving data roaming service via the visited network;identify restricted DNS information to be provided to the user device, the restricted DNS information including information identifying a restricted DNS server to which the user device is to be directed;and transmit the restricted DNS information, the restricted DNS information being transmitted to cause the user device to be directed to the restricted DNS server, the user device being directed to the restricted DNS server to allow a user of the user device to authorize or enable the user device to receive the data roaming service via the visited network.
- 15A method, comprising:receiving, by a device, an indication to determine domain name system (DNS) information to be provided to a user device communicating via a visited network, the visited network being a network that is not a home network of the user device;identifying, by the device and based on receiving the indication, roaming policy information associated with the user device;determining, by the device and based on the roaming policy information, that the user device is restricted from communicating via the visited network;determining, by the device, restricted DNS information to be provided to the user device, the restricted DNS information including information that identifies a restricted DNS server to which the user device is to be directed, and the restricted DNS information including information that identifies a restricted network address pool from which the user device is to be assigned a network address;and providing, by the device, the restricted DNS information, the restricted DNS information being provided to cause the user device to be directed to the restricted DNS server, the user device being directed to the restricted DNS server in order to allow a user of the user device to select a roaming option associated with permitting the user device to send or receive data via the visited network.
Independent claims3
117 paragraphs in 3 sections, as filed
BACKGROUND
0001The Domain Name System (DNS) is a hierarchical distributed naming system for devices (e.g., servers, computers, etc.) connected via a network, such as the Internet. A DNS server may be configured to translate a domain name into a network address, such as an Internet protocol (IP) address, for the purpose of communicating with a device associated with the domain name, such as a server device that hosts a web site.
BRIEF DESCRIPTION OF THE DRAWINGS
0002<figref idref="DRAWINGS">FIGS. 1A and 1B</figref> are diagrams of an overview of an example implementation described herein;
0003<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example environment in which systems and/or methods, described herein, may be implemented;
0004<figref idref="DRAWINGS">FIG. 3</figref> is a diagram of example components of one or more devices of <figref idref="DRAWINGS">FIG. 2</figref>;
0005<figref idref="DRAWINGS">FIG. 4</figref> is a flow chart of an example process for receiving and storing roaming policy information associated with a roaming policy;
0006<figref idref="DRAWINGS">FIG. 5</figref> is a diagram of an example implementation relating to the example process shown in <figref idref="DRAWINGS">FIG. 4</figref>;
0007<figref idref="DRAWINGS">FIG. 6A</figref> is a call flow diagram of an example process for determining DNS information to be provided to a user device communicating via a visited network, and providing the DNS information to the user device;
0008<figref idref="DRAWINGS">FIG. 6B</figref> is a call flow diagram of an example process for providing roaming option information associated with allowing a user device to authorize and/or enable data roaming service via a visited network;
0009<figref idref="DRAWINGS">FIGS. 7A-7C</figref> are diagrams of an example implementation relating to the example process shown in <figref idref="DRAWINGS">FIG. 6</figref>; and
0010<figref idref="DRAWINGS">FIG. 8</figref> is a flow chart of an example process for providing DNS information, associated with a user device communicating via a visited network, based on determining whether the user device is permitted to send and/or receive data via the visited network.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
0011The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.
0012Use of a data roaming service by a user device (e.g., allowing the user device to send and/or receive data via a visited network) may be perceived by a subscriber (e.g., a user of the user device) as an expensive service. As such, “bill shock prevention” may be desirable for the subscriber as well as a service provider associated with the user device. One technique that the service provider may implement in order to achieve this is to allow the subscriber to authorize and/or enable data roaming service on an as needed basis. For example, if the user wishes for the user device to receive data roaming service associated with a visited network (e.g., a network that is not a home network associated with the user device), the user may be prompted (e.g., via the user device) to authorize data roaming up to a particular amount of data usage, enable data roaming for a particular period of time, or the like. The ability to allow the user to authorize and/or enable data roaming service via a message provided to the user device (e.g., a short message service (SMS) message, an unstructured supplementary service data (USSD) message, etc.) may be undesirable (e.g., due to message size constraints, user interface limitations, etc.).
0013One solution that may be implemented by the service provider in order to allow the user to authorize and/or enable data roaming service is to direct the user device to a portal device associated with the service provider. The portal device may communicate with the user (e.g., via a portal user interface displayed by the user device) that allows the user to authorize and/or enable data roaming service for the user device. However, existing solutions, associated with directing the user device to the portal device, may use a packet inspection technique (e.g., deep packet inspection (DPI)) in order to determine when the user device is communicating via a visited network (i.e., when the user device should be directed to the portal device). The use of the packet inspection technique may have undesirable effects, such as increasing a packet processing requirement within the network, introducing latency to communication associated with the user device, increasing subscriber privacy concerns, requiring additional computing resources, or the like. Implementations described herein may allow a user device to be directed to a portal device, associated with authorizing and/or enabling data roaming service for the user device, based on DNS information provided to the user device and determined based on a roaming policy corresponding to the user device (e.g., without relying on a packet inspection technique).
0014<figref idref="DRAWINGS">FIGS. 1A and 1B</figref> are diagrams of an overview of an example implementation <b>100</b> described herein. For the purposes of example implementation <b>100</b>, assume that a user device has received information (e.g., user input) indicating that the user device is to initiate a communication session that allows the user device to send and/or receive data via visited network (i.e., when the user device is located within a geographical area associated with the visited network and is located outside of a geographical area associated with a home network of the user device).
0015As shown in <figref idref="DRAWINGS">FIG. 1A</figref>, and by reference number <b>105</b>, the user device may provide, to a serving gateway associated with the visited network, an indication associated with establishing the communication session. As shown by reference number <b>110</b>, the serving gateway may identify (e.g., based on information that identifies the user device and based on communicating with other devices) a packet data network (PDN) gateway associated with the home network of the user device (e.g., via which the user device may send and/or receive data). As shown by reference number <b>115</b>, the serving gateway may provide, to the PDN gateway, a session request that includes information associated with the user device (e.g., a user device identifier, an access point name (APN) associated with the user device, etc.). As shown by reference number <b>120</b>, the PDN gateway may send, to an authentication device associated with the home network, a request for DNS information associated with the user device. The request for DNS information may include information that identifies the user device, and information that identifies the visited network via which the user device is attempting to establish the communication session.
0016As shown by reference number <b>125</b>, the authentication device may receive the request for DNS information, and may identify (e.g., based on the information that identifies the user device and information stored by the authentication device) a roaming policy corresponding to the user device. The authentication device may then determine (e.g., based on the roaming policy information that identifies the visited network) whether the user device is permitted to communicate via the visited network under the roaming policy corresponding to the user device. As further shown, if the authentication device determines that the user device is not permitted to communicate via the visited network under the roaming policy, then the authentication device may determine (e.g., based on information stored by the authentication device) DNS information that identifies a restricted DNS server to which the user device is to be directed. In some implementations, the restricted DNS server may be used to direct the user device to a portal device associated with authorizing and/or enabling data roaming for the visited network, as described below. Alternatively, if the authentication device determines that the user device is permitted to communicate via the visited network under the roaming policy, then the authentication device may determine DNS information that identifies a standard DNS server to which the user device is to be directed. In some implementations, the standard DNS server may allow the user device to communicate via the visited network in a standard fashion (e.g., since the user device is permitted to communicate via the visited network).
0017As shown by reference number <b>130</b>, the authentication device may provide the DNS information to the PDN gateway. As shown by reference number <b>135</b>, the PDN gateway may generate a response to the session request that includes the DNS information determined by the authentication device, and may provide the session response to the serving gateway. As shown by reference number <b>140</b>, the serving gateway may receive the session response, and may establish the communication session with the user device. The serving gateway may provide the DNS information to the user device during establishment of the communication session.
0018For the purposes of <figref idref="DRAWINGS">FIG. 1B</figref>, assume that the authentication device has determined that the user device is not permitted to communicate via the visited network under the roaming policy and, as such, the DNS information received by the user device includes information that identifies a restricted DNS server to which the user device is to be directed. Further, assume that the user device has received an indication associated with communication via the visited network (e.g., user input associated with accessing a www.example.com web page). As shown by reference number <b>145</b>, the user device may provide, to the restricted DNS server, a DNS request associated with the web page. As shown by reference number <b>150</b>, the restricted DNS server may receive the DNS request, and may generate a DNS response that includes information that identifies the portal device associated with authorizing and/or enabling data roaming for the visited network.
0019As shown by reference number <b>155</b>, upon receiving the DNS response, the user device may provide, to the portal device, a request associated with the web page. As shown by reference number <b>160</b>, the portal device may receive the request, and may provide, to the user device, a response that includes roaming option information associated with authorizing and/or enabling data roaming for the visited network. As shown by reference number <b>165</b>, the user device may receive the response, and may provide the roaming option information for display to the user. As shown, the roaming option information may allow the user to authorize and/or enable data roaming in the visited network. In some implementations, the user may select one or more roaming options (e.g., identified by the roaming option information) in order to authorize and/or enable data roaming within the visited network. The user device may then communicate with the portal device in order to authorize and/or enable data roaming, and after the authorization and/or activation is complete, the user device may communicate via the visited network (e.g., in a standard fashion).
0020In this way, a user device may be directed to a portal device, associated with authorizing and/or enabling data roaming service for the user device, based on DNS information provided to the user device and determined based on a roaming policy corresponding to the user device (e.g., without relying on a packet inspection technique).
0021<figref idref="DRAWINGS">FIG. 2</figref> is a diagram of an example environment <b>200</b> in which systems and/or methods, described herein, may be implemented. As shown in <figref idref="DRAWINGS">FIG. 2</figref>, environment <b>200</b> may include a user device <b>205</b>, a base station <b>210</b>, a mobility management entity device (MME) <b>215</b>, and a serving gateway (SGW) <b>220</b>. As shown, user device <b>205</b>, base station <b>210</b>, MME <b>215</b>, and SGW <b>220</b> may be located in a visited network (e.g., a network that is not a home network associated with the user device). As further shown in <figref idref="DRAWINGS">FIG. 2</figref>, environment <b>200</b> may include a packet data network gateway (PGW) <b>225</b>, an authentication, authorization, and accounting server (AAA) <b>230</b>, a home subscriber server (HSS) <b>235</b>, a policy and charging rules function server (PCRF) <b>240</b>, one or more domain name system (DNS) servers <b>245</b>-<b>1</b> through <b>245</b>-N (N≧1) (hereinafter referred to collectively as DNS servers <b>245</b>, and individually as DNS server <b>245</b>), and a portal device <b>250</b>. As shown, PGW <b>225</b>, AAA <b>230</b>, HSS <b>235</b>, PCRF <b>240</b>, DNS server <b>245</b>, and portal device <b>250</b> may be included in the home network associated with user device <b>205</b>. As further shown, environment <b>200</b> may also include a network <b>255</b>. Devices of environment <b>200</b> may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.
0022Some implementations are described herein as being performed within a long term evolution (LTE) network for explanatory purposes. Some implementations may be performed within a network that is not an LTE network, such as a third generation (3G) network.
0023Environment <b>200</b> may include a visited network (e.g., a roaming network, a network other than a home network of user device <b>205</b>, etc.) and a home network. As shown, the visited network of environment <b>200</b> may include an evolved packet system (EPS) that includes a visited LTE network and/or a visited evolved packet core (EPC) that operate based on a third generation partnership project (3GPP) wireless communication standard. The visited LTE network may include a radio access network (RAN) that includes one or more base stations <b>210</b> that take the form of evolved Node Bs (eNBs) via which user device <b>205</b> communicates with the visited EPC. The visited EPC may include MME <b>215</b> and SGW <b>220</b> that enables user device <b>205</b> to communicate with a home EPC (e.g., including PGW <b>225</b>), network <b>255</b>, and/or an Internet protocol (IP) multimedia subsystem (IMS) core. The IMS core may include AAA <b>230</b>, HSS <b>235</b> and/or PCRF <b>240</b>, and may manage device registration and authentication, session initiation, etc., associated with user device <b>205</b>. AAA <b>230</b>, HSS <b>235</b> and/or PCRF <b>240</b> may reside in the home EPC and/or the IMS core.
0024User device <b>205</b> may include one or more devices capable of communicating with one or more devices of (e.g., base station <b>210</b>, SGW <b>220</b>, PGW <b>225</b>, DNS server <b>245</b>, portal device <b>250</b>, etc.) of environment <b>200</b> and/or one or more other devices (e.g., one or more devices included in network <b>255</b>). For example, user device <b>205</b> may include a wireless communication device, a radiotelephone, a personal communications system (PCS) terminal (e.g., that may combine a cellular radiotelephone with data processing and data communications capabilities), a personal digital assistant (PDA), a mobile phone, a smart phone, a laptop computer, a tablet computer, a personal gaming system, and/or a similar device. User device <b>205</b> may send traffic to and/or receive traffic from network <b>255</b> (e.g., via base station <b>210</b>, SGW <b>220</b>, and/or PGW <b>225</b>).
0025Base station <b>210</b> may include one or more devices capable of transferring traffic, such as audio, video, text, and/or other traffic, destined for and/or received from user device <b>205</b>. In some implementations, base station <b>210</b> may include an eNB associated with the visited LTE network that receives traffic from and/or sends traffic to network <b>255</b> via SGW <b>220</b> and/or PGW <b>225</b>. Additionally, or alternatively, one or more base stations <b>210</b> may be associated with a RAN that is not associated with the visited LTE network. Base station <b>210</b> may send traffic to and/or receive traffic from user device <b>205</b> via an air interface. In some implementations, base station <b>210</b> may include a small cell base station, such as a base station of a microcell, a picocell, and/or a femtocell.
0026MME <b>215</b> may include one or more devices, such as one or more server devices, capable of managing authentication, activation, deactivation, and mobility functions associated with user device <b>205</b>. In some implementations, MME <b>215</b> may perform operations relating to authentication of user device <b>205</b>. Additionally, or alternatively, MME <b>215</b> may facilitate the selection of a particular SGW <b>220</b> and/or a particular PGW <b>225</b> to serve traffic to and/or from user device <b>205</b>. MME <b>215</b> may perform operations associated with handing off user device <b>205</b> from a first base station <b>210</b> to a second base station <b>210</b> when user device <b>205</b> is transitioning from a first cell associated with the first base station <b>210</b> to a second cell associated with the second base station <b>210</b>. Additionally, or alternatively, MME <b>215</b> may select another MME, to which user device <b>205</b> should be handed off (e.g., when user device <b>205</b> moves out of range of MME <b>215</b>).
0027SGW <b>220</b> may include one or more devices capable of routing packets. For example, SGW <b>220</b> may include one or more data processing and/or traffic transfer devices, such as a gateway, a router, a modem, a switch, a firewall, a network interface card (NIC), a hub, a bridge, a server device, an optical add/drop multiplexer (OADM), or any other type of device that processes and/or transfers traffic. In some implementations, SGW <b>220</b> may aggregate traffic received from one or more base stations <b>210</b> associated with the visited LTE network, and may send the aggregated traffic to network <b>255</b> (e.g., via PGW <b>225</b>) and/or other network devices associated with the visited EPC and/or the home IMS core. SGW <b>220</b> may also receive traffic from network <b>255</b> and/or other network devices, and may send the received traffic to user device <b>205</b> via base station <b>210</b>. Additionally, or alternatively, SGW <b>220</b> may perform operations associated with handing off user device <b>205</b> to and/or from another LTE network.
0028PGW <b>225</b> may include one or more devices capable of providing connectivity for user device <b>205</b> to external packet data networks (e.g., other than the depicted visited EPC and/or visited LTE network). For example, PGW <b>225</b> may include one or more data processing and/or traffic transfer devices, such as a gateway, a router, a modem, a switch, a firewall, a NIC, a hub, a bridge, a server device, an OADM, or any other type of device that processes and/or transfers traffic. In some implementations, PGW <b>225</b> may aggregate traffic received from one or more SGWs <b>220</b>, and may send the aggregated traffic to network <b>255</b>. Additionally, or alternatively, PGW <b>225</b> may receive traffic from network <b>255</b>, and may send the traffic to user device <b>205</b> via SGW <b>220</b> and base station <b>210</b>. In some implementations, PGW <b>225</b> may be capable of assigning (e.g., based on IP pool information stored or accessible by PGW <b>225</b>) a network address (e.g., an IP address) to user device <b>205</b>.
0029AAA <b>230</b> may include one or more devices, such as one or more server devices, that perform authentication, authorization, and/or accounting operations for communication sessions associated with user device <b>205</b>. For example, AAA <b>230</b> may perform authentication operations for user device <b>205</b> and/or a user of user device <b>205</b> (e.g., using one or more credentials), may control access, by user device <b>205</b>, to a service and/or an application (e.g., based on one or more restrictions, such as time-of-day restrictions, location restrictions, single or multiple access restrictions, read/write restrictions, etc.), may track resources consumed by user device <b>205</b> (e.g., a quantity of voice minutes consumed, a quantity of data consumed, etc.), and/or may perform similar operations. In some implementations, AAA <b>230</b> may be capable of identifying (e.g., based on roaming policy information stored or accessible by AAA <b>230</b>) a particular DNS server <b>245</b> to which user device <b>205</b> is to be directed and/or an IP pool from which user device <b>205</b> is to be assigned a network address.
0030HSS <b>235</b> may include one or more devices, such as one or more server devices, capable of managing (e.g., receiving, generating, storing, processing, and/or providing) information associated with user device <b>205</b>. For example, HSS <b>235</b> may manage subscription information associated with user device <b>205</b>, such as information that identifies a subscriber profile of a user associated with user device <b>205</b>, information that identifies services and/or applications that are accessible to user device <b>205</b>, location information associated with user device <b>205</b>, a network identifier (e.g., a network address) that identifies user device <b>205</b>, information that identifies a treatment of user device <b>205</b> (e.g., quality of service information, a quantity of minutes allowed per time period, a quantity of data consumption allowed per time period, etc.), and/or similar information. HSS <b>235</b> may provide this information to one or more other devices of environment <b>200</b> to support the operations performed by those devices.
0031PCRF <b>240</b> may include a device, such as a server, capable of determining and/or enforcing policy rules. In some implementations, PCRF <b>240</b> may establish quality of service and charging (e.g., packet accounting) rules for a communication session based on committed quality of service levels per user, per terminating device, per service type, per application, or the like. PCRF server <b>240</b> may receive input (e.g., from the IMS core) regarding users, user device <b>205</b>, subscriptions associated with user device <b>205</b>, or the like. PCRF <b>240</b> may create quality of service and charging policy rules for the session (e.g., for a user, user device <b>205</b>, etc.), and may provide the policy rules to PGW <b>225</b>, which may handle packets for the communication session with user device <b>205</b> based on the policy rules.
0032DNS server <b>245</b> may include one or more devices, such as one or more server devices, capable of providing a response to a query of a directory including one or more network addresses. For example, DNS server <b>245</b> may include a device capable of determining, storing, receiving, and/or sending information that identifies a network address associated with another device (e.g., portal device <b>250</b>, an application server, a web server, etc.).
0033In some implementations, DNS server <b>245</b> may be a restricted DNS server. A restricted DNS server may include a DNS server <b>245</b> configured to direct user device <b>205</b> to portal device <b>250</b> (e.g., regardless of information included in a DNS query received by restricted DNS server <b>245</b>). Alternatively, DNS server <b>245</b> may be a standard DNS server. A standard DNS server may include a DNS server <b>245</b> configured to respond to a DNS query, provided by user device <b>205</b>, based on information included in the DNS query (e.g., in a standard fashion).
0034Portal device <b>250</b> may include one or more devices, such as one or more server devices, capable of receiving, generating, storing, processing, and/or providing roaming option information associated with authorizing and/or enabling data roaming for user device <b>205</b> in a visited network. In some implementations, portal device <b>250</b> may be capable of communicating with one or more devices (e.g., user device <b>205</b>, AAA <b>230</b>, HSS <b>235</b>, PCRF <b>240</b>, etc.) in order to update subscription information, associated with user device <b>205</b>, such that user device <b>205</b> may send and/or receive data via the visited network.
0035Network <b>255</b> may include one or more wired and/or wireless networks. For example, network <b>255</b> may include a cellular network (e.g., an LTE network, a 3G network, a code division multiple access (CDMA) network, etc.), a public land mobile network (PLMN), a wireless local area network (e.g., a Wi-Fi network), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, and/or a combination of these or other types of networks.
0036The number and arrangement of devices and networks shown in <figref idref="DRAWINGS">FIG. 2</figref> are provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown in <figref idref="DRAWINGS">FIG. 2</figref>. Furthermore, two or more devices shown in <figref idref="DRAWINGS">FIG. 2</figref> may be implemented within a single device, or a single device shown in <figref idref="DRAWINGS">FIG. 2</figref> may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment <b>200</b> may perform one or more functions described as being performed by another set of devices of environment <b>200</b>.
0037<figref idref="DRAWINGS">FIG. 3</figref> is a diagram of example components of a device <b>300</b>. Device <b>300</b> may correspond to user device <b>205</b>, base station <b>210</b>, MME <b>215</b>, SGW <b>220</b>, PGW <b>225</b>, AAA <b>230</b>, HSS <b>235</b>, PCRF <b>240</b>, DNS server <b>245</b>, and/or portal device <b>250</b>. In some implementations, user device <b>205</b>, base station <b>210</b>, MME <b>215</b>, SGW <b>220</b>, PGW <b>225</b>, AAA <b>230</b>, HSS <b>235</b>, PCRF <b>240</b>, DNS server <b>245</b>, and/or portal device <b>250</b> may include one or more devices <b>300</b> and/or one or more components of device <b>300</b>. As shown in <figref idref="DRAWINGS">FIG. 3</figref>, device <b>300</b> may include a bus <b>310</b>, a processor <b>320</b>, a memory <b>330</b>, a storage component <b>340</b>, an input component <b>350</b>, an output component <b>360</b>, and a communication interface <b>370</b>.
0038Bus <b>310</b> may include a component that permits communication among the components of device <b>300</b>. Processor <b>320</b> may include a processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), etc.), a microprocessor, and/or any processing component (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc.) that interprets and/or executes instructions. Memory <b>330</b> may include a random access memory (RAM), a read only memory (ROM), and/or another type of dynamic or static storage device (e.g., a flash memory, a magnetic memory, an optical memory, etc.) that stores information and/or instructions for use by processor <b>320</b>.
0039Storage component <b>340</b> may store information and/or software related to the operation and use of device <b>300</b>. For example, storage component <b>340</b> may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, a solid state disk, etc.), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and/or another type of computer-readable medium, along with a corresponding drive.
0040Input component <b>350</b> may include a component that permits device <b>300</b> to receive information, such as via user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, a microphone, etc.). Additionally, or alternatively, input component <b>350</b> may include a sensor for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, an actuator, etc.). Output component <b>360</b> may include a component that provides output information from device <b>300</b> (e.g., a display, a speaker, one or more light-emitting diodes (LEDs), etc.).
0041Communication interface <b>370</b> may include a transceiver-like component (e.g., a transceiver, a separate receiver and transmitter, etc.) that enables device <b>300</b> to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. Communication interface <b>370</b> may permit device <b>300</b> to receive information from another device and/or provide information to another device. For example, communication interface <b>370</b> may include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, or the like.
0042Device <b>300</b> may perform one or more processes described herein. Device <b>300</b> may perform these processes in response to processor <b>320</b> executing software instructions stored by a computer-readable medium, such as memory <b>330</b> and/or storage component <b>340</b>. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
0043Software instructions may be read into memory <b>330</b> and/or storage component <b>340</b> from another computer-readable medium or from another device via communication interface <b>370</b>. When executed, software instructions stored in memory <b>330</b> and/or storage component <b>340</b> may cause processor <b>320</b> to perform one or more processes described herein. Additionally, or alternatively, hardwired circuitry may be used in place of or in combination with software instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.
0044The number and arrangement of components shown in <figref idref="DRAWINGS">FIG. 3</figref> are provided as an example. In practice, device <b>300</b> may include additional components, fewer components, different components, or differently arranged components than those shown in <figref idref="DRAWINGS">FIG. 3</figref>. Additionally, or alternatively, a set of components (e.g., one or more components) of device <b>300</b> may perform one or more functions described as being performed by another set of components of device <b>300</b>.
0045<figref idref="DRAWINGS">FIG. 4</figref> is a flow chart of an example process <b>400</b> for receiving and storing roaming policy information associated with a roaming policy. In some implementations, one or more process blocks of <figref idref="DRAWINGS">FIG. 4</figref> may be performed by AAA <b>230</b>. Additionally, or alternatively, one or more process blocks of <figref idref="DRAWINGS">FIG. 4</figref> may be performed by another device or a group of devices separate from or including AAA <b>230</b>, such as HSS <b>235</b> and/or PCRF <b>240</b>.
0046As shown in <figref idref="DRAWINGS">FIG. 4</figref>, process <b>400</b> may include receiving roaming policy information associated with a roaming policy (block <b>410</b>). For example, AAA <b>230</b> may receive roaming policy information associated with a roaming policy. In some implementations, AAA <b>230</b> may receive the roaming policy information when the roaming policy information is provided by another device (e.g., another device associated with the service provider). Additionally or alternatively, AAA <b>230</b> may receive the roaming policy information when AAA <b>230</b> receives (e.g., from an administrator associated with the service provider) user input associated with the roaming policy.
0047Roaming policy information may include information associated with a roaming policy that identifies one or more visited networks via which user device <b>205</b> may receive data roaming service. In some implementations, the roaming policy information may include information that identifies the roaming policy (e.g., a roaming policy name, a roaming policy tier, a roaming policy label, a roaming policy number, etc.). Additionally, or alternatively, the roaming policy information may include information (e.g., a network name, a mobile country code (MCC), a mobile network code (MNC), a visited public land mobile network identifier (VPLMN ID)) that identifies one or more visited networks, associated with the roaming policy, via which user device <b>205</b> is permitted to receive data roaming service (e.g., a visited network white list). Additionally, or alternatively, the roaming policy information may include information that identifies one or more visited networks, associated with the roaming policy, via which user device <b>205</b> is restricted from receiving data roaming service (e.g., a visited network black list).
0048In some implementations, the roaming policy information may also include information (e.g., a device identifier, an IP address, etc.) that identifies a restricted DNS server <b>245</b> (e.g., a primary restricted DNS server <b>245</b>, a backup restricted DNS server <b>245</b>) to which user device <b>205</b> is to be directed when user device <b>205</b> is restricted from sending and/or receiving data via a visited network via which user device <b>205</b> wishes to communicate. Additionally, or alternatively, the roaming policy information may include information that identifies a restricted network address pool associated with the roaming policy (e.g., an IP address pool from which user device <b>205</b> is to be assigned an IP address when user device <b>205</b> is restricted from sending and/or receiving data via the visited network).
0049Additionally, or alternatively, the roaming policy information may also include information that identifies a standard DNS server <b>245</b> (e.g., a primary standard DNS server <b>245</b>, a backup standard DNS server <b>245</b>) to which user device <b>205</b> is to be directed when user device <b>205</b> is permitted to send and/or receive data via a visited network via which user device <b>205</b> wishes to communicate. Additionally, or alternatively, the roaming policy information may include information that identifies a standard network address pool associated with the roaming policy (e.g., an IP address pool from which user device <b>205</b> is to be assigned an IP address when user device <b>205</b> is permitted to send and/or receive data via the visited network). Additionally, or alternatively, the roaming policy information may include another type of information associated with the roaming policy.
0050As further shown in <figref idref="DRAWINGS">FIG. 4</figref>, process <b>400</b> may include storing the roaming policy information (block <b>420</b>). For example, AAA <b>230</b> may store the roaming policy information. In some implementations, AAA <b>230</b> may store the roaming policy information when AAA <b>230</b> receives the roaming policy information (e.g., after AAA <b>230</b> receives the roaming policy information). Additionally, or alternatively, AAA <b>230</b> may store the roaming policy information based on information, indicating that AAA <b>230</b> is to store the roaming policy information, received from another device.
0051In some implementations, AAA <b>230</b> may store the roaming policy information in a memory location (e.g., a RAM, a ROM, a cache, a hard disk, etc.) of AAA <b>230</b>. Additionally, or alternatively, AAA <b>230</b> may provide the roaming policy information to another device for storage. For example, AAA <b>230</b> may provide the roaming policy information to HSS <b>235</b> and/or PCRF <b>240</b> for storage.
0052In some implementations, AAA <b>230</b> may store information associated with the roaming policy information such that previous roaming policy information (e.g., roaming policy information received at an earlier time) are supplemented, overwritten, and/or deleted. Additionally, or alternatively, AAA <b>230</b> may store the roaming policy information such that AAA <b>230</b> may retrieve the roaming policy information at a later time.
0053Although <figref idref="DRAWINGS">FIG. 4</figref> shows example blocks of process <b>400</b>, in some implementations, process <b>400</b> may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in <figref idref="DRAWINGS">FIG. 4</figref>. Additionally, or alternatively, two or more of the blocks of process <b>400</b> may be performed in parallel.
0054<figref idref="DRAWINGS">FIG. 5</figref> is a diagram of an example implementation <b>500</b> relating to example process <b>400</b> shown in <figref idref="DRAWINGS">FIG. 4</figref>. For the purposes of example implementation <b>500</b>, assume that AAA <b>230</b> (e.g., hAAA) is associated with a home network of user device <b>205</b>. As shown in <figref idref="DRAWINGS">FIG. 5</figref>, and by reference number <b>510</b>, hAAA may receive (e.g., from another device associated with the home network) roaming policy information associated with a roaming policy (e.g., tier A).
0055As shown by reference number <b>520</b>, the tier A roaming policy information may include information that identifies the roaming policy (e.g., Name: Tier A). As further shown, the tier A roaming policy information may also include information that identifies a group of visited networks via which user devices <b>205</b>, assigned to the roaming policy, are permitted to send and/or receive data (e.g., Permitted Networks: NW<b>1</b>, NW<b>2</b>, NW<b>6</b>). As shown, the tier A roaming policy information may also include information that identifies a set of standard DNS servers <b>245</b> to which user devices <b>205</b>, when communicating via a permitted network, are to be directed (e.g., DNS Servers: DNS<b>50</b>, DNS<b>60</b>). As further shown, the tier A roaming policy information may also include information that identifies an IP pool from which user devices <b>205</b>, when communicating via a permitted network, are to be assigned an IP address (e.g., IP Pool: Pool A).
0056As further shown, the tier A roaming policy information may also include information that identifies a group of visited networks via which user devices <b>205</b>, assigned to the roaming policy, are restricted from sending and/or receiving data (e.g., Restricted Networks: NW<b>3</b>, NW<b>4</b>, NW<b>5</b>). As shown, the tier A roaming policy information may also include information that identifies a set of restricted DNS servers <b>245</b> to which user devices <b>205</b>, when communicating via a restricted network, are to be directed (e.g., DNS Servers: DNS<b>90</b>, DNS<b>100</b>). As further shown, the tier A roaming policy information may also include information that identifies an IP pool from which user devices <b>205</b>, when communicating via a restricted network, are to be assigned an IP address (e.g., IP Pool: Pool R). As shown by reference number <b>530</b>, hAAA may store the roaming policy information associated with the tier A roaming policy.
0057As indicated above, <figref idref="DRAWINGS">FIG. 5</figref> is provided merely as an example. Other examples are possible and may differ from what was described with regard to <figref idref="DRAWINGS">FIG. 5</figref>.
0058<figref idref="DRAWINGS">FIG. 6A</figref> is a call flow diagram of an example process <b>600</b> for determining DNS information to be provided to a user device communicating via a visited network, and providing the DNS information to the user device. In some implementations, one or more operations of <figref idref="DRAWINGS">FIG. 6A</figref> may be performed by one or more devices of environment <b>200</b>.
0059As shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include receiving an indication to establish a communication session associated with a user device and a visited network (as shown by reference number <b>605</b>). For example, SGW <b>220</b> may receive an indication to establish a communication session associated with user device <b>205</b> and a visited network. In some implementations, SGW <b>220</b> may receive the indication when the indication is provided by user device <b>205</b>. Additionally, or alternatively, SGW <b>220</b> may receive the indication when the indication is provided by another device, such as another device included in the visited network.
0060In some implementations, user device <b>205</b> may provide the indication based on user input. For example, the user may provide user input (e.g., that causes a web browser to be opened, that causes an application to be executed, etc.) indicating that user device <b>205</b> is to establish a communication session in order to allow user device <b>205</b> to send and/or receive data, and user device <b>205</b> may (e.g., automatically) provide the indication based on receiving the user input. Additionally, or alternatively, user device <b>205</b> may provide the indication based on a configuration of user device <b>205</b> (e.g., if user device <b>205</b> is configured to establish a communication session when user device <b>205</b> is powered on, then user device <b>205</b> may provide the indication when user device is powered on, etc.). Additionally, or alternatively, user device <b>205</b> may provide the indication at another time.
0061In some implementations, the indication may include information that identifies user device <b>205</b>. For example, the indication may include a user device name, a device identification number (e.g., an international mobile subscriber identity (IMSI), a mobile subscriber integrated services digital network (MSISDN), etc.), or the like. Additionally, or alternatively, the indication may include other information associated with establishing a communication session via the visited network, such as an APN associated with user device <b>205</b>.
0062As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include identifying a gateway device associated with a home network of the user device (as shown by reference number <b>610</b>). For example, SGW <b>220</b> may identify PGW <b>225</b> associated with a home network of user device <b>205</b>. In some implementations, SGW <b>220</b> may identify PGW <b>225</b> after SGW <b>220</b> receives the indication to establish the communication session associated with user device <b>205</b> and the visited network.
0063In some implementations, SGW <b>220</b> may identify PGW <b>225</b> based on information associated with user device <b>205</b>. For example, SGW <b>220</b> may send, to another device included in the visited network, a query (e.g., a DNS query) associated with identifying PGW <b>225</b>. Here, the query may include the information that identifies user device <b>205</b> (e.g., the IMSI, the APN, etc.). In this example, SGW <b>220</b> may receive, based on a response to the query, the information that identifies PGW <b>225</b>. In some implementations, SGW <b>220</b> may identify PGW <b>225</b> in another manner (e.g., based on information stored by SGW <b>220</b>).
0064As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include providing, to the identified gateway device, a session request associated with the user device (as shown by reference number <b>615</b>). For example, SGW <b>220</b> may provide, to PGW <b>225</b>, a session request associated with user device <b>205</b>. In some implementations, SGW <b>220</b> may provide the session request after SGW <b>220</b> identifies PGW <b>225</b>.
0065In some implementations, the session request may include information associated with establishing the communication session between user device <b>205</b> and the home network of user device <b>205</b> via the visited network. For example, the session request may include the information that identifies user device <b>205</b> (e.g., the IMSI, the APN, etc.), information that identifies the visited network (e.g., a network name, a MCC, a MNC, a VPLMN ID, etc.), and/or other information associated with establishing the communication session. In some implementations, SGW <b>220</b> may provide the session request such that the session request is received by PGW <b>225</b> associated with the home network of user device <b>205</b>.
0066As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include requesting DNS information to be provided to the user device when establishing the communication session (as shown by reference number <b>620</b>). For example, PGW <b>225</b> may request DNS information to be provided to user device <b>205</b> when establishing the communication session. In some implementations, PGW <b>225</b> may request the DNS information after PGW <b>225</b> receives the session request associated with user device <b>205</b>.
0067In some implementations, PGW <b>225</b> may request the DNS information from AAA <b>230</b>. For example, PGW <b>225</b> may send, to AAA <b>230</b>, a request that includes the information that identifies user device <b>205</b> and the information that identifies the visited network. In this example, AAA <b>230</b> may receive the request for the DNS information, and may determine the DNS information based on the request, as described below. Additionally, or alternatively, PGW <b>225</b> may request the DNS information from another device (e.g., PCRF <b>240</b>, HSS <b>235</b>, etc.).
0068As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include determining roaming policy information associated with the user device (as shown by reference number <b>625</b>). For example, AAA <b>230</b> may determine roaming policy information associated with user device <b>205</b>. In some implementations, AAA <b>230</b> may determine the roaming policy information after AAA <b>230</b> receives a request for the DNS information associated with user device <b>205</b>.
0069In some implementations, AAA <b>230</b> may determine the roaming policy information based on the information that identifies user device <b>205</b>. For example, AAA <b>230</b> may receive the request for the DNS information that includes the information that identifies user device <b>205</b>. In this example, AAA <b>230</b> may identify (e.g., based on the information that identifies user device <b>205</b> and information stored or accessible by AAA <b>230</b>) subscription information, associated with the user device, that identifies a roaming policy to which user device <b>205</b> is assigned, and may determine (e.g., based on roaming policy information stored or accessible by AAA <b>230</b>) roaming policy information that corresponds to the roaming policy. Additionally, or alternatively, AAA <b>230</b> may determine the roaming policy information based on communicating with one or more other devices, such as HSS <b>235</b> and/or PCRF <b>240</b>.
0070In some implementations, the roaming policy information may include information that identifies one or more visited networks via which user device <b>205</b> may receive data roaming service, as described above with regard to <figref idref="DRAWINGS">FIG. 4</figref>.
0071As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include determining the DNS information, to be provided to the user device, based on the roaming policy information (as shown by reference number <b>630</b>). For example, AAA <b>230</b> may determine the DNS information, to be provided to user device <b>205</b>, based on the roaming policy information. In some implementations, AAA <b>230</b> may determine the DNS information after AAA <b>230</b> determines the roaming policy information associated with user device <b>205</b>.
0072In some implementations, AAA <b>230</b> may determine the DNS information based on the roaming policy information and the information that identifies the visited network. For example, AAA <b>230</b> may determine, based on the roaming policy information and the information that identifies the visited network, whether user device <b>205</b> is permitted to send and/or receive data via the visited network. In some implementations, the DNS information may include information associated DNS server <b>245</b> to which user device <b>205</b> is to be directed when user device <b>205</b> communicates via the visited network, as described below. Additionally, or alternatively, the DNS information may include information associated with a network address to be assigned to user device <b>205</b> (e.g., such that traffic associated with user device <b>205</b> may be restricted, controlled, managed, etc. using a firewall policy), as described below. Additionally, or alternatively, the DNS information may include another type of information.
0073In some implementations, if AAA <b>230</b> determines that user device <b>205</b> is restricted from sending and/or receiving data via the visited network, then AAA <b>230</b> may determine (e.g., based on the roaming policy information) DNS information that includes a network address (e.g., an IP address) that identifies restricted DNS server <b>245</b> to which user device <b>205</b> is to be directed. Additionally, or alternatively, if AAA <b>230</b> determines that user device <b>205</b> is restricted from sending and/or receiving data via the visited network, then AAA <b>230</b> may determine (e.g., based on the roaming policy information) DNS information that includes information (e.g., an IP pool name) that identifies a restricted network address pool from which user device <b>205</b> is to be assigned a network address.
0074Alternatively, if AAA <b>230</b> determines that user device <b>205</b> is permitted to send and/or receive data via the visited network, then AAA <b>230</b> may determine (e.g., based on the roaming policy information) DNS information that includes a network address (e.g., an IP address) that identifies a standard DNS server <b>245</b> to which user device <b>205</b> is to be directed. Additionally, or alternatively, if AAA <b>230</b> determines that user device <b>205</b> is permitted to send and/or receive data via the visited network, then AAA <b>230</b> may determine (e.g., based on the roaming policy information) DNS information that includes information (e.g., an IP pool name) that identifies a standard network address pool from which user device <b>205</b> is to be assigned a network address.
0075As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include providing the DNS information (as shown by reference number <b>635</b>). For example, AAA <b>230</b> may provide the DNS information. In some implementations, AAA <b>230</b> may provide the DNS information after AAA <b>230</b> determines the DNS information.
0076In some implementations, AAA <b>230</b> may provide the DNS information in the form of a response to the request for DNS information. For example, PGW <b>225</b> may send, to AAA <b>230</b>, the request for DNS information associated with user device <b>205</b>, as described above. Here, AAA <b>230</b> may determine the DNS information to be provided to user device <b>205</b>, and may provide the DNS information as a response to the request provided by PGW <b>225</b>.
0077As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include providing a session response including the DNS information (as shown by reference number <b>640</b>). For example, PGW <b>225</b> may provide a session response including the DNS information. In some implementations, PGW <b>225</b> may provide the session response after PGW <b>225</b> receives the DNS information from AAA <b>230</b>.
0078In some implementations, the session response may include the DNS information and/or other information associated with establishing the communication session associated with user device <b>205</b>. In some implementations, PGW <b>225</b> may provide the session response to SGW <b>220</b>. In some implementations, PGW <b>225</b> may also assign a network address to user device <b>205</b> (e.g., based on the information that identifies the network address pool from which user device <b>205</b> is to be assigned a network address and based on information, associated with the network address pool, stored by PGW <b>225</b>).
0079As further shown in <figref idref="DRAWINGS">FIG. 6A</figref>, process <b>600</b> may include establishing the communication session associated with the user device and the visited network (as shown by reference number <b>645</b>). For example, SGW <b>220</b> may establish the communication session associated with user device <b>205</b> and the visited network. In some implementations, SGW <b>220</b> may establish the communication session after SGW <b>220</b> receives the session response from PGW <b>225</b> (e.g., including the DNS information). In some implementations, SGW <b>220</b> may establish the communication session such that user device <b>205</b> may communicate via the visited network. In some implementations, SGW <b>220</b> may provide the DNS information to user device <b>205</b> during establishment of the communication session. User device <b>205</b> may receive the DNS information, and may be directed to DNS server <b>245</b> based on the DNS information, as described below.
0080Although <figref idref="DRAWINGS">FIG. 6A</figref> shows example operations of process <b>600</b>, in some implementations, process <b>600</b> may include additional operations, fewer operations, different operations, or differently arranged operations than those depicted in <figref idref="DRAWINGS">FIG. 6A</figref>. Additionally, or alternatively, two or more of the operations of process <b>600</b> may be performed in parallel.
0081<figref idref="DRAWINGS">FIG. 6B</figref> is a call flow diagram of an example process <b>650</b> for providing roaming option information associated with allowing a user device to authorize and/or enable data roaming service via a visited network. For the purposes of example process <b>650</b>, assume that user device <b>205</b> is restricted from sending and/or receiving data via a visited network, and that user device <b>205</b> has receive DNS information that includes information that identifies restricted DNS server <b>245</b> to which user device <b>205</b> is to be directed. In some implementations, one or more operations of <figref idref="DRAWINGS">FIG. 6B</figref> may be performed by one or more devices of environment <b>200</b>.
0082As shown in <figref idref="DRAWINGS">FIG. 6B</figref>, process <b>650</b> may include providing a DNS query to a restricted DNS server (as shown by reference number <b>655</b>). For example, user device <b>205</b> may provide a DNS query to a restricted DNS server <b>245</b>. In some implementations, user device <b>205</b> may provide the DNS query when user device <b>205</b> receives an indication (e.g., based on user input, based on a configuration of user device <b>205</b>) to provide the DNS query.
0083In some implementations, user device <b>205</b> may provide the DNS query based on an indication associated with accessing a resource (e.g., a web page, a document, a file, etc.) via the visited network. For example, a user may provide user input that identifies a web address associated with a web page that the user wishes to access. In this example, assume that user device <b>205</b> stores a network address that identifies restricted DNS server <b>245</b> to which user device <b>205</b> is to provide DNS queries. Here, user device <b>205</b> may generate the DNS query, and may provide the DNS query such that the DNS query is received by restricted DNS server <b>245</b>.
0084As further shown in <figref idref="DRAWINGS">FIG. 6B</figref>, process <b>650</b> may include providing a DNS response that includes information that identifies a portal device (as shown by reference number <b>660</b>). For example, restricted DNS server <b>245</b> may provide a DNS response that includes information that identifies portal device <b>250</b>. In some implementations, restricted DNS server <b>245</b> may provide the DNS response after restricted DNS server <b>245</b> receives the DNS query provided by user device <b>205</b>.
0085In some implementations, restricted DNS server <b>245</b> may provide the DNS response based on information stored by restricted DNS server <b>245</b>. For example, restricted DNS server <b>245</b> may store a network address (e.g., an IP address), that identifies portal device <b>250</b>. In this example, restricted DNS server <b>245</b> may receive the DNS query, may generate a DNS response that includes the network address that identifies portal device <b>250</b>, and may provide the DNS response to user device <b>205</b>. In some implementations, restricted DNS server <b>245</b> may be configured such that any DNS response generated by restricted DNS server <b>245</b> includes the information that identifies portal device <b>250</b> (e.g., regardless of information included in the DNS request).
0086As further shown in <figref idref="DRAWINGS">FIG. 6B</figref>, process <b>650</b> may include providing a resource request to the portal device (as shown by reference number <b>665</b>). For example, user device <b>205</b> may provide a resource request to portal device <b>250</b>. In some implementations, user device <b>205</b> may provide the resource request after user device <b>205</b> receives the DNS response provided by restricted DNS server <b>245</b>. Additionally, or alternatively, user device <b>205</b> may provide the resource request after user device <b>205</b> receives an indication that user device <b>205</b> is to provide the resource request.
0087In some implementations, the resource request may include information associated with accessing a resource. For example, the resource request may include a hypertext transfer protocol (HTTP) request associated with accessing a web page. In some implementations, user device <b>205</b> may generate and provide the resource request based on the DNS response received from restricted DNS server <b>245</b>. For example, user device <b>205</b> may generate and provide the resource request such that the resource request is provided to portal device <b>250</b> as a result of receiving a response to the DNS query. In this way, user device <b>205</b> may be directed to portal device <b>250</b> regardless of the information included in the DNS request and/or the resource request provided by user device <b>205</b>.
0088As further shown in <figref idref="DRAWINGS">FIG. 6B</figref>, process <b>650</b> may include providing roaming option information in response to the resource request (as shown by reference number <b>670</b>). For example, portal device <b>250</b> may provide roaming option information in response to the resource request. In some implementations, portal device <b>250</b> may provide the roaming option information after portal device <b>250</b> receives the resource request provided by user device <b>205</b>.
0089Roaming option information may include information associated with authorizing and/or enabling data roaming service for user device <b>205</b> in the visited network. In some implementations, the roaming option information may include information associated with authorizing data roaming service for a particular amount of data. For example, the roaming option information may identify a cost associated with authorizing data roaming for the particular amount of data (e.g., $25 for 100 megabytes (MB), $50 for 250 MB, etc.). Additionally, or alternatively, the roaming option information may include information associated with authorizing data roaming service for a particular amount of time. For example, the roaming option information my identify a cost associated with authorizing data roaming for the particular amount of time (e.g., $50 for one hour of data roaming, $200 for one week of data roaming, etc.). Additionally, or alternatively, the roaming option information may include information associated with enabling data roaming service for user device <b>205</b> (e.g., information associated with permanently enabling data roaming for the visited network). Additionally, or alternatively, the roaming option information may include information associated with a roaming policy that may be selected by the user in order to enable data roaming for the visited network (e.g., such that the user may select a new roaming policy for user device <b>205</b>). Additionally, or alternatively, the roaming option information may include another type of information.
0090In some implementations, portal device <b>250</b> may provide the roaming option information based on receiving the resource request. For example, portal device <b>250</b> may receive the resource request, may determine (e.g., based on information stored by portal device <b>250</b>) the roaming option information, and may provide the roaming option information to user device <b>205</b> (e.g., regardless of information included in the resource request). In this way, user device <b>205</b> may receive the roaming option information regardless of the resource requested by the user.
0091In some implementations, portal device <b>205</b> may communicate with user device <b>205</b> after providing the roaming option information, in order to authorize and/or enable data roaming for user device <b>205</b> for the communication session associated with the visited network. For example, user device <b>205</b> may display the roaming option information to the user, and the user may select (e.g., via a roaming option information user interface) a roaming option associated with authorizing and/or enabling data roaming. In this example, portal device <b>250</b> may receive information associated with the user selection, and may communicate with one or more other devices (e.g., HSS <b>235</b>, PCRF <b>240</b>) in order to update the subscription information, associated with user device <b>205</b>, such that data roaming is authorized and/or enabled in the visited network based on the selected roaming option. Here, portal device <b>250</b> may then cause (e.g., by providing an indication to user device <b>205</b>) the communication session to be terminated and re-established. User device <b>205</b> may return to operation <b>605</b> in order to re-establish the communication session and, during establishment of the communication session, user device <b>205</b> may receive DNS information that includes information that identifies a standard DNS server <b>245</b> (user device <b>205</b> may also be assigned to a network address from the standard network address pool). User device <b>205</b> may then send and/or receive data via the visited network in a standard fashion (e.g., based on communicating with standard DNS server <b>245</b>).
0092In some implementations, PGW <b>225</b> may monitor and/or track data roaming activity via the visited network. For example, PGW <b>225</b> may monitor a quantity of data sent and/or received via the visited network, and may enforce a data roaming threshold (e.g., a maximum amount of data, a time period for data roaming service, etc.) associated with the roaming option. In this example, PGW <b>225</b> may cause user device <b>205</b> to be directed to restricted DNS server <b>245</b> when the data roaming threshold has been satisfied.
0093Although <figref idref="DRAWINGS">FIG. 6B</figref> shows example operations of process <b>650</b>, in some implementations, process <b>650</b> may include additional operations, fewer operations, different operations, or differently arranged operations than those depicted in <figref idref="DRAWINGS">FIG. 6B</figref>. Additionally, or alternatively, two or more of the operations of process <b>650</b> may be performed in parallel.
0094<figref idref="DRAWINGS">FIGS. 7A-7C</figref> are diagrams of an example implementation <b>700</b> relating to example processes <b>600</b> and <b>650</b> shown in <figref idref="DRAWINGS">FIGS. 6A and 6B</figref>, respectively. For the purposes of example implementation <b>700</b>, assume that AAA <b>230</b> (e.g., hAAA) stores roaming policy information associated with a roaming policy (e.g., tier A) assigned to user device <b>205</b> (e.g., UD<b>1</b>) located within a geographic area associated with a visited network (e.g., NW<b>4</b>).
0095As shown in <figref idref="DRAWINGS">FIG. 7A</figref>, and by reference number <b>705</b>, UD<b>1</b> may provide, to SGW <b>220</b> included in the visited network (e.g., SGW<b>4</b>), an indication to establish a communication session with UD<b>1</b> and NW<b>4</b>. As shown, the indication may include information associated with UD<b>1</b>, such as a user device identifier and an APN associated with UD<b>1</b>. As shown by reference number <b>710</b>, SGW<b>4</b> may identify (e.g., based on a DNS query provided by SGW<b>4</b>) PGW <b>225</b> associated with a home network of UD<b>1</b> (e.g., hPGW). As shown by reference number <b>715</b>, SGW <b>4</b> may provide, to hPGW, a session request associated with UD<b>1</b>, that includes the information associated with UD<b>1</b>. As shown by reference number <b>720</b>, hPGW may request, from hAAA, DNS information to be provided to UD<b>1</b>. As shown by reference number <b>725</b>, hAAA may receive the request for the DNS information, and may identify (e.g., based on the information associated with UD<b>1</b> and information stored and/or accessible by hAAA) the tier A roaming policy as being assigned to UD<b>1</b>. As shown, hAAA may then determine, based on roaming policy information stored or accessible by hAAA, that the tier A roaming policy restricts UD<b>1</b> from sending and/or receiving data via NW<b>4</b>. As further shown, hAAA may also determine, based on the tier A roaming policy information, DNS information, to be provided to UD<b>1</b>, that identifies a restricted DNS server <b>245</b> (e.g., DNS<b>90</b>) to which UD<b>1</b> is to be directed, and a restricted network address pool (e.g., IP pool R) from which UD<b>1</b> is to be assigned a network address. As shown by reference number <b>730</b>, hAAA may provide the DNS information to hPGW. As shown by reference number <b>735</b>, hPGW may receive the DNS information, and may provide a session response based on the DNS information (e.g., hPGW may provide the DNS<b>90</b> identifier and may assign UD<b>1</b> to a network address from IP pool R). As shown by reference number <b>740</b>, SGW<b>4</b> may receive the session response, and may establish the communication session. During establishment of the communication session, SGW<b>4</b> may provide the DNS<b>90</b> identifier and/or the restricted network address (e.g., from IP pool R) to UD<b>1</b>.
0096As shown in <figref idref="DRAWINGS">FIG. 7B</figref>, and by reference number <b>745</b>, UD<b>1</b> may receive an indication associated with accessing a web page (e.g., www.sports.com) via the communication session associated with NW<b>4</b>. As shown by reference number <b>750</b>, UD<b>1</b> may provide, based on receiving the indication, a DNS query associated with the web page. As shown, the DNS query may be provided to DNS<b>90</b> (e.g., based on the DNS information received by UD<b>1</b> during establishment of the communication session). As shown by reference number <b>755</b>, DNS<b>90</b> may receive the DNS query, and may provide a DNS response that includes information that identifies portal device <b>250</b> (e.g., PD<b>1</b>) to which UD<b>1</b> is to be directed.
0097As shown in <figref idref="DRAWINGS">FIG. 7C</figref>, and by reference number <b>760</b>, UD<b>1</b> may receive the DNS response, and may provide, to PD<b>1</b>, an HTTP request associated with the web page. As shown by reference number <b>765</b>, PD<b>1</b> may receive the HTTP request, and may provide, to UD<b>1</b>, roaming option information associated with authorizing and/or enabling data roaming service for UD<b>1</b> in NW<b>4</b>. As shown by reference number <b>770</b>, UD<b>1</b> may receive the roaming option information, and may display, to the user, information indicating that UD<b>1</b> is restricted from sending and/or receiving data via NW<b>4</b> (e.g., “Your current roaming plan does not provide for data roaming in NW<b>4</b>. Please select a roaming option in order to roam via NW<b>4</b>”) and the roaming option information (e.g., $25 for 100 MB, $50 for 250 MB, No Thanks) for selection by the user.
0098Assuming that the user selects a roaming option associated with authorizing and/or enabling data roaming in NW<b>4</b>, PD<b>1</b> may communicate with one or more other devices (e.g., HSS <b>235</b>, PCRF <b>240</b>) in order update the subscription information, associated with UD<b>1</b>, such that data roaming is authorized and/or enabled in NW<b>4</b>. PD<b>1</b> may then cause (e.g., by providing an indication to UD<b>1</b>) the communication session to be terminated and reset. UD<b>1</b> may cause the communication session to be re-established (e.g., in the manner described above) and, during establishment of the communication session, UD<b>1</b> may receive updated DNS information that includes information that identifies standard DNS server <b>245</b> (e.g., identified in the tier A roaming policy), and may be assigned a network address from a standard network address pool (e.g., identified in the tier A roaming policy). UD<b>1</b> may then send and/or receive data via NW<b>4</b> in a standard fashion (e.g., based on communicating with standard DNS server <b>245</b>).
0099As indicated above, <figref idref="DRAWINGS">FIGS. 7A-7C</figref> are provided merely as an example. Other examples are possible and may differ from what was described with regard to <figref idref="DRAWINGS">FIGS. 7A-7C</figref>.
0100<figref idref="DRAWINGS">FIG. 8</figref> is a flow chart of an example process <b>800</b> for providing DNS information, associated with a user device communicating via a visited network, based on determining whether the user device is permitted to send and/or receive data via the visited network. In some implementations, one or more process blocks of <figref idref="DRAWINGS">FIG. 8</figref> may be performed by AAA <b>230</b>. In some implementations, one or more process blocks of <figref idref="DRAWINGS">FIG. 8</figref> may be performed by another device or a group of devices separate from or including AAA <b>230</b>, such as HSS <b>235</b> and/or PCRF <b>240</b>.
0101As shown in <figref idref="DRAWINGS">FIG. 8</figref>, process <b>800</b> may include receiving a request for DNS information associated with a user device and a visited network (block <b>810</b>). For example, AAA <b>230</b> may receive a request for DNS information associated with user device <b>205</b> and the visited network, as described above.
0102As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, process <b>800</b> may include identifying a roaming policy associated with the user device (block <b>820</b>). For example, AAA <b>230</b> may identify the roaming policy associated with the user device, as described above.
0103As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, process <b>800</b> may include determining whether the roaming policy permits the user device to send and/or receive data via the visited network (block <b>830</b>). For example, AAA <b>230</b> may determine whether the roaming policy permits user device <b>205</b> to send and/or receive data via the visited network, as described above.
0104As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, if the roaming policy permits the user device to send and/or receive data via the visited network (block <b>830</b>—YES), then process <b>800</b> may include determining DNS information that identifies a standard DNS server and a standard network address pool (block <b>840</b>). For example, if the roaming policy permits user device <b>205</b> to send and/or receive data via the visited network, then process <b>800</b> may include determining DNS information that identifies standard DNS server <b>245</b> and a standard network address pool, as described above.
0105As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, process <b>800</b> may include providing the DNS information that identifies the standard DNS server and the standard network address pool (block <b>850</b>). For example, AAA <b>230</b> may provide the DNS information that identifies standard DNS server <b>245</b> and the standard network address pool, as described above.
0106As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, if the roaming policy restricts the user device from sending and/or receiving data via the visited network (block <b>830</b>—NO), then process <b>800</b> may include determining DNS information that identifies a restricted DNS server and a restricted network address pool (block <b>860</b>). For example, if the roaming policy restricts user device <b>205</b> from sending and/or receiving data via the visited network, then process <b>800</b> may include determining DNS information that identifies restricted DNS server <b>245</b> and a restricted network address pool, as described above.
0107As further shown in <figref idref="DRAWINGS">FIG. 8</figref>, process <b>800</b> may include providing the DNS information that identifies the restricted DNS server and the restricted network address pool (block <b>870</b>). For example, AAA <b>230</b> may provide the DNS information that identifies restricted DNS server <b>245</b> and the restricted network address pool, as described above.
0108Although <figref idref="DRAWINGS">FIG. 8</figref> shows example blocks of process <b>800</b>, in some implementations, process <b>800</b> may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in <figref idref="DRAWINGS">FIG. 8</figref>. Additionally, or alternatively, two or more of the blocks of process <b>800</b> may be performed in parallel.
0109Implementations described herein may allow a user device to be directed to a portal device, associated with authorizing and/or enabling data roaming service for the user device, based on DNS information provided to the user device and determined based on a roaming policy corresponding to the user device (e.g., without relying on a packet inspection technique).
0110The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations are possible in light of the above disclosure or may be acquired from practice of the implementations.
0111As used herein, the term component is intended to be broadly construed as hardware, firmware, or a combination of hardware and software.
0112Some implementations are described herein in connection with thresholds. As used herein, satisfying a threshold may refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc.
0113Certain user interfaces have been described herein and/or shown in the figures. A user interface may include a graphical user interface, a non-graphical user interface, a text-based user interface, etc. A user interface may provide information for display. In some implementations, a user may interact with the information, such as by providing input via an input component of a device that provides the user interface for display. In some implementations, a user interface may be configurable by a device and/or a user (e.g., a user may change the size of the user interface, information provided via the user interface, a position of information provided via the user interface, etc.). Additionally, or alternatively, a user interface may be pre-configured to a standard configuration, a specific configuration based on a type of device on which the user interface is displayed, and/or a set of configurations based on capabilities and/or specifications associated with a device on which the user interface is displayed.
0114To the extent the aforementioned embodiments collect, store, or employ personal information provided by individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage, and use of such information may be subject to consent of the individual to such activity, for example, through well known “opt-in” or “opt-out” processes as may be appropriate for the situation and type of information. Storage and use of personal information may be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.
0115It will be apparent that systems and/or methods, described herein, may be implemented in different forms of hardware, firmware, or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods were described herein without reference to specific software code—it being understood that software and hardware can be designed to implement the systems and/or methods based on the description herein.
0116Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of possible implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of possible implementations includes each dependent claim in combination with every other claim in the claim set.
0117No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items, and may be used interchangeably with “one or more.” Where only one item is intended, the term “one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise.
Contents3
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2018288823A1 | Cited by | United States of America | Search report |
| US11470666B2 | Cited by | United States of America | Search report |
| US10284670B1 | Cited by | United States of America | Search report |
| US2020177683A1 | Cited by | United States of America | Search report |
| US2023144444A1 | Cited by | United States of America | Search report |
| GB2556433B | Cited by | United Kingdom | Search report |
| US11375026B2 | Cited by | United States of America | Applicant |
| US2022248302A1 | Cited by | United States of America | Search report |
| US10939480B2 | Cited by | United States of America | Applicant |
| GB2556433A | Cited by | United Kingdom | Search report |
| EP3571866B1 | Cited by | European Patent Office (EPO) | Examiner |
| US2018199384A1 | Cited by | United States of America | Search report |
| US10827002B2 | Cited by | United States of America | Search report |
| US11671503B2 | Cited by | United States of America | Applicant |
| US11818649B2 | Cited by | United States of America | Applicant |
| US10349264B2 | Cited by | United States of America | Applicant |
| US2022182389A1 | Cited by | United States of America | Search report |
| WO2018231606A1 | Cited by | World Intellectual Property Organization (WIPO) | International search |
| US11323922B2 | Cited by | United States of America | Applicant |
| US11632376B2 | Cited by | United States of America | Search report |
| US2017063927A1 | Cited by | United States of America | Pre-grant |
| TWI774737B | Cited by | Taiwan Province of China | Examiner |
| US10270815B1 | Cited by | United States of America | Applicant |
| US10772145B2 | Cited by | United States of America | Search report |
| US2001049790A1 | Cites | United States of America | Pre-grant |
| US2006123470A1 | Cites | United States of America | Pre-grant |
| US2006245406A1 | Cites | United States of America | Pre-grant |
| US2009172138A1 | Cites | United States of America | Pre-grant |
| US2009196265A1 | Cites | United States of America | Pre-grant |
| US2010211628A1 | Cites | United States of America | Pre-grant |
| US2011105115A1 | Cites | United States of America | Pre-grant |
| US2012100832A1 | Cites | United States of America | Pre-grant |
| US2012151568A1 | Cites | United States of America | Pre-grant |
| US2012185578A1 | Cites | United States of America | Pre-grant |
2 members in 1 office; this record represents the family
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016182402A1 | United States of America | A1 | |
| US9692711B2 | United States of America | B2 |
46 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Cleared by OIPE CSRL194 | L194 | |
| Cleared by OIPE CSRL194 | L194 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity status set to undiscounted (initial default setting or status change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160182402
- Application
- 14578857
Titles
- English
- DNS REDIRECTING FOR DATA ROAMING OFFERING
Patent term adjustment
- A delay
- +262 daysthe office missed an examination deadline
- Applicant delay
- −11 days
- Net adjustment
- 251 days
Classification
- CPC, 4
- H04L47/808
- H04L61/1588
- H04L61/203
- H04L61/1511
- IPC, 3
- H04L47 80
- H04L12 927
- H04L29 12