This invention relates to telecommunications, and more particularly to synchronization of data between applications over telecommunications networks, and associated methods and computer program products.
Communication technology has been developed that now allows a user the freedom to make phone calls through Internet Protocol (IP) networks, cellular wireless networks, and the Public Switched Telephone Network (PSTN). Typically, a user accesses each of these networks using distinctly different communication terminals. For example, a POTS phone can be used to communicate through the PSTN, a cellular phone to communicate through cellular networks, and an IP phone to communicate through IP networks (such as the Internet). User applications on such phones have also evolved to offer increased features, including Personal Information Management (PIM) applications by which a user can establish an electronic phone book. Managing a user's information that is distributed across various different communication devices continues to present a challenge.
Methods, Plain Old Telephone System (POTS) phones, and computer program products are provided by embodiments of the present invention for synchronizing client application data, such as names and associated telephone numbers in a phone book, between a POTS phone and a content portal through a Public Switched Telephone Network (PSTN). A dial-up data communication connection is established between the POTS phone and the content portal through the PSTN. A determination is made at the content portal that the POTS phone is associated with client application data in the portal database of the content portal. Client application data is synchronized between the POTS phone and the portal database in response to the determined association.
In some further embodiments, the client application data in the content portal can be synchronized with client application data in other phones, such as other POTS phones, cellular phones, and/or IP phones.
Accordingly, a user may define/change names and associated phone number in a POTS phone and have that data communicated to the content portal via dial-up connection and, therefrom, to other phones that are associated with the user. Likewise, a user may define/change names and associated phone number in non-POTS phones and have that data communicated to the content portal and, therefrom, to a POTS phone that is associated with the user.
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which illustrative embodiments of the invention are shown. However, this invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. It will be understood that when an element is referred to as being “coupled” or “connected” to another element, it can be directly coupled or connected to the other element or intervening elements may also be present. In contrast, when an element is referred to as being “directly coupled” or “directly connected” to another element, there are no intervening elements present. Like numbers refer to like elements throughout. As used herein the term “and/or” includes any and all combinations of one or more of the associated listed items and may be abbreviated by “/”.
Although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another element. Thus, a first device discussed below could be termed a second device without departing from the teachings of the present invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises,” “comprising,” “includes” and/or “including” when used in this specification, specify the presence of stated features, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The present invention is described in part below with reference to block diagrams of methods, systems, devices and computer program products according to embodiments of the invention. It will be understood that a block of the block diagrams, and combinations of blocks in the block diagrams, may be implemented at least in part by computer program instructions. These computer program instructions may be provided to a controller of a device, such that the instructions, which execute via the controller create means, modules, devices or methods for implementing the functions/acts specified in the block diagram block or blocks.
These computer program instructions may also be stored in a memory on the device that can direct a controller of a device to function in a particular manner, such that the instructions stored in the memory produce an article of manufacture including computer-readable program code which implements the functions/acts specified in block diagram block or blocks. The computer program instructions may also be loaded onto a controller of a device to cause a series of operational steps to be performed to produce a computer implemented process such that the instructions which execute on the controller provide steps for implementing the functions/acts specified in the block diagram block or blocks.
It should also be noted that in some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
In accordance with some embodiments, a content portal 190 is configured to serve as a centralized repository for storing and synchronizing contact data among the phones 110, 120, 130, and 140. The content portal includes a portal application server 192 and a portal database 194. The portal application server 192 is configured to communicate with the phones 110, 120, 130, and 140 to synchronize contact data in the databases 112, 122, 132, and 142 with contact data in the portal database 194. Accordingly, the portal database 194 can serve as the centralized repository of contact data that can be compared by the portal application server 192 to contact data in each of the phones 110, 120, 130, and 140 to determine differences and to synchronize the contact data therebetween. Moreover, the portal application server 192 can communicate new and/or changed contact data in the portal database 194 to selected ones of the phone databases 112, 122, 132, and 142 so that when a user adds or changes contact data in one of the phone databases, those changes can also be reflected in the portal database 194 and in each of the other phone databases.
Although various embodiments are described herein in the context of synchronizing contact data that includes names and associated telephone numbers, it is to be understood that the invention is not limited thereto and can instead be used more broadly to synchronize any type of client application data. The client application data can include, but is not be limited to, contact data, pictures, ringtones, and phone settings which may be related to selecting a ringtone for playback and/or a picture for display in response to an incoming call from a defined telephone number. Moreover, although examples of bi-directional synchronization of contact data are described between, for example, the content portal 190 and the POTS phone 150 for purposes of illustration, the term “synchronization” is used herein in a broader sense to include communication of client application in one or both directions between devices. The term POTS phone includes any device that is configured to communicate voice and client application data through dial-up connections in a PSTN.
The POTS phone 110 and the content portal 190 can establish a dial-up communication connection therebetween through the PSTN 150 and a modem pool 152 connected to the content portal 190. The modem pool 152 is configured to communicatively connect the circuit switched lines from the PSTN 150, which are associated with calls from/to POTS phones, with the content portal 190. Because the POTS phone 110 and the content portal 190 communicate with each other through the PSTN 150, one must dial a telephone number associated with the other to establish the dial-up connection therebetween.
An exemplary embodiment of the POTS phone 110 and exemplary events which can cause the POTS phone 110 to initiate a dial-up connection to the content portal 190 and to carry out synchronization of contact data therewith are now explained with reference to
The memory 230 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the POTS phone 110. The memory 230 may include several categories of software and data used in the POTS phone 110, including: an operating system 238 and application programs 231. The application programs 231 are illustrative of the programs that implement the various features of the POTS phone 110 and include at least one application which supports operations as described herein. The application programs 231 can include the contact database 112, a client contact application 234, and a synchronization application 236.
The client contact application 234 may be any application that is suitable for adding, changing, and organizing contact data in the contact database 112 in a searchable format, and may include, for example, a sophisticated application that provides searchable relations or an application that simply maintains an ordered list of contacts for display in their sequence. The synchronization application 236 is configured to communicate with the content portal 190 to synchronize contact data between the contact database 112 and the portal database 194. Accordingly, the controller 210, through the application programs 231, can be configured to store, modify, search for, and display contact data, and to synchronize at least some of the contact data in the contact database 112 with the portal database 194.
A user may add contact data to a phone book defined by the database 112 through the keypad 270 and/or by selecting caller ID data received with an incoming call for inclusion into the database 112. In response to determining that contact data has been added and/or modified in the database 112, the controller 210 can initiate synchronization of the contents of the database 112 with the portal database 194, via the synchronization application 236, by retrieving a phone number associated with (assigned to) the content portal 190 from memory 230 and dialing the retrieved phone number to establish a dial-up connection with the content portal 190. Upon receiving a call from the POTS phone 110, the portal application server can determine whether the POTS phone 110 is associated with contact data in a defined portion of the portal database 194 and, when it is, can synchronize at least a portion of the databases 112 and 144, such as by incorporating at least the changed content data, or all content data, from database 112 into its database 194. The portal application server 192 may carry out authentication of the POTS phone 110 (e.g., via exchange of authentication keys) before allowing synchronization with the portal database 194.
The user may also define in the synchronization application 236 a schedule for when the POTS phone 110 is to initiate synchronization of contact data with the content portal 190. For example, the synchronization application 236 may initiate the synchronization in response to expiration of a user defined time since last synchronization, occurrence of a user defined time of day, and/or occurrence of a user defined day of week and/or month.
The data modem 220 and a transceiver 224 are connected to an interface module 226 that may be configured as a RJ-11 jack to connect to the PSTN 150 through a conventional analog telephone line. The transceiver 224 can be used during voice calls to transmit sound from the microphone 260 through a wireline and/or wireless connection to the PSTN 150 and to couple sound received from the PSTN 150 to the speaker 250. The data modem 220 can be configured to communicate contact data during synchronization with the content portal 190.
In response to synchronization, the portal application server 192 may determine whether the POTS phone 110 is associated with another phone, such as with the IP phone 120, cellular phone 130, and/or computer phone 140. The portal application server 192 may communicate with other phones based on the association determination to synchronize at least the changed contact data with databases in those phones.
A user may register the POTS phone 110 with the content portal 190 to establish a user's account that associates it with the portal database 194 and selected other phones 120, 130, and/or 140. Such registration may be provided as a subscription-based service that is offered to a user to facilitate easier cross-management of a phone book in the POTS phone 110 with phone books in the other phones 120, 130, and/or 140 via the centralized portal database 194.
By way of example, the portal application server 192 may determine that a user of the POTS phone 110 has defined that contact data in a portion of the portal database 194 is to be synchronized with contact data in the IP phone 120, the cellular phone 130, and/or the computer phone 140. The portal application server 192 can communicate with the cellular phone 130 through an IP network 170, such as the Internet, a cellular wireless network 160, and a cellular base station transceiver 160. The cellular base station transceiver 160 may communicate with the cellular phone 130 according various radio access technologies that can include, but are not limited to, Code division multiple access (CDMA), Enhanced Data rates for GSM Evolution (EDGE), General Packet Radio Service (GPRS), Global System for Mobile TeleCommunications (GSM), High-Speed Downlink Packet Access (HSDPA), High-speed Uplink Packet Access (HSUPA), Universal Mobile Telecommunications System (UMTS), Wideband Code Division Multiple Access (W-CDMA) and/or WCDMA+EDGE (WEDGE). The portal application server 192 can similarly communicate with the IP phone 120 through the IP network 170 and a Wireless Local Area Network (WLAN) access point 180, and with the computer phone 140 through the IP network 170. As also used herein, WLAN refers to various radio access technologies that can include, but are not limited to, IEEE 802.11 (a-g), Wireless Fidelity (WiFi), and Worldwide Interoperability for Microwave Access (WiMAX). The portal application server 192 can then copy at least the changed contact data from the portal database 194 to the databases 122, 132, and 142 in those devices.
According to some other embodiments, the portal application server 192 is configured to initiate synchronization between the portal database 194 and the database 112 of the POTS phone 110. The portal application server 192 may initiate synchronization in response to addition and/or change of contact data in the portal database 194. For example, a user of the IP phone 120, the cellular phone 130, and/or the computer phone 140 can initiate synchronization of contact data in those phones with the portal database 194. In response to contact data being added and/or changed in the portal database 194, the portal application server 192 can determine whether the changed data is associated with the POTS phone 110 and, when it is, the portal application server 192 can dial a telephone number associated with the POTS phone 110, establish a dial-up connection therewith, and initiate synchronization with the POTS phone 110 to communicate at least the changed contact data from the portal database 194 to the database 112.
Although
In the drawings and specification, there have been disclosed typical preferred embodiments of the invention and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being set forth in the following claims.
This application claims the benefit of and priority to U.S. Provisional Patent Application No. 60/741,145, filed Dec. 1, 2005, the disclosure of which is hereby incorporated herein by reference as if set forth in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
6810405 | LaRue et al. | Oct 2004 | B1 |
20020049751 | Chen et al. | Apr 2002 | A1 |
20020131573 | Berkley et al. | Sep 2002 | A1 |
20020159574 | Stogel | Oct 2002 | A1 |
20040052356 | McKinzie et al. | Mar 2004 | A1 |
20040054711 | Multer | Mar 2004 | A1 |
20050004992 | Horstmann et al. | Jan 2005 | A1 |
20050032527 | Sheha et al. | Feb 2005 | A1 |
20050135429 | Bingham et al. | Jun 2005 | A1 |
20050288006 | Apfel | Dec 2005 | A1 |
20060018270 | Forand et al. | Jan 2006 | A1 |
20060020804 | Schleifer et al. | Jan 2006 | A1 |
20060026198 | Emery et al. | Feb 2006 | A1 |
20060072726 | Klein et al. | Apr 2006 | A1 |
20060174017 | Robertson | Aug 2006 | A1 |
20060285663 | Rathus et al. | Dec 2006 | A1 |
20070038720 | Reding et al. | Feb 2007 | A1 |
20070058658 | Ruckart | Mar 2007 | A1 |
20070099671 | Gruchala et al. | May 2007 | A1 |
20070133784 | Jarredal | Jun 2007 | A1 |
Number | Date | Country |
---|---|---|
WO 02082319 | Oct 2002 | WO |
Number | Date | Country | |
---|---|---|---|
20070127442 A1 | Jun 2007 | US |
Number | Date | Country | |
---|---|---|---|
60741145 | Dec 2005 | US |