CROSS-REFERENCE TO RELATED APPLICATION This application is a continuation of copending U.S. utility application entitled, “System and Method for Gathering Information Related to a Geographical Location of a Caller in an Internet-Based Communication System,” having Ser. No. 10/201,706, filed Jul. 23, 2002, which is entirely incorporated herein by reference.
FIELD OF INVENTION The present invention relates generally to telecommunications, and, more particularly, to a system and method for gathering information related to a geographical location.
BACKGROUND Modern communications systems permit callers and callees, who are often separated by great distances, to freely dialogue with one another. However, when a caller initiates a call (or session) to a callee, very little information about the callee may be available to the caller prior to establishing a session. Similarly, when a callee receives a call from a caller, very little information about the caller may be available to the callee until a session has been established. In some instances, additional information about a caller or callee may facilitate dialogue between the two parties. To date, very little is available to provide such information in a communication system. A need, therefore, exists in the industry to address this deficiency.
SUMMARY In architecture, one embodiment, among others, of the system comprises Internet telephony logic configured to respond to an invite to an Internet telephony session from an Internet telephony caller device, wherein the invite to the Internet telephony session includes an Internet address of the Internet telephony caller device. This embodiment of the system further comprises geographical location retrieval logic configured to retrieve a geographical location corresponding to the Internet address of the Internet telephony caller device, and information collection logic configured to collect geographical location information associated with the retrieved geographical location.
Another embodiment, among others, may be seen as a method comprising the step of receiving an invite to an Internet telephony session, wherein the invite to the Internet telephony session includes an Internet address of a Internet telephony caller device. This embodiment of the method further comprises the steps retrieving a geographical location corresponding to the Internet address of the Internet telephony caller device, and collecting geographical location information associated with the retrieved geographical location.
Other systems, methods, features, and advantages of the present invention will be or become apparent to one with skill in the art upon examination of the following drawings and detailed description. It is intended that all such additional systems, methods, features, and advantages be included within this description, and be within the scope of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS Many aspects of the invention can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present invention. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views.
FIG. 1 is a block diagram showing an Internet telephony system of the prior art, in which a caller device and a callee device are engaged in Internet telephony.
FIGS. 2A and 2B are flowcharts showing one process associated with the system ofFIG. 1.
FIGS. 3A through 3E are flowcharts showing another process associated with the system ofFIG. 1.
FIG. 4 is a block diagram showing another Internet telephony system of the prior art, in which a caller device and a callee device are engaged in Internet telephony.
FIGS. 5A and 5B are flowcharts showing one process associated with the system ofFIG. 4.
FIG. 6 is a block diagram showing a telephony system in a public switched telephone network (PSTN), in which a caller telephone communicates with a callee telephone.
FIGS. 7A and 7B are flowcharts showing one process associated with the system ofFIG. 6.
FIG. 8 is a block diagram showing one embodiment of an Internet telephony system, in which a caller device and a callee device are configured to retrieve location information.
FIG. 9A is a block diagram showing the caller device ofFIG. 8 in greater detail.
FIG. 9B is a block diagram showing the callee device ofFIG. 8 in greater detail.
FIGS. 10A through 10D are flowcharts showing one embodiment of a process for obtaining location information in an Internet telephony system.
FIGS. 11A through 11G are flowcharts showing another embodiment of a process for obtaining location information in an Internet telephony system.
FIG. 12 is a block diagram showing another embodiment of an Internet telephony system, in which a caller device and a callee device are configured to retrieve location information.
FIGS. 13A through 13D are flowcharts showing one embodiment of a process for obtaining location information in an Internet telephony system.
FIG. 14 is a block diagram showing one embodiment of a PSTN telephony system, in which a PSTN caller and a PSTN callee may retrieve location information.
FIG. 15A is a block diagram showing the caller computer ofFIG. 14 in greater detail.
FIG. 15B is a block diagram showing the callee computer ofFIG. 14 in greater detail.
FIGS. 16A through 16D are flowcharts showing one embodiment of a process for obtaining location information in a PSTN telephony system.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Having summarized various aspects of the present invention, reference is now made in detail to the description of the embodiments as illustrated in the drawings. While the several embodiments are described in connection with these drawings, there is no intent to limit the invention to the embodiment or embodiments disclosed herein. On the contrary, the intent is to cover all alternatives, modifications, and equivalents included within the spirit and scope of the invention as defined by the appended claims.
FIG. 1 is a block diagram showing an Internet telephony system of the prior art, in which acaller device101 and acallee device105 are engaged in Internet telephony. As shown in the environment ofFIG. 1, an Internettelephony caller device101 establishes a session with an Internettelephony callee device105 through aproxy server103, which may be located within the Internet100. The Internettelephony caller device101 may be a general-purpose computer, a session initiation protocol (SIP) telephone, or any programmable device that is configured to engage in Internet telephony. Once the session has been established between the Internettelephony caller device101 and the Internettelephony callee device105 through theproxy server103, the Internettelephony caller device101 and the Internettelephony callee device105 may engage directly in the session without the assistance of theproxy server103. In a preferred embodiment, the session is established over theInternet100. A prior art method, which uses the system ofFIG. 1, is shown inFIGS. 2A and 2B.
FIGS. 2A and 2B are flowcharts showing one process associated with the system ofFIG. 1. In the embodiment ofFIG. 2A, the process begins when an Internettelephony caller device101 sends, instep204, an invite request having a universal resource identifier (URI) of a desired callee. The URI may be a hypertext markup language (HTML) address, a file transfer protocol (FTP) address, a session initiation protocol (SIP) address, an email address, or any number of other identifiers. In the specific embodiment ofFIG. 2A, the URI is a SIP address. The invite request sent204 by the Internettelephony caller device101 is received, instep206, by aproxy server103. The proxy server then contacts, instep208, a location service (not shown) using the received206 URI. If, as in the embodiment ofFIGS. 2A and 2B, the request is a non-forking request211 in which there is only one Internet protocol (IP) address located for the URI, then theproxy server103 obtains, instep210, the precise Internet address of the Internettelephony callee device105, and issues, instep212, an invite request to the obtained IP address. The issued212 invite request is received, in step214, by the Internettelephony callee device105 from theproxy server103.
At this point, the process continues inFIG. 2B, wherein the Internettelephony callee device105 returns, instep226, a success indication to theproxy server103. Theproxy server103 receives, instep228, the success indication from the Internettelephony callee device105, and relays, instep230, the success indication to the Internettelephony caller device101. The relayed230 success indication is received instep232 by the Internettelephony caller device101, which issues, in step234, an acknowledgement of receipt, and transmits, instep236, the acknowledgement to theproxy server103. Theproxy server103 receives, instep238, the acknowledgement from thecaller device101, and forwards, instep240, the acknowledgement to the Internettelephony callee device105. The Internettelephony callee device105 receives, instep242, the acknowledgement from theproxy server103, thereby establishing a session between the Internettelephony caller device101 and the Internettelephony callee device105. Thus, as shown in the embodiment ofFIGS. 2A and 2B, once the SIP session has been established between the Internettelephony caller device101 and the Internettelephony callee device105, a caller and a callee may freely dialogue using the established session.
WhileFIGS. 2A and 2B describe a process that is specific to SIP, it will be clear to one of ordinary skill in the art that other well-known Internet telephony sessions may be established using similar procedures. Additionally, while the session is described in terms ofInternet telephony devices101,105, it will be clear to one of ordinary skill in the art that theInternet telephony devices101,105 may be general-purpose computers, SIP telephones, or any programmable device configured to engage in Internet telephony. Furthermore, since the process associated with a non-forking request211 is described in detail in RFC 2543, further discussion of the process is omitted here. In any event, it can be seen from the process ofFIGS. 2A and 2B that, while the Internettelephony caller device101 has knowledge of the IP address of the Internettelephony callee device105, and vice versa, neither the Internettelephony caller device101 nor the Internettelephony callee device105 has much more information than the IP address.
FIGS. 3A through 3E are flowcharts showing another process associated with the system ofFIG. 1. Unlike the process described with reference toFIGS. 2A and 2B, which describe a non-forking request211, the process ofFIGS. 3A through 3E describe method steps associated with a parallel forking proxy312. In this sense, rather than having a single IP address associated with the callee URI, the process ofFIGS. 3A through 3E addresses a situation in which multiple IP addresses are associated with the callee URI. As such, the process begins with an Internettelephony caller device101 sending, instep304, an invite request, which has a URI of a callee. The invite request having the URI is received, instep306, by aproxy server103, which contacts, instep308, a location service (not shown) using the received306 URI. Theproxy server103 then obtains, instep310, the precise Internet addresses of the Internettelephony callee device105 from the location service. Since the process ofFIGS. 3A through 3E relate to a situation in which multiple IP addresses are associated with the URI, theproxy server103 issues parallel forking requests312. For purposes of illustration, this may be seen as theproxy server103 issuing, instep314, an invite request to the first obtained310 Internet address, and determining, instep316, whether or not invitations have been issued for all obtained310 IP addresses. If it is determined316 that not all invite requests have been issued, then the proxy server issues, instep318, another invite request to the next obtained310 IP address, and again determines316 whether or not invitations have been issued for all obtained310 IP addresses. If, on the other hand, it is determined316 that all invite requests have been issued, then the process continues toFIG. 3B.
FIG. 3B shows an interchange between the Internettelephony callee device105 and theproxy server103 for a parallel forking proxy312. While only one Internettelephony callee device105 is shown for simplicity, it will be clear to one of ordinary skill in the art that an Internettelephony callee device105 at each of the obtained310 IP addresses function similarly to acknowledge or reject the invite request. As such, once all invite requests have been issued, each of the Internet telephony callee devices305 receives, instep323, an invite request. Upon receiving323 the invite request, it is determined, instep324, whether or not the Internettelephony callee device105 is logged on (i.e., present) on theInternet100. If it is determined324 that the Internettelephony callee device105 is not logged on, then a not found response is returned, instep326, to theproxy server103, which acknowledges, instep328, the not found response from the Internettelephony callee device105. However, if it is determined324 that the Internettelephony callee device105 is logged on, then a success indication is returned, instep330, to theproxy server103. Thus, if multiple IP addresses return success indications, then theproxy server103 receives, in step332, multiple success indications from each of the logged-on Internettelephony callee devices105, and relays, in step334, the success indications to the Internettelephony caller device101, and the process continues inFIG. 3C.
As shown inFIG. 3C, the Internettelephony caller device101 receives, instep340, the first success indication from theproxy server103, and issues, instep342, an acknowledgement of the receipt of the success indication. The Internettelephony caller device101 then transmits, in step344, the issued342 acknowledgement to theproxy server103, and determines, instep346, whether or not there are additional success indications. If it is determined346 that there are additional success indications, then the Internettelephony caller device101 receives, instep350, the next success indication from theproxy server103, and the process repeats from the issuingstep342 until all success indications have been received. If, on the other hand, it is determined346 that there are no additional success indications, then the Internettelephony caller device101 determines, instep348, whether or not only one success indication was received. If only one success indication was received by the Internettelephony caller device101, then the process continues inFIG. 3D. However, if more than one success indication was received by the Internettelephony caller device101, then the process continues inFIG. 3E.
FIG. 3D shows establishment of a SIP session when only one success indication is received by the Internettelephony caller device101. Since, inFIG. 3D, only one acknowledgement is issued342 by the Internettelephony caller device101, theproxy server103 receives, instep356, the acknowledgement, and forwards, instep358, the acknowledgement to the Internettelephony callee device105, which receives, instep360, the acknowledgement from theproxy server103, thereby establishing a session between the Internettelephony caller device101 and the Internettelephony callee device105. Once the session has been established, the caller and the callee are free to dialogue using the established session.
FIG. 3E shows establishment of a SIP session when multiple success indications are received by the Internettelephony caller device101. Since multiple acknowledgements have been issued342 by the Internettelephony caller device101, theproxy server103 receives, instep366, multiple acknowledgements. The multiple acknowledgements are then forwarded, instep368, to each of the Internettelephony callee devices105 that are logged on. Each of the Internettelephony callee device105 receives, instep370, the acknowledgement from theproxy server103, at which point multiple session are established between the Internettelephony caller device101 and the multiple Internettelephony callee devices105 that are logged on. A caller at the Internettelephony caller device101 may further determine, instep372, which of the multiple established sessions is the desired session, and disconnect, in step374, all of the undesired sessions, thereby continuing the session with only the desired callee at the desired Internettelephony callee device105.
WhileFIGS. 3A through 3E describe a process that is specific to SIP, it will be clear to one of ordinary skill in the art that other well-known Internet telephony sessions may be established using similar procedures. Additionally, while the session is described in terms ofInternet telephony devices101,105, it will be clear to one of ordinary skill in the art that theInternet telephony devices101,105 may be general-purpose computers, SIP telephones, or any programmable device configured to engage in Internet telephony. Furthermore, since the process associated with a parallel forking requests312 is described in detail in RFC 2543, further discussion of the process is omitted here. In any event, it can be seen from the process ofFIGS. 3A through 3E that, while the Internettelephony caller device101 again has knowledge of the IP address of the Internettelephony callee device105, and vice versa, neither the Internettelephony caller device101 nor the Internettelephony callee device105 has much more information than the IP address.
FIG. 4 is a block diagram showing another Internet telephony system of the prior art, in which an Internettelephony caller device101 and an Internettelephony callee device105 are engaged in Internet telephony. As shown in the environment ofFIG. 4, an Internettelephony caller device101 establishes a session with an Internettelephony callee device105 by using aredirect server401, which may be located within theInternet100. Again, the Internettelephony caller device101 may be a general-purpose computer, a SIP telephone, or any programmable device that is configured to engage in Internet telephony. Once an IP address of the Internettelephony callee device105 has been obtained by the Internettelephony caller device101 from theredirect server401, the Internettelephony caller device101 may establish a session with the Internettelephony callee device105. In a preferred embodiment, the session is established over theInternet100. A prior art method, which uses the system ofFIG. 4, is shown inFIGS. 5A and 5B.
FIGS. 5A and 5B are flowcharts showing one process associated with the system ofFIG. 4. In the embodiment ofFIG. 5A, the process begins when an Internettelephony caller device101 sends, instep504, an invite request having a URI of a desired callee. The URI may be a HTML address, a FTP address, a SIP address, an email address, or any number of other identifiers. In the specific embodiment ofFIG. 5A, the URI is a SIP address. The invite request sent504 by the Internettelephony caller device101 is received, in step506, by aredirect server401. Theredirect server401 contacts, instep508, a location service (not shown) using the URI in the received506 invite request. A precise IP address of theInternet callee device105 is then obtained, instep510, from the location service, and the obtained IP address is returned, in step512, to the Internettelephony caller device101. The Internettelephony caller device101 receives, in step514, the obtained Internet address from theredirect server401, and issues, instep516, an acknowledgement of the receipt of the IP address. The acknowledgement is then transmitted, instep518, by the Internettelephony caller device101 to theredirect server401. Additionally, the Internettelephony caller device101 sends, instep522, an invite request to the obtained IP address, which is assigned to an Internettelephony callee device105. The Internettelephony callee device105 receives, instep524, the invite request from the Internettelephony caller device101, and the process continues inFIG. 5B.
As shown inFIG. 5B, once the invite request has been received524, the Internettelephony callee device105 returns, instep534, a success indication to the Internettelephony caller device101. The Internettelephony caller device101 receives, instep536, the success indication from the Internettelephony callee device105, and issues, in step538, an acknowledgement of the receipt of the success indication. The acknowledgement is then transmitted, in step540, from the Internettelephony caller device101 to the Internettelephony callee device105. The Internettelephony callee device105 receives, instep542, the acknowledgement from the Internettelephony caller device101, thereby establishing a session with the Internettelephony caller device101. Thus, as shown in the embodiment ofFIGS. 5A and 5B, once the SIP session has been established between the Internettelephony caller device101 and the Internettelephony callee device105, a caller and a callee may freely dialogue using the established session.
WhileFIGS. 5A and 5B describe a process that is specific to SIP, it will be clear to one of ordinary skill in the art that other well-known Internet telephony sessions may be established using similar procedures. Additionally, while the session is described in terms ofInternet telephony devices101,105, it will be clear to one of ordinary skill in the art that theInternet telephony devices101,105 may be general-purpose computers, SIP telephones, or any programmable device configured to engage in Internet telephony. Furthermore, since the process associated with theredirect server401 is described in detail in RFC 2543, further discussion of the process is omitted here. In any event, it can be seen from the process ofFIGS. 5A and 5B that, while the Internettelephony caller device101 again has knowledge of the IP address of the Internettelephony callee device105, and vice versa, neither the Internettelephony caller device101 nor the Internettelephony callee device105 has much more information than the IP address.
While several embodiments of Internet telephony sessions have been shown inFIGS. 1 through 5B to illustrate the deficiency associated with Internet telephony, similar deficiencies exist in public switched telephone network (PSTN) since current systems provide very little information other than caller identification. This deficiency is illustrated throughFIGS. 6, 7A, and7B.
FIG. 6 is a block diagram showing a prior-art PSTN telephony system, in which aPSTN caller telephone601 communicates with aPSTN callee telephone611. Since PSTN telephony systems are well known, only a cursory discussion of PSTN is presented with reference toFIG. 6. As shown inFIG. 6, aPSTN caller telephone601 and aPSTN callee telephone611 are configured to communicate with each other through aPSTN600. ThePSTN600 includes a caller service switching point (SSP)603, which is configured to connect both outgoing and incoming calls to thePSTN caller telephone603 through thePSTN600. ThePSTN600 also includes acallee SSP607, which is similarly configured to connect outgoing and incoming calls to the PSTN callee telephone613. Both thecaller SSP603 and thecallee SSP607 are configured to communicate with a service control point (SCP)605, which, as is well-known, performs a variety of advanced intelligent network (AIN) functions including area number calling service, disaster recovery service, do not disturb service, and 5-digit extension dialing service, etc. A broad overview of the system ofFIG. 6 may begin with a caller dialing a telephone number using thePSTN caller telephone603. The dialed call is processed by thecaller SSP603, which contacts theSCP605 for further call processing. TheSCP605 contacts acallee SSP607 with a connection request in order to connect the call from the caller. Thecallee SSP607 accepts the connection request and connects the call through to thePSTN callee telephone611.
FIGS. 7A and 7B are flowcharts showing one process associated with the prior-art system ofFIG. 6. Since call connection in aPSTN600 are well known, only an abridged description is presented with reference toFIGS. 7A and 7B. Specifically, the example ofFIGS. 7A and 7B shows execution of an arbitrary advanced intelligent network (AIN) instruction using a dialed feature code. As shown inFIG. 7A, a PSTN caller telephone receives, in step702, a feature code. A telephone number is then dialed, in step704, and a callerservice switching point603 receives, instep706, the dialed number with the feature code. Upon receiving706 the dialed number with the feature code, the callerservice switching point603 issues, instep708, a query to theservice control point605. Theservice control point605 receives, instep710, the query from the service switching point, and issues, in step712, an instruction corresponding to the feature code. In response to the issued712 instruction, theservice control point605 executes, instep714, an AIN function corresponding to the feature code. Examples of AIN functions, which are well known in the art, include area number calling service, disaster recovery service, do not disturb service, five digit extension dialing service, etc. Upon executing714, the AIN function corresponding to the feature code, theservice control point605 instructs, in step716, the caller service switching point to continue the call processing. The caller service switching point receives, instep718, a continue processing instruction from theservice control point605, and the process continues inFIG. 7B.
As shown inFIG. 7B, once the callerservice switching point603 receives718 the continue instruction, the callerservice switching point603 issues, in step724, a connection request to the caller service switching point. The calleeservice switching point609 receives, in step726, the connection request from the caller service switching point and accepts, instep728, the connection request. Once the connection request has been accepted728, a call is connected instep730, between thePSTN callee telephone611 and thePSTN caller telephone601. Thus, as shown in the embodiment ofFIGS. 7A and 7B, once the PSTN telephone call has been established between thePSTN callee telephone611 and thePSTN caller telephone601, a callee and a caller may freely dialogue using the established call through thePSTN600.
As seen fromFIGS. 7A and 7B, while a callee may know the caller's telephone number through a mechanism such as caller ID, and the caller may know the callee's telephone number to which the caller has dialed, very little additional information is available to either the callee or the caller during the process outlined inFIGS. 7A and 7B.
FIG. 8 is a block diagram showing one embodiment of an Internet telephony system, in which an Internet telephony caller device having locationinformation retrieval capabilities801 and an Internet telephony callee device having locationinformation retrieval capabilities805 are in communication with each other over theInternet100. The Internet telephony caller device having locationinformation retrieval capabilities801 may be a general-purpose computer, a session initiation protocol (SIP) telephone, or any programmable device that is configured to engage in Internet telephony. For simplicity, the Internet telephony caller device having locationinformation retrieval capabilities801 is referred to hereinafter as a location-information-retrievingcaller device801. Similarly, the Internet telephony callee device having locationinformation retrieval capabilities805 may also be a general-purpose computer, a session initiation protocol (SIP) telephone, or any programmable device that is configured to engage in Internet telephony. Again, for simplicity, the Internet telephony callee device having locationinformation retrieval capabilities805 is referred to hereinafter as a location-information-retrievingcallee device805.
In addition to the location-information-retrievingcaller device801 and location-information-retrievingcallee device805, the embodiment ofFIG. 8 includes aproxy server103, aninformation server803, and an Internetaddress location database807, which are, preferably, located within theInternet100. A broad overview of the operation begins with the location-information-retrievingcaller device801 initiating a session with the location-information-retrievingcallee device805. In the embodiment ofFIG. 8, aproxy server103 is used to initiate the session. During the initiation of the session, theproxy server103 relays the IP address of the location-information-retrievingcallee device805 to the location-information-retrievingcaller device801, and, also, relays the IP address of the location-information-retrievingcaller device801 to the location-information-retrievingcallee device805. Thus, as the session is being initiated, both the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805 have knowledge of the other's IP address. Once the location-information-retrievingcaller device801 knows the IP address of the location-information-retrievingcallee device805, the location-information-retrievingcaller device801 accesses the Internetaddress location database807 to obtain a geographical location associated with the IP address of the location-information-retrievingcallee device805. The obtained geographical location is then used to further retrieve geographical location information associated with the location-information-retrievingcallee device805 from aninformation server803. Similarly, once the location-information-retrievingcallee device805 knows the IP address of the location-information-retrievingcaller device801, the location-information-retrievingcallee device805 accesses the Internetaddress location database807 to obtain a geographical location associated with the IP address of the location-information-retrievingcaller device801. The obtained geographical location is then used to further retrieve geographical location information associated with the location-information-retrievingcaller device801 from theinformation server803. Theinformation server803 has various information related to geographic locations, such as local time, local weather reports, local news, local sporting events, etc. for any given geographical location. Thus, theinformation server803 may comprise a plurality of databases (not shown) such as Internet servers for weather (e.g., www.weather.com, etc.), for sports (e.g., www.espn.com, etc.), for news (e.g., www.cnn.com, etc.), or a plethora of other Internet accessible databases. Alternatively, theinformation server803 may be a dedicated server or system configured to locally store all of the geographical location information. Thus, either the location-information-retrievingcaller device801 or the location-information-retrievingcallee device805 may access theinformation server803 to obtain information associated with a specific geographical location.
An embodiment of the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805 are shown in greater detail inFIGS. 9A and 9B, respectively.
FIG. 9A is a block diagram showing the location-information-retrievingcaller device801 ofFIG. 8 in greater detail. As shown inFIG. 9A, the location-information-retrievingcaller device801 comprises anInternet telephony logic930, which may include any hardware or software necessary to engage in Internet telephony. Since hardware and software configured for Internet telephony are well known, further discussion of Internet telephony hardware and software are omitted here. The location-information-retrievingcaller device801 also comprises aninput device918, which may be a computer keyboard, a mouse, a numeric keypad, or any number of well-known input peripheral devices. Additionally, the location-information-retrievingcaller device801 comprisesinformation collection logic922, which includes a list ofitems928 andselection logic924. The list ofitems928 may be a list showing available information for a specific geographical location, such as local time, local weather reports, local sporting events, local news, etc. from which a user may select desired items. For example, if a user desires to only find out the local news and local weather report for a given location, then the user may select only the local news and local weather report from the list of items. In this sense, theinput device918 may be used to input a user's selection. The selecteditems930 may be stored in theinformation collection logic922 for later use. Since systems and methods for selecting items from a list is well-known in the art, further discussion of the selection of the items is omitted here.
In addition to theinput device918 and theinformation collection logic922, the location-information-retrievingcaller device801 further comprises geographicallocation retrieval logic902, aninterface912 having areceiver914 and atransmitter916, and adisplay unit926. Theinterface912 is configured to receive information via thereceiver914 and transmit information via thetransmitter916. In one embodiment, theinterface912 receives the geographical location from thelocation server1407, as well as the geographical location information from theinformation server803. The geographicallocation retrieval logic902 retrieves and stores a specific geographical location from thelocation server1407. This information is used by theinformation collection logic922 during the retrieval of geographical location information associated with the callee's location. Once the desired information has been collected by theinformation collection logic922, the collected information may be displayed on thedisplay unit926. As such, thedisplay unit926 may be a computer monitor or any number of known display devices.
FIG. 9B is a block diagram showing the location-information-retrievingcallee device805 ofFIG. 8 in greater detail. Since, in this embodiment, the operation of the location-information-retrievingcallee device805 is similar to the operation of the location-information-retrievingcaller device801, the components of location-information-retrievingcallee device805 are similar to the components of location-information-retrievingcaller device801 ofFIG. 9A. As shown inFIG. 9B, the location-information-retrievingcallee device805 comprisesInternet telephony logic930 permits the location-information-retrievingcallee device805 to engage in Internet telephony. Since hardware and software for Internet telephony is well known, further discussion of Internet telephony hardware and software is omitted here. The location-information-retrievingcallee device805 also comprises aninput device918, which may be a computer keyboard, a mouse, a numeric keypad, or any number of well-known input peripheral devices. Additionally, the location-information-retrievingcallee device805 comprisesinformation collection logic922, which includes a list ofitems928 andselection logic924. Similar toFIG. 9A, the list ofitems928 may be a list showing available information for a specific geographical location, such as local time, local weather reports, local sporting events, local news, etc. from which a user may select desired items. For example, if a user desires to only find out the local news and local weather report for a given location, then the user may select only the local news and local weather report from the list of items. In this sense, theinput device918 may be used to input a user's selection. The selecteditems930 may be stored in theinformation collection logic922 for later use. Since systems and methods for selecting items from a list is well-known in the art, further discussion of the selection of the items is omitted here.
In addition to theinput device918 and theinformation collection logic922, the location-information-retrievingcallee device805 further comprises geographicallocation retrieval logic902, aninterface912 having areceiver914 and atransmitter916, and adisplay unit926. Theinterface912 is configured to receive information via thereceiver914 and transmit information via thetransmitter916. In one embodiment, theinterface912 receives the geographical location from thelocation server1407, as well as the geographical location information from theinformation server803. The geographicallocation retrieval logic902 retrieves and stores a specific geographical location from thelocation server1407. This information is used by theinformation collection logic922 during the retrieval of geographical location information associated with the caller's location. Once the desired information has been collected by theinformation collection logic922, the collected information may be displayed on thedisplay unit926. As such, thedisplay unit926 may be a computer monitor or any number of known display devices.
Having described embodiments of systems for retrieving geographical location information, several embodiments of methods associated with the retrieval of geographical location information are shown inFIGS. 10A through 11G.
FIGS. 10A through 10D are flowcharts showing one embodiment of the process for obtaining location information in an internet telephony system, such as one shown inFIG. 8. As shown inFIG. 10A, the process begins when an internet telephony caller device having locationinformation retrieval capabilities801 sends, instep1004, an invite request having a URI. Aproxy server103 receives, instep1006, the invite request having the URI, and contact, instep1008, a location service (not shown) using the URI. The URI may be an HTML address, an FTP address, an SIP address, an email address, or any number of other identifiers used on the internet. If, as in the embodiment ofFIGS. 10A through 10D, the request is a non-forking request1011, in which there is only one IP address located for the URI, then theproxy server103 obtains, in step1010, a precise internet address of the Internet telephony callee device, and issues, instep1012, an invite request to the obtained internet address. The issued1012 invite request is then received, in step1014, by the internet telephony callee device having locationinformation retrieval capabilities805 from theproxy server103, and the process here continues toFIG. 10B. Additionally, the obtained internet address in relayed, instep1018, to the internet telephony caller device having locationinformation retrieval capabilities801. The internet telephony caller device having locationinformation retrieval capabilities801 receives, instep1020, the internet address from theproxy server103, and the process here continues inFIG. 10C.
Continuing inFIG. 10B, once the internettelephony callee device805 receives1014 the invite request, the internettelephony callee device805 returns andstep1026, a success indication to theproxy server103. Upon returning1026 the success indication to theproxy server103, the geographical location information retrieval process continues inFIGS. 10D, while the session initiation process continues inFIG. 10B.
The session initiation process continues inFIG. 10B with theproxy server103 receiving, instep1028, the success indication, and relaying, instep1030, the success indication to the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 receives, instep1032, the success indication from theproxy server103, and issues, instep1034, an acknowledgement of the receipt of the success indication. The issued1034 acknowledgement is then transmitted, instep1036, to theproxy server103 by the location-information-retrievingcaller device801. Theproxy server103 receives, instep1038, the acknowledgement from the location-information-retrievingcaller device801, and forwards, instep1040, the acknowledgement to the location-information-retrievingcallee device805. The location-information-retrievingcallee device805 receives, instep1042, the acknowledgement from theproxy server103, thereby establishing a session between the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805 over theInternet100.
FIG. 10C is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcaller device801 once the location-information-retrievingcaller device801 has the IP address of the location-information-retrievingcallee device805. As shown inFIG. 10C, once the IP address of the location-information-retrievingcallee device805 is received1020 by the location-information-retrievingcaller device801, the location-information-retrievingcaller device801 retrieves, instep1053, the geographical location of the location-information-retrievingcallee device805 from theinformation server803. In a preferred embodiment, theretrieval1053 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9A). Once the geographical location has been retrieved1053, the location-information-retrievingcaller device801 requests, instep1054, information that is related to the retrieved1053 geographical location from theinformation server803. In a preferred embodiment, the caller has already inputted a list of selecteditems926 into the location-information-retrievingcaller device801. Thus, only the selecteditems926 are requested by the location-information-retrievingcaller device801. Theinformation server803 receives, instep1055, the request, and obtains, instep1056, the requested information. The obtained1056 information is then transmitted, instep1057, from theinformation server803 to the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 receives, instep1058, the requested information, and displays, instep1059, the received information on a display926 (FIG. 9A).
FIG. 10D is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcallee device805 once the location-information-retrievingcallee device805 has the IP address of the location-information-retrievingcaller device801. As shown inFIG. 10D, once the IP address of the location-information-retrievingcaller device801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned1026), the location-information-retrievingcallee device805 retrieves, instep1073, the geographical location of the location-information-retrievingcaller device801 from theinformation server803. In a preferred embodiment, theretrieval1073 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9B). Once the geographical location has been retrieved1073, the location-information-retrievingcallee device805 requests, instep1074, information that is related to the retrieved1073 geographical location from theinformation server803. In a preferred embodiment, the callee has already inputted a list of selecteditems926 into the location-information-retrievingcallee device805. Thus, only the selecteditems926 are requested by the location-information-retrievingcallee device805. Theinformation server803 receives, instep1075, the request, and obtains, instep1076, the requested information. The obtained1076 information is then transmitted, instep1077, from theinformation server803 to the location-information-retrievingcallee device805. The location-information-retrievingcallee device805 receives, instep1078, the requested information, and displays, instep1079, the received information on a display926 (FIG. 9B).
As shown byFIGS. 10A through 10D, the location-information-retrievingcaller device801 now has local geographical information associated with the location-information-retrievingcallee device805. Similarly, the location-information-retrievingcallee device805 has local geographical information associated with the location-information-retrievingcaller device801. In this sense, the information related to the specific geographic location of both the callee and the caller may facilitate dialogue between the callee and the caller.
FIGS. 11A through 11G are flowcharts showing another embodiment of a process for obtaining location information in an Internet telephony system. In the embodiment ofFIGS. 11A through 11G, an example of parellel forking requests is shown. As such, the process begins when a location-information-retrievingcaller device801 sends, instep1104, an invite request having a URI of a callee to aproxy server103. Theproxy server103 receives, instep1106, the invite request having the URI, and contacts, instep1108, a location service (not shown) using the URI. Upon contacting the location service (not shown), theproxy server103 obtains, instep1110, precise Internet addresses of multiple location-information-retrievingcallee devices805 that are associated with the URI. Once the precise Internet addresses are obtained1110, theproxy server103 issues, instep1114, an invite request to the first obtained Internet address, and determines, instep1115, whether or not invitations have been issued to all of the obtained IP addresses. If it has been determined1115 that not all invitations have been issued, then theproxy server103 issues, instep1116, an invite request to the next obtained Internet address, and again determines1115 whether or not all invitations have been issued. Once invitations have been issued to all obtained IP addresses, the process continues inFIG. 11B.
FIG. 11B is a flowchart showing a continuation of the process fromFIG. 11A. While only one location-information-retrievingcallee device805 is shown for convenience, it will be clear to one of ordinary skill in the art that, for parallel forking requests1112, multiple location-information-retrievingcallee devices805 receive invitations. Hence, while only one location-information-retrievingcallee device805 is shown, it should be evident that similar processes occur at each location-information-retrievingcallee device805 that receives an invite request. Continuing, once theproxy server103 issues all invite requests, each location-information-retrievingcallee device805 receives, instep1122, the invite request from theproxy server103, and it is determined, instep1123, whether or not the location-information-retrievingcallee device805 is logged onto the Internet. If it is determined1123 that the location-information-retrievingcallee device805 is not logged onto the Internet, then a not found response is returned, instep1124, to theproxy server103, which acknowledges, instep1126, the not found response. If, on the other hand, the location-information-retrievingcallee device805 is logged onto the Internet, then a success indication is returned, instep1128, to theproxy server103. At this point, since the location-information-retrievingcallee device805 has knowledge of the IP address of the location-information-retrievingcaller device801 from the invite request, the geographical location information retrieval process continues inFIG. 11G. Additionally, once the success indication has been returned1128 to theproxy server103, theproxy server103 receives, instep1130, the success indication from each of the location-information-retrievingcallee devices805 that are logged onto the Internet and relays, instep1134, the success indication to the location-information-retrievingcaller device801, and the session initiation process continues inFIG. 11C.
As shown inFIG. 11C, the location-information-retrievingcaller device801 receives, instep1138, the first success indication from theproxy server103, and issues, instep1140, an acknowledgement of the receipt of the success indication. The acknowledgement is then transmitted, instep1142, to theproxy server103. The location-information-retrievingcaller device801 then determines, instep1143, whether or not there are additional success indications. If the location-information-retrievingcaller device801 determines1143 that there are additional success indications, then the location-information-retrievingcaller device801 receives, in step1144, the next success indication from theproxy server103, and repeats the process until all success indications have been received1144 and acknowledged1140. When it is determined1143 that there are no additional success indications, the location-information-retrievingcaller device801 further determines, instep1145, whether or not only one success indication has been received. If only one success indication has been received, then the process continues toFIG. 11D. However, if more than one success indication has been received, then the process continues toFIG. 11E.
FIG. 11D shows the continuation of the process when only one success indication has been received. As shown here, if only one success indication has been received, the location-information-retrievingcaller device801 may obtain, in step1150 a precise1P address of the location-information-retrievingcallee device805. Once the precise IP address of the location-information-retrievingcallee device805 has been obtained1150, the geographical location information retrieval process continues inFIG. 11F. Additionally, once the single success indication has been received1138 and an acknowledgement has been issued1140, theproxy server103 receives, instep1152, the acknowledgement from the location-information-retrievingcaller device801. The acknowledgement is then forwarded to the location-information-retrievingcallee device805 by theproxy server103. The location-information-retrievingcallee device805 receives the acknowledgement from theproxy server103, thereby establishing a session between the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805. At this point, the location-information-retrievingcallee device805 may obtain, instep1158, the precise IP address of the location-information-retrievingcaller device801 from the established session. Once the precise IP address of the location-information-retrievingcaller device801 is known by the location-information-retrievingcallee device805, the geographical location information retrieval process, from the perspective of the location-information-retrieving callee device location-information-retrievingcallee device805, continues inFIG. 11G.
FIG. 11E shows the continuation of the process fromFIG. 11C when more than one success indication has been received. As shown here, theproxy server103 receives, instep1166, multiple acknowledgements from the801, and forwards, instep1168, the acknowledgements to each of the location-information-retrievingcallee devices805 that are logged on to the Internet. Each of the location-information-retrievingcallee devices805 receives, instep1170, its respective acknowledgement from theproxy server103, thereby establishing multiple sessions between the various location-information-retrievingcallee devices805 and the location-information-retrievingcaller device801. The caller at the location-information-retrievingcaller device801 then determines, in step1172, which of the multiple established session is the desired session, and all undesired sessions are then disconnected, instep1176. Thus, at this point, only one session remains between the location-information-retrievingcallee device805 and the location-information-retrievingcaller device801, thereby permitting the location-information-retrievingcaller device801 to obtain, in step1174, a precise IP address of the desired location-information-retrievingcallee device805. Once the precise IP address has been obtained1174, the geographical location information retrieval process, from the perspective of the location-information-retrievingcaller device801, continues inFIG. 11F.
FIG. 11F is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcaller device801 once the IP address of the location-information-retrievingcallee device805 is known by the location-information-retrievingcaller device801. As shown inFIG. 11F, the location-information-retrievingcaller device801 retrieves, instep1179, the geographical location of the location-information-retrievingcallee device805 from theinformation server803. In a preferred embodiment, theretrieval1179 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9A). Once the geographical location has been retrieved1179, the location-information-retrievingcaller device801 requests, instep1180, information that is related to the retrieved1179 geographical location from theinformation server803. In a preferred embodiment, the caller has already inputted a list of selecteditems926 into the location-information-retrievingcaller device801. Thus, only the selecteditems926 are requested by the location-information-retrievingcaller device801. Theinformation server803 receives, instep1181, the request, and obtains, instep1182, the requested information. The obtained1182 information is then transmitted, instep1183, from theinformation server803 to the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 receives, instep1184, the requested information, and displays, instep1185, the received information on a display926 (FIG. 9A).
FIG. 11G is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcallee device805 once the location-information-retrievingcallee device805 has the IP address of the location-information-retrievingcaller device801. As shown inFIG. 11G, once the IP address of the location-information-retrievingcaller device801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned), the location-information-retrievingcallee device805 retrieves, instep1189, the geographical location of the location-information-retrievingcaller device801 from theinformation server803. In a preferred embodiment, theretrieval1189 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9B). Once the geographical location has been retrieved1189, the location-information-retrievingcallee device805 requests, instep1190, information that is related to the retrieved1073 geographical location from theinformation server803. In a preferred embodiment, the callee has already inputted a list of selecteditems926 into the location-information-retrievingcallee device805. Thus, only the selecteditems926 are requested by the location-information-retrievingcallee device805. Theinformation server803 receives, instep1191, the request, and obtains, instep1192, the requested information. The obtained1192 information is then transmitted, instep1193, from theinformation server803 to the location-information-retrievingcallee device805. The location-information-retrievingcallee device805 receives, instep1194, the requested information, and displays, instep1159, the received information on a display926 (FIG. 9B).
Similar to the embodiment ofFIGS. 10A through 10D, the location-information-retrievingcaller device801 ofFIGS. 11A through 11G now has local geographical information associated with the location-information-retrievingcallee device805. Similarly, the location-information-retrievingcallee device805 has local geographical information associated with the location-information-retrievingcaller device801. In this sense, the information related to the specific geographic location of both the callee and the caller may facilitate dialogue between the callee and the caller.
FIG. 12 is a block diagram showing another embodiment of an Internet telephony system in which a location-information-retrievingcaller device801 and a location-information-retrievingcallee device805 are in communication with each other over theInternet100. The embodiment ofFIG. 12 includes a location-information-retrievingcaller device801, a location-information-retrievingcallee device805, aredirect server401, aninformation server803, and an Internet address location database Internetaddress location database807. In a preferred embodiment, theinformation server803, and the Internetaddress location database807 are located within theInternet100. A broad overview of the operation begins with the location-information-retrievingcaller device801 initiating a session with the location-information-retrievingcallee device805. In the embodiment ofFIG. 12, aredirect server401 is used to initiate the session. During the initiation of the session, theredirect server401 relays the IP address of the location-information-retrievingcallee device805 to the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 then directly initiates a session with the location-information-retrievingcallee device805 using the IP address received from theredirect server401. Thus, as the session is being initiated, both the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805 have knowledge of the other's IP address. Once the location-information-retrievingcaller device801 knows the IP address of the location-information-retrievingcallee device805, the location-information-retrievingcaller device801 accesses the Internetaddress location database807 to obtain a geographical location associated with the IP address of the location-information-retrievingcallee device805. The obtained geographical location is then used to further retrieve geographical location information associated with the location-information-retrievingcallee device805 from aninformation server803. Similarly, once the location-information-retrievingcallee device805 knows the IP address of the location-information-retrievingcaller device801, the location-information-retrievingcallee device805 accesses the Internetaddress location database807 to obtain a geographical location associated with the IP address of the location-information-retrievingcaller device801. The obtained geographical location is then used to further retrieve geographical location information associated with the location-information-retrievingcaller device801 from theinformation server803. Theinformation server803 has various information related to geographic locations, such as local time, local weather reports, local news, local sporting events, etc. for any given geographical location. Thus, theinformation server803 may comprise a plurality of databases (not shown) such as Internet servers for weather (e.g., www.weather.com, etc.), for sports (e.g., www.espn.com, etc.), for news (e.g., www.cnn.com, etc.), or a plethora of other Internet accessible databases. Alternatively, theinformation server803 may be a dedicated server or system configured to locally store all of the geographical location information. Thus, either the location-information-retrievingcaller device801 or the location-information-retrievingcallee device805 may access theinformation server803 to obtain information associated with a specific geographical location.
FIGS. 13A through 13D are flowcharts showing one embodiment of a process for obtaining location information in the Internet telephony system ofFIG. 12. As shown inFIG. 13A, the process begins when an location-information-retrievingcaller device801 sends, in step1304, an invite request having a URI of a callee to aredirect server401. The redirect server receives, instep1306, the invite request having the URI, and contacts, in step1308, a location service (not shown) using the received TRI. Upon contacting the location service (not shown), theredirect server401 obtains, in step1310, a precise IP address of a location-information-retrievingcallee device805 using the URI. The IP address is returned to the location-information-retrievingcaller device801, which receives, instep1314, the IP address from theredirect server401. At this point, since the location-information-retrievingcaller device801 has knowledge of the IP address of the location-information-retrievingcallee device805, it may retrieve geographical location information related to the location-information-retrievingcallee device805. This is shown inFIG. 13C. Additionally, once the IP address has been received from theredirect server401, the location-information-retrievingcaller device801 issues, in step1316, an acknowledgement of the receipt of the IP address. The acknowledgement is transmitted, instep1318, to theredirect server401, which receives, instep1320, the acknowledgement from the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 then sends, in step1322, an invite request directly to the obtained IP address of the location-information-retrievingcallee device805, which is received, in step1324, by the location-information-retrievingcallee device805, and the initiation of the session continues inFIG. 13B.
Continuing withFIG. 13B, the location-information-retrievingcallee device805, upon receiving the invite request, returns, instep1334, a success indication to the location-information-retrievingcaller device801. At this point, the location-information-retrievingcallee device805 has knowledge of the IP address of the location-information-retrievingcaller device801 from the invite request, and, therefore, may initiate retrieval of geographical location information associated with the location-information-retrievingcaller device801. This is shown inFIG. 13D. The returned success indication is received, instep1336, by the location-information-retrievingcaller device801, which issues, instep1338, an acknowledgement of the receipt of the success indication. The acknowledgement is transmitted, instep1340, to the location-information-retrievingcallee device805, which receives, instep1342, the acknowledgement from the location-information-retrievingcaller device801, thereby establishing a session between the location-information-retrievingcaller device801 and the location-information-retrievingcallee device805.
FIG. 13C is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcaller device801 once the location-information-retrievingcaller device801 has the IP address of the location-information-retrievingcallee device805. As shown inFIG. 13C, once the IP address of the location-information-retrievingcallee device805 is received1314 by the location-information-retrievingcaller device801, the location-information-retrievingcaller device801 retrieves, instep1353, the geographical location of the location-information-retrievingcallee device805 from theinformation server803. In a preferred embodiment, theretrieval1353 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9A). Once the geographical location has been retrieved1353, the location-information-retrievingcaller device801 requests, instep1354, information that is related to the retrieved1353 geographical location from theinformation server803. In a preferred embodiment, the caller has already inputted a list of selecteditems926 into the location-information-retrievingcaller device801. Thus, only the selecteditems926 are requested by the location-information-retrievingcaller device801. Theinformation server803 receives, instep1355, the request, and obtains, instep1356, the requested information. The obtained1356 information is then transmitted, instep1357, from theinformation server803 to the location-information-retrievingcaller device801. The location-information-retrievingcaller device801 receives, instep1358, the requested information, and displays, instep1359, the received information on a display926 (FIG. 9A).
FIG. 13D is a flowchart showing one embodiment of a geographical location information retrieval process from the perspective of the location-information-retrievingcallee device805 once the location-information-retrievingcallee device805 has the IP address of the location-information-retrievingcaller device801. As shown inFIG. 13D, once the IP address of the location-information-retrievingcaller device801 is known by the location-information-retrieving callee device805 (e.g., after the success indication has been returned), the location-information-retrievingcallee device805 retrieves, instep1373, the geographical location of the location-information-retrievingcaller device801 from theinformation server803. In a preferred embodiment, theretrieval1373 of the geographical location is performed by the geographical location retrieval logic902 (FIG. 9B). Once the geographical location has been retrieved1373, the location-information-retrievingcallee device805 requests, instep1374, information that is related to the retrieved1373 geographical location from theinformation server803. In a preferred embodiment, the callee has already inputted a list of selecteditems926 into the location-information-retrievingcallee device805. Thus, only the selecteditems926 are requested by the location-information-retrievingcallee device805. Theinformation server803 receives, instep1375, the request, and obtains, instep1376, the requested information. The obtained1376 information is then transmitted, in step1377, from theinformation server803 to the location-information-retrievingcallee device805. The location-information-retrievingcallee device805 receives, instep1378, the requested information, and displays, instep1379, the received information on a display926 (FIG. 9B).
Having described several embodiments of systems and methods for retrieving geographical location information in an Internet telephony system, attention is now turned toFIGS. 14 through 16D, which show embodiments of a system and method for retrieving geographical location information in a PSTN telephony system.
FIG. 14 is a block diagram showing a PSTN telephony system, in which aPSTN caller telephone1403 and aPSTN callee telephone1413 are in communication with each other. As shown inFIG. 14, aPSTN caller site1401 and aPSTN callee site1411 are configured to communicate with each other through aPSTN600. ThePSTN caller site1401 includes aPSTN caller telephone1403 and a PSTNcaller computer system1405, while thePSTN callee site1411 includes aPSTN callee telephone1413 and a PSTNcallee computer system1415. ThePSTN600 includes a caller service switching point (SSP)603, which is configured to connect both outgoing and incoming calls to thePSTN caller telephone1403 through thePSTN600. ThePSTN600 also includes acallee SSP607, which is similarly configured to connect outgoing and incoming calls to thePSTN callee telephone1413. Both thecaller SSP603 and thecallee SSP607 are configured to communicate with a service control point (SCP)605, which, as is well-known, performs a variety of advanced intelligent network (AIN) functions including area number calling service, disaster recovery service, do not disturb service, and 5-digit extension dialing service, etc. In the embodiment ofFIG. 14, theSCP605 is configured to further execute part of the location information retrieval function. In this sense, theSCP605 communicates with alocation server1407 on theInternet100, which has information correlating telephone numbers with geographical locations. For example, thelocation server1407 may have information that correlates a telephone area code to a specific geographical location, thereby permitting look-up of a geographical location if a telephone area code is known. More specifically, if an area code is associated with a broad geographic region, then thelocation server1407 may have information that more specifically correlates a telephone number to, for example, a city or a county within the broad geographical region.
The operating environment shown inFIG. 14 also includes aninformation server803 located, preferably, in theInternet100. Theinformation server803 has various information related to geographic locations, such as local time, local weather reports, local news, local sporting events, etc. Theinformation server803 may comprise a plurality of databases (not shown) such as Internet servers for weather (e.g., www.weather.com, etc.), for sports (e.g., www.espn.com, etc.), for news (e.g., www.cnn.com, etc.), or a plethora of other Internet accessible databases. Alternatively, theinformation server803 may be a dedicated server or system configured to locally store all of the geographical location information. Thus, either a PSTNcaller computer system1405 or a PSTNcallee computer system1415 may access theinformation server803 to obtain information associated with a specific geographical location.
A broad overview of one embodiment of the operation of the system ofFIG. 14 may begin with a caller programming into the PSTN caller computer system1405 a list of selected items associated with a callee. Similarly, the callee may program into the PSTN callee computer system1415 a list of selected items associated with the caller. When the caller, who is logged on to theInternet100 at thePSTN caller site1401, dials a telephone number using thePSTN caller telephone1403, the dialed call is processed by thecaller SSP603, which contacts theSCP605 for further call processing. TheSCP605 contacts acallee SSP607 with a connection request in order to connect the call from the caller. Additionally, theSCP605 issues an instruction to alocation server1407 to correlate the dialed telephone number to a specific geographical location and forward the geographical location to the PSTNcaller computer system1405. Thelocation server1407 determines whether or not the PSTNcaller computer system1405 is logged on at thePSTN caller site1401, and if it is determined that the PSTNcaller computer system1405 is logged on, then thelocation server1407 correlates the dialed telephone number to a specific geographical location, and relays the geographical location to the PSTNcaller computer system1405. The PSTNcaller computer system1405 receives the geographical location, and accesses the information server802, which has information related to the geographical location, and retrieves the desired information. The retrieved information is displayed for the caller at thePSTN caller site1401.
During this time, thecallee SSP607 accepts the connection request and connects the call through to thePSTN callee telephone1413. At this point, theSCP605 further issues an instruction to alocation server1407 to correlate the caller's telephone number to a specific geographical location and forward the geographical location to the PSTNcallee computer system1415. Thelocation server1407 determines whether or not the PSTNcallee computer system1415 is logged on at thePSTN callee site1411, and if it is determined that the PSTNcallee computer system1415 is logged on, then thelocation server1407 correlates the caller's telephone number to a specific geographical location, and relays the geographical location to the PSTNcallee computer system1415. The PSTNcallee computer system1415 receives the geographical location, and accesses the information server802, which has information related to the geographical location, and retrieves the desired information. The retrieved information is displayed for the caller at thePSTN callee site1411. Specific embodiments of a PSTNcaller computer system1405 and a PSTNcallee computer system1415 are shown inFIGS. 15A and 15B, respectively.
FIG. 15A is a block diagram showing the PSTNcaller computer system1405 ofFIG. 14 in greater detail. As shown inFIG. 15A, the PSTNcaller computer system1405 comprises aninput device1518, which may be a computer keyboard, a mouse, a numeric keypad, or any number of well-known input peripheral devices. Additionally, the PSTNcaller computer system1405 comprisesinformation collection logic1522, which includes a list ofitems1528 andselection logic1524. The list ofitems1528 may be a list showing available information for a specific geographical location, such as local time, local weather reports, local sporting events, local news, etc. from which a user may select desired items. For example, if a user desires to only find out the local news and local weather report for a given location, then the user may select only the local news and local weather report from the list of items. In this sense, theinput device1518 may be used to input a user's selection. The selecteditems1530 may be stored in theinformation collection logic1522 for later use. Since systems and methods for selecting items from a list is well-known in the art, further discussion of the selection of the items is omitted here.
In addition to theinput device1518 and theinformation collection logic1522, the PSTNcaller computer system1415 further comprisesgeographical location logic1502, aninterface1512 having areceiver1514 and atransmitter1516, and adisplay unit1526. Theinterface1512 is configured to receive information via thereceiver1514 and transmit information via thetransmitter1516. In one embodiment, theinterface1512 receives the geographical location from thelocation server1407, as well as the geographical location information from theinformation server803. Thegeographical location logic1502 stores the specific geographical location that has been received from thelocation server1407. This information is used by theinformation collection logic1522 during the retrieval of geographical location information associated with the callee's location. Once the desired information has been collected by theinformation collection logic1522, the collected information may be displayed on the display unit. As such, thedisplay unit1526 may be a computer monitor or any number of known display devices.
FIG. 15B is a block diagram showing the PSTNcallee computer system1415 ofFIG. 14 in greater detail. Since, in this embodiment, the operation of the PSTNcallee computer system1415 is similar to the operation of the PSTNcaller computer system1405, the PSTNcallee computer system1415 is similar to the PSTNcaller computer system1405 ofFIG. 15A. As shown inFIG. 15B, the PSTNcallee computer system1415 comprises aninput device1518, which may be a computer keyboard, a mouse, a numeric keypad, or any number of well-known input peripheral devices. Additionally, the PSTNcallee computer system1415 comprisesinformation collection logic1522, which includes a list ofitems1528 andselection logic1524. Similar toFIG. 15A, the list ofitems1528 may be a list showing available information for a specific geographical location, such as local time, local weather reports, local sporting events, local news, etc. from which a user may select desired items. For example, if a user desires to only find out the local news and local weather report for a given location, then the user may select only the local news and local weather report from the list of items. In this sense, theinput device1518 may be used to input a user's selection. The selecteditems1530 may be stored in theinformation collection logic1522 for later use. Since systems and methods for selecting items from a list is well-known in the art, further discussion of the selection of the items is omitted here.
In addition to theinput device1518 and theinformation collection logic1522, the PSTNcallee computer system1415 further comprisesgeographical location logic1502, aninterface1512 having areceiver1514 and atransmitter1516, and adisplay unit1526. Theinterface1512 is configured to receive information via thereceiver1514 and transmit information via thetransmitter1516. In one embodiment, theinterface1512 receives the geographical location from thelocation server1407, as well as the geographical location information from theinformation server803. Thegeographical location logic1502 stores the specific geographical location that has been received from thelocation server1407. This information is used by theinformation collection logic1522 during the retrieval of geographical location information associated with the caller's location. Once the desired information has been collected by theinformation collection logic1522, the collected information may be displayed on the display unit. As such, thedisplay unit1526 may be a computer monitor or any number of known display devices.
Having described one embodiment of a PSTN telephony system having geographical location information retrieval capabilities, attention is turned toFIGS. 16A through 16D, which show one embodiment of a process for obtaining geographical location information in the PSTN telephony system ofFIGS. 14 through 15B.
FIGS. 16A through 16D are flowcharts showing one embodiment of a process for obtaining location information in a PSTN telephony system. In a preferred embodiment, as shown inFIG. 16A, the process begins when a feature code is entered, instep1602, and a telephone number is dialed, instep1606, at aPSTN caller telephone1403. In an alternative embodiment, the process may begin with the dialing1606 of the telephone number, and the information retrieval process may be disabled with theentry1604 of the feature code. In any event, in the preferred embodiment, once the feature code has been entered1604 and the the telephone number dialed1606, a caller service switching point (SSP)603 receives, instep1608, the dialed number with the feature code. Thecaller SSP603 issues, instep1610, a query having the dialed telephone number to the service control point (SCP)605, which receives, instep1612, the query having the dialed telephone number from thecaller SSP603. TheSCP605 instructs, instep1614, thecaller SSP603 to continue the call processing, and also issues, instep1620, an instruction to alocation server1407 to retrieve a geographical location correlated to the dialed telephone number. The instruction to continue call processing is received, instep1616, by thecaller SSP603, and the call processing continues inFIG. 16C. The issued1620 instruction to thelocation server1407 is received, instep1622, by thelocation server1407, which determines, instep1624, whether or not the caller is logged on at a PSTNcaller computer system1405 at thePSTN caller site1401. If it is determined that the caller is not logged on, then the retrieval of geographical location information is terminated, in step1626. If, on the other hand, it is determined1624 that the caller is logged on to a PSTNcaller computer system1405, then the geographical location information retrieval process continues inFIG. 16B.
FIG. 16B is a flowchart showing one embodiment of the geographical information retrieval process as seen from the perspective of the PSTN caller. Once thelocation server1407 has determined1624 that a caller is logged on to a PSTNcaller computer system1405, then thelocation server1407 correlates, instep1642, the dialed telephone number to a specific geographical location. In one embodiment, this may be done using a lookup table or another database that has telephone numbers correlated to geographical locations. Since databases correlating geographical locations with telephone numbers are well-known in the art, further discussion of the correlating of geographical locations with telephone numbers is omitted here. Once a geographical location has been correlated to the dialed telephone number, the geographical location is relayed, in step1644, by the location server to the PSTNcaller computer system1405. The PSTN caller computer system receives, instep1646, the geographical location using geographical location logic1502 (FIG. 15A), and issues, in step1648, an instruction for information associated with the geographical location using information collection logic1522 (FIG. 15A). Since, in a preferred embodiment, the process is executed by the PSTNcaller computer system1405 ofFIG. 15A, the PSTNcaller computer system1405 already has a list of selected items1528 (FIG. 15A) related to a geographical location, which the caller desires to collect. Hence, in the preferred embodiment, the issued1648 instruction includes the list of items (e.g., local time, local weather, local sports, local news, etc.) selected by the caller. Once the instruction has been issued1648 by the information collection logic1522 (FIG. 15A), theinformation server803 receives, in step1650, the instruction, and obtains, instep1652, the information associated with the specific geographical location. The obtained1654 information is then relayed, instep1654, to the PSTNcaller computer system1405, which receives, in step1656, the location information through the interface1512 (FIG. 15A) and displays, instep1658, the information for the caller using the display unit1526 (FIG. 15A).
During this time, the call connection process continues inFIG. 16C. Once the continue instruction has been received1616 by thecaller SSP603, thecaller SSP603 issues, instep1662, a connection request to thecallee SSP609. Thecallee SSP609 receives, instep1664, the connection request, which also includes the telephone number of thePSTN caller telephone1403. Thecallee SSP609 issues, instep1666, a query to theSCP605 using the telephone number of thePSTN caller telephone1403, and the query is received, instep1668, by theSCP605. TheSCP605 then instructs, instep1670, the callee SSP to continue the call processing, and also issues, instep1678, an instruction to thelocation server1407 for a geographical location that correlates to the telephone number of thePSTN caller telephone1403. Thecallee SSP609 receives, instep1672, the continue instruction from theSCP605, and accepts, in step1674, the connection request, thereby connecting, instep1676, the telephone call between thePSTN caller telephone1403 and thePSTN callee telephone1413.
While the call is being connected by thecallee SSP609, thelocation server1407 receives, instep1680, the instruction issued1678 by theSCP605. Upon receiving1680 the instruction, thelocation server1407 determines, instep1682, whether or not the callee is logged on at a PSTNcallee computer system1415. If it is determined1682 that the callee is not logged on, then the data retrieval process ends, in step1684. If, however, it is determined1682 that the callee is logged on, then the geographical location retrieval process continues inFIG. 16D.
FIG. 16D is a flowchart showing one embodiment of the geographical information retrieval process as seen from the perspective of the PSTN callee. Once thelocation server1407 has determined1682 that a callee is logged on to a PSTNcallee computer system1415, then thelocation server1407 correlates, instep1628, the telephone number of thePSTN caller telephone1403 to a specific geographical location. In one embodiment, this may be done using a lookup table or another database that has telephone numbers correlated to geographical locations. Since databases correlating geographical locations with telephone numbers are well-known in the art, further discussion of the correlating of geographical locations with telephone numbers is omitted here. Once a geographical location has been correlated to the telephone number of thePSTN caller telephone1403, the geographical location is relayed, instep1630, by thelocation server1407 to the PSTNcallee computer system1415. The PSTNcallee computer system1415 receives, in step1632, the geographical location using geographical location logic1502 (FIG. 15B), and issues, in step1634, an instruction for information associated with the geographical location using information collection logic1522 (FIG. 15B). Since, in a preferred embodiment, the process is executed by the PSTNcallee computer system1415 ofFIG. 15B, the PSTNcallee computer system1415 already has a list of selected items1528 (FIG. 15B) related to a geographical location, which the callee desires to collect. Hence, in the preferred embodiment, the issued1634 instruction includes the list of items (e.g., local time, local weather, local sports, local news, etc.) selected by the callee. Once the instruction has been issued1634 by the information collection logic1522 (FIG. 15B), theinformation server803 receives, instep1636, the instruction, and obtains, in step1686, the information associated with the specific geographical location. The obtained1686 information is then relayed, in step1688, to the PSTNcallee computer system1415, which receives, in step1690, the location information through the interface1512 (FIG. 15B) and displays, instep1692, the information for the callee using the display unit1526 (FIG. 15B).
The geographical location retrieval logic902 (FIGS. 9A and 9B), the Internet telephony logic930 (FIGS. 9A and 9B), theinformation collection logic922,1522 (FIGS. 9A, 9B,15A, and15B), and the geographical location logic1502 (FIGS. 15A and 15B) of the present invention can be implemented in hardware, software, firmware, or a combination thereof. In the preferred embodiment(s), the geographical location retrieval logic902 (FIGS. 9A and 9B), the Internet telephony logic930 (FIGS. 9A and 9B), theinformation collection logic922,1522 (FIGS. 9A, 9B,15A, and15B), and the geographical location logic1502 (FIGS. 15A and 15B) is implemented in software or firmware that is stored in a memory and that is executed by a suitable instruction execution system. If implemented in hardware, as in an alternative embodiment, the geographical location retrieval logic902 (FIGS. 9A and 9B), the Internet telephony logic930 (FIGS. 9A and 9B), theinformation collection logic922,1522 (FIGS. 9A, 9B,15A, and15B), and the geographical location logic1502 (FIGS. 15A and 15B) can be implemented with any or a combination of the following technologies, which are all well known in the art: a discrete logic circuit(s) having logic gates for implementing logic functions upon data signals, an application specific integrated circuit (ASIC) having appropriate combinational logic gates, a programmable gate array(s) (PGA), a field programmable gate array (FPGA), etc.
Any process descriptions or blocks in flow charts should be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
Although an exemplary embodiment of the present invention has been shown and described, it will be apparent to those of ordinary skill in the art that a number of changes, modifications, or alterations to the invention as described may be made, none of which depart from the spirit of the present invention. For example, while specific SIP embodiments have been shown to better illustrate several aspects of the invention, it will be clear to one of ordinary skill in the art that the above-described method may be implemented in any Internet telephony system. All such changes, modifications, and alterations should therefore be seen as within the scope of the present invention.