The present invention relates to the field of remote network connections and more particularly to centralized customization of network dialer application profile.
With the technological developments of the last decade and growing popularity of online commerce, e-mail, online chatting and the Internet in general, the demand to have constant access to these innovative technological ways of communication is rapidly increasing. Some users cannot imagine their lives without the Internet and email; some cannot imagine their lives without being able to buy groceries online. Constant desire to be connected to the informational highway increases demand for reliable, fast, convenient network connection.
Anyone using current technology has dealt with networks at some point. Being connected to a local network where users share files and data on one server is a common scheme in workplaces. Companies would like their employees to use network connection tools that reflect company's policies, such as session duration limits, usage of particular Point-to-Point locations, etc. However, companies usually obtain network access tools from outside providers. These network access tools are not customized to company's preferences and thus significantly reduce companies' flexibility in selecting own network connection properties.
According to one aspect of the invention, there is provided a method to manage a customized network connection application. A plurality of input interfaces are generated to receive customization information pertaining to the customized network connection application. The customization information pertaining to the customized network connection application is received via the plurality of input interfaces. The customization information is stored as a profile associated with the customized network connection application. The customized network connection application is automatically generated utilizing the profile, and distributed to at least one recipient.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Although the present invention is described below by way of various embodiments that include specific structures and methods, embodiments that include alternative structures and methods may be employed without departing from the principles of the invention described herein.
In general, embodiments described below feature a system and a method that facilitate centralized customization of a network connection application (e.g., a dialer) to serve the needs of a given customer. A preferred embodiment of the present invention features a centralized network dialer customization system.
Network-related Technology
Before describing embodiments of the present invention in detail, it may be helpful to discuss some of the concepts on which the present invention is based. A component of one embodiment of the present invention is a computer server. Servers are computer programs that provide some service to other programs, called clients. A client and server communicate by means of message passing often over a network, and use some protocol, (i.e., a set of formal rules describing how to transmit data), to encode the client's requests and/or responses and the server's responses and/or requests. The server may run continually waiting for client's requests and/or responses to arrive or it may be invoked by some higher level continually running server that controls a number of specific servers. Client-server communication is analogous to a customer (client) sending an order (request) on an order form to a supplier (server) dispatching the goods and an invoice (response). The order form and invoice are part of the protocol used to communicate in this case.
Another component of one embodiment of the present invention is Microsoft Foundation Class (MFC), a collection of software structures written in C++ language and which are Microsoft Windows-based classes and which can respond to messages, make windows, and from which application specific classes can be derived. The current invention also utilizes the Remote Access Service (RAS) API, which provides an abstraction layer between the application and the underlying hardware that provides the Point-To-Point Protocol (PPP) connection. RAS is a feature built into Windows NT that enables users to log into an NT-based Local Area Network (LAN) using a modem, X.25 connection or Wide Area Network (WAN) link. RAS works with several major network protocols, including TCP/IP, IPX, and Netbeui.
Another component of one embodiment of the present invention is a Point-to-Point Tunnel Protocol (PPTP), a new technology for creating Virtual Private Networks (VPN), developed jointly by Microsoft Corporation, U.S. Robotics and several remote access vendor companies, know collectively as the PPTP forum. A VPN is a private network of computers that uses the public Internet to network processing locations. Because the Internet is essentially an open network, PPTP is used to ensure that messages transmitted from one VPN node to another are secure.
Yet, another component of one embodiment of the present invention is a Telephony Application Programming Interface (TAPI), an Application Programming Interface (API) for connecting personal computers running Windows operating system to telephone services. TAPI was introduced in 1993 as the result of joint development by Microsoft Corporation and Intel Corporation. The standard supports connections by individual computers as well as Local Area Networks (LAN) connections serving many computers. Within each connection type, TAPI defines standards for simple call control and for manipulating call content.
Another component of one embodiment the present invention is an Internet Service Provider (ISP). An ISP is a service that provides access to the Internet. For a monthly fee, a service provider gives a customer a software package, username, password and Internet access phone number. Equipped with a modem (e.g., a dial-up, DSL, ISDN or wireless), a customer can then log onto the Internet and browse the World Wide Web (WWW) and USENET, send and receive e-mail, and access a particular network. In addition to serving individuals, ISPs also serve large companies, providing a direct connection from the company's networks to the Internet. ISPs themselves are connected to one another through Network Access Points (NAPs). NAP is a public network exchange facility where ISPs can connect with one another in peering arrangements. The NAPs are a key component of the Internet backbone because the connections within them determine how traffic is routed. They are also the points of most Internet congestion.
ISPs generally provide a plurality of Point of Presence gateways (POP) in order for a customer to gain an Internet access by making a local call. A POP (point-of-presence) is an access point to the Internet that is associated with a phone number. A connection established via such a POP causes a unique IP address to be assigned to a machine that accesses the Internet utilizing the established connection. The number of POPs that an ISP has and the number of subscribers are usually used as a measure of its size or growth rate.
Yet another component in one embodiment of the present invention is a servlet. Servlets are Java applications, which run on a Web server or application server and provide server-side processing, typically to access a database. It is a Java-based alternative to Common Gateway Interface (CGI) scripts, interface programs, usually written in C or PERL, that enables an Internet server to run external programs to perform a specific function. The most important difference between servlets and CGI scripts is that a Java servlet is persistent. This means that once it is started, it stays in memory and can fulfill multiple requests. In contrast, a CGI script disappears once it has fulfilled a request.
Architecture
With these concepts in mind, an embodiment of a system architecture of the present invention can be explored. In one embodiment, the present invention includes customization system 10 and an end-user tool that allows a user to establish a network connection.
The database server 105 contains a customer database 125, a phonebook database 130, a profile database 135, a phonebook customization database 140, and customer phonebook database 145. It will be appreciated that databases may not be stored at the server machine and the database data may be uploaded to the server machine when necessary.
Methodology
A flow chart detailing a method 190, according to an exemplary embodiment of the present invention, of generating and distributing a customized dialer is illustrated in
Methodology: Customization by Customization Tool 120
In one exemplary embodiment, the customization tool 120 is a web application developed utilizing HTML, JavaScript, and JavaServlets.
The customization tool 120 presents a customer of the system 10 with a sequence of web pages that guide the customer through a process of building a customized dialer incorporating the customer's needs. The output of the customization process implemented by the customization tool 120 is a “profile” that defines a customization of a network connection application. Utilizing the customization process, a customer may define multiple customized network connection applications (e.g., dialers), each customized network connection application being described in terms of a profile.
An exemplary embodiment of a customization process 200, implemented by the customization tool 120, is described with the reference to
At 305 the second web page 302, an example of which is illustrated in
A profile consists of all the files needed by the customization system 10 to create a complete, self-installing package distributable to a customer of the system 10, a distributor or directly to a customer's end-users. Customers may maximize or minimize the identification of the service or organization depending on what is included in a dialer profile. For example, the following features that are described in detail below may be included into a dialer profile: custom corporate logos, connection actions, addition and removal of access points (POPs), pricing setting.
The customer is presented with the third web page 303, an example of which is illustrated in
The third web page 303 may also prompt the customer to specify if prices will be displayed next to each dial-in number when the dialer is invoked by the end-user. The customer may also desire to display prices in particular currencies. According to one embodiment of the present invention, the customer may enter a conversion rate in order for the dialer to display pricing in currency applicable to the end-users' geographical location.
Phonebook updates are uploaded to the end-user's machine upon establishment of a network connection through the dialer. The customer may, via the third web page 303, specify if it desires the end-users to choose a manual phonebook update instead of an automatic one.
Some customers may desire to limit network connection sessions of the end-users. The third web page 303 allows customers to specify the maximum connect time that the customer desires the end-users to have. In one embodiment, an unlimited option may be available for the customers to select.
In one embodiment of the present invention the dialer will be installed on end-users' machines with a default shortcut name. Via the third web page 303, the customer may specify its own shortcut name, for example, the name of the company.
Upon selection of the options displayed at the third web page 303, the customer at 315 is presented with the fourth web page 304, an example of which is illustrated in
In one embodiment, at 320 the customer is presented with a fourth web page 800, an example of which is illustrated in
In box 810 of
In one embodiment of the present invention, the customized dialer may be configured to launch Microsoft's VPN (PPTP) after a successful connection is established. PPTP support may be built into the customized dialer and not require any additional client software.
At 325 of
At 330 of
At 340 the customer is presented with a ninth web page 1200, an example of which is illustrated in
At 345 of
At 350 the customer is presented with the download web page 1400, an example of which is illustrated in
In one embodiment, the customization system 10 utilizes the pricing and access point data maintained by a settlement system that described in detail in a co-pending patent application Ser. No. 09/791,239, titled “A Method and System to Facilitate Financial Settlement of Service Access Between Multiple Parties”. The pricing data maintained by the settlement system specifies the method of pricing of a POP according to a particular pricing plan. The customization system 10, in one embodiment, retrieves a contract of a customer and the list of available phonebooks for the retrieved customer pricing plan.
In one embodiment, the customer may specify the rules for the termination of a connection if it is determined to be idle. The decision to terminate the connection may depend on the specified allowed duration of the idle connection before its termination, on the allowed minimum data transfer rate before the connection is terminated (this may be used to discount certain background traffic, which does not represent real end-user activity), on the allowed time to respond to a dialog box to renew the connection by the end-user before the connection is terminated. In one embodiment the absolute limit may be set on the length of sessions, regardless of the connection activity as described above.
In one embodiment of the present invention, the customer may require the customized dialer to support foreign languages through the use of external language resources and help files. In one embodiment at runtime, the customized dialer may determine the language of the operating system installed on the end-user's machine and load the associated language resource and help files stored at the end-user's machine. If external files are not found, the customized dialer may use the default language, i.e. English.
In one embodiment security information, such as end-user password, VPN password, calling card PIN, stored locally on the end-user's system may be encrypted using standard encryption algorithms well know in the art.
It will be appreciated that the above-described customization process need not be implemented utilizing a series of web pages. In one embodiment the customization may be performed through a software application and the customization information may then be uploaded to the centralized customization tool through a network.
Methodology: Update
In one embodiment of the present invention, the customization tool 120 updates multiple copies of a network connection application (e.g., a dialer) distributed by the customer to the end-users automatically upon each end-user connecting to a network access point. In an alternative embodiment, an end-user may manually invoke the update feature of the customized dialer distributed to him/her by the customer. During the update process, the client dialer contacts the update server 113 and retrieves the list of files and their latest version numbers. The dialer compares the list of files stored locally with the list retrieved from the server 113. If the list and/or the version numbers don't match, the dialer retrieves the affected files from the update server 113. In one embodiment of the present invention, the new build executable and DLL files are downloaded to the client machine and stored in temporary locations due to inefficiency of updating dialer files when the dialer is running. Upon the end-user exiting the dialer, the files on the client machine are updated to the files containing newer information.
In one embodiment the customer may not want the end-users to have access to the latest changes until, for example, the testing of all the new POPs is performed. In such a case the customer may instruct the customization system 10 not to update the dialer automatically unless instructed otherwise.
Methodology: Phonebook Generation
The generated phonebook files 175 may be customized according to the needs of a customer, (e.g., a particular POPs may be filtered or removed, and rules may be established for the pricing of POPs).
A phonebook management system (not shown) maintains a current “open” phonebook version number and tags changes with this version number. Each run of the phonebook generation tool 115 increases this phonebook version by one. When the phonebook generation tool 115 runs, it closes the current “open” phonebook version number, and opens a new “open” phonebook version. All subsequent changes to the phonebook database are tagged with the new “open” phonebook version number.
The phonebook generation tool 115 determines changes to the phonebook database since the last run of the tool 115, and generates phonebook and phonebook delta files 175 and 180.
A more detailed description will now be provided with reference to
In one embodiment, the phonebook generation tool 115 generates delta files that contain cumulative changes to the phonebook database 130 since the last version of the phonebooks was published. In one embodiment if the size of the delta files is greater than 75% of the size of the whole phonebook, the delta files are not generated.
Referring to
All the files are associated with a version number in order to facilitate a more efficient update process described above.
The phonebook generation tool 115 utilizes “pricing” and “access point” data maintained in the access point and pricing databases 136 and 137 illustrated in
Methodology: Customization by the End-users of the Customers
In one embodiment of the present invention, the end-user invokes a customized network connection application in the form of a dialer 150 on the client machine 101 of
The end-user may specify the dialing settings to use by the customized dialer 150 when establishing a remote network connection.
In order for the customized dialer 150 to establish the connection with the Internet, the end-user's information such as username, domain and password should be available. End-user information dialog box 1900 illustrated in
The setting dialog box 2000 illustrated in
In one embodiment, the end-user may select an option of automatic update of the phonebook upon establishment of the network connection by check box 2025. This will ensure that the latest network access numbers are used next time the end-user invokes the customized dialer 150. A “smart redial” option, when enabled by the end-user check box 2030, directs the customized dialer 150 to dial another number in the same city when the dial-up attempt failed using the first network access number. In one embodiment the end-user may wish to run particular applications upon the establishment of the network connection, for example a Web browser, such as Internet Explorer™ (Microsoft Corporation). Instead of opening desired applications manually, the end-user may direct the customized dialer 150 automatically to launch specified applications when the network connection is established by adding software applications to box 2035 utilizing Add 2040, Modify 2045 and Delete 2050 buttons illustrated in
In one embodiment of the present invention, the end-user may bookmark the access points that are most often used.
In one embodiment of the present invention, the end-user may access an online help feature from any dialog boxes described above by clicking on a Help button.
Some settings may be saved in the configuration files on the client machine 101 when the end-user exits the customized dialer 150. The saved settings may be location filters (country, state, city, area code), connection type (modem, ISDN), selected access points, dial properties including dialing prefixes, the location of the end-user and calling card information, end-user information including end-user name, domain name and password and modem settings including redial attempts, redial timeout, modem device, update phonebook selected options, SmartRedial, bookmarks and programs to launch after the connection is established.
Certain area codes in the Unites States require 10/11-digit dialing when placing calls within the area code. These dialing requirements are very regional and are constantly changing. In one embodiment of the present invention, a dialing rule file is downloaded to the client machine 101 along with the distribution of the customized dialer 150, containing all the area codes that require 10/11 digit dialing.
In the foregoing specification the present invention has been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made to the specific exemplary embodiments without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
Computer System
If written in a programming language conforming to a recognized standard, the software 2424 can be executed on a variety of hardware platforms and for interface to a variety of operating systems. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Furthermore, it is common in the art to speak of software, in one form or another (e.g., program, procedure, process, application, module, logic . . . ), as taking an action or causing a result. Such expressions are merely a shorthand way of saying that execution of the software by a machine, such as the computer system 2400, causes the machine to perform an action or produce a result.
The preceding description of
This application claims the benefit of U.S. Provisional Application No. 60/223,454, filed Aug. 2, 2000.
Number | Name | Date | Kind |
---|---|---|---|
4811249 | Marsh | Mar 1989 | A |
5202921 | Herzberg et al. | Apr 1993 | A |
5331574 | Temoshenko et al. | Jul 1994 | A |
5412723 | Canetti et al. | May 1995 | A |
5446680 | Sekiya et al. | Aug 1995 | A |
5497421 | Kaufman et al. | Mar 1996 | A |
5564017 | Corn et al. | Oct 1996 | A |
5606663 | Kadooka | Feb 1997 | A |
5611048 | Jacobs et al. | Mar 1997 | A |
5638514 | Yoshida et al. | Jun 1997 | A |
5726883 | Levine | Mar 1998 | A |
5781189 | Holleran | Jul 1998 | A |
5793952 | Limsico | Aug 1998 | A |
5802592 | Chess et al. | Sep 1998 | A |
5815665 | Teper et al. | Sep 1998 | A |
5832228 | Holden et al. | Nov 1998 | A |
5845267 | Ronen | Dec 1998 | A |
5852812 | Reeder | Dec 1998 | A |
5892900 | Ginter et al. | Apr 1999 | A |
5991292 | Focsaneanu et al. | Nov 1999 | A |
6023470 | Lee et al. | Feb 2000 | A |
6023502 | Bouanaka et al. | Feb 2000 | A |
6026375 | Hall et al. | Feb 2000 | A |
6028917 | Creamer et al. | Feb 2000 | A |
6029143 | Mosher et al. | Feb 2000 | A |
6032132 | Nelson | Feb 2000 | A |
6032137 | Ballard | Feb 2000 | A |
6035281 | Crosskey et al. | Mar 2000 | A |
6047051 | Ginzboorg et al. | Apr 2000 | A |
6049671 | Slivka et al. | Apr 2000 | A |
6055503 | Horstmann | Apr 2000 | A |
6078906 | Huberman | Jun 2000 | A |
6081508 | West et al. | Jun 2000 | A |
6094721 | Eldridge et al. | Jul 2000 | A |
6112239 | Kenner | Aug 2000 | A |
6125354 | MacFarlane et al. | Sep 2000 | A |
6128601 | Van Horne et al. | Oct 2000 | A |
6157618 | Boss et al. | Dec 2000 | A |
6167126 | Janning | Dec 2000 | A |
6175869 | Ahuja et al. | Jan 2001 | B1 |
6178460 | Maddalozzo, Jr. et al. | Jan 2001 | B1 |
6188994 | Egendorf | Feb 2001 | B1 |
6189096 | Haverty | Feb 2001 | B1 |
6198824 | Shambroom | Mar 2001 | B1 |
6208977 | Hernandez et al. | Mar 2001 | B1 |
6212280 | Howard, Jr. et al. | Apr 2001 | B1 |
6212561 | Sitaraman et al. | Apr 2001 | B1 |
6216117 | Hall | Apr 2001 | B1 |
6219790 | Lloyd et al. | Apr 2001 | B1 |
6240091 | Ginzboorg et al. | May 2001 | B1 |
6243367 | Hussain | Jun 2001 | B1 |
6247050 | Tso et al. | Jun 2001 | B1 |
6260142 | Thakkar et al. | Jul 2001 | B1 |
6269401 | Fletcher et al. | Jul 2001 | B1 |
6278460 | Myers et al. | Aug 2001 | B1 |
6317792 | Mundy et al. | Nov 2001 | B1 |
6324579 | Bleuse et al. | Nov 2001 | B1 |
6327707 | McKeeth et al. | Dec 2001 | B1 |
6330443 | Kirby | Dec 2001 | B1 |
6339790 | Inoue | Jan 2002 | B1 |
6405028 | DePaola et al. | Jun 2002 | B1 |
6463534 | Geiger et al. | Oct 2002 | B1 |
6505246 | Land et al. | Jan 2003 | B1 |
6510463 | Farhat et al. | Jan 2003 | B1 |
6513060 | Nixon et al. | Jan 2003 | B1 |
6522884 | Tennison et al. | Feb 2003 | B2 |
6546492 | Walker et al. | Apr 2003 | B1 |
6549770 | Marran | Apr 2003 | B1 |
6571290 | Selgas et al. | May 2003 | B2 |
6577858 | Gell | Jun 2003 | B1 |
6578075 | Nieminen et al. | Jun 2003 | B1 |
6628775 | Van Tol | Sep 2003 | B1 |
6640242 | O'Neal et al. | Oct 2003 | B1 |
6687560 | Kiser et al. | Feb 2004 | B2 |
6748439 | Monachello et al. | Jun 2004 | B1 |
6753887 | Carolan et al. | Jun 2004 | B2 |
6779004 | Zintel | Aug 2004 | B1 |
6792082 | Levine | Sep 2004 | B1 |
6792464 | Hendrick | Sep 2004 | B2 |
6985945 | Farhat et al. | Jan 2006 | B2 |
20010056485 | Barrett et al. | Dec 2001 | A1 |
20020029275 | Selgas et al. | Mar 2002 | A1 |
20020114346 | Lampe et al. | Aug 2002 | A1 |
20020124078 | Conrad | Sep 2002 | A1 |
20020143494 | Conrad | Oct 2002 | A1 |
20020169792 | Perinet et al. | Nov 2002 | A1 |
20030120465 | Mets et al. | Jun 2003 | A1 |
20030120627 | Emery et al. | Jun 2003 | A1 |
20030120661 | Mets et al. | Jun 2003 | A1 |
20040128379 | Mizell et al. | Jul 2004 | A1 |
20050055371 | Sunder et al. | Mar 2005 | A1 |
20050204036 | Farhat et al. | Sep 2005 | A1 |
Number | Date | Country |
---|---|---|
0905615 | Mar 1999 | EP |
2378021 | Jan 2003 | GB |
02033648 | Feb 1990 | JP |
02039260 | Feb 1990 | JP |
02112053 | Apr 1990 | JP |
03189852 | Aug 1991 | JP |
04054661 | Feb 1992 | JP |
04067252 | Mar 1992 | JP |
04084254 | Mar 1992 | JP |
04142655 | May 1992 | JP |
05189288 | Jul 1993 | JP |
05199327 | Aug 1993 | JP |
07182064 | Jul 1995 | JP |
09265455 | Oct 1997 | JP |
09330298 | Dec 1997 | JP |
10289209 | Oct 1998 | JP |
11203247 | Jul 1999 | JP |
00112892 | Apr 2000 | JP |
00165839 | Jun 2000 | JP |
00194657 | Jul 2000 | JP |
00259276 | Sep 2000 | JP |
01053910 | Feb 2001 | JP |
WO-9715885 | May 1997 | WO |
WO-9966692 | Dec 1999 | WO |
WO-0002149 | Jan 2000 | WO |
WO-0004434 | Jan 2000 | WO |
WO-00019297 | Apr 2000 | WO |
WO-00062514 | Oct 2000 | WO |
WO-35256 | May 2001 | WO |
WO-03056403 | Jul 2003 | WO |
WO-356403 | Jul 2003 | WO |
WO-04072825 | Aug 2004 | WO |
WO-79544 | Sep 2004 | WO |
Number | Date | Country | |
---|---|---|---|
20020083429 A1 | Jun 2002 | US |
Number | Date | Country | |
---|---|---|---|
60223454 | Aug 2000 | US |