The present invention generally relates to the field of telephony, and more particularly to apparatus, methods, and computer program products for initiating Internet protocol communications in an internet protocol communication system.
The Internet has become a mainstream network for communicating not just data, such as email and pictures, but also for providing real-time bi-directional voice and video communications. Voice Over Internet Protocol (VoIP) is an industry standard that has evolved to enable users to place phone calls through the Internet, instead of through the Public Switched Telephone Network (PSTN). A conventional phone may now be connected to the Internet using an interface device that converts analog phone signals to digital signals that can be communicated as an Internet Protocol (IP) call through the Internet. A phone call may thereby be communicated through the Internet to a VoIP service provider, who may convert the call back to an analog signal and connect the call through the PSTN local to the called phone. A computer or IP phone can also be used to initiate and receive IP calls through a VoIP service provider. A user can thereby dial a telephone number and have the call routed through the Internet, instead of, or in addition to, the PSTN.
Various embodiments of the present invention provide methods, communication terminals, Internet Protocol (IP) communication systems, and computer program products for initiating an IP communication based on contact information from one or more contact information databases. According to some embodiments of the present invention, a method of initiating an IP communication in an IP communication system includes accessing at a first communication terminal a first database of contact information that is within the first communication terminal. A second database of contact information is accessed, via the first communication terminal, that is separate from the first communication terminal and communicatively connected to the first communication terminal by a network. An IP communication is initiated from the first communication terminal based on contact information in at least one of the first and second databases.
In some further embodiments of the present invention, at least some of the contact information in the first and second databases may include names and associated telephone numbers. Contact information in the second database may be accessed by accessing one or more other communication terminals. At least a portion of the contact information accessed in the second database may be displayed at the first communication terminal. A contact information query from a user may be sensed at the first communication terminal, contact information may then be obtained from the second database responsive to the contact information query. The contact information query may identify a requested group of contact information, and at least some of the contact information associated with the requested group of contact information may be obtained from the second database. A user selection among the obtained contact may be sensed, and an IP communication may be initiated from the first communication terminal based on the user selected contact information. Contact information in the second database may be accessed through a wireless access point.
In yet some further embodiments of the present invention, incoming IP communications may be received at the first communication terminal. At least some of the incoming IP communications may include source identification information, and a determination may be made as to whether the source identification information corresponds to contact information in the second database. Contact information from the second database may be displayed at the first communication terminal based on the determination. The first communication terminal may generate an audible announcement that varies based on the determination. A selection among a plurality of audible announcements may be made based on the determination, and the selected audible announcement may be generated at the first communication terminal.
At least a portion of the source identification information may be added to the second database of contact information. The time of the incoming IP communication and/or date of the incoming IP communication may be added to the second database of contact information.
In some other embodiments of the present invention, an IP communication terminal includes a first database of contact information, and a controller configured to access contact information in the first database, to access through a network contact information in a second database that is separate from the first communication terminal, and to initiate IP communications based on contact information accessed in the first and second databases.
In some further embodiments of the present invention, the IP communication terminal includes a display, and the controller may be configured to provide at least a portion of contact information from the second database to the display. The controller may be configured to receive an indication of a user selection of displayed contact information, and to initiate an IP communication based on the user selected contact information. The controller may be configured to receive a contact information query that indicates a requested group of contact information, and to obtain contact information from the second database based on the requested group of contact information.
The controller may be configured to receive incoming IP communications, to identify source identification information associated with at least some of the incoming IP communications, and to obtain contact information from the second database based on the source identification information. The controller may be configured to select among a plurality of audible announcements based on the obtained contact information, and to generate the selected audible announcement. The controller may be configured to add at least a portion of the source identification information to the second database. The controller may be configured to add the time of the incoming IP communication and/or the date of the incoming IP communication to the second database.
In some other embodiments of the present invention, an IP communication system includes a data network, and a plurality of communication terminals. At least one of the communication terminals includes a local database of contact information within the communication terminal and is configured to access contact information in the local database, configured to access contact information in a remote database through the data network that is separate from the communication terminal, and configured to initiate an IP communication through the Internet to an IP service provider based on the contact information accessed in at least one of the local database and the remote database.
In some other embodiments of the present invention, a computer program product for initiating an Internet Protocol (IP) communication in an IP communication system, includes program code embodied in a computer-readable storage medium. The computer program code includes program code that is configured to access a first database of contact information within a communication terminal, program code that is configured to access through a network a second database of contact information that is separate from the communication terminal, and program code that is configured to initiate an IP communication from the communication terminal based on the contact information accessed in at least one of the first and second databases.
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. However, this invention 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.
Like numbers refer to like elements throughout the description. It will be understood that, as used herein, the term “comprising” or “comprises” is open-ended, and includes one or more stated elements, steps and/or functions without precluding one or more unstated elements, steps and/or functions. As used herein the term “and/or” includes any and all combinations of one or more of the associated listed items.
Embodiments according to the present invention are described with reference to block diagrams and/or operational illustrations of communication terminals, methods, Internet Protocol systems, and computer program products. It is to be understood that each block of the block diagrams and/or operational illustrations, and combinations of blocks in the block diagrams and/or operational illustrations, can be implemented by radio frequency, analog and/or digital hardware, and/or program instructions. These program instructions may be provided to a controller, which may include one or more general purpose processors, special purpose processors, ASICs, and/or other programmable data processing apparatus, and which may reside within common or separate packaging. Accordingly, the instructions, which execute via the controller and/or other programmable data processing apparatus, create means for implementing the functions/acts specified in the block diagrams and/or operational block or blocks. In some alternate implementations, the functions/acts noted in the blocks may occur out of the order noted in the operational illustrations. 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.
It will be understood that, although the terms first, second, etc. may be used herein to describe various components, these components should not be limited by these terms. These terms are only used to distinguish one component from another component. Thus, a first component discussed below could be termed a second component without departing from the teachings of the present invention.
The IP terminals 112, 114, 118 and 120 can communicate with each other and the Internet access device 126 via the data network 122, which may be, for example, an Ethernet data network. The IP terminals 118 and 120 are configured to communicate through the WLAN-Bluetooth AP 124 using a WLAN and/or Bluetooth communication interface. Although the IP terminals 118 and 120 have been described as using a WLAN and/or Bluetooth communication interface for purposes of illustration, it is to be understood that the terminals 118 and 120 may communicate using any wireless communication protocol and interface in accordance with various embodiments of the present invention. The wireless terminal 116 is directly connected to the computer IP terminal 112, such as through a Universal Serial Bus (USB) connection, and may communicate through the computer IP terminal 112 and the data network 122.
The Internet access devices 126 and 156 may be, for example, a cable modem, a Digital Subscriber Line (DSL) modem, a WLAN connection, a dial-up modem, and/or a cellular data modem. The local access Internet providers 152a-b may be, for example, a local telephone company that provides access to the Internet 154 through a dial-up connection and/or through a DSL connection, a cable TV/communications company that provides a cable modem connection to the Internet 154, a WLAN AP hub operator, and/or a wireless operator that provides cellular data communications to the Internet 154 over a wireless interface.
The IP terminal 118 and the wireless terminal 116 are each configured to initiate cellular phone communications via one or more cellular protocols, which can include, but are not limited to, Advanced Mobile Phone Service (AMPS), ANSI-136, Global Standard for Mobile (GSM) communication, General Packet Radio Service (GPRS), enhanced data rates for GSM evolution (EDGE), code division multiple access (CDMA), wideband-CDMA, CDMA2000, and Universal Mobile Telecommunications System (UMTS). Communication protocols as used herein may specify the information communicated, the timing, the frequency, the modulation, and/or the operations for setting-up and/or maintaining a communication connection.
The terminals 112, 114, 116, 118, 120, and 158 are collectively referred to as communication terminals. As used herein, a “communication terminal” includes, but is not limited to, a terminal that is configured to receive and/or transmit communication signals through a wireline connection, such as through a data network, and/or through a wireless connection, such as through a cellular network, WLAN, a Bluetooth network, and/or another wireless communication network. Examples of communication terminals include, but are not limited to, phones, desktop computers, laptop computers, palmtop computers, and personal digital assistants that are configured to receive and/or transmit communication signals.
The IP terminals 112, 114, 118, 120, and 158 are configured to initiate, receive and establish an IP communication with another IP terminal, such as the IP terminal 158, and/or with PSTN communication equipment, such as the equipment 170, which may be a conventional Plain-Old-Telephone-System (POTS) phone. As used herein, an “IP communication” can include, but is not limited to, a VoIP phone call (e.g., full-duplex call, half-duplex call, push-to-talk call), video communication, and/or message communication (e.g., instant message, email) that is established through the Internet 154 to another communication device.
A subscriber may setup IP services by registering with the IP service provider 160 and being assigned one or more IP subscriber identifiers (e.g., IP telephone numbers). The IP service provider 160 can then route IP communications based on a destination identifier (e.g., the IP telephone number to which an IP phone call is directed).
For example, IP terminal 114 may initiate an IP communication to a destination identifier through the Internet access device 126, the local access internet provider 152a, and the Internet 154 to the IP service provider 160. The IP communication may be a VoIP call, which can be serviced by the VoIP feature server 162, and/or it may be a video communication, which can be serviced by the video feature server 164, or an email or other IP communication which can be serviced by another feature server in the IP service provider 160. The IP service provider 160, via the feature server(s) 162 and 164, can route the IP communication, based on the destination identifier, to another communication terminal, such as to the IP terminal 158 and/or the PSTN communication equipment 170. In particular, IP service provider 160 may route the IP communication through the Internet 154, the local access Internet provider 152b and the Internet access device 156 to the IP terminal 158, and/or it may route the IP communication through the trunk gateway 166 and the PSTN 168 to the PSTN communication equipment 170.
In a similar fashion, the IP terminal 114 may receive an IP communication that is initiated by one of the other IP terminals 112, 118, 120, and/or 158 and/or by the PSTN communication equipment 170, and which is serviced by the IP service provider 160.
A contact information database may be within one or more of the terminals 112, 114, 116, 118, 120, and 158. In the exemplary embodiment shown in
For example, the IP terminal 114 can access contact information in the contact information database 115 within the IP terminal 114 along with contact information in the databases 113, 117, 119, 121, and/or 159, and can initiate an IP communication based on the accessed contact information. The IP terminal 114 may access the contact information database 117 via the computer IP terminal 112, which may serve as a communication interface to (information server for) the wireless terminal 116. The IP terminal 114 may access the contact information databases 119 and 121 via the WLAN-Bluetooth WP 124, and may access the contact information database 159 by transmitting a request (e.g., query) thereto through the Internet 154.
The IP terminal 114 can sense a contact information query by a user, and can then search the contact information in the local database 115 and the contact information in, for example, the remote databases 113, 117, 119, 121, and/or 159 to attempt to locate a telephone number that corresponds to the contact information query. If the search identifies corresponding contact information, at least a portion of that corresponding contact information may be displayed at the IP terminal 114 to the user. The user may then initiate an IP communication based on the displayed contact information.
A contact information query may correspond to a request for a group of contact information. For example, a plurality of IP telephone numbers may be associated with each of the IP terminals 112, 114, 118, 120, and/or 158. Each of the IP telephone numbers (or other IP subscriber identifiers) may also be associated with defined groups of contact information. For example, one or more users of the IP terminal 114 may define and associate different groups of contact information with different ones of the associated IP telephone numbers. Accordingly, users of the IP terminal 114 may each develop their own customized listings of contact information and/or attributes that are used to search the databases 113, 115, 117, 119, 121, and/or 159 for contact information, and which are associated with different IP telephone numbers. The contact information query may then be an indication of for which of the different IP telephone numbers a query is to be performed. The IP telephone 114 may then obtain and display the associated list of contact information. A user may select among the displayed contact information to initiate an IP communication from the IP terminal 114 based thereon.
Incoming IP communications can include source identification information that identifies a source of the communication (e.g., caller identification information, message source identification information). A destination one of the terminals 112, 114, 116, 118, 120, and/or 158 for an incoming IP communication may determine whether the source identification information corresponds to contact information in one or more of the databases 113, 115, 117, 119, 121, and 159. The destination terminal may search one or more of the databases 113, 115, 117, 119, 121, and 159 to attempt to identify contact information that corresponds to source identification information received with an incoming IP communication. Identified contact information may be loaded into the destination terminal, where it may be added to a local database of contact information, and/or it may be displayed.
The destination terminal may add at least a portion of the source identification information, a time of the incoming IP communication and/or a date of the incoming IP communication to one or more of the databases 113, 115, 117, 119, 121, and 159. For example, when source identification information of an incoming IP communication does not correspond to contact information in a database, at least a portion of it may be added as a contact information entry to one or more databases. By adding the time and/or date of incoming communications to one or more databases, a history can be maintained for communications that are associated with the contact information.
The destination terminal may generate an audible announcement that varies based on source identification information associated with an incoming IP communication. The destination terminal may determine whether, or what, contact information corresponds to the source identification information, and may vary its audible announcement by selecting among a plurality of audible announcements (e.g., verbal phrases, tones, songs, and/or other audible sequences), and/or by selectively playing or not playing an audible announcement based on the determination.
Although
With reference now to
The controller 202 can be any commercially available or custom microprocessor. The memory 208 is representative of the overall hierarchy of memory devices containing the software and data used to implement the functionality of the communication terminal 200. The memory 208 may include several categories of software and data used in the communication terminal 200: an operating system 220 and application programs 222. As will be appreciated by those of skill in the art, the operating system 220 may be any operating system suitable for operating a communication terminal, such a desktop computer, palmtop computer, and/or cellular mobile terminal, and may include, but not be limited to, Symbian, PalmOS, EPOC, Windows CE, Java, Windows95, Windows98, Windows2000 or WindowsXP, Unix or Linux.
The application programs 222 are illustrative of the programs that implement the various features of the communication terminal 200 and include at least one application which supports operations as described herein. The application programs 222 can include a contact information database 224, a contact information browser 226, and an IP communication application 228. The contact information database 224 may be any application that is suitable for organizing contact information in a searchable format, and may include, for example, an Outlook application or other sophisticated relational application, or an application that simply maintains an ordered list of contacts. Accordingly, the controller 202, through the contact information database 224, can be configured to store, search for, and output contact information based on contact information queries and source identification information in an incoming communication. The controller 202, through the contact information database 224, may also be configured to synchronize at least some of the contact information in the contact information database 224 with one or more databases in other communication terminals.
The controller 202, through the contact information browser 226, can be configured to initiate a search of the local contact information database 224 and/or remote database(s) of contact information through the network interface 204 and/or the wireless transceiver 206. For example, the browser 226 may display for a user, through the display 210, a list of communication terminals that are available to be searched for contact information. The browser 226 may then selectively search the available communication terminals based on a user's selection and based on other search attributes that may be defined by a user (i.e., a contact information query). The list of available communication terminals may be developed based on a service discovery mechanism, such as based on a Session Initiation Protocol (SIP). For example, communication terminals may register with the browser 226, or with another communication terminal, which operates as a presence server, upon connection to the network 122 (
The controller 202, through the IP communication application 228, can be configured to initiate and receive IP communications with other communication terminals, where the IP communications may include, for example, VoIP calls and video communications as described above.
At Block 306, contact information from the first and/or second databases is displayed to a user. The displayed contact information may be, for example, be one or more contact information entries that satisfy a defined search criteria. At Block 308, a user selection is received, and which may correspond to a selection of a contact information among a plurality of displayed contact information. At Block 310, an IP communication is initiated based on the user selected contact information.
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.