The technology relates to telecommunications, and in particular to Internet Protocol (IP) telephone systems that are accessible to mobile telephony devices.
A mobile telephony device may be connected to a telephony network either by a data channel or by a circuit channel. A “circuit channel” or “circuit connection” requires dedicated point-to-point connections during a call or communication. A “data channel” or “data connection”, on the other hand, is a channel or connection in which data is carried in separate packets and routed based on a destination address included in the packets. When received, the packets are reassembled in the proper sequence. For mobile telephony devices, WiFi and WiMax as well as General Packet Radio Service (GPRS) network and Long Term Evolution (LTE) network are examples of networks or system with data channel capability.
An Internet Protocol (IP) telephony system routes various types of communications, at least in part, via data packets that are communicated in a data channel(s) over a data network. The data network is commonly the Internet. The types of communications may be, for example, telephone calls, video calls, text and video messages, and other forms of telephony and data communications. The users of the Internet Protocol (IP) telephony system typically gain access to the Internet using an Internet service provider so that they can communicate via the IP telephony system.
Some users or customers of the IP telephony system may engage in communications using telephony devices that are connected by physical lines such as cables or wires to an access point such as an internet port. Such wired telephony devices may, thanks to the services of the IP telephony system, be moved from one physical location to another physical location, but at each such physical location are physically connected in a wired manner to the respective access point.
Other users or customers of the IP telephony system may possess mobile or wireless telephony devices, such as a wireless terminal, user equipment (UE), mobile phone, smart phone, or laptop, tablet, or other device with mobile termination. When such a mobile telephony device is within coverage of an appropriate wireless network (e.g., WiFi or WiMax network) that has connection to the a data network such as the Internet, the communications involving the mobile telephony device may be handled by the IP telephony system in conjunction with the wireless network. In other words, the communications may occur wirelessly between the mobile telephony device and a wireless access point of the wireless network, with the wireless access point in turn being connected to an Internet portal. Access in this manner to the Internet portal enables the mobile telephony device to capitalize upon the service of the IP telephony system in economically routing the communications through the Internet, rather than over existing non-Internet service carriers.
When a mobile telephony device is not in range of a wireless network to gain the benefit of the IP telephony system, the mobile telephony device may instead be served by other carriers and/or services using one or more mobile radio access networks. Such mobile radio access networks typically comprise plural base stations which have both radio frequency transmitting and receiving capabilities to serve macro cells. A macro cell is essentially defined by the extent of the transmitting and receiving capabilities of the base station. The mobile telephony devices located within the cell may communicate with the radio access network through the base station (unless the customer also happens to be within range of another wireless network, such as a WiFi or WiMax wireless network or the like, and exercises the option to use the other wireless network instead of the radio access network). In some instances such a “macro” base station may be called a “radio base station”, “base station”, NodeB, eNodeB, or the like. Historically, macro base stations could participate in only circuit switched type connections. But, more recently, some macro base stations, such as those which participate in a General Packet Radio Service (GPRS) network or a Long Term Evolution (LTE) network, provide or serve packet connections, also known as data connections.
Many radio access networks allow a mobile telephony device to roam from cell to cell, either within the same radio access network and radio access technology, or between cells of differing radio access network and/or radio access technologies. Such roaming between cells and/or technologies of radio access networks typically involves an operation or procedure known as “location update”, or some similar operation. Method and apparatus for roaming are described in U.S. Pat. No. 8,600,364; U.S. patent application Ser. No. 12/987,559, filed Jan. 10, 2011; U.S. patent application Ser. No. 14/291,566, filed May 30, 2014; and U.S. patent application Ser. No. 14/333,490, filed Jul. 16, 2014, all of which are incorporated herein by reference in their entireties.
In some scenarios involving a mobile telephony device it may be advantageous to change from one channel type to another channel type. Some such scenarios inviting channel type change are those of changing network conditions. For example, in some situations a data channel may have a lower signal or more congestion (e.g., lower quality of service) than a circuit channel, and it may be desirable to change to the circuit channel. In other situations (such as a city office environment), the data channel (e.g., a channel provided via WiFi) may have superior service. Moreover, there are also scenarios in which a mobile telephony device change locations or roams (as mentioned above), with the location change or roaming resulting in either changed network conditions or different availability of channel types. One scenario is a change of network conditions or channel type availability when a communication is in progress (e.g., when the communication has already begun).
In the cellular network technology it has been known to switch an entire communication from a packet switched channel to a circuit switched channel using a technique known as circuit switched fallback. But when poor service quality over a data channel, or loss of data channel, affects a communication involving a mobile telephony device which is handled by an internet-based telephony system, there typically is no remedy and the communication must be dropped. Lack of recourse other than dropping the communication results from the fact that the internet-based telephony system relies on data connections between itself and the telephony devices participating in the communication.
In one of its aspects the technology disclosed herein concerns a method of operating an internet-based telephony system. The method comprises establishing a communication between a first telephony device and a second telephony device through the internet-based telephony system. The communication at least initially comprises a first leg of the communication and a second leg of the communication, with the first leg of the communication existing between the first telephony device and the internet-based telephony system and the second leg of the communication existing between the second telephony device and the internet-based telephony system. The method further comprises receiving a connection-request message from the first telephony device; and, as a result thereof at least partially replacing a replaceable leg with a replacement leg having a different channel type than the replaceable leg. The replaceable leg is one of the first leg of the communication and the second leg of the communication, and the different channel type is either a data channel or a circuit channel.
In an example embodiment and mode the first leg of the communication is a first data leg and the second leg is a second data leg. In such example embodiment and mode the method further comprises associating an access number for the internet-based telephony system with a parameter of the communication; receiving a circuit channel call to the access number as the connection-request message; obtaining the parameter associated with the communication; and, routing media for the communication through the replacement leg in lieu of routing the media through the replaceable leg.
In an example embodiment and mode the method further comprises establishing the communication between the first telephony device and the second telephony device through a media relay of the internet-based telephony system; and upon receiving the circuit channel call to the access number at a gateway of the internet-based telephony system, routing the media for the communication between the gateway and the media relay in lieu of routing the media through the replaceable leg.
In an example embodiment and mode the method further comprises, upon receiving the circuit channel call to the access number at the gateway, the internet-based telephony system routing media for the communication (1) between the gateway and the media relay so that the communication is at least partially carried through the circuit channel and (2) through a non-replaced one of the first data leg of the communication and the second data leg of the communication so that the communication is at least partially carried by a data channel between the media relay and one of the telephony device and the second telephony device.
In an example embodiment and mode the parameter comprises a call identifier of the communication.
In an example embodiment and mode the parameter comprises an identifier associated with the telephony device.
In an example embodiment and mode the parameter comprises an identifier associated with the second telephony device.
In an example embodiment and mode associating the access number for the internet-based telephony system with the parameter occurs before a predetermined event and receiving the circuit channel call occurs after the predetermined event, and the predetermined event comprises a network change or a low quality event.
In an example embodiment and mode wherein at least one of the first leg and the second leg is a circuit channel leg which is at least partially carried by a circuit channel. In such example mode the method further comprises, upon whichever of the first telephony device and the second telephony device is connected to the internet-based telephony system through the circuit channel leg gaining access to a data network and thus becoming a data network-eligible telephony device, providing the data network-eligible telephony device with a parameter associated with the communication; and upon receiving the connection-request message from the data network-eligible telephony device, replacing the circuit channel leg with a data channel leg between the data network-eligible telephony device and the internet-based telephony system.
In an example embodiment and mode the method further comprises establishing the communication between the first telephony device and the second telephony device through a media relay of the internet-based telephony system; and upon receiving the connection-request message from the data network-eligible telephony device, routing the media for the communication through the data channel and the media relay.
In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes a call identifier.
In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes an identifier of the first telephony device.
In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes an identifier of the second telephony device.
In another of its aspects the technology disclosed herein concerns an internet-based telephony system. The internet-based telephony system comprises a processor configured to establish a communication between a first telephony device and a second telephony device through the internet-based telephony system. The communication at least initially comprises a first leg of the communication and a second leg of the communication, with the first leg of the communication existing between the first telephony device and the internet-based telephony system and the second leg of the communication existing between the second telephony device and the internet-based telephony system. The processor is also configured to receive a connection-request message from the first telephony device; and as a result thereof to replace a replaceable leg with a replacement leg having a different channel type than the replaceable leg. The replaceable leg is one of the first leg of the communication and the second leg of the communication, and the different channel type is either a data channel or a circuit channel.
In an example embodiment and mode wherein the first leg of the communication is a first data leg and the second leg is a second data leg, and the processor is further configured to associate an access number for the internet-based telephony system with a parameter of the communication. When the connection-request message is a circuit channel call to the access number, upon receiving the circuit channel call the processor is further configured to obtain the parameter associated with the communication; and route media for the communication through the replacement leg in lieu of routing the media through the replaceable leg.
In an example embodiment and mode the processor is further configured to establish the communication between the first telephony device and the second telephony device through a media relay of the internet-based telephony system; and upon receiving the circuit channel call to the access number at a gateway of the internet-based telephony system, route the media for the communication between the gateway and the media relay in lieu of routing the media through the replaceable leg.
In an example embodiment and mode upon receiving the circuit channel call to the access number at the gateway the processor is configured to route media for the communication (1) between the gateway and the media relay so that the communication is at least partially carried through the circuit channel and (2) through a non-replaced one of the first data leg of the communication and the second data leg of the communication so that the communication is at least partially carried by a data channel between the media relay and one of the telephony device and the second telephony device.
In an example embodiment and mode the parameter comprises a call identifier of the communication.
In an example embodiment and mode the parameter comprises an identifier associated with the telephony device.
In an example embodiment and mode the parameter comprises an identifier associated with the second telephony device.
In an example embodiment and mode the processor is configured to associate the access number for the internet-based telephony system with the parameter occurs before a predetermined event and to receive the circuit channel call after the predetermined event, the predetermined event comprising a network change or a low quality event.
In an example embodiment and mode wherein at least one of the first leg and the second leg is a circuit channel leg which is at least partially carried by a circuit channel, the processor is further configured to, upon whichever of the first telephony device and the second telephony device is connected to the internet-based telephony system through the circuit channel leg gaining access to a data network and thus becoming a data network-eligible telephony device, provide the data network-eligible telephony device with a parameter associated with the communication. The processor is also configured upon receiving the connection-request message from the data network-eligible telephony device, to replace the circuit channel leg with a data channel between the data network-eligible telephony device and the internet-based telephony system.
In an example embodiment and mode the processor is further configured to establish the communication between the first telephony device and the second telephony device through a media relay of the internet-based telephony system; and upon receiving the connection-request message from the data network-eligible telephony device, route the media for the communication through the data channel and the media relay.
In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes a call identifier.
In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes an identifier of the first telephony device. In an example embodiment and mode the connection-request message is a SIP INVITE or SIP RE-INVITE message which includes an identifier of the second telephony device.
In another of its aspects the technology disclosed herein comprises one or more methods performed in a telephony device. The method may be performed by one or more processors of the telephony device executing a software program product stored on transient instructions, such as a CoIP application.
A first such method in a telephony device may be performed when the replaceable leg is a data channel leg and the replacement leg is a circuit channel leg. The first method in the telephony device comprises participating in establishment of a communication between telephony device and a second telephony device and through an internet-based telephony system. The method further comprises the telephony device providing the internet-based telephony system with a parameter of the communication to be associated with an access number (AN) for the internet-based telephony system; obtaining an access number (AN) for the internet-based telephony system. The method further comprises, upon occurrence of a predetermined event involving an affected leg of the communication, calling the access number (e.g., using a native dialer of the telephony device) to facilitate replacement of at least a portion of the affected leg of the communication with a circuit channel connection.
A second such method in a telephony device may be performed when the replaceable leg is a circuit channel leg and the replacement leg is a data channel leg. The second method in the telephony device comprises the telephony device participating in establishment of a communication between the telephony device and a second telephony device; the telephony device obtaining a parameter associated with the communication; the telephony device determining that a data channel is available to replace the circuit channel employed for the first circuit channel leg; and, the telephony device using the parameter to participate in a connection establishment procedure wherein the circuit channel leg of the communication is replaced with a data channel leg, e.g., replacement data channel.
The foregoing and other objects, features, and advantages of the technology disclosed herein will be apparent from the following more particular description of preferred embodiments as illustrated in the accompanying drawings in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the technology disclosed herein.
In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques, etc. in order to provide a thorough understanding of the technology disclosed herein. However, it will be apparent to those skilled in the art that the technology disclosed herein may be practiced in other embodiments that depart from these specific details. That is, those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the technology disclosed herein and are included within its spirit and scope. In some instances, detailed descriptions of well-known devices, circuits, and methods are omitted so as not to obscure the description of the technology disclosed herein with unnecessary detail. All statements herein reciting principles, aspects, and embodiments of the technology disclosed herein, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Thus, for example, it will be appreciated by those skilled in the art that block diagrams herein can represent conceptual views of illustrative circuitry or other functional units embodying the principles of the technology. Similarly, it will be appreciated that any flow charts, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
In this description, the terms “VoIP system”, “VoIP telephony system”, “IP system” and “IP telephony system” are all intended to refer to a system that connects callers and that delivers data, text and video communications using Internet protocol data communications.
In this description references are made to an “IP telephony device” or “telephony device”. These terms are used to refer to any type of device which is capable of interacting with an IP telephony system to complete a telephone call, including but not limited to those already described above. An IP telephony device could be an IP telephone, a computer running IP telephony software, a terminal adapter which is connected to an analog telephone, or some other type of device capable of communicating via data packets. An IP telephony device could also be a cellular telephone or a portable or tablet computing device that runs a software client that enables the device to act as an IP telephone. Thus, a single device might be capable of operating as both a cellular telephone and an IP telephony device.
This description also refers to a mobile telephony device. The term “mobile telephony device” is intended to encompass multiple different types of devices. In some instances, a mobile telephony device could be a cellular telephone. In other instances, a mobile telephony device may be a mobile computing device that includes both cellular telephone capabilities and a wireless data transceiver that can establish a wireless data connection to a data network. Such a mobile computing device could run appropriate application software to conduct VoIP telephone calls via a wireless data connection. Thus, a mobile computing device, such as an Apple iPhone™, a RIM Blackberry or a comparable device running Google's Android operating system could be a mobile telephony device.
In still other instances, a mobile telephony device may be a device that is not traditionally used as a telephony device, but which includes a wireless data transceiver that can establish a wireless data connection to a data network. That is, certain devices that are not traditionally used as telephony devices may act as telephony devices once they are configured with appropriate client software. Thus, some devices that would not normally be considered telephony devices may become telephony devices or IP telephony devices once they are running appropriate software. One example would be a desktop or a laptop computer that is running software that can interact with an IP telephony system over a data network to conduct telephone calls. Another example would be a portable computing device, such as an Apple iPod Touch™, which includes a speaker and a microphone. A software application loaded onto an Apple iPod Touch™ can be run so that the Apple iPod Touch™ can interact with an IP telephony system to conduct a telephone call.
This description also refers to telephony communications (“communications”) and telephony activity. These terms are intended to encompass all types of (telephony) communications, regardless of whether all or a portion of the communications are carried in an analog or digital format. Telephony communications could include audio or video telephone calls, facsimile transmissions, text messages, SMS messages, MMS messages, video messages, and all other types of telephony and data communications sent by or received by a user. These terms are also intended to encompass data communications that are conveyed through a PSTN or VOIP telephony system. In other words, these terms are intended to encompass any communications whatsoever, in any format, which traverse all or a portion of a communications network or telephony network.
As illustrated in
In addition, the first IP telephony system 20 is connected to a first publicly switched telephone network (PSTN) 26, to a second PSTN 28, and (through, e.g., data network 22) to a second IP telephony system 30. This allows the first IP telephony system 20 to receive telephony communications from and send telephony communications to each of these other communications systems. In some instances, the first IP telephony system 20 would receive an incoming communication directed to one of its own customers from one of these other communications system. The first IP telephony system 20 then terminates the call to the customer's telephony device. In other instances, the first IP telephony system may setup an outgoing call from one of its customers to a customer of one of these other communications systems. In still other instances, the first IP telephony system 20 may act as an intermediate party to connect a communication between two of these other communications systems.
In some instances, the first IP telephony system 20 accesses the Internet 22 via gateway 32. The gateway 32 allows users and devices that are connected to the first and second PSTNs 26, 28 and/or the second IP telephony system 30 to connect with users and devices that are reachable through the first IP telephony system 20, and vice versa. In some instances, the gateway 32 would be a part of the first IP telephony system 20. In other instances, the gateway 32 could be maintained by a third party.
Customers of the first IP telephony system 20 can place and receive telephone calls using an IP telephone 40 that is connected to the Internet 22. Such an IP telephone 40 could be connected to an Internet service provider via a wired connection or via a wireless router. In some instances, the IP telephone 40 could utilize a cellular telephone system to access the Internet 22.
Alternatively, a customer could utilize an analog telephone 42A which is connected to the Internet 22 via terminal adapter 44. The terminal adapter 44 converts analog signals from the telephone 42A into data signals that pass over the Internet 22, and vice versa. Also, as illustrated in
In addition, a customer could utilize a soft-phone client running on a computer 46 to place and receive IP based telephone calls, and to access other IP telephony systems. In some instances, the soft-phone client could be assigned its own telephone number. In other instances, the soft-phone client could be associated with a telephone number that is also assigned to an IP telephone 40, or to a terminal 44 that is connected to one or more analog telephones 42A, 42B.
A third party using first analog telephone 52 which is connected to the first PSTN 26 may call a customer of the IP telephony system 20. In this instance, the call is initially connected from the first analog telephone 52 to the first PSTN 26, and then from the first PSTN 26, through the gateway 32 to the first IP telephony system 20. The first IP telephony system 20 then routes the call to the customer's IP telephony device. A third party using first cellular telephone 54 could also place a call to an IP telephony system customer, and the connection would be established in a similar manner, although the first link would involve communications between the first cellular telephone 54 and a cellular telephone network. For purposes of this explanation, the cellular telephone network is considered part of the first PSTN 26.
In addition, mobile computing devices which include cellular telephony capabilities could also be used to place telephone calls to customers of the IP telephony system. A first mobile computing device 56, as illustrated in
Users of the first IP telephony system 20 are able to access the service from virtually any location where they can connect to the Internet 22. Thus, a customer could register with an IP telephony system located in the United States, and that customer could then use an IP telephone located in a country outside the United States to access the services. Likewise, the customer could also utilize a computer outside the U.S. that is running a soft-phone client to access the first IP telephony system 20. Further, in some instances a user could place a telephone call with the first analog telephone 52 or first cellular telephone 54 that is routed through the first PSTN 26 to the first IP telephony system 20 via the gateway 32. This would typically be accomplished by the user calling a local telephone number that is routed to the first IP telephony system 20 via the gateway 32. Once connected to the first IP telephony system 20, the user may then place an outgoing long distance call to anywhere in the world using the first IP telephony system's network. Thus, the user is able to place a long distance call using lower cost IP telephony service provided by the first IP telephony system 20, rather than a higher cost service provided by the first PSTN 26.
As illustrated in
Each of the IP telephony systems 20, 30, or an IP telephony device, may include multiple processors 82, along with their operating components and programming, each carrying out a specific or dedicated function. The processor 82 shown in
The memory(ies) 84 may comprise memory such as program instruction memory 96 and other memory 98 (e.g., RAM, cache, etc.). The memory(ies) 84 may comprise computer-readable medium, and may be one or more of readily available memory such as random access memory (RAM), read only memory (ROM), floppy disk, hard disk, flash memory or any other form of digital storage, local or remote, and is preferably of non-volatile nature.
The support circuits 90 are coupled to the processor 82 for supporting the processor in a conventional manner. These circuits may include cache, power supplies, clock circuits, input/output circuitry and subsystems, and the like
The input/output interfaces 86 serve to connect the processor 82 to customer equipment, to service provider equipment, to IP network or gateways, as well as possibly one or more input/output devices (not shown) for accessing the processor and/or performing ancillary or administrative functions related thereto.
The buss(es) 92 may comprise plural or a single bus structure, with numerous buss configurations being possible without degrading or otherwise changing the intended operability of the processor 82.
One or more software routines or software programs are normally stored in program instruction memory 96. Some of the software routines or software programs may be referred to as “applications”.
The software routine 100, when executed by the CPU 94, transforms the general purpose computer into a specific purpose computer that performs one or more functions of an IP telephony system 20/30 or an IP telephony device. Although the processes of the disclosed embodiments may be discussed as being implemented as a software routine, some of the method steps that are disclosed therein may be performed in hardware as well as by a processor running software. As such, the embodiments may be implemented in software as executed upon a computer system, in hardware as an application specific integrated circuit or other type of hardware implementation, or a combination of software and hardware. The software routine 100 of the disclosed embodiments is capable of being executed on any computer operating system, and is capable of being performed using any CPU architecture.
Both home public land mobile network 122 and telephony system 20 are connected to the public switched telephone network (PSTN) 26. The public switched telephone network (PSTN) 26 may comprise one or more 26 radio access network(s) (RANs) 140. The home public land mobile network 122 is connected to public switched telephone network (PSTN) 40 through the PLMN gateway 124 (e.g., Gateway Mobile Services Switching Center [GMSC]). Telephony system 20 is also connected to public switched telephone network (PSTN) 26 through its gateway 32.
It will be appreciated that some macro base stations belong to networks which have data connection handling capability while other base stations belong to networks that do not have data connection handling capability. The former networks provide services such as call service and short message service (SMS), and typically include base stations which report to a radio network controller node and which may belong to a roaming area. The former networks additionally provide General Packet Radio Service (GPRS)/3G/LTE services and typically include base stations characterized as NodeB or eNodeB and for which routing areas are defined. The base stations of both types of networks broadcast their roaming and routing area.
As shown in
An example of such an Internet-based telephony system 20 is a voice over IP (VoIP) telephony system. However, in view of the fact that the communications encompassed by the technology described herein is not limited to voice communications, the internet-based telephony system 20 may also be referred to as a “Communication over IP”, or “CoIP system”.
Basic example, representative, non-limiting acts or steps performed by IP telephony system 20, including acts or steps performed by IP communication leg handoff processor 160 in particular, are shown in
Act 5-1 comprises establishing a communication between a first telephony device (e.g., telephony device 120A) and a second telephony device (e.g., telephony device 120B) through the internet-based telephony system. The communication at least initially comprises a first leg of the communication and a second leg of the communication. The first leg of the communication exists between the first telephony device 120A and the internet-based telephony system 20; the second leg of the communication exists between the second telephony device telephony device 120B and the Internet-based telephony system 20. Establishing the communication of act 5-1 typically involves the use of Session Initiation Protocol (SIP) signaling.
Act 5-2 comprises receiving another connection-request message from a requesting telephony device. The connection-request message may result based upon occurrence of a predetermined event, such as (for example) a network change or a low quality event (e.g., low quality of service). The requesting telephony device may be either the first telephony device 120A or the second telephony device 120B. The requesting telephony device may be the device that detects or is informed of the predetermined event.
Act 5-3 comprises, as a result of act 5-2, replacing a replaceable leg with a replacement leg. The replacement leg may have a different channel type than the replaceable leg. The replaceable leg is one of the first leg of the communication and a second leg of the communication, and the different channel type is either a data channel or a circuit channel. For example, act 5-3 may involve replacing a replaceable data channel first leg with a replacement circuit channel first leg; or replacing a replaceable circuit channel first leg with a replacement data channel first leg; or replacing a replaceable data channel second leg with a replacement circuit channel second leg; or replacing a replaceable circuit channel second leg with a replacement data channel second leg.
Radio frequency section 166, also known as a radio frequency interface, is configured to enable telephony device 120 to communicate over radio frequencies, e.g., over an air or radio interface, with an appropriate communication node. As understood from
The memory(ies) 84D may comprise one or more different types of non-transient memories, including random access memory (RAM) and read only memory (ROM). As mentioned above, memory(ies) 84D may have stored therein instructions, in the form of programs or systems, which are executed by processor 82D. In other words, the programs or systems stored in memory(ies) 84D are, at appropriate times, loaded into instruction registers or the like of processor 82D and are executed by processor 82D. For example, telephony device operating system 168 is stored in memory(ies) 84D and executed by processor 82D, as is a native dialer program 169. The native dialer program 169 is executed by processors 82D when the telephony device 120 seeks to use the telephony system which is native to telephony device 120 (e.g., a telephone system other than IP telephony system 20). Another program stored in memory(ies) 84D and executed by processors 82D is CoIP application 170, described herein. The CoIP application 170 is an example of software 100 shown in
The user interface 86D may comprise one or more different types of interface devices, and includes interface devices that are configured to facilitate interaction with a user. As shown in
As used herein, “display screen” refers to a portion of a display device on which content may be displayed, e.g., to the actual area of a display device wherein pixels or driven illustration elements are located and are visible. A “screen display”, on the other hand, refers to content that is actually rendered on the display screen as a result of execution of instructions that generate the screen display.
The processor 82D may comprise one or more processor(s) or controller(s) as elaborated herein and discussed further with respect to
One such executable application may be an application provided by or designed to work in conjunction with communications sent or received by or routed through an internet-based telephony system 20, and thus may generically be termed a “network application” installed on the telephony device. Typically the internet-based telephony system 20 is not native to the telephony device. It was mentioned previously that the communications encompassed by the technology described herein are not limited to voice communications, and for that reason the internet-based telephony system 20 may also be referred to as a “Communication over IP”, or “CoIP system”. Accordingly, for the same reasons the network application executed by processor 82D of telephony device 120 may be referred to as the aforementioned “CoIP application” 170. As such, “CoIP” comprises but it not limited to VoIP communications. The CoIP application 170 may take the form of a computer software product (such as software 100 show in
A peripheral interface 88D of telephony device 120 comprises, e.g., SIM card port 180. As shown in
As mentioned above,
Arrow 4A-3 comprises flow of media (e.g., a flow of real time protocol [RTP] packets) over a first data channel leg of the communication, with the arrow 4A-3 thus also representing the first data channel leg of the communication. Because the flow of media over the first data channel leg of the communication will, in
Arrow 4A-5 depicts the CoIP application 170 of telephony device 120A contacting provisioning server 163 to reserve an Access Number (AN) for the communication established by the signaling of act/arrow 4A-1 and act/arrow 4A-2. In conjunction with act 4A-5 the telephony device 120A sends to provisioning server 163 a signal that includes the call ID for the communication and the identifiers A and B (e.g., the “A number” and the “B number”) of the calling party telephony device 120A and the called party telephony device 120B, respectively. Act 4A-6 depicts the provisioning server 163 allocating and returning to telephony device 120A an Access Number (AN) to the communication. The Access Number (AN) is associated with a parameter of the communication (e.g., the call ID or the “A number”). The signaling of act 4A-5 and act 4A-6 may be any appropriate signaling protocol, such as session initiation protocol (SIP), for example.
The Access Number (AN) which is allocated or assigned by provisioning server 163 may be a telephone number assigned to IP telephony system 20 and through which the IP telephony system 20 may be contacted through the public switched telephone network (PSTN) 26. For example, the Access Number (AN) may be a phone number such as a ten digit number that is associated with IP telephony system 20. The IP telephony system 20 may own or be assigned a set of access numbers. When an access number belonging to the IP telephony system 20 is dialed, the call is directed to a specific server comprising gateway 32.
Act 4A-5 may be performed in parallel with establishment of the communication (e.g., acts 4A-1 and 4A-2), or essentially immediately thereafter. Moreover, the mapping between the Access Number (AN), Call ID, “A number”, and “B number”, is stored by provisioning server 163 in the communication parameter database 164, as depicted by act 4A-7 of
The communication between telephony device 120A and telephony device 120B over first leg (data channel of arrow 4A-3) and over the second leg (data channel of arrow 4A-4) continues until occurrence of a predetermined event. The communication between telephony device 120A and telephony device 120B involves flow of media between telephony device 120A and telephony device 120B and through the intermediate media relay 162 comprising IP telephony system 20. The predetermined event may comprise a network change or a low quality event (e.g., a low quality of service (QoS) value or other indication such as a predetermined error rate, predetermined number of packet retransmissions, or the like). The predetermined event may be detected by or reported to either telephony device 120A, telephony device 120B, or media relay 162.
In the scenario of
The CoIP application 170, being executed at the telephony device 120A in conjunction with the communication, thus either detects or is informed of the occurrence of the predetermined event 4A-8. The CoIP application 170 may optionally advise or notify the user, via an output indication provided on one or more of input/output interfaces 86D, that the current communication needs to be re-established. For example, the CoIP application 170 may provide a visual or aural notification on display screen 172 that the communication is being re-established. In some embodiments, the reconnection of the communication may occur so rapidly that it may be not be necessary or desirable to notify the user.
Upon realizing the predetermined event 4A-8, the CoIP application 170 requests that the native dialer program 169 of telephony device 120A dial the Access Number (AN) for IP telephony system 20 that was obtained in act 4A-6. Act 4A-9 shows the native dialer program 169 dialing the Access Number (AN). The Access Number (AN) is shown as being an incoming line or port of PSTN gateway 32. Thus, in the embodiment and scenario of
Act 4A-10 shows that signaling for the call received from telephony device 120A (having the “A” number”) at the Access Number (AN) is converted from PSTN to session initiation protocol (SIP) and sent to SIP server 161. Knowing both the Access Number (AN) and the A number for the re-established call, SIP server 161 sends a signal to communication parameter database 164 to request that the communication parameter database 164 perform a lookup to find the call ID and the B number associated with the Access Number (AN) and the A number (which were stored in communication parameter database 164 as act 4A-7). The communication parameter database 164 then returns the call ID and the B number associated with the Access Number (AN) and the A number to SIP server 161. The operations of the SIP server 161 requesting and receiving the call ID and the B number from communication parameter database 164 are collectively represented as act 4A-11 in
Act 4A-12 comprises SIP server 161 contacting media relay 162 to arrange for replacement of the replaceable leg with the replacement leg. Specifically, as act 4A-12 the SIP server 161 provides media relay 162 with the call ID, A number, and B number for the communication, and requests that media relay 162 transfer the leg of the communication currently connected to the A number from media relay port 162A to a new port which is connected to PSTN gateway 32, such as port 162G. A system internal data leg is set up or utilized between media relay port 162G and the PSTN gateway 32 as shown by arrow 4A-13 for the media flow, it being understood that gateway 32 provides necessary PSTN signaling to telephony device 120A. As a result of the signaling between first telephony device 120A and PSTN gateway 32, a replacement leg 4A-14, a first circuit channel leg of the communication, extends from gateway 32 to telephony device 120A. As a result, the media flow of the communication travels through the replacement first circuit channel leg 4A-14 (instead of through first data channel leg 4A-3) to PSTN gateway 32 where the media is converted to RTP or other appropriate data format, through system internal data leg 4A-13 to port 162G of media relay 162, through media relay 162, and from port 162B of media relay through the second data channel leg 4A-4 to second telephony device 120B. Thus, the media flow may experience circuit-to-packet conversion at PSTN gateway 32.
As understood from the foregoing, upon the SIP server 161 obtaining the parameter associated with the communication (the call ID and the B number associated with the Access Number (AN) and the A number), the SIP server 161 causes the media relay 162 to route media for the communication through the gateway 32 and replacement leg 4A-14 in lieu of routing the media through at least a portion of the replaced first data leg 4A-3.
From the foregoing it is also seen that the IP telephony system 20, and particularly the IP communication leg handoff processor 160, performs the acts of
Upon completion of the call set up signaling, a media flow for the communication comprising a first circuit channel leg of the communication (depicted by arrow 4B-3) and a second data channel leg of the communication (depicted by arrow 4B-4) is established. In particular, the media flow comprises the first circuit channel leg 4B-3 (which extends from telephony device 120A to PSTN gateway 32); an intra-system data leg depicted by arrow 4B-4 which extends from PSTN gateway 32 to port 162G of media relay 162; a cross connect between port 162G and port 162B; and second data channel leg 4B-6 extending from port 162B of media relay 162 to telephony device 120B. Because this first circuit channel leg 4B-3 will be a replaceable leg of the communication, the arrow for first circuit channel leg 4B-3 is shown with dashed lines. The media flow continues as illustrated until occurrence of a predetermined event. The media flow may undergo circuit channel to data channel conversion at PSTN gateway 32.
It should be understood that
Act 4B-6 of
The CoIP application 170 of the telephony device 120A may determine that a data network is available in lieu of the circuit network (e.g., public switched telephone network (PSTN) 26) that has been used to handle the first circuit channel leg of the communication. Upon such determination of availability of a data network, the CoIP application 170 of telephony device 120A may, as act 4B-7, call the provisioning server 163 of IP telephony system 20. The call of act 4B-7 to provisioning server 163 is configured to request that the provisioning server 163 obtain and send to CoIP application 170 the internal call ID for the communication. The call of act 4B-7 may use Hypertext Transfer Protocol (HTTP), for example. Since, at least in one example scenario, the communication started or was initiated through the public switched telephone network (PSTN) 26, the CoIP application 170 may not have been informed of the call ID. But telephony device 120A, and thus CoIP application 170, knows the A number and the B number at the time of call initiation. The A number and B number are stored for every call, along with the associated call ID, in database 164. So upon receipt of the call of act 4B-7 including the A number and the B number the provisioning server 163 of IP telephony system 20 can query the database 164, obtain the needed call ID, and return the call ID to telephony device 120A and its CoIP application 170. Act 4B-8 of
The foregoing describes that telephony device 120A may become a data network-eligible telephony device, e.g., a data network is available and utilizable by telephony device 120A in lieu of the circuit network. Upon becoming a data network-eligible telephony device, the telephony device 120A is provided (by provisioning server 163) with a parameter associated with the communication, e.g., the call ID.
Upon determining that a data network is available, the CoIP application 170 of telephony device 120A may optionally inform or notify the user of telephony device 120A that the CoIP application 170 is attempting or will attempt to re-establish the communication (e.g., over a data network). In some situations the re-establishment may occur so quickly that it may be unnecessary or even undesirable to notify the user.
Also after determining that a data network is available, as act 4B-9 the CoIP application 170 sends a connection request message to SIP server 161. The connection request message of act 4B-9 may be a SIP INVITE or SIP RE-INVITE message. The connection request message of act 4B-9 includes the call ID, the A number (of telephony device 120A), and the B number (of telephony device 120B).
As act 4B-10 the SIP server 161 contacts media relay 162 in conjunction with the communication that is associated with the call ID, number A, and number B borne by the connection request message of act 4B-9. As part of act 4B-10 the SIP server 161 directs the media relay 162 to transfer the media flow of the communication from port 162G to another port, such as port 162A, which may be used for a data channel. With the transfer from port 162G to port 160A, the media flow of the communication occurs through the replacement first data leg (depicted by arrow 4B-11), between ports 162A and 162B internally in media relay 162, and through the second data leg of the communication (depicted by arrow 4B-4). The second data leg of the communication (depicted by arrow 4B-4) extends between port 162B and telephony device 120B.
It was described above how in the scenario of
From the foregoing it is seen that the IP telephony system 20, and particularly the IP communication leg handoff processor 160, performs the acts of
It was mentioned above that some of the acts of
Act 8-1 comprises a processor of a telephony device, e.g., processors 82D of telephony device 120A, participating in establishment of a communication between telephony device and a second telephony device and through a media relay 162 of an internet-based telephony system 20. As explained above, the internet-based telephony system 20 is not a native telephony system of the telephony device. The communication as established at least initially comprises a first data leg of the communication (such as arrow 4A-3) and a second data leg of the communication (such as arrow 4A-4). As shown in
Act 8-2 comprises the processor 82D of the telephony device 120A providing the internet-based telephony system 20 with a parameter of the communication to be associated with the access number. Act 8-2 is also illustrated with reference to act 4A-5 of
Act 8-4 occurs upon occurrence of a predetermined event involving an affected leg of the communication, e.g., leg 4A-3 of
The acts of
Act 9-1 comprises the processors 82D participating in establishment of a communication between the telephony device 120A and a second telephony device 120B and through the media relay 162 of internet-based telephony system 20. As explained above, internet-based telephony system 20 is not a native telephony system of the telephony device 120A. As established, the communication at least initially comprising a first leg of the communication (shown as leg 4B-3 in
In the method of
Act 9-3 comprises the processors 82D of the telephony device 120D using the parameter to participate in a connection establishment procedure wherein the circuit channel leg of the communication (e.g., leg 4B-3) is replaced with a data channel leg, e.g., replacement data channel 4B-11).
As is also understood with reference to act 4B-9 of
Thus the acts of
Although the data-to-circuit leg handover operation of
The CoIP application 170 as described above may take various implementation forms. For example, the CoIP application 170 may be configured and executed as a traditional “over the top” (OTT) application. An OTT application typically executes separately from the native dialer program 169. In its OTT form the CoIP application 170 may authorize the native dialer program 169 to re-establish the communication by placing a call through the public switched telephone network (PSTN) 26 to the Access Number, as described in conjunction with act 4A-9. But an OTT version of CoIP application 170 may not be able to assume control back from the native dialer program 169 after a circuit channel leg has replaced a data channel leg since the OTT version of CoIP application 170 may not have permission to do so. Therefore, with an OTT CoIP application 170 it may not be possible after a circuit-to-data switch of a leg to revert back to by data leg by performing a subsequent data-to-circuit switch.
In some implementations the CoIP application 170 may take the form of a mobile virtual network operator (MVNO) application. An MVNO CoIP application 170 may be essentially one-in-the-same with the native dialer program 169, or have interface capabilities that the operating system and/or the native dialer program 169 so that the MVNO CoIP application 170 may reassume or continue in control even after a connection request has been made for a circuit channel through public switched telephone network (PSTN) 26, for example. Thus, with a MVNO CoIP application 170 it may indeed be possible after a circuit-to-data switch of a leg to revert back to by data leg by performing a subsequent data-to-circuit switch.
It was mentioned above that the telephony device 120A may become a data network eligible telephony device, and that such eligibility may comprise the predetermined event that triggers replacement of the replaceable leg of the communication with the replacement leg. Eligibility as a data network eligible telephony device may occur as the telephony device 120A roams from a circuit network to a data network. It is understood by those skilled in the art that a telephony device may roam in various manners or scenarios, including but not limited to those described in U.S. patent application Ser. No. 14/291,566, filed May 30, 2014; and U.S. patent application Ser. No. 14/333,490, filed Jul. 16, 2014, both of which are incorporated herein by reference in their entireties.
Various functions described herein, including functions of IP communication leg handoff processor 160 of internet-based telephony system 20 and IP telephony application 170 of telephony device 120, may, at least in some embodiments and modes, be performed by machine hardware such as that shown in
The functions of the various elements including functional blocks, including but not limited to those labeled or described as “computer”, “processor” or “controller”, may be provided through the use of hardware such as circuit hardware and/or hardware capable of executing software in the form of coded instructions stored on computer readable medium. Thus, such functions and illustrated functional blocks are to be understood as being either hardware-implemented and/or computer-implemented, and thus machine-implemented.
In terms of hardware implementation, the functional blocks may include or encompass, without limitation, digital signal processor (DSP) hardware, reduced instruction set processor, hardware (e.g., digital or analog) circuitry including but not limited to application specific integrated circuit(s) [ASIC], and/or field programmable gate array(s) (FPGA(s)), and (where appropriate) state machines capable of performing such functions.
In terms of computer implementation, a computer is generally understood to comprise one or more processors or one or more controllers, and the terms computer and processor and controller may be employed interchangeably herein. When provided by a computer or processor or controller, the functions may be provided by a single dedicated computer or processor or controller, by a single shared computer or processor or controller, or by a plurality of individual computers or processors or controllers, some of which may be shared or distributed. Moreover, use of the term “processor” or “controller” shall also be construed to refer to other hardware capable of performing such functions and/or executing software, such as the example hardware recited above.
Although the description above contains many specificities, these should not be construed as limiting the scope of the technology disclosed herein but as merely providing illustrations of some of the presently preferred embodiments of the technology disclosed herein. Thus the scope of the technology disclosed herein should be determined by the appended claims and their legal equivalents. Therefore, it will be appreciated that the scope of the technology disclosed herein fully encompasses other embodiments which may become obvious to those skilled in the art, and that the scope of the technology disclosed herein is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” All structural, chemical, and functional equivalents to the elements of the above-described preferred embodiment that are known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the present claims. Moreover, it is not necessary for a device or method to address each and every problem sought to be solved by the technology disclosed herein, for it to be encompassed by the present claims. Furthermore, no element, component, or method step in the present disclosure is intended to be dedicated to the public regardless of whether the element, component, or method step is explicitly recited in the claims. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”