The present disclosure relates generally to data communications and more specifically to extending communication services to a consumption device using a proxy device.
Data communications includes the use of packet switched networks to support voice communications, but due to regulatory requirements, certain classes of devices may be incapable of using different types of communications protocols.
A system for data communications comprising a handset having a processor, a wireless communications device, a speaker and a microphone and one or more software applications operating on the processor that are configured to interface with a voice over long-term evolution (VoLTE) service. A wireless access point coupled to the handset through a local wireless communications media and the wireless communications device, the wireless access point further coupled to a long range wireless communications media and configured to interface with a server that provides VoLTE calling functionality.
Other systems, methods, features, and advantages of the present disclosure 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, be within the scope of the present disclosure, and be protected by the accompanying claims.
Aspects of the disclosure 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 disclosure. Moreover, in the drawings, like reference numerals designate corresponding parts throughout the several views, and in which:
In the description that follows, like parts are marked throughout the specification and drawings with the same reference numerals. The drawing figures might not be to scale and certain components can be shown in generalized or schematic form and identified by commercial designations in the interest of clarity and conciseness.
As used herein, “hardware” can include a combination of discrete components, an integrated circuit, an application-specific integrated circuit, a field programmable gate array, or other suitable hardware. As used herein, “software” can include one or more objects, agents, threads, lines of code, subroutines, separate software applications, two or more lines of code or other suitable software structures operating in two or more software applications, on one or more processors (where a processor includes a microcomputer or other suitable controller, memory devices, input-output devices, displays, data input devices such as a keyboard or a mouse, peripherals such as printers and speakers, associated drivers, control cards, power sources, network devices, docking station devices, or other suitable devices operating under control of software systems in conjunction with the processor or other devices), or other suitable software structures. In one exemplary embodiment, software can include one or more lines of code or other suitable software structures operating in a general purpose software application, such as an operating system, and one or more lines of code or other suitable software structures operating in a specific purpose software application. As used herein, the term “couple” and its cognate terms, such as “couples” and “coupled,” can include a physical connection (such as a copper conductor), a virtual connection (such as through randomly assigned memory locations of a data memory device), a logical connection (such as through logical gates of a semiconducting device), other suitable connections, or a suitable combination of such connections.
System 100 includes handset 102, which communicates with WiFi hotspot 104 over communications media 124. In one exemplary embodiment, handset 102 can have an associated sender 116 and listener 118 that communicate with a corresponding listener 120 and sender 122 of WiFi hotspot 104. Handset 102 also includes dialer 110, security 112 and VoLTE 114. Dialer 110 can be an application operating on handset 102 or other suitable hardware or software that is configured to generate a digit stream for dialing an outgoing number. In one exemplary embodiment, dialer 110 can be implemented using one or more objects, each having graphic, functional and text attributes that generate a plurality of user-selectable keypad controls that allow a user to enter a telephone number or other suitable numbers.
Security 112 can be an application operating on handset 102 or other suitable hardware or software that is configured to control access to WiFi hotspot 104. In one exemplary embodiment, security 112 can be implemented using one or more objects, each having graphic, functional and text attributes that generate a plurality of user-selectable keypad controls that prompts a user to enter a personal identification number or other suitable codes to prevent an unauthorized user from accessing the calling functionality of VoLTE proxy 124.
VoLTE 114 can be one or more software applications configured to provide voice over Long Term Evolution (VoLTE) communications, in accordance with the LTE standard for communication published by the 3rd Generation Partnership Project. In one exemplary embodiment, a handset can be configured to communicate using voice over LTE in conjunction with VoLTE proxy 124 on WiFi hotspot 104. VoLTE proxy 124 can be one or more software applications that interface with one or more handsets 102, which can be smart phones, Bluetooth handsets or other suitable devices.
In operation, a user can place an outgoing call using handset 102 and WiFi hotspot 104, by dialing a telephone number using dialer 110 after accessing WiFi hotspot over communications media 124. Dialer 110 can be used to enter a PIN for security 112, and to transmit an outgoing number to set up a call to called/calling party 108. WiFi hotspot 104 and VoLTE proxy 124 then set up the call to called/calling party 108 using server 106 over communications media 126 and communications media 128, each of which can be a wireless communications medium, a wireline communications medium, other suitable communications media or a suitable combination of communications media. On one exemplary embodiment, communications media 126 can be a LTE long range wireless data network, and communications media 128 can be the public switched telephone network (PSTN), a private packet switched network or other suitable media or combinations of media.
Likewise, a user can receive an incoming call from called/calling party 108, who calls VoLTE proxy 124 over communications media 128 and communications media 126 using server 106. VoLTE proxy 124 can generate a ring signal on handset 102 and other suitable handsets, and can establish a voice channel with the first handset that answers using listener 120 and sender 122 or in other suitable manners.
Algorithm 200 begins at 202, where a call is received on a VoLTE proxy operating on a WiFi hotspot. In one exemplary embodiment, the WiFi hotspot can have an associated telephone number that is registered with a server that provides VoLTE services, and a third party can call that number in order to set up a call with a user associated with the VoLTE proxy. When the calling party enters the telephone number of the VoLTE proxy, a server and other suitable communications devices set up a voice channel between the calling party and the VoLTE proxy using suitable algorithms. The algorithm then proceeds to 204.
At 204, the VoLTE proxy generates a ring tone on one or more handset devices. In one exemplary embodiment, each handset device can be registered with the VoLTE proxy over associated sender and listener ports, and the VoLTE proxy can send a ring command to a VoLTE system or algorithm operating on each handset, or other suitable algorithms can be used to generate the ring command. The algorithm then proceeds to 206.
At 206, it is determined whether a handset has answered the call. In one exemplary embodiment, a VoLTE application operating on the handset can generate an answer control, can receive an off hook control signal from a device, or can use other suitable algorithmic processes or devices to generate an off hook signal that is transmitted to the VoLTE proxy. If it is determined that no off hook signal or other suitable control data has been received at 206, such as by checking a predetermined register for a predetermined stored data value, the algorithm proceeds to 214. Otherwise, the algorithm proceeds to 208.
At 208, one or more other handsets are deactivated by the VoLTE proxy. In one exemplary embodiment, a predetermined data register can be set to a value that prevents the other handsets from establishing a connection with the VoLTE proxy while it is being used to support a telephone call. Likewise, other suitable processes or algorithms can also or alternatively be used. The algorithm then proceeds to 210.
At 210, the voice channel is established to the answering handset. In one exemplary embodiment, caches can be established to store voice data for transmission to the handset from the calling party, and to store voice data from the handset for transmission to the called party, or other suitable processes or algorithms can also or alternatively be used. The algorithm then proceeds to 212.
At 212, voice channel data is received and transmitted between the called and calling parties. In one exemplary embodiment, one or more software applications for providing VoLTE voice communications can be used to monitor buffered data and to transmit the buffered data at suitable times to support duplex voice communications over a packet switched network, to provide echo cancellation, to provide noise suppression and for other suitable purposes. The algorithm then proceeds to 214.
At 214, it is determined whether the call has ended. In one exemplary embodiment, an on hook signal can be generated when a calling party or the local handset terminates the call, an activity detector can determine that no activity has occurred for a predetermined period of time or other suitable processes can also or alternatively be used to determine whether the call has ended. If it is determined that the call has ended, the algorithm proceeds to 216, where the VoLTE proxy is reset to receive another incoming call or to set up an outgoing call from one of the handsets. Otherwise, the algorithm returns to 212.
In operation, algorithm 200 allows a VoLTE proxy to receive an incoming call and to generate a ring signal to allow a handset to answer the incoming call. The VoLTE proxy can service a number of different handsets, and can generate the same ringtone on each handset, or can generate different ring tones on different handsets, such as where the VoLTE proxy can receive calls for different telephone numbers. Although algorithm 300 is shown as a flow chart, algorithm 200 can also or alternatively be implemented using object oriented programming, state diagrams or other suitable programming paradigms.
Algorithm 300 begins at 302, where a calling session is initiated at a handset. In one exemplary embodiment, the calling session can be initiated by activating an application that operates on the handset and which sets up a sender and listener on the handset and a corresponding listener and sender on a WiFi hotspot, by generating a dialer user interface on the handset or in other suitable manners. The algorithm then proceeds to 304.
At 304, access security is processed, such as by determining whether the handset has credentials to access the WiFi hotspot, by generating a user interface prompt to enter a PIN number or access code or in other suitable manners. In one exemplary embodiment, access security can be determined when the handset originally obtains access to the WiFi hotspot, prior to initiating the calling session or in other suitable manners. The algorithm then proceeds to 306.
At 306, a call is initiated from a VoLTE proxy operating on the WiFi hotspot. In one exemplary embodiment, the WiFi hotspot can include a processor and associated software applications that cause the processor to execute a series of instructions that receive a calling number from a handset, that set up a call with a called party using a VoLTE server or other suitable packet-switched voice communications protocols, that manage communications once the call is in progress and that perform other suitable functions. The VoLTE proxy can also or alternatively manage multiple calls from multiple handsets, such as by managing different telephone numbers for each handset or in other suitable manners. The algorithm then proceeds to 308.
At 308, it is determined whether the called party has answered the call, such as by monitoring the status of a data register that is updated when an off-hook signal is received from the called party or in other suitable manners. If it is determined that the called party has not answered the call after a predetermined number of rings, a predetermined period time or in other suitable manners, the algorithm proceeds to 314, otherwise the algorithm proceeds to 310 where a voice channel with the called party is established. The algorithm then proceeds to 312, where voice data is received and transmitted from the calling handset to the called party. In one exemplary embodiment, the VoLTE proxy operating on the WiFi hotspot can buffer data received from the handset and the called party and can manage the transmission and reception of data to process the data to reduce echo signals, to improve sound quality, to reduce noise, to avoid delays and for other suitable purposes. The algorithm then proceeds to 314.
At 314, it is determined whether the call has terminated. In one exemplary embodiment, the called party can send an on-hook signal or other suitable data that can be used to determine that the call has ended, an activity detector or other suitable systems can be used to determine if the called party has terminated the call or other suitable processes can also or alternatively be used. If it is determined that the call has not ended, the algorithm returns to 312, otherwise the algorithm proceeds to 316, where the VoLTE proxy is reset.
In operation, algorithm 300 allows a WiFi hotspot to operate a VoLTE proxy, to allow a handset that has access to WiFi to use the VoLTE services to place calls over a packet switched network. Although algorithm 300 is shown as a flow chart, algorithm 300 can also or alternatively be implemented using object oriented programming, state diagrams or other suitable programming paradigms.
It should be emphasized that the above-described embodiments are merely examples of possible implementations. Many variations and modifications may be made to the above-described embodiments without departing from the principles of the present disclosure. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.
The present application is a continuation of U.S. patent application Ser. No. 14/855,265 filed Sep. 15, 2015, which will issue as U.S. Pat. No. 9,888,044 on Feb. 6, 2018, which claims priority to U.S. Provisional Patent Application No. 62/050,516, filed Sep. 15, 2014, which is hereby incorporated by reference for all purposes as if set forth herein in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
7382260 | Agarwal et al. | Jun 2008 | B2 |
7401131 | Robertson et al. | Jul 2008 | B2 |
7496360 | Sindhwani et al. | Feb 2009 | B2 |
7701341 | Kumar et al. | Apr 2010 | B2 |
7774485 | Patrick et al. | Aug 2010 | B2 |
7822860 | Brown et al. | Oct 2010 | B2 |
7944355 | Kumar et al. | May 2011 | B2 |
8170212 | Pering et al. | May 2012 | B2 |
8195152 | Edwards | Jun 2012 | B1 |
8265594 | Davis et al. | Sep 2012 | B2 |
8270944 | Gaillouix et al. | Sep 2012 | B1 |
9204366 | Joung et al. | Dec 2015 | B2 |
9237547 | Antoun et al. | Jan 2016 | B1 |
9264304 | Smith et al. | Feb 2016 | B2 |
9628572 | Smith et al. | Apr 2017 | B2 |
9888044 | Reddy | Feb 2018 | B2 |
10027769 | Smith et al. | Jul 2018 | B2 |
10123360 | Pandit et al. | Nov 2018 | B2 |
10212627 | Reddy et al. | Feb 2019 | B2 |
20030033369 | Bernhard | Feb 2003 | A1 |
20040098306 | Fitzpatrick et al. | May 2004 | A1 |
20050044058 | Matthews et al. | Feb 2005 | A1 |
20050050301 | Whittle et al. | Mar 2005 | A1 |
20050068938 | Wang | Mar 2005 | A1 |
20060020904 | Aaltonen et al. | Jan 2006 | A1 |
20060286984 | Bonner | Dec 2006 | A1 |
20070239819 | Woods et al. | Oct 2007 | A1 |
20080287062 | Claus et al. | Nov 2008 | A1 |
20090228820 | Kim et al. | Sep 2009 | A1 |
20100049874 | Chene et al. | Feb 2010 | A1 |
20110246777 | Buckley et al. | Oct 2011 | A1 |
20120174093 | Davila et al. | Jul 2012 | A1 |
20120258707 | Mathias et al. | Oct 2012 | A1 |
20130155170 | Eichen | Jun 2013 | A1 |
20130219263 | Abrahami | Aug 2013 | A1 |
20140106709 | Palamara | Apr 2014 | A1 |
20140226537 | Kashimba et al. | Aug 2014 | A1 |
20140269510 | Xu et al. | Sep 2014 | A1 |
20150063346 | Eswara et al. | Mar 2015 | A1 |
20150081769 | Mandyam | Mar 2015 | A1 |
20150082021 | Mandyam | Mar 2015 | A1 |
20150117425 | Gupta | Apr 2015 | A1 |
20150163642 | Bates | Jun 2015 | A1 |
20150237641 | Sahu | Aug 2015 | A1 |
20150263931 | Hinkle et al. | Sep 2015 | A1 |
20150350899 | Hwang et al. | Dec 2015 | A1 |
20160029303 | Sahu | Jan 2016 | A1 |
20160057747 | Jhang et al. | Feb 2016 | A1 |
20160080505 | Sahin et al. | Mar 2016 | A1 |
20160174273 | Ginnela et al. | Jun 2016 | A1 |
20160359942 | Li et al. | Dec 2016 | A1 |
20170012841 | Ketheesan et al. | Jan 2017 | A1 |
20170135009 | Ling et al. | May 2017 | A1 |
Number | Date | Country |
---|---|---|
1179244 | Feb 2002 | EP |
2421811 | Jun 2011 | RU |
2013061156 | May 2013 | WO |
Entry |
---|
The International Search Report and Written Opinion issued by the International Search Authority—The Russian Patent Office—dated Sep. 19, 2013 for International Application No. PCT/US2013/046640, 6 Pages. |
The International Preliminary Report on Patentability dated Dec. 31, 2014 by the International Bureau of WIPO for International Application No. PCT/US2013/046640, 6 Pages. |
The International Search Report and Written Opinion issued by the International Search Authority—The United States Patent and Trademark Office—dated Sep. 30, 2015 for International Application No. PCT/US2015/38683, 10 Pages. |
The International Search Report and Written Opinion issued by the International Search Authority—The European Patent Office—dated Dec. 3, 2015 for International Application No. PCT/US2015/050276, 11 Pages. |
Gsm Association: “VoLTE Service Description and Implementation Guidelines”, pp. 1-121, Mar. 26, 2014. |
Anonymous, et al., “FRITZ!Box 6842 LTE: Der Alleskonner mit Voice-over-LTE”, Feb. 27, 2013. |
Avm Gmbh: “FRITZ!Box 6842 LTE Einrichten and bedienen”, pp. 1-212, May 1, 2014. |
The International Search Report and Written Opinion issued by the International Search Authority—The Indian Patent Office—dated Jun. 22, 2015 for International Application No. PCT/IB2015/050451, 3 Pages. |
The International Search Report and Written Opinion issued by the International Search Authority—The European Patent Office—dated Oct. 20, 2016 for International Application No. PCT/US2016/044842, 11 Pages. |
Miller, “Facing the Challenge of Wireless Security”, Computer, 2000, vol. m34, No. 7, pp. 16-18. |
Written Submissions in Response to the Summons to Oral Proceedings for co-pending European Patent Application No. 15788240.8 as-filed with the European Patent Office dated Sep. 8. 2020, 14 pages |
Number | Date | Country | |
---|---|---|---|
20180159905 A1 | Jun 2018 | US |
Number | Date | Country | |
---|---|---|---|
62050516 | Sep 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14855265 | Sep 2015 | US |
Child | 15888699 | US |