Enabling permissionless cellular roaming connections between user equipment and radio access networks

A radio access network (“RAN”) includes a transceiver for receiving a request from user equipment (“UE”) to join the RAN. The RAN also includes a processor that is configured for: responding to the UE request by sending a message directly from the RAN to the UE to offer a set of first terms for the UE to use a cellular network of the RAN; receiving a response from the UE agreeing to the set of first terms; and in response to the UE agreeing to the set of first terms, connecting the UE to use a cellular network of the RAN.

BACKGROUND

Currently, cellular connections are only allowed between the user and a network of the user's carrier or another network that has a roaming agreement with the user's carrier. If the user travels to a certain location where there are no towers of the user's carrier available (referred herein as “roaming”) and no roaming agreement in place on how the user's phone could connect to the other network's towers, then the user will have no service on his phone. This can be extremely frustrating for the user, especially given how important it is that a user is able to have connection on a user's phone.

Alternatively, if there are towers of carriers other than the user's carrier and there is a roaming agreement between these carriers, the user's carrier typically charge high rates for use of the carrier's network outside of the user's base coverage territory. This is also frustrating for the user to have to pay such high costs.

Thus, either the user will have no service at all or pay high roaming fees when traveling outside of his base coverage territory.

SUMMARY

Various embodiments provide systems and methods for allowing cellular connections while the cellular device is roaming. The cellular connections may be with carriers and networks other than those of the user's cellular carrier. In this regard, the user can negotiate and pay the upstream cell tower without a roaming deal in place with the user's carrier. This process could also be automatically and securely performed between the user's device (e.g. cell phone) and the roaming network.

According to an embodiment, disclosed is a radio access network (“RAN”) that includes a transceiver for receiving a request from user equipment (“UE”) to join the RAN, and a processor. The processor is configured for responding to the UE request by sending a message directly from the RAN to the UE to offer a set of first terms for the UE to use a cellular network of the RAN; receiving a response from the UE agreeing to the set of first terms; and in response to the UE agreeing to the set of first terms, connecting the UE to use a cellular network of the RAN.

According to another embodiment, a method is provided of user equipment (“UE”) connecting to a radio access network (“RAN”). The method includes receiving, at the RAN, a request from user equipment (“UE”) to join the RAN; responding, from the RAN, to the UE request by sending a message from the RAN directly to the UE to offer a set of first terms for the UE to use a cellular network of the RAN; receiving, directly from the UE, a response from the UE agreeing to the set of first terms; and in response to the UE agreeing to the set of first terms, connecting the UE to use a cellular network of the RAN.

According to another embodiment, a system includes a radio access network (“RAN”) comprising a RAN transmitter and a RAN processor; and user equipment (“UE”) comprising a UE transceiver configured to identify in response to the RAN being within range of the UE. The RAN processor is configured for: sending a message directly from the RAN to the UE to offer a set of first terms for the UE to use a cellular network of the RAN; receiving a response directly from the UE agreeing to the set of first terms; and in response to the UE agreeing to the set of first terms, connecting the UE to use a cellular network of the RAN.

DETAILED DESCRIPTION OF EMBODIMENTS

As mentioned above, various embodiments provide solutions to allow user equipment (“UE”) to connect to a radio access network (“RAN”), especially where such RAN is part of a carrier that does not have a roaming agreement in place with the user's carrier.

Generally speaking, the UE will look up for any RANs available. When a RAN is located, the UE will request access and the UE will directly negotiate with the RAN for a rate that is mutually agreed upon between the RAN and the UE. If the rate is agreed upon, the RAN allows the UE to access the cellular network of the RAN, and the UE then pays the carrier of the RAN for such access based on the mutually agreed upon rate. This is all done directly and autonomously between the UE and the RAN (whereby the user's carrier is not involved in this process), according to some embodiments.

FIGS.1A and1Billustrate a general overview of embodiments of the present application.FIG.1Aillustrates a high level block diagram showing a user's device connecting to the user's carrier network according to some embodiments,FIG.1Billustrates a high level block diagram showing a user's device connecting to a network other than the user's carrier where a roaming agreement is in place between the user's carrier and the other carrier, andFIG.1Cillustrates a high level block diagram of components of a user's device directly connecting to such RANs other than those owned the user's carrier according to some embodiments.

Starting first inFIG.1A, the UE102looks up and connects with a tower of a RAN104of the user's carrier (referred to herein as “RAN1”). RAN1104identifies that the UE102is a current customer of the user's carrier106based on subscriber data retrieved from the UE102, and as such authorizes the UE102for a connection to RAN1104for using the cellular network (e.g., cellular calls, data usage, etc.).

To allow for such access, the user of the UE102is charged a recurring charge (e.g. a monthly fee) for use of networks (e.g., RAN1104and other RANs) of the user's carrier106. The user's carrier106receives a payment from the user on the user's account, typically via an account associated with the user, such as the user's bank account or credit card.

However, once the user travels to a location that is outside of reach of RANs (e.g., out of reach of RAN1104and other RANs) of the user's carrier106(and thus is “roaming”), the UE102of the user can connect to RANs other than those owned by the user's carrier106. For example, as shown inFIG.1B, if the UE102is out of range of RAN1104of the user's carrier106and no other RANs of the user's carrier106are available, the UE102is “roaming” and, while “roaming”, the UE102will attempt to look up other RANs in range of the UE102.

If a roaming agreement is in place between the user's carrier106and the other carrier110, the UE102connects to the RAN2108and the UE102is able to freely use the cellular towers to place phone calls and/or use data, as shown inFIG.1B. However, this comes at a price to the user. Indeed, the roaming rate of using RAN2108is preset by the user's carrier106and such rates are typically expensive and are not negotiable. As such, when the user connects to RAN2108while the UE102is roaming, the user's charges can be quite high because the preset high rates set by the user's carrier106.

As further illustrated inFIG.1B, during/after using RAN2108while roaming, the user's carrier106charges the user's account the total amount of charges, and the user may then send payment to the user's carrier106for such roaming charges. A portion of the user's payment may be provided from the user's carrier106to the other carrier110per the roaming agreement between the carriers106and108.

As one can ascertain fromFIG.1B, wireless roaming can be expensive but the user does not have much choice—either the user accepts high roaming charges or the user will not have any cellular connection to the UE102.

The present application provides an alternative to the system ofFIG.1Bin the exemplary embodiment ofFIG.1C, which illustrates a high level block diagram of the UE102connecting directly to RAN2108of the other carrier110. In this regard, the UE102is configured to communicate directly with a tower in RAN2110regarding allowing access to RAN2108for UE102. Such communication allows the UE102and RAN2108to come to agreement (e.g., via the UE102accepting RAN2's offer, via negotiation between RAN2108and the UE102, etc.) on one or more connection terms (e.g., a connection rate, connection duration, connection data cap, etc.). If the terms are agreed to between the UE102and RAN2108, RAN2108allows the UE102to use the cellular connections and data. Then, RAN2108sends charges directly to the UE102, collects payment from the UE102on behalf of the other carrier110directly per the agreed upon terms.

In any event, as can be seen inFIG.1C, the user's carrier106is not involved in the transaction (according to some embodiments) and the UE102negotiates a connection directly and autonomously with RAN2108(according to various embodiments).

FIG.1Cillustrates a general overview of exemplary embodiments, but more details on these and other embodiments are discussed in more depth below with regard toFIGS.2-4.

FIG.2illustrates a system of a user's device connecting to a network other than the user's carrier according to some embodiments. As shown, the UE102communicates directly with RAN2108in an effort for UE102to get on the cellular network of RAN2108. Components of these systems102and108are shown inFIG.2and discussed below.

Starting first with the UE102, the UE102may include a processor202, memory204, a UE wallet206, a SIM (Subscriber Identity Module) card212, a display214, a transceiver216, I/O devices218, antenna230and a roaming module222.

The processor202is configured to run instructions of software modules that may be stored in memory204. The processor202also is configured to interact and communicate with any of the components of the UE102. For example, the processor202is configured to process instructions so that transmissions of data are sent to transceiver216of the UE102, which may then be transmitted out through antenna230of the UE102. The processor202may be a hardware processor (e.g., “CPU”, etc.) and may be configured to perform any of the steps discussed herein, such as those in the methods described inFIGS.3A,3B, and4.

The memory204may be any computer readable storage medium, such as an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: a radio access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store data for use by or in connection with an instruction execution system, apparatus, or device.

The UE wallet206may be a digital storage area on the UE102where a public key208and a private key210are stored. The public and private keys208,210are the tools required to ensure the security of the blockchain, or the ledger of the transactions. When a user first powers on his UE102, a unique pair of a public key208and a private key210is created. Each of the keys consists of a long string of alphanumeric characters that help to keep the RAN's transaction secure in the digital ecosystem.

When a transaction is initiated by a user to connect to a RAN (e.g., RAN2108), the transaction has to be broadcast to the blockchain network where distributed nodes of the blockchain network confirm the validity of the transaction before finalizing it and recording it on the blockchain. Before the transaction is broadcast, however, it is digitally signed using the private key210. The signature proves ownership of the private key210, although it does not divulge the details of the private key210to anyone. Since a public key208is fashioned from the private key210, the UE's public key208is used to prove that the digital signature came from his private key210. Once the transaction has been verified as valid, the RAN connection between the RAN2108and the UE102is allowed to be completed.

The private key210is known to the user alone and serves as the user's digital ID. The private key210authorizes the user to carry out any transaction from his account. A sophisticated algorithm is applied to the private key210to generate the public key208, and both keys are stored in the UE wallet206.

The SIM card212is a small, portable memory chip that stores information about the UE102. On it, there is a code that designates various information, such as the UE's country code of origin, the UE's carrier, and a unique user ID identifying the UE102. The SIM card212can also carry other data, like a contact list and text messages. In this regard, if the user change phones, as long as the user keeps the SIM card212, these contacts and text messages will transfer to the new UE. The SIM card212may be an eSIM card where data of the eSIM card is stored in memory204or the UE wallet206. The eSIM card can have a payment account information stored on it which could be easily used to transfer payment directly to RAN2108in response to RAN2108applying charges to the UE102(as is discussed in more depth herein).

The display214may present data and applications to the user of the UE102as described herein. For example, any GUIs associated with the roaming module222may be presented on the display214and allow the user to input data to the UE102.

The transceiver216of the UE102is configured to transmit and receive communications to and from the UE102via the antenna230. When the transceiver216receives data, for example, from the antenna230, the transceiver216transfers such data to the processor202for appropriate processing. Also, when the transceiver216receives instructions to transmit data from the UE102, the transceiver216sends broadcast signals from the transceiver216to the antenna230which then broadcasts such data over the air for reception by any other device (e.g., RAN2108) via a corresponding antenna (e.g., antenna250).

The UE102may also include one or more input devices, output devices or combination input and output device, collectively I/O devices218. The I/O devices218may include a touch screen or a keyboard to control operation of applications and interaction features described herein. The I/O devices218may also include devices for reading computer media including computer-readable or computer-operable instructions stored on portable medium, such as the SIM card212.

The UE102may also include software modules, such as a roaming module222for connecting to RAN2108that is operable on the UE102of a user. The methods discussed herein may be embodied in or performed by the roaming module222. For example, the method ofFIGS.3A-3B(collectively “FIG.3”) may be performed by the roaming module222.

The roaming module222may be stored on the memory204of the UE102, and the roaming module222may be accessed from the memory204and run on the processor202associated with the UE102.

The roaming module222may include various sub-modules. For example, the roaming module222may include a module for negotiating terms224. The module for negotiating terms224allows the UE102to autonomously interact and directly communicate with the RAN2108to directly negotiate terms with the RAN2108, as will be discussed in more detail below with regard toFIG.3.

The roaming module222may also include a payment account module226. The payment account module226allows for a user to initiate payment from the UE102to RAN2108using an account of the UE102, such as an eSIM card, a bank account of the user, and any other systems where the UE102can direct payment to the RAN2108.

The roaming module222may also include a RAN look up module228. The RAN look up module228is configured to search for RANs in a geographic range around the current location of the UE102. This is accomplished by sending a beacon signal from the antenna230, where the beacon signal contains a message with a request for a response. Upon receipt by a RAN, such RAN will reply back with a reply message indicating that the RAN is located within the range of the UE102. The RAN look up module228will return such reply message to the processor202for appropriate processing with other modules of the roaming module222.

The roaming module222may further include GUIs220. The roaming module222may present one or more predetermined GUIs220to permit the user to define preferences and/or any other information and/or settings, such as predetermined negotiation settings so that the UE102can automatically accept terms that are within the predetermined thresholds. For example, if the user sets a predetermined threshold via a GUI220that a rate of $X/day or $X/data amount is acceptable and a RAN offers a rate of $Y/day or $Y/data amount, then the UE102can automatically accept such offer as long as the $Y is less than or equal to $X, but will renegotiate the rate if $Y is greater than $X.

In any event, the GUIs220may be predetermined and/or presented in response to the user indicating the user would like to enter information and/or settings. The predetermined GUIs220may be generated by the roaming module222and may be presented on the display214of the UE102.

The above description describes some embodiments of the UE102but is not limited to these embodiments and may include one or more additional features not explicitly described above.

As previously mentioned, the UE102communicates with a RAN, which is illustrated as being RAN2108for ease of description herein. However, the RAN may be any RAN and should not be limited to the embodiments explicitly shown inFIG.2. A discussion of RAN2108will now be provided.

RAN2108may be a component of a wireless telecommunications system that connects individual devices to other parts of a network through a radio link. RAN2108links user equipment, such as a cellphone, computer or any remotely controlled machine, over a fiber or wireless backhaul connection. That link goes to the core network, which manages subscriber information, location and more, as described in more depth below.

RAN2108is the radio element of the cellular network. A cellular network is made up of land areas called cells. A cell is served by at least one radio transceiver, although the standard is typically three for cell sites.

The capabilities of RAN2108include voice calls, text messaging, and video and audio streaming. The types of user equipment using these networks include cell phones, vehicles, drones and internet of things devices.

The components of RAN2108include base stations and antennas that cover a specific region, depending on their capacity. Silicon chips in both the core network and the user equipment provide RAN functionality. RAN2108is made up of three elements: (1) antennas250that convert electrical signals into radio waves, (2) radio transceivers252that receive and transform digital information into signals that can be sent wirelessly and ensure that transmissions are in the correct frequency bands with the right power levels, and (3) baseband units (BBUs)253provide a set of signal processing functions that make wireless communication possible. Traditional baseband uses custom electronics combined with multiple lines of code to enable wireless communication, typically using the licensed radio spectrum. BBU processing detects errors, secures the wireless signal and ensures that wireless resources are used effectively.

As illustrated inFIG.2, RAN2108is shown with a tower254, which includes a radio transceiver252and a BBU253. The radio transceiver252receives transmissions via antenna250, such as beacon messages from UE102, and transfers those messages to BBU253for processing.

Moreover, RAN2108is also shown as communicating with a server255which has processor256, memory258, and various modules260-268for executing functions of the methods discussed herein.

It should be understood that the components of the server255may be implemented in the tower254so that there need not be a device that is separate from the tower254. As such, the present invention should not be limited to the specific embodiments illustrated inFIG.2.

The processor256of the server255is configured to run instructions of software modules that may be stored in memory258. The server processor256also is configured to interact and communicate with any of the components of the server255and/or the RAN tower254. For example, the processor256is configured to process instructions so that transmissions of data are sent to the transceiver252of the RAN2108, which may then be transmitted out through antenna250. The processor256may be a hardware processor and may be configured to perform any of the steps discussed herein, such as those in the methods described inFIGS.3and4.

The server255may include a series of modules in order to allow a UE102to securely connect to and use the cellular network of RAN2108. These modules may include a communications module264, a UE ID module262, a module for offering/negotiating terms266, a module for connecting a roaming UE268, and a blockchain module260.

The communications module264is configured to control communications between the RAN2108and the UE102. This includes controlling communications being sent out via the transceiver252(and antenna250) as well as communicating data and instructions between the various modules and the processor256and memory258. The communications module264also receives data received through the transceiver252and determines the appropriate deliver location for such data. For example, when the communications module264receives UE ID information (SIM card data, ICCID/IMSI data, location data, etc.), such UE ID data is then transmitted to the UE ID module262. The UE ID module262is configured to receive and process the UE ID data to determine various information about the UE102, including the location of the UE102, the subscription information of the UE102, and other identifying information of the UE102. This information may be used to determine if the UE102is an “out of network” device, is provisioned, etc., according to some embodiments

The module for offering/negotiating terms (“offering/negotiating module”)266is configured to autonomously negotiate terms with a roaming UE trying to use the cellular network of the RAN2108. These terms may relate to the connection rate, data usage rate, total data usage amount/cap, time duration, connection speeds, and any other terms which are related to using a cellular network for a UE102. The offering/negotiating module266is configured to initially make an offer based on a preset rate or a current market rate. In one embodiment, the offering/negotiating module266coordinates with the communications module264to make the initial offer and negotiate with the UE102.

Also, the offering/negotiating module266is configured to receive and process offers (e.g., initial offers, counter offers, etc.) for connecting to the RAN2108directly from the UE102. For example, the offering/negotiating module266may receive a counter offer and determines if a counter offer from the UE102is acceptable or not based on predetermined thresholds which are based parameters such as current RAN2capacity, current speeds for connected UEs, preset rates that the RAN2108does not want to go below, etc. The offering/negotiating module266also determines when the RAN will stop the negotiation process based on whether the negotiations are successful or not, how many counter offers will be allowed to be received, whether the current rates are even negotiable, whether capacity of the RAN2108has changed, etc.

The offering/negotiating module266also is configured to accept terms and determine when the terms are accepted. When such acceptance occurs, the offering/negotiating module266sends a signal to the module for connecting a roaming UE268indicating that the UE is authorized for using the RAN2's cellular network.

The module for connecting a roaming UE268connects the UE102to the RAN2in response to receiving the authorization signal from the offering/negotiating module266indicating that the terms being accepted by the RAN2108. The module for connecting a roaming UE268is configured to provide the UE102with an IP address on the network of the RAN2108where such IP address is limited to only give access per the terms that were accepted with the UE102. In this regard, when the terms are completed by the UE102, then the module for connecting a roaming UE268will end the connection to the RAN2network for the UE102. For example, when the UE102has exceeded the data limit, the module for connecting a roaming UE268would disconnect the UE102from the network (and may forward the UE102back to the negotiating/offering module266to further receive and accept additional or new terms).

The server also includes a blockchain module260, which is configured to ensure the transactions are valid and secure, as will be discussed in more depth with regard toFIG.4. Generally, the blockchain module260is configured to validate the blockchain and sign the blockchain when the terms are accepted. The blockchain module260also may store the blockchain in memory258.

It should be understood that the above description is some embodiments of the RAN2and the server255and the RAN2and the server255should not be limited to the features described herein and may include additional and/or other features.

FIGS.3A and3B(collectivelyFIG.3) illustrate a method of a user's device connecting to a network other than the user's carrier according to some embodiments.

In block302, the UE102is powered on. When the UE102is powered on, the UE102determines if the UE has a key in its wallet, as provided in block304. If there is no key present, the UE102generates a key in block306. The keys include a public key208and a private key210, similar to keys used in non-fungible transactions. As explained above, these keys208,210are used to receive and make transactions on a ledger. The public key208is a key used to sign a blockchain and is accessible for all to verify the identity of the UE102, while the private key210is used in order to sign the blockchain and to identify the UE's identity to the system.

After the keys208,210are generated in block306or after determining that the keys208,210already exist in block304, the UE102sends out a beacon to “look up” close RANs or determine which RANs are in range of the UE102. Additionally, RAN2108sends out beacons to “look up” or search for UEs within range. Any UE within range of RAN2108will send a signal back identifying the UE102to the RAN2108and the RAN2108will send a response to any UE beacon signal received.

In block310, the UE102determines that RAN2108is the nearest RAN available. This is determined by the UE102determining the signal strength of RAN2108relative to signals received from other RANs is the highest.

In block312, the UE102requests to connect to the RAN2108. This is done by sending the UE's identification information, such as the SIM card data or other ID data, such as ICCID/IMSI data of the UE102, etc.

The IMSI is the International Mobile Subscriber Identity, which is a unique identifier that defines a subscriber in the wireless world, including the country and mobile network to which the subscriber belongs. The IMSI has the format MCC-MNC-MSIN. MCC=Mobile Country Code (e.g.310for USA); MNC=Mobile Network Code (e.g.410for AT&T), MSIN=sequential serial number. All signaling and messaging in GSM and UMTS networks uses the IMSI as the primary identifier of a subscriber. The IMSI is one of the pieces of information stored on a SIM card.

The ICCID is the Integrated Circuit Card ID, which is the identifier of the actual SIM card itself—i.e. an identifier for the SIM chip. It is possible to change the information contained on a SIM (including the IMSI), but the identity of the SIM itself remains the same.

In any event, this identifying information is sent to the core network (UDM/HSS/HLR) which will then identify the UE102, subscriber information, etc. For example, Home Location Register (HLR)/Home Subscriber Server (HSS) relates to a database containing subscriber information in the 3GPP network, and the HSS may perform functions such as configuration storage, identity management, and user state storage. Unified data management (UDM) manages network user data in a single, centralized element. The technology is similar to the 4G network's home subscriber service (HSS) but is cloud-native and designed for 5G. It can be paired with the user data repository (UDR) which stores the user data such as customer profile information, customer authentication information, and encryption keys for the information. UDM utilizes microservices to communicate between the user and the core controller.

Using these devices in the core network will identify the subscription services of the UE102to determine which carrier network the UE102is subscribed to as well as the UE102identification information. As such, in block314, the RAN2108identifies the UE102and the network subscriber information.

In decision block316, RAN2108determines whether the UE102is out of network or not. This is done by comparing the network carrier of RAN2108with the subscriber information of the UE102. If they match, the RAN2core network determines that the UE102is “in network” and the UE102is connected to the RAN2108as a network that is part of the UE102subscription, as provided in block318.

However, if the UE subscriber information does not show the UE102is part of the carrier that operates RAN2108, the system determines the UE102is “out of network” and proceeds to decision block322inFIG.3B.

InFIG.3B, the method determines whether the UE is provisioned or not. In order to provide the services through a 5G network system, the UE's carrier provider may have to provision service-related pre-configuration information to UEs. To this end, the 5G system may provide a method by which the service providers can perform service-related pre-configuration information provisioning to UEs, which is referred to herein as provisioning.

In this regard, if the UE102is determined to be provisioned, then the roaming rate for connecting the UE102is predetermined and the UE102connects to RAN2108and pays the terms as has been predetermined, under block324.

If the UE102is not provisioned, the method proceeds to block320where the UE102is provisioned to connect to RAN2108. One of such provisioning includes determining the terms of the UE102connecting and using RAN2108. For example, the RAN2108may calculate the terms of connecting, including the roaming rate that will be charged to the user for use of RAN2108. This may be a preset roaming rate ($X/hour, $X/day, $X/data amount, etc.) or may be a variable roaming rate based on a current market rate (which may fluctuate based on how many UEs are current connected, the current data usage, the capacity of the RAN, etc.).

In block326, a return signal is registered from RAN2108to the UE102with the terms determined in block320. These terms may be received by the UE102and may be displayed to the user via a GUI on a display of the UE102. The user would then have opportunity to manually accept or decline the terms or the UE102may automatically accept terms that fall below a predetermined thresholds preset by the user.

If the terms are accepted, the method continues to block330where the UE102connects to RAN2108and pays according to the accepted terms. In this regard, the UE102uses the cellular towers of RAN2108and the amount of usage may be used in calculating charges for the user. Regardless, the charges for the user are then determined and charged to the user.

If the terms are not accepted, the UE102can provide a counter offer to the RAN2108based on terms that are preset by the user as acceptable to the user. For example, the counter offer for the UE102may be automatically determined by the UE based on preset thresholds set by the user. If the rate offered by the RAN2102falls within certain conditions then the UE102will automatically counter offer a predetermined rate. For example, if the RAN2102offers a rate of $10/1 GB of data and the UE user has preset that the most he will pay is $5/GB of data, the UE may counter offer the threshold amount of $5/GB or a percentage lower than the maximum threshold for negotiation purposes, such as $4/GB. Regardless, various thresholds can be preset by the user, including roaming rates, data usage rates, total data usage amount/caps, time durations, connection speeds, and any other terms which are related to using a cellular network for a UE102. When the offer by the RAN2falls below these thresholds, the UE102may automatically accept the terms. However, if one of the terms does not fall within a preset threshold, the UE102may decline and send a counter offer that is within the preset thresholds. In this regard, the counter offer can be automatically sent by the UE102so that the user is not involved in the negotiation process while it is occurring.

The RAN2108receives such counter offer and the RAN2108must determine if such offer is acceptable in decision block336. If so, the method may proceed to block330; otherwise, the method may continue to decision block336where it is determined whether RAN2108wants to continue to negotiate.

In block336, if the RAN2108does not want to negotiate further, RAN2108then declines the counter offer and denies the UE102access to RAN2108; otherwise, RAN2108may send another offer back to the UE102and the method may then return to block328.

FIG.4illustrates a method of validating a user's device via a blockchain and signing a blockchain when access is provided according to some embodiments. As mentioned above in block308, the RAN2108and UE102each perform a search or “look up” to determine nearby UEs and RANs, respectively. If they find each other in block502, then the UE102is validated using the keys208,210stored on the UE102via a blockchain504.

The validation is a process used in blockchain technology to determine if the blockchain is correct using other blockchains published and public keys.

Once the blockchain is validated, it is signed by the UE102and the RAN2108using the public and private keys of the UE102, as described above. The blockchain can then be published for others to validate and will be available for the next transaction.

FIG.5illustrates a block diagram of a method of a user's device connecting to a network other than the user's carrier and utilizing a blockchain according to some embodiments of the present invention.

As shown inFIG.5, the UE102, RAN2108and RAN1104(i.e., RAN of UE's carrier with which the UE has a subscription) are shown in columns and under such columns are actions for each of these entities.

In blocks502and504, the UE102looks up for nearby RANs to potentially connect to, and the RAN2108looks up for nearby UEs. In block506, RAN2108identifies UE102and/or UE102identifies RAN2108in block508.

At this point, RAN2108identifies that UE102will likely request for bandwidth on the network of RAN2108. As such, in block510, RAN2108will check to see if there is extra capacity for RAN2108(or if determine RAN2108even wants to offer any capacity to UE102). If so, RAN2108then confirms the blockchain transaction to determine terms (e.g., a roaming rate, etc.) that would be acceptable for RAN2108to allow UE102to connect to and use the network of RAN2108as provided in block512.

Then, in block514, RAN2108proposes an offer to the UE102with the determined terms, including the calculated roaming rate, as previously discussed. This is done by sending a message with such information to the UE102. The UE102then receives such offer and will either autonomously negotiate the terms (block516) or agree to the terms (block520). If the UE102negotiates with RAN2108, RAN2108may receive counter offers and also autonomously negotiate back with the UE (block518) as described herein.

Once all terms are agreed upon, a message is sent between the UE102and RAN2108indicating agreement to terms, in blocks520and522. In response thereto, the UE102saves the terms (e.g., roaming rate) in the UE's wallet (block528) and both the UE102RAN2108sign the blockchain.

At this point, the RAN2108lets the UE102use the cellular network of RAN2108, and the UE102then uses such cellular network but making cellular calls, text messages, internet streaming, or any other use of cellular towers for the UE102, as provided in blocks530and532.

During and/or after the use by the UE102of the network of RAN2108is completed, RAN2108then calculates the charges of the UE102based on the data used, time used, roaming rate, data limits, and/or any other agreed up terms and sends such calculated charges directly to the UE102. In response to the UE102receiving such charges, the UE102then automatically sends payment directly to RAN2108or another entity associated with RAN2108(e.g., the carrier of RAN2108).

As illustrated inFIG.5, RAN1104is not involved in the transaction between the UE102and RAN2108and the method may be completely autonomous without any user input, in some embodiments. However, it should be noted that the user may be able to provide input or assist in the negotiation process with RAN2108, in some embodiments.

As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, a method or a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a non-transitory computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the non-transitory computer readable storage medium would include the following: a portable computer diskette, a hard disk, a radio access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a non-transitory computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.