Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR USING LOCAL NUMBERS TO REPLACE INTERNATIONAL PHONE NUMBERS
Document Type and Number:
WIPO Patent Application WO/2012/142579
Kind Code:
A1
Abstract:
Aspects of the present invention provide a method for making low cost international calls by making available local and/or nationwide numbers to replace international phone numbers. Configurations of the invention utilize an enhancement to existing calling card gateways or other two stage calling systems. In certain configurations, the user is not required to manually replace an international phone number with a local one and does not need to enter a pin number.

Inventors:
KAVUN EMRAH (US)
Application Number:
PCT/US2012/033779
Publication Date:
October 18, 2012
Filing Date:
April 16, 2012
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
KAVUN EMRAH (US)
International Classes:
H04W4/50
Foreign References:
US20100226362A12010-09-09
US20080123835A12008-05-29
US20100034198A12010-02-11
US7346156B12008-03-18
GB2007003160W2007-08-20
Attorney, Agent or Firm:
CROWSON, Celine, Jimenez (555 13th Street N.W, Washington DC, US)
Download PDF:
Claims:
Claims

A system comprising a Telecom Server, a Back-End Server, and a Front-End Interface stored on computer readable media of a mobile device having a processor, wherein

a. said Telecom Server manages inbound phone numbers obtained through international phone carriers and connected to the Telecom Server via available physical telecom connections or IP telecom protocols;

b. said Back-End Server comprises a database engine, one or more databases, a web server, and an Application Programming Interface to facilitate communication between components and the Front-End Interface; said Application Programming Interface being a common interface used by the Telecom Server and the Front-End Interface to indirectly access and operate the one or more databases stored on the Back-End Server; and

c. said Front-End Interface contains instructions for execution by the processor of the mobile device to cause the mobile device to display an interface to a user, so that the user can send and receive information from the Back-End Server.

The system of claim 1, wherein said information includes user data input, phone numbers, personal details, credit card information, current balance, call history, and geo-location information.

A system for making available local and/or nationwide numbers to replace international phone numbers, said system comprising a Telecom Server, a Back-End Server, and a Front-End Interface.

The system of claim 3, wherein said Telecom Server is an end point for one or more telephone numbers and wherein said one or more telephone numbers are connected to the

Telecom Server using physical telecom connections or IP telecom protocols.

The system of claim 3, wherein said Telecom Server connects calls to other phone carriers or termination equipment using physical telecom connections or IP telecom protocols and said

Telecom Server communicates with the Back-End Server using an Application Programming

Interface to access account information and retrieve call routing instructions.

The system of claim 3, wherein said Back-End Server comprises a database engine, one or more databases, and an Application Programming Interface, and wherein said Application

Programming Interface provides a means of communication between components and allows the Telecom Server and the Front-End Interface to indirectly access and operate said one or more databases.

7. The system of claim 6, wherein said one or more databases host information pertaining to gateway phone numbers, call requests, and user accounts with profiles and settings.

8. The system of claim 6, wherein said Front-End Interface comprises a mobile application that exchanges data and instructions with the Back-End Server using the Application

Programming Interface.

9. The system of claim 8, wherein said Front-End Interface collects and submits system and user inputs and renders a user interface.

10. The system of claim 8, wherein said Front-End Interface creates a call request on said

Back-End Server by collecting and submitting a destination phone number, caller ID settings, and user credentials for authentication.

11. The system of claim 10, wherein said Application Programming Interface receives and

processes call request information and inserts records in the one or more databases.

12. The system of claim 10, wherein said Application Programming Interface queries said one or more databases using an originating phone number of a user's device operating said

Front-End Interface to find one or more phone numbers local or nationwide to the user, said Application Programming Interface returns said one or more local or nationwide phone numbers to said Front-End Interface, and said Front-End Interface instructs the user device to place a call using the returned one or more local or nationwide phone numbers.

13. The system of claim 12, wherein said Telecom Server captures and uses said originating phone number to query said one or more databases through said Application Programming Interface, and wherein said Application Programming Interface locates records associated with the user in said one or more databases, retrieves routing instructions and caller ID settings, and returns said routing instructions and caller ID settings to the Telecom Server.

14. The system of claim 13, wherein said Telecom Server sets routing parameters and connects the user with said destination phone number stored in said call request.

15. The system of claim 6, wherein said Back-End Server further comprises a billing engine and wherein a user account stored on said one or more databases is linked to a billing account for the user.

16. The system of claim 15, wherein said Application Programming Interface queries the billing engine to verify that a user is eligible for making a call to a destination phone number, and wherein said Telecom Server queries the billing engine to determine the user's maximum talk time for a destination phone number and wherein the Telecom Server communicates with the billing engine to update call records and billing data upon completion of a call.

17. The system of claim 6, wherein said Front-End Interface can access geo-location information of a user's mobile device and updates user account records with said geo-location

information through the Application Programming Interface.

18. The system of claim 17, wherein said Application Programming Interface queries said one or more databases to find a phone number that is local or nationwide to the position reported by the user's geo-location information.

19. The system of claim 12, wherein said Telecom Server determines whether a channel should be answered or not before executing further instructions.

20. A method for using local and/or nationwide numbers to replace international phone numbers, said method comprising the steps of

a user creating a call request to place a phone call to a destination phone number on an originating device, wherein a Front-End Interface collects information regarding the call request and sends the collected information to a Back-End Server and the Back-End Server creates a call request based on the collected information and retrieves a telephone gateway number that is local or nationwide to the user;

the Back-End Server replying to the Front-End Interface, wherein the Back-End Server provides said telephone gateway number to the Front-End Interface;

the Front-End Interface instructing the originating device to call the telephone gateway number;

the Telecom Server receiving the call on the telephone gateway number and querying the Back-End Server to look up dialing instructions, wherein the Back-End Server uses the user's phone number to identify the call request, the Back-End Server retrieves a date and time associated with the identified call request from a database, the Back-End Server queries the database to obtain the destination phone number, and the Back-End Server provides the Telecom Server with the destination phone number;

the Telecom Server connecting the telephone gateway number to the destination phone number.

Description:
METHOD FOR USING LOCAL NUMBERS TO REPLACE INTERNATIONAL PHONE NUMBERS

This application claims priority under 35 U.S.C. §119(e) to U.S. Patent Application Serial No. 61/476,165, filed April 15, 201 1 and incorporated herein by reference in its entirety.

Field of the Invention

The present invention relates generally to systems and methods for making low cost international calls by making available local and/or nationwide numbers to replace international phone numbers.

Background of the Invention

Prior art calling card services and similar dial around systems have long been known and widely used to reduce long distance or international calling fees. The users of such prior art systems are generally required to dial the service provider's telephone gateway number; enter a card and/or a pin number and proceed with dialing a destination phone number. A telephone gateway number is often a local, national or toll-free phone number in the country where the service is provided. In its most common form, it is used as a point of entry to the service provider's phone network. If the telephone gateway number is not toll-free, the user may pay its local phone carrier the cost to reach the service provider's phone network. The international portion of the call may be billed by the service provider and not charged by the user's local phone carrier.

Other more recent calling card systems have been implemented, where the user may be identified with a phone number (caller ID or calling party's phone number) and therefore may not need to enter a PIN. The user is typically required to: dial a telephone gateway number; and proceed with dialing a destination phone number.

Various enhancements have been developed by prior art systems to facilitate the use of local telephone gateways when calling abroad, where local telephone gateway numbers can be set up to forward calls to international destinations. Prior arts inventions that comprise such enhancements are disclosed in the United States of America patent

US7,346,I 56 and international patent application PCT/GB2007/003160. Both prior art enhancements require the use of assigned telephone numbers as part of the forwarding mechanism to successfully complete a call. Summary of the Invention

Aspects of the present invention provide a method for making low cost international calls by making available local and/or nationwide numbers to replace international phone numbers. Configurations of the invention utilize an enhancement to existing calling card gateways or other two stage calling systems. In certain configurations, the user is not required to manually replace an international phone number with a local one, and does not need to enter a pin number.

In one configuration, the system can dynamically substitute international phone numbers with local or nationwide numbers, allowing users to avoid paying the international portion of the call to the regular phone carrier. When a user calls one of the local telephone gateway numbers, the call is routed to the international destination, preferably in VoIP (Voice over IP) to benefit from Local Rates when possible.

Brief Description of the Drawings

Figures 1-4 illustrate various process flows of certain embodiments of the invention. Figures 5-9 illustrate various screenshots of the invention and show what a user might see on the display of his or her mobile device when using certain configurations of the invention.

Detailed Description of the Invention

Configurations of the invention represent improvements to existing processes by offering the user a Front-End Interface designed to simplify the use of gateway phone numbers to dial international phone numbers. The Front-End Interface, along with the Back-End Server and the Telecom Server, is able to allow users to place international calls through local or nationwide telephone gateway numbers by automatically substituting international phone numbers with local or nationwide telephone gateway numbers. Once the substitution is performed, a user may reach an international destination by dialing the telephone gateway number as if it was the international phone number, without any further interaction. For instance, the user may not be required to input any pin number or destination phone number when calling the telephone gateway number.

The user may initiate calls to international phone numbers as usual via a keypad, the device's address book, and/or a favorite pane when applicable. One aspect of the invention can contain 3 main components:

1. A Telecom Server,

2. A Back-End Server

3. A Client (or Front-End Interface)

The Telecom Server may be the component that manages inbound phone numbers. In this configuration, the phone numbers are obtained through international phone carriers and connected to the Telecom Server via the available channels. Channels may comprise physical telecom connections and/or IP telecom protocols. The management of inbound phone numbers may be performed through the Telecom Server's database or dial plan configuration, which can define what action to perform on each inbound and outbound phone number. Certain configurations may use wildcards to act globally on all telephone gateway numbers. In one implementation, inbound phone numbers can be connected via VoIP. Alternative means of connection may include, but are not limited to, the public switched telephone network, dedicated leased lines, and/or cellular connections. Telephone gateway numbers may be inbound phone numbers configured on the Telecom Server to execute one or more programs to retrieve routing instructions on the Back-End Server. In one aspect of the invention, the Telecom Server is responsible to establish calls received on telephone gateway numbers with called parties defined by call requests stored on the Back-End Server. The Telecom Server may connect to phone carriers and alternative call termination equipment via VoIP. Possible means of connection may include, but are not limited to, the public switched telephone network, dedicated leased lines, and/or cellular connections.

The Back-End Server may comprise a database engine, one or multiple databases, a Web server and an Application Programming Interface (API) to facilitate communication between components and Front-End Interfaces.

The database engine is an underlying software component used by the database management system to create, read, update, and delete data from databases.

The database management system is software that allows the creation, use, and maintenance of databases.

The Application Programming Interface may be a custom made program that can interact with databases and enable other components and third party software and devices to communicate with databases and other components using a dedicated communication protocol. 100 The dedicated communication protocol may operate over common Internet-based transport technologies and may allow specific and predefined instructions to be interpreted and/or transported between components. Available sets of instructions may be referred to as API methods. One example of an available API method may be getting a list of all telephone gateway numbers.

105 The Application Programming Interface may be the common interface used by the

Telecom Server and the Front-End Interface to indirectly access and operate the databases stored on the Back-End Server.

In one example, it can be used to transport, adapt, and translate instructions between one component and a database.

110 In one configuration, the Application Programming Interface communicates with components and third party software and devices via HTTP, the standard protocol used to carry Web traffic. The API may access databases via the database management system. In certain configurations, the API may limit operations to the extent permitted by the available methods, user privileges, and user credentials.

115 The available methods may often be determined by the user level of a given user.

For instance, a user lacking authentication credentials may not be able to request a call through the API.

User credentials and level may be checked against the data stored in the Back-End Server's database. The Back-End Server may also host a billing engine. In such scenario, the

120 Application Programming Interface may incorporate methods to permit other components to retrieve and update records on the billing engine. Configurations of the Programming Interface may offer methods to allow the Front-End Interface to retrieve the account balance of a given user. The billing engine may be equipped with an Application Programming Interface to facilitate operations on certain information.

125 The Back-End Server's database may be used to store data pertaining to user

accounts, telephone gateway numbers, call requests, and miscellaneous settings. Features of the database management system and/or the database engine may be used in order to establish relations between different records stored in the databases. For instance, user accounts and call requests may need to be linked in order to associate a call request to a user

130 profile. Such link may be accomplished by referencing the user account's profile in the call request table via the user account's unique numeric ID.

One aspect of the Front-End Interface may be a program displayed on the screen of the user's mobile device. The Front-End Interface may be able to communicate with the Back-End Server to send and receive information, including user data input, such as a phone

135 number, personal details, credit card information, current balance, call history, and

geo-location information. The Front-End Interface may be used to gather user information by presenting the user with a list options or fields to fill in and enter.

The Front-End Interface may permit the user to create and/or sign in to an account, create and or edit a personal profile, add prepaid funds, initiate a call request, and access a

140 personal call history.

The Back-End Server may apply the requested changes by inserting, deleting, or updating data on the database via appropriate database queries and/or communicate with third party components, such as a billing engine, via the appropriate communication protocol in order to relay the requested changes.

145 One configuration of the Front-End Interface may allow the user to input a phone number to call, with facilities to retrieve the number from multiple directory features, including but not limited to contact lists or favorite phone numbers when applicable.

Configurations of the Front-End Interface may permit the user to change caller presentation settings. Caller presentation settings may refer to the phone number intended to be

150 displayed when calling the destination number. When the user initiates a call request to dial a phone number, the Front-End Interface may communicate with the Back-End Server to attempt to substitute the given phone number with a local or nationwide phone number. In its intended configuration, the Back-End Server may be able to determine the current country of the user either with a value supplied during the call request or a value available

155 in the database as part of the user's profile. The Back-End Server may insert the phone number the user intended to dial into the Back-End Server's database and store the phone number as the destination phone number of a call request. The Back-End Server may look up a telephone gateway number in the current country of the user in order to provide a possible substitution to the destination phone number with a local or nationwide number. In

160 its intended configuration, the substitution can happen when a telephone gateway number is found in the same country of the user. The Back-End Server should supply a telephone gateway number to the Front-End Interface in order to trigger the substitution of the destination phone number with a telephone gateway number.

In terms of actual components, one may build configurations of the invention with

165 high commercial servers like Dell power edge computers running Linux Debian distributions. The Telecom Server may be equipped with an Asterisk PBX, an Open Source Voice over IP, and TDM Soft Switch. The Asterisk PBX may be connected to multiple carriers to enable the Telecom Server to make outbound calls and receive inbound calls.

The Telecom Server may also communicates with a billing engine to charge calls 170 according to tariff plans based on dialing patterns, call durations, package offers, and

number prefixes. Dialing Patterns may include direction of call (incoming or outgoing), country and area of origin, country and area of destination, and technology used to complete the call.

The Back-End Server may contain a database engine, one or multiple databases, a 175 web server, and a collection of scripts and applications. In one example, MySQL can be the database engine, Apache can be the web server, the Back-End Server Application

Programming Interface can use REST architecture, and the billing engine can be a combination of PostgreSQL Database and PHP Scripts. MySQL is one of the most popular relational database management systems, available on multiple computer operating systems. 180 Apache is the most popular open source Web server and can also be deployed on a

multitude of operating systems. PHP is a versatile and widely used scripting language. PostgreSQL is an object relational database management system. The RESTful Application Programming Interface may communicate with the Front-End Interfaces using a specific transport architecture called Rest, over the Web and using HTTP. Representational State 185 Transfer (REST) defines a particular software architecture designed for distributed

hypermedia systems, such as the World Wide Web. A REST compliant software is called RESTful.

In certain configurations, the Front-End Interface should be an application able to communicate with the Back-End Server using HTTP protocol over a Web Socket. For 190 example, the Front-End Interface may be a program to load and execute on Smartphone devices. The Front-End Interface may use an API over a HTTP socket to communicate with the Back-End Server.

1. The Back-End Server may require the user to input personal information in order to create a user account. In such scenario, the Front-End Interface may load a sign up

195 wizard pane to guide the user in setting up an account. If the user is already registered with a profile on the Back-End Server, the Front-End Interface may offer the possibility to log in with a combination of username and password.

2. Configurations of the Back-End Server may require the user to have prepaid funds in order to initiate a call. In such scenario, the Front-End Interface may offer the user 200 the possibility to add funds to the account in use.

3. The login process, the registration, or the transfer of information between the Back-End Server and the Front-End Interface may happen through the Application

Programming Interface.

4. After a successful authentication, the Front-End Interface may query the API 205 for user account information, such as the available balance, personal profile information, and call history. It may also use the device's geo-Iocation capability to update the current country of the user on the Back-End Server.

5. One aspect of the Front-End Interface may require the user to use a dialer, a phone book, or a favorite pane to place a phone call.

210 6. To substitute a phone number with a local or nationwide phone number, the

Front-End Interface may need to query the Back-End Server. The Application Programming Interface may receive the given phone number in a predefined format. A process is then started on the Back-End Server in order to determine a local or nationwide telephone gateway number based on the user's current location. If the Back-End Server cannot find a

215 match, an error code may be returned to the Front-End Interface. Such error may permit the Front-End Interface to display a list of available alternate telephone gateway numbers independently of the user's location. Alternate telephone gateway numbers may be international telephone gateway numbers that may be used when the Back-End Server is unable to find a local or nationwide telephone gateway number.

220 7. In certain configurations, when the Telecom Server receives a call on a

telephone gateway number, independent of the telephone gateway number's location, a program should be executed on the Telecom Server in order to retrieve routing instructions via the Application Programming Interface. Most routing instructions may only be obtained if the phone number of the calling party is supplied to the Back-End Server. For a telephone

225 gateway number to connect a user to the destination phone number the user intended to call, the Telecom Server may need to capture the phone number of the calling party and transmit it to the Back-End Server to obtain a matching call request. Once the number the user intended to dial is found, the Telecom Server may connect the call to the destination phone number and charge the user accordingly when applicable. When permitted by the used

230 telephone gateway phone number, the Telecom Server should not pick up the call, or

otherwise answer the channel in a way that may cause the user to be charged by its regular phone carrier prior to being connected to the intended number.

8. In certain configurations, the Telecom Server should attempt to capture the calling party's phone number each time a call is received on a telephone gateway number.

235 The calling party's phone number may be used to query the Back-End Server and find the call request assigned to the user account associated with the calling party's phone number.

9. The Back-End Server may populate the Back-End Server's database with call requests by receiving call requests from the Front-End Interface. If the Back-End Server can match the calling party's phone number with a call request, the Telecom Server may

240 forward or otherwise route a call received on a telephone gateway phone number to a

destination set in the call request. The destination may refer to the number the calling party intended to call. In certain configurations, the forwarding or otherwise routing of a call may require the use of call transfer, call divert, additional call channels, or conferencing. In certain configurations, call requests may be stored as follows: user ID of the originator,

245 intended international number to call, date and time of the call request, caller ID settings, and/or status of the call request. The status of the call requests may determine whether the call request is active (usable) or disabled (unusable). The reference to the user's account via the user ID number of the originator may permit the association of a calling party's phone number to a call request. The caller ID settings may determine whether the calling party's

250 phone number should be hidden or not.

Configurations of the invention may permit the use of the caller ID settings to display alternative phone numbers. In its intended configuration, the account profile of a user should store at least one phone number in order to allow the Back-End Server to link a call request to a specific user. In some configurations, the call request may be disabled after

255 a certain time. A call placed through the telephone gateway number may be identified when the Back-End Server is able to match the calling party's phone number with a user account stored in the Back-End Server's database. In some configurations, additional checks may be performed in order to determine whether the user account balance is sufficient to place a call to the intended phone number.

260 Configurations of the invention may attempt to route calls without answering the channel, allowing the call to stay in a progress state while connecting to the destination number. Such configuration may reduce the risks of causing a calling party to pay for the connection, routing, and ringing time of outgoing calls. A call that is answered by a telephone gateway prior to being forwarded to the destination number may cause the user to 265 be charged by the user's local carrier for the time it takes to connect the call to the destination number, including the ringing time.

Some configurations of the present invention may feature the following advantages over the prior art, including:

assignation of a telephone gateway number to a specific user is not required;

270 - the routing of a call is not determined by the use of a specific telephone gateway number;

- user may use a device's contacts list/address book/phone book;

- user is able to control caller ID settings;

user may choose to display a phone number that is different from the calling party's 275 phone number;

- user does not need to modify any internationally formatted phone numbers to be able to use them with an embodiment of the invention;

- user does not need to enter any pin number or additional calling parameters; and

- user is not charged until the call is answered at the remote end.

280 The Telecom Server may contain a database or configuration files which may store several telephone gateway numbers. One aspect of the Telecom Server consists in making available to the user local telephone gateway numbers that can be routed conditionally on the user's request. In this configuration, the routing defines where the telephone gateway number should connect the call when an incoming call is received. The conditional part of

285 the routing may partly reside in the calling party's identification using the calling party's phone number. The telephone gateway numbers may be shared amongst multiple users. The server may determine where to route an incoming call by looking up for a corresponding destination phone number set for the calling party. The destination of the routing may be determined by the caller ID of the calling party and the information previously provided by

290 the user during the call request. Information previously provided may be account details, user credentials, user phone numbers, etc. and may be provided through the Front-End Interface. The user may request call routing via the Front-End Interface by submitting the destination phone number to the Back-End Server, in its intended configuration, the destination phone number should be the phone number the user intended to call through the

295 Front-End Interface.

In one configuration of the invention, the Front-End Interface must send the destination phone number along with sufficient authentication details to permit the Back-End Server to create a call routing request and associate it with a user account. The authentication details may be required by the Back-End Server to assign a call request to a

300 user account. In one configuration, authentication details may be a user token stored on the Front-End Interface. The user token may be a means of authentication obtained after a successful useraame/password authentication against the Back-End Server. The call request may be stored in a database and more specifically in a table with the date of the request, a reference to the user account via a user ID number, the destination phone number, caller ID

305 settings, and/or the status of the request. The status may allow the possibility to enable or disable the call request. The caller ID settings may determine whether the calling party's phone number should be hidden or not. Configurations of the invention may permit the use of the caller ID settings to display alternative phone numbers. Alternative phone numbers may be additional phone numbers registered in the user's profile. In certain configurations,

310 the service provider may assign additional phone numbers to the user and permit the user to set the caller ID presentation to one of the assigned phone numbers. In its intended configuration, caller ID transformations may be operated on the Telecom Server as part of the routing process and may happen when using a telephone gateway number.

The Back-End Server may query the database and more specifically the user account

315 table in order to obtain the user's current country location. The current country of the user may be necessary in order to provide the Front-End Interface with a telephone gateway number that is nationwide or local to the user. If a local telephone gateway can be provided to the Front-End Interface, the user may have the choice to instruct the Front-End Interface to initiate a phone call to the local telephone gateway number via the used device's phone

320 subsystem. If the Back-End Server cannot match a telephone gateway number to the user's current country location, alternate telephone gateway numbers may be returned, and the choice may be given to the user to pick a preferred telephone gateway number that may be in a different country than the user's current location.

The user may be able to trigger the phone call to the telephone gateway number by

325 using an option of the Front-End Interface. In its intended configuration, a call to a

telephone gateway number should be a regular voice call.

When a call is received by the Telecom Server on one of the telephone gateway numbers, the Telecom Server may attempt to captures the calling party's phone number in order to enquire for routing instructions at the Back-End Server. The Back-End Server may

330 require a user to dial the access number within a specific timeframe following the call request submitted through the Front-End Interface.

In one embodiment of the invention, the system uses a billing engine. In a prepaid model, a user may be required to add prepaid funds to the account in use prior to being able to make calls. The process may be conducted using the Front-End Interface. The Front-End

335 Interface may use form fields and a list of options to collect personal and payment details in order to communicate them to the Back-End Server for further processing.

Amongst personal details, a user may be required to provide at least one phone number intended to be used with the system. The Back-End Server may enforce a verification procedure in order to validate the ownership of provided phone numbers. One

340 purpose of the verification may be to ensure that the phone numbers intended to be used with the system belong to the user of the system. Such verification may be achieved using a text message sent to the provided phone numbers with a verification code generated on the Back-End Server. If the user receives the text message and is able to provide the generated verification code, the Back-End Server may consider the verification to be successful. The

345 provided phone numbers may be essential for the Back-End Server to provide routing

instructions to the Telecom Server. One configuration of the invention may require the user's caller ID presentation to be displayed and matching at least one phone number stored on the Back-End Server, in order for the Telecom Server to process call requests. The Back-End Server may allow the storage of multiple phone numbers per user account. In one

350 configuration of the invention, a successful verification of phone number ownership would allow the user of the verified phone number to use the system.

In one example, the Telecom Server can be connected to different carriers that act as international phone number aggregators. A carrier that acts as an international phone number aggregator may refer to a service provider allowing the purchase of phone numbers

355 in different countries through a central interface. One connection to such a carrier may often permit access to inbound phone numbers in many countries, thus avoiding a physical dispatching of infrastructure in different countries to establish connections with different carriers. Telephone numbers may be provisioned and transported from the country of origin or the country of the phone number aggregator to the Telecom Server using VoIP, in order

360 to avoid forwarding fees and additional carrier charges.

Illustration of a possible calling sequence:

The user authenticates on the Back-End Server by providing authentication credentials via the Front-End Interface. This sequence may be skipped if these credentials are stored on the Front-End Interface.

Once the authentication has succeeded and the user is recognized by the Back-End Server, the user may input a phone number to call in the appropriate section of the

Front-End Interface. The user may be able to change caller ID settings before initiating a call request. The Front-End Interface communicates with the Back-End Server to create a new call request.

a. The Front-End Interface sends the user's credentials or equivalent information for authentication, the number the user intended to call, the caller ID settings, and the user's current country to the Back-End Server using a formatted request processable by the API.

b. The Back-end server stores the phone number the user intended to call and attempts to find a telephone gateway number that is local to the user.

c. One or more telephone gateway numbers are returned to the Front-End Interface via the API.

d. The user instructs the Front-End Interface to call the telephone gateway number provided by the API.

e. The Front-End Interface instructs the user's device to initiate a voice call to the obtained telephone gateway number.

f. The Telecom Server receives a phone call on one of the registered telephone

gateway numbers and attempts to capture the calling party's phone number.

g. The Telecom Server communicates with the Back-End Server and supplies the captured caller ID in order to identify the user with the caller ID of the user's registered phone number.

h. The Telecom Server connects the user to the destination phone number using any parameters provided by the Back-End Server. Parameters may include caller ID presentation information.

If the Front-End Interface can determine and provide the country code of the current location of the mobile device, configurations of the invention may allow the Back-End Server to look in its database for a telephone gateway number that is local or national to the location the Front-End Interface is reporting. If no access numbers are available in the country where the user resides while initiating the call request, the Back-End Server may return a list of alternate telephone gateway numbers which can be displayed to the user by the Front-End Interface. The user may pick any of the alternate telephone gateway numbers to initiate a call.

If the user's phone is unable to provide the country code of its current location to the

400 Front-End Interface for the request, the Back-End Server may attempt to return a list of telephone gateway numbers that match the country code of the user's registered phone number. This operation may be mathematical and may be accomplished by comparing gateway phone numbers against the user's registered phone number. The Back-End Server may return the closest telephone gateway number based on the country code and area code

405 of the phone number sent by the Front-End Interface.

In certain configurations, the user may arbitrarily set a current location parameter via the Front-End Interface. The Front-End Interface may then send this location parameter to the Back-End Server, which in turn may check its database and return the closest gateway access number evaluated against this location.

410 The Telecom Server may execute a program to look up routing instructions based on the caller ID of the calling party each time a call is received on a telephone gateway number. The program may be capable of communicating with the Back-End Server and may execute queries to retrieve routing settings based on the provided Caller ID. If the Back-End Server can match a caller ID with a user account and an associated call request, appropriate

415 information may be returned to the program in order to instruct the Telecom Server to

connect the call to the destination phone number and set all appropriate billing parameters when applicable. Billing parameters may refer to launching additional scripts or programs to communicate with the billing engine.

FIG. 1 shows one embodiment of the interaction between the originating device

420 (including Front-End Server), Back-End Server, Telecom Server, and Destination Device in the systems and methods of the invention.

Step 1 : Using the Front-End Interface, a user creates a call request to place a phone call.

The Front-End Interface collects some information relative to the call request, such as user credentials, current location of the calling user, and the phone number of the

425 called party.

The Front-End Interface sends the collected information to the Back-End Server.

The Back-End Server creates a call request based on the supplied information and attempts to retrieve a telephone gateway number that is local or nationwide to the calling. 430 Step 2: The Back-End Server replies to the Front-End Interface.

The Back-End Server provides a telephone gateway number that matches the calling party's country and/or area code.

The Front-End Interface displays the telephone gateway number to the user.

Step 3: the Front-End Interface instructs the Originating Device to call the telephone

435 gateway number.

Step 4: The Telecom Server receives a call on a telephone gateway number and queries the Back-End Server to look up the corresponding dialing instructions.

The Back-End Server uses the calling party's phone number (Caller ID) to identify the call request.

440 The Back-End Server retrieves the date and time associated with the identified call request from the database. (The date time setting may limit the validity duration of a call request, making it unusable after a certain period of time.)

The Back-End Server queries the database to obtain the called party's phone

number.

445 The Back-End Server provides the Telecom Server with the called party's phone number as set in the call request.

Step 5: The Telecom Server connects the telephone gateway number to the called party's phone number.

FIG. 2 shows one embodiment of the operation of an originating device in the 450 systems and methods of the invention.

Step 1 : Using the Front-End Interface, the user inputs a phone number to call.

Step 2: The Front-End Interface communicates with the Back-End Server and supplies user credentials, phone number of the calling party, dialed phone number, and current location parameters.

455 Step 3: The Back-End Server returns a matching telephone gateway number.

Step 4: The Front-End Interface displays the telephone gateway number returned by the Back-End Server.

Step 5: The User instructs the Front- End Interface to execute the dialing sequence on the Originating Device.

460 Step 6: The Originating Device dials the telephone gateway number.

FIG. 3 shows one embodiment of the operation of a Back-End Server in the systems and methods of the invention. Step 1 : The Back-End Server receives a call request from the Front-End Interface.

Step 2: The Back-End Server queries the billing engine to get the user's account balance. 465 Step 3: The Back-End Server queries the billing engine to verify that the account has

sufficient funds to complete the call.

Step 4: The billing engine supplies the requested information to the Back-End Server. Step 5: The Back-End Server inserts the call request information in the database and looks up a telephone gateway number from the database.

470 Step 6: The Back-End Server returns the telephone gateway number to the Front-End

Interface.

FIG. 4 shows one embodiment of the operation of a Back-End Server and Telecom Server in the systems and methods of the invention.

Step 1 : A Telecom Server receives a phone call.

475 Step 2: The Telecom Server communicates with a Back-End Server and supplies the caller's phone number along with the used telephone gateway number in order to receive routing instructions and parameters.

Step 3: A Back-End Server receives the instructions from the Telecom Server and queries the Back-End Server database and billing database to compile the requested information as 480 described below.

3a - The Back-End Server identifies the caller based on the calling party's phone

number and uses the Back-End Server database to compile routing and billing information.

3b - The Back-End Server uses the identifying information to communicate with the 485 billing engine to ensure the user is eligible for a phone call to the destination phone number.

Step 4: The Back-End Server compiles the requested information and supplies it back to the Telecom Server.

Step 5: The Telecom Server uses the obtained parameters to route the call internally.

490 Step 6: The Telecom Server queries the billing engine in order to determine the maximum allowed talk time for the called destination and collects appropriate billing and routing parameters.

Step 7: The Telecom Server connects the caller to the called destination.

Step 8: Upon termination of the call, the Telecom Server interacts with the billing engine to 495 update appropriate billing records. FIGS. 5A-5I show various illustrative screenshots of what a user might see on the display of his or her mobile device during account creation in certain configurations of the invention.

FIGS. 6A-6D show various illustrative screenshots of what a user might see on the 500 display of his or her mobile device during account activation in certain configurations of the invention.

FIGS. 7A-7F show various illustrative screenshots of what a user might see on the display of his or her mobile device when adding a credit card in certain configurations of the invention.

505 FIGS. 8A-8C show various illustrative screenshots of what a user might see on the display of his or her mobile device when dialing in certain configurations of the invention.

FIG. 9 shows an illustrative screenshot of what a user might see on the display of his or her mobile device regarding settings in certain configurations of the invention.

510