Abstract:
The present disclosure relates to transmitting data between a plurality of computing devices such as mobile telephones and other electronic communications devices, where a request is associated with placing a call to a contact, and where information associated with the request is stored and a request for a SIP proxy is made, and an IP address associated with the SIP proxy is transmitted to allow redirecting the call to a server via the SIP proxy.

Description:
CLAIM OF PRIORITY AND RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Application No. 60/884,045 filed Jan. 9, 2007, the entirety of which is incorporated by reference herein. 
    
    
     BACKGROUND 
     Protocols often define ways in which computing devices connect to each other and to a network using Voice over IP (“VoIP”). Session Initiation Protocol (“SIP”) is a popular VoIP protocol that allows a user to communicate with one or more other users via the Internet. SIP cans placed over a broadband Internet connection are often of digital quality and usually provide features, such as voicemail and email, that are not available through traditional telephone calling methods. 
     Methods of communicating between two or more SIP phones and two or more computers are known in the art. These methods usually involve the flow of real-time transfer protocol (“RTP”) media, such as audio data, between two devices without the use of an intermediary. This communication is possible because both devices are configured to use RTP. However, if this is not possible, service providers may encounter difficulties in establishing communication between two or more devices. 
     SUMMARY 
     Before the present methods are described, it is to be understood that this invention is not limited to the particular systems, methodologies or protocols described, as these may vary. It is also to be understood that the terminology used herein is not intended to limit the scope of the present disclosure. 
     Generally, and in some preferred embodiments, the present disclosure relates to transmitting data between a plurality of computing devices, such as mobile telephones and other electronic communications devices, where a request is associated with placing a call to a contact, and where information associated with the request is stored and a request for a SIP proxy is made, and an IP address associated with the SIP proxy is transmitted to allow redirecting the call to a server via the SIP proxy. 
     Accordingly, one embodiment of the present invention is directed to a method of transmitting data between two computing devices, including acts of receiving, from a mobile device, a request associated with placing a call to a contact; storing at least a portion of information associated with the request; transmitting one or more of a data network identifier; receiving the call from the mobile device, wherein the call is initiated to the data network identifier; locating the stored portion of information associated with the request corresponding to the call; receiving a request for a SIP proxy; transmitting an IP address associated with the SIP proxy; and redirecting the call to a server via the SIP proxy. 
     In a related embodiment, receiving the request comprises receiving a request that comprises one or more of a session identification number and a contact identification number. 
     In another related embodiment, storing at least a portion of the information comprises storing one or more of a mobile network code, a mobile country code, a session identification number, a contact identification number, a mobile subscriber integrated services digital network number and a name associated with the contact. 
     In yet another related embodiment, receiving a call includes receiving the call comprising a dial-tone multi-frequency sequence. 
     In still another related embodiment, locating the stored portion of information includes determining whether the call comprises a mobile subscriber integrated services digital network number; if so, using the mobile subscriber integrated services digital network number to locate the stored portion of information; and if not, using the dial-tone multi-frequency sequence to locate the stored portion of information. 
     In another related embodiment, receiving a request for a SIP proxy includes receiving a request from a fat client. 
     Another related embodiment includes transmitting an IP address associated with the SIP proxy and transmitting an IP address associated with the SIP proxy to a fat client. 
     Yet another related embodiment includes redirecting the call to a server via the SIP proxy, including transmitting authentication information to the SIP proxy. 
     And another related embodiment includes redirecting the call to a server via the SIP proxy, and providing, by the SIP proxy, an audio channel by summoning an RTP; and initiating communication with a computing device associated with the contact over the RTP. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Aspects, features, benefits and advantages of the present invention will be apparent with regard to the following description and accompanying drawings, of which: 
         FIG. 1  illustrates a flow chart for an exemplar method of transmitting data between two computing devices; and 
         FIG. 2  illustrates an exemplary fat server architecture. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  illustrates a flow chart for an exemplary method of transmitting data between two computing devices to enable communication between the two according to an embodiment.  FIG. 2  illustrates an exemplary fat server architecture according to an embodiment and capable of carrying out the steps of  FIG. 1 . 
     A request to place a phone call may be received  100  by a server  200 . In an embodiment, the request may be initiated by a mobile device  205  utilizing a VoIP network  210 . For example, a subscriber may initiate a request by using his mobile device  205  to select a contact to call from an address book. 
     In an embodiment, the mobile device  205  may transmit a request to the server  200  via a gateway  215 , such as a SIP Gateway. In an embodiment, the request may include a session identification number and/or a contact identification number. A session identification may be a unique identifier associated with a calling period. The session identification number may remain valid for the length of an entire calling period, which in an embodiment, may be the period of time from when the application is powered up and connected until the time that the application is powered down. A contact identification number may be a unique identifier associated with a certain contact in an address book. A contact identification number may be assigned to each contact, and may remain valid for the duration of a calling period. In an embodiment, the unique session identification number and the contact identification numbers may expire after the calling period has closed, thus rendering them invalid for subsequent calling sessions. 
     In an embodiment, one or more of a mobile network code (“MNC”), a mobile country code (“MCC”), the contact identification number, the session identification number, a Mobile Subscriber Integrated Services Digital Network Number (“MSISDN”) and the contact&#39;s name may be stored  105  in a database  220 . An MNC may be used in combination with an MCC to identify a mobile operator or carrier using one or more mobile networks. In an embodiment, a MSISDN may be a number, such as a telephone number, that uniquely identifies a subscription in a mobile network  210 . 
     In an embodiment, the server  200  may transmit  110  a data network identifier (“DNID”) and/or a dual-tone multi-frequency (“DTMF”) sequence to the mobile device  205 . In an embodiment, a DTMF sequence may be a sequence of tones used for telephone signaling. 
     The mobile device  205  may initiate a call to the DNID and may transmit the DTMF sequence in an embodiment. The server  200  may receive  115  the call and may determine  120  whether a MSISDN is present. If so, the server  200  may identify  125  the subscriber and may retrieve the prepared call from the database  220 . If a MSISDN is not present, the server  200  may use the DTMF sequence to locate a prepared call. 
     In an embodiment, the server  200  may be in communication with one or more clients  225 , and, as such, may be considered a fat server. A fat server is a server that supports a plurality of clients, which may be referred to as fat clients. The fat server may be implemented on one or more physical server machines. In an embodiment, a fat client  225  may authorize and/or authenticate the subscriber using a MSISDN or DTMF sequence as discussed above. 
     In an embodiment, a server  200 , such as a fat server, may receive  130  a request for a SIP proxy from a client  205 , such as a fat client. The fat server  200  may respond by transmitting  135  an IP address of a SIP proxy  230  to the fat client  225 . The server  200  may then redirect  140  the call to a second server  245  via the SIP proxy  230 . In an embodiment, authentication and/or authorization information may be transmitted to the SIP proxy  230 . As such, the SIP proxy  230  may be made aware of the contact with whom the subscriber wishes to communicate. In an embodiment, the SIP proxy  230  may summon an RTP  235  to provide an audio channel over which the subscriber can communicate. The subscriber&#39;s mobile device  205  may then communicate with the contact&#39;s computing device  240  over the RTP  235 . As such, the server  200  provides a central location where a subscriber may be identified and authorized. In the past, communication may have occurred directly between the server  200  and the contact&#39;s computing device  240  because both the server  200  and the computing device  240  were configured to communicate. However, situations may exist where the server  200  is not configured to communicate directly with the contact&#39;s computing device  240 . As such, the server  200  may require a translator to communicate with the contact&#39;s computing device  240 . In an embodiment, this responsibility may be delegated to one or more proxies. The server  200  may request and receive a SIP proxy  230  which may in turn create an RTP proxy  235  for audio flow. 
     It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.