METHOD AND SYSTEM TO ENHANCE COMMUNICATION BETWEEN AN IPV6-ONLY SIP CLIENT AND AN IPV4-ONLY SERVER OR CLIENT

20220094664 · 2022-03-24

    Inventors

    Cpc classification

    International classification

    Abstract

    Systems, methods, software and apparatus to enhance connectivity to an IPv6-only SIP client and an IPv4-only server and/or client. In one embodiment, a method comprises assigning the IPv6-only client an IPv4-translatable IPv6 Internet Protocol (IP) address. The method further includes determining the IPv6-only client is initiating the SIP communication session with the IPv4-only server or client. The method further includes extracting an IPv4 IP address from the IPv4 translatable IPv6 IP address, and using the extracted IPv4 address in a SIP contact header to register with an IPv4 SIP server and the Via header to get 200 OK responses. The IPv4 address used in the ‘c’ or ‘m’ lines is used to synthesize an IPv4 translatable IPv6 address for directly transferring media between an IPv6-only client and an IPv4-only client.

    Claims

    1. A method of operating an IPv6-only client to conduct a SIP (Session Initiation Protocol) communication session with an IPv4-only server or client, the method comprising: assigning the IPv6-only client an IPv4-translatable IPv6 Internet Protocol (IP) address; determining the IPv6-only client is initiating the SIP communication session with the IPv4-only server or client; extracting an IPv4 IP address from the IPv4 translatable IPv6 IP address; and providing the extracted IPv4 address in a SIP header of IPv6 packets.

    2. The method of claim 1, further comprising: using the extracted IPv4 address in ‘m’ and ‘c’ SDP LINES as a destination Real-time Transport Protocol (RTP) address.

    3. The method of claim 1, further comprising: registering with a SIP IPv4-only Proxy using the extracted IPv4 IP address.

    4. The method of claim 1, further comprising: using the IPv4 translatable IPv6 IP address for TCP.

    5. The method of claim 1, wherein determining the IPv6-only client is initiating the SIP communication session with the IPv4-only server or client comprises performing a DNS query for a SIPv4 Proxy FQDN and receiving AAAA records in response, and wherein the AAAA records start with an IPv6 translation prefix.

    6. The method of claim 1, wherein extracting the IPv4 IP address from the IPv4 translatable IPv6 IP address comprises: determining a translation prefix; and extracting the IPv4 IP address from the IPv4 translatable IPv6 IP address using the determined translation prefix.

    7. The method of claim 1, wherein using the extracted IPv4 IP address in the SIP header comprises using the extracted IPv4 IP address in a Via header and a contact header.

    8. The method of claim 1, further comprising: the IPv6-only client and the IPv4-only server or client transmitting media directly using UDP.

    9. An IPv6-only client conducting a SIP (Session Initiation Protocol) communication session with an IPv4 only server or client, the IPv6-only client comprising: a processor configured to determine the SIP communication session is with the IPv4-only server or client; the processor configured to extract an IPv4 IP address from the IPv4-translatable IPv6 IP address; and a communication interface configured to provide the extracted IPv4 IP address in a SIP header of IPv6 packet.

    10. The IPv6-only client of claim 9, further comprising: the communication interface configured to use the extracted IPv4 address in ‘m’ and ‘c’ SDP LINES as a destination Real-time Transport Protocol (RTP) address.

    11. The IPv6-only client of claim 9, further comprising: the communication interface configured to register with a SIP IPv4-only Proxy using the extracted IPv4 IP address.

    12. The IPv6-only client of claim 9, further comprising: the communication interface configured to use the IPv4 translatable IPv6 IP address for TCP.

    13. The IPv6-only client of claim 9, wherein the communication interface configured to perform a DNS query and receives AAAA records in response, and wherein the AAAA records start with an IPv6 translation prefix.

    14. The IPv6-only client of claim 9, wherein the processor is further configured to: determine a translation prefix; and extract the IPv4 IP address from the IPv4-translatable IPv6 IP address using the determined translation prefix.

    15. The IPv6-only client of claim 9, wherein the communication interface is configured to use the extracted IPv4 IP address in a Via header and a contact header.

    16. A computer-readable medium comprising processor-executable instructions comprising: instructions configured to conduct a SIP (Session Initiation Protocol) communication session between an IPv6-only client and an IPv4-only server or client; instructions configured to determine the IPv6-only client is initiating the SIP communication session with the IPv4-only server or client; instructions configured to extract an IPv4 IP address from the IPv4-translatable IPv6 IP address; and instructions configured to provide the extracted IPv4 IP address in a SIP header of IPv6 packets.

    17. The computer-readable medium of claim 16, further comprising: instructions configured to use the extracted IPv4 address in ‘m’ and ‘c’ SDP LINES as a destination Real-time Transport Protocol (RTP) address.

    18. The computer-readable medium of claim 16, further comprising: instructions configured to use the IPv4 translatable IPv6 IP address for TCP

    19. The computer-readable medium of claim 16, further comprising: instructions configured to register with a SIP IPv4-only Proxy using the extracted IPv4 IP address.

    20. The computer-readable medium of claim 16, further comprising: instructions configured to determine a translation prefix; and instructions configured to extract the IPv4 IP address from the IPv4-translatable IPv6 IP address instructions configured to use the determined translation prefix.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0049] The present disclosure is described in conjunction with the appended figures:

    [0050] FIG. 1 is a block diagram illustrating a single-mode and a dual-mode host in accordance with embodiments of the present disclosure;

    [0051] FIGS. 2A-2B are block diagrams illustrating an IPv6-only device on an IPv6-only network communicating with an IPv4-only device on an IPv4-only network via a translator and SIP Proxy in accordance with embodiments of the present disclosure;

    [0052] FIG. 3A illustrates an example message flow in which an IPv4-only caller cannot reach an IPv6-only callee in accordance with embodiments of the present disclosure;

    [0053] FIG. 3B illustrates an example message flow in which the 200 OK message from the IPv4-only callee cannot reach the IPv6-only caller in accordance with embodiments of the present disclosure;

    [0054] FIG. 3C illustrates an example message flow to establish a connection between the IPv6-only device on the IPv6-only network communicating with the IPv4-only device on the IPv4-only network in accordance with embodiments of the present disclosure;

    [0055] FIG. 3D illustrates an example message flow to directly transfer media between the IPv6-only device on the IPv6-only network and the IPv4-only device on the IPv4-only network in accordance with embodiments of the present disclosure;

    [0056] FIG. 4A is a flow diagram depicting the registration process implemented by a single mode client on a single mode network in accordance with embodiments of the present disclosure;

    [0057] FIG. 4B is a flow diagram depicting the process implemented by a single mode client on a single mode network for direct media transfer in accordance with embodiments of the present disclosure FIG. 5 illustrates an example of an address translation table in accordance with embodiments of the present disclosure; and

    [0058] FIG. 6 is a block diagram of a computer used to implement the method to enhance media path setup in accordance with embodiments of the present disclosure.

    DETAILED DESCRIPTION

    [0059] The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the claims. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. It being understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the appended claims.

    [0060] It should be appreciated that embodiments of the present disclosure can be utilized in numerous address selection scenarios.

    [0061] Furthermore, while the illustrative embodiments herein show the various components of a system collocated, it is to be appreciated that the various components of the system can be located at distant portions of a distributed network, such as a communication network and/or the Internet, or within a dedicated secure, unsecured, and/or encrypted system. Thus, it should be appreciated that the components of the system can be combined into one or more devices, such as an enterprise server or collocated on a particular node of a distributed network, such as an analog and/or digital communication network. As will be appreciated from the following description, and for reasons of computational efficiency, the components of the system can be arranged at any location within a distributed network without affecting the operation of the system. For example, the various components can be located in a local server, at one or more users' premises, or some combination thereof.

    [0062] With reference initially to FIG. 1, the Internet is a set of connected ISPs, providing single mode (e.g., IPv4-only or IPv6-only) or dual-stacked network in which IPv4 and IPv6 operate in tandem. In other words, dual IPv4/IPv6 nodes may be reachable using IPv4 addresses, IPv6 addresses, or both. IPv4 addresses have a different format than IPv6 addresses, and the two formats are not compatible. Methods such as NAT and tunneling allow devices to communicate over networks of the opposite address family. Tunneling allows packets to be transmitted from one protocol to the other by encapsulating the packets of one protocol in packets of the other protocol. In other words, IPv6 packets are encapsulated in IPv4 packets to traverse IPv4-only network and vice versa.

    [0063] FIG. 2, an illustrative communication system 200 in which connectivity over a single-mode network is described in accordance with at least some embodiments of the present disclosure. The system 200 is shown to include devices 212 and 222, servers 211 and 221, and communication networks 210 and 220. In accordance with at least some embodiments of the present disclosure, the communication networks 210 and 220 may comprise single mode networks and may comprise any type of known communication medium or collection of communication media and may use any type of protocols (e.g., IPv4 or IPv6) to transport messages between communication nodes. The device 212 and the server 211 are single mode clients connected to the single mode network 210. The device 222 and the server 221 are single mode clients connected to the single mode network 220. For example, the communication network 210 may be an IPv6-only network, and the communication network 220 may be an IPv4-only network. The device 212 may need to communicate with the device 222, or the servers 221, via NAT64 230.

    [0064] The communication networks 210 and 220 may include wired and/or wireless communication technologies. The Internet is an example of a communication networks 210 and 220 that constitutes an Internet Protocol (IP) network consisting of many computers, computing networks, and other communication devices located all over the world. Other examples of communication networks include, without limitation, a standard Plain Old Telephone System (POTS), an Integrated Services Digital Network (ISDN), the Public Switched Telephone Network (PSTN), a LAN, a WAN, a Session Initiation Protocol (SIP) network, a Voice over IP (VoIP) network, a cellular network, an enterprise network, and any other type of packet-switched or circuit-switched network known in the art. In addition, it can be appreciated that the communication networks 210 and 120 need not be limited to any one network type, and instead may be comprised of a number of different networks and/or network types. Moreover, the communication networks 210 and 220 may comprise a number of different communication media such as coaxial cable, copper cable/wire, fiber-optic cable, antennas for transmitting/receiving wireless messages, and combinations thereof. Although, only one network is shown for clarity, in some embodiments, there may be more than one network using the same or different communication protocols.

    [0065] In some embodiments, the devices 212 and 222 may include a personal communication device. Examples of suitable devices 212 and 222 include, without limitation, a telephone, a softphone, a cellular phone, a multi-speaker communication device (e.g., conference phone), a video phone, a PC, a laptop, a tablet, a PDA, a smartphone, a thin client, or the like. In various embodiments, the servers 211 and 221 may include server computers, cloud computing platforms, data centers, and any physical or virtual computing machine, as well as any variation or combination thereof.

    [0066] The system 200 is shown to include single mode devices 212 and 222, single mode servers 211 and 221, IPv6-only network 210, and IPv4-only network 220. The device 212 and the server 211 are IPv6-only clients connected to an IPv6 network 210. The device 222 and the server 221 are IPv4-only clients connected to an IPv4 network 220. For example, the device 212 may need to communicate with the device 222, or the servers 221, via NAT64 230 and SIP Proxy 240.

    [0067] FIG. 2B illustrates the message flow to establish communication between an IPv6-only device and an IPv4-only server. As shown with the (1) arrow from the IPv6-only client to the DNS server, using an IPv6 protocol, the IPv6-only client sends a query for AAAA records for www.IPv4-only to the recursive name server running DNS64. In arrow (2), using the IPv4 protocol, the recursive name server queries the name server for “www.IPv4-only” and gets no AAAA records in response. The recursive name server synthesizes an AAAA record using a prefix and optional suffix and (2) returns the synthesized AAAA record to the IPv6-only client (using IPv6). The IPv6-only client (4) sends IPv6 packet to the synthesized IPv6 address, which is routed to the NAT64 server. The NAT64 server translates the IPv6 packet to the destination IPv4 address (5). The SIPv4 Proxy returns the response over IPv4 to the NAT64 server (6). The NAT64 server converts the packet to IPv6 and returns to the IPv6-only client (7). In this flow, the IPv6-only client is unaware it is communicating with an IPv4-only server.

    [0068] FIGS. 3A-B illustrate the message flow between an IPv6-only device and an IPv4-only device. The contact for the offerer IPv6 is “7001@ca.avaya.com” and the IP address is “2001.db8:12:34::1. The IP address of the answerer IPv4-only device is “123.1.2.101.” The IPv6-only device sends a REGISTER message to the NAT64 server, the VIA lists the IPv6-only device's IP address “VIA: [2001:db8:12:34::1” The Contact header lists the IPv6-only device's contact “Contact”<sip7001@ [2001:db8:12:34::1]>” The source IP address is 2001:db8:12:34::1″ and the destination IP address is “2001:db8:46::123.1.2.3” The NAT64 server transfers the REGISTER message to the SIPv4 Proxy, and the source IP address is rewritten to “192.2.0.1.” When an IPv6-only offeror uses an IPv6 contact address to register with a SIP Proxy (single or dual mode) in an IPv4-only network, and the SIP Proxy sends an INVITE to the Contact IPv6 address over the IPv4-only network, the address cannot be routed to the NAT64 port. In other words, the caller cannot reach the callee.

    [0069] In another example, illustrated in FIG. 3B, an IPv6-only caller (UA1) provides an IPv6 address as the contact Via header in the INVITE message. The SIP Proxy sends a 200 OK to the contact Via header IPv6 address over the IPv4-only network, and the address cannot be routed to NAT64 port (i.e., 200 OK from callee cannot reach the caller).

    [0070] FIG. 3C illustrates a message flow for the when the IPv6-only device 212 on an IPv6 network connects to the IPv4-only device 222 on an IPv4-only network via a SIPv4 Proxy. The IPv6-only device 212 determines that the attempted callee device 222 is an IPv4-only device on an IPv4-only network. For example, the IPv6-only device 212 sends a DNS query to the NAT64 230, and the IPv6-only device 212 checks if the returned AAAA record address starts with an IPv6 translation prefix. If the returned AAAA record address does start with the IPv6 translation prefix, the IPv6-only device 212 knows the attempted callee device 222 is an IPv4-only device on an IPv4-only network. Therefore, the IPv6-only device 212 will provide its IPv4 service address in the SIP contact header (for registration) and the SDP ‘c’ line (for direct media). The IPv6-only device 212 is assigned an IPv4 translatable IPv6 address, for example, a service provider's entire IPv4 address space is mapped into an IPv6 translation prefix. In this example, the IPv6-only device 212 has an IPv6 address “2001:db8:46::192.2.0.1,” the “2001:db8:46” portion comprises the IPv6 translation prefix and the “192.2.0.1” portion comprises the IPv4 service address. Therefore, the extracted IPv4 address is 192.2.0.1, which is the address used in the SIP contact header when the IPv6-only device 212 registers with SIPv4 Proxy 240. With the claimed invention, an IPv6-only SIP phone can be IPv4 tolerant and manage an IPv4 service address without an ALG or SBC.

    [0071] With these changes, an IPv6-only phone can provide its IPv4 service address during registration with SIPv4 Proxy 240 (e.g., FIG. 3C). And an IPv4-only offerer will be able to send an INVITE to an IPv6-only answerer over SIPv4 Proxy 240 (e.g., FIG. 3C). The IPv6-only answerer would know the INVITE comes from the IPv4-only offerer, based on IPv4 address in INVITE Contact header, and will provide its IPv4_SA in 200 OK ‘c’ and ‘m’ lines (e.g., FIG. 3D). The IPv4-only offerer can send media directly to the IPv6-only host using the IPv6 host's service address, IPv4_SA. An IPv6-only offerer can reach an IPv4-only answerer over SIPv4 Proxy 240 and establish direct media via NAT64/46 (e.g. FIG. 3D). For example, an IPv4 tolerant phone uses the extracted IPv4 address in the Via header in the 200 OK message.

    [0072] With reference now to FIGS. 4A-4B, additional details of a process 400 for enhancing connectivity between nodes on different single-mode networks will be described in accordance with at least some embodiments of the present disclosure. The processes of operation 400 are referenced parenthetically in the paragraphs that follow.

    [0073] As illustrated in FIG. 4A, operation 400 to assign an IPv4 Translatable IPv6 address to an IPv6-only device (Step 401). For example, the IPv4 Translatable IPv6 address may be assigned using DHCPv6. The IPv6 Translation Prefix is advertised to the IPv6-only hosts, the translation prefix is needed to extract IPv4 address from the IPv4-translatable IPv6 address. The IPv6-only device on the IPv6-only network determines if it is attempting to connect to an IPv4-only device on an IPv4-only network device. If the IPv6-only device is not connecting to an IPv4-only server or client (NO) (Step 403), the operation 400 ends (Step 410). If the IPv6-only device is connecting to an IPv4-only server or client (YES) (Step 405), then the IPv4 service address is extracted from the IPv4 translatable IPv6 address assigned to the IPv6-only device (Step 407). For example, if the IPv6-only device has the IPv4 translatable IPv6 address: 2001:db8:46::192.2.0.1, the IPv4 service address is 192.2.0.1, which is extracted from 2001:db8:46::192.2.0.1. The IPv6-only host sets 192.2.0.1 as the IPv4_SA in the Via and Contact SIP headers.

    [0074] When communicating with the IPv4-only servers and clients (i.e., SIPv4 Proxy 240) represented with an IPv4-Translatable IPv6 address, an IPv6-only host has to select its IPv4 service address. The IPv4 service address is derived from the IPv4 translatable IPv6 address (using an NAT64 prefix). The IPv4 service address is set into the Via and Contact SIP headers when talking to the IPv4-only SIP Proxy 240. This ensures IPv4-only servers and clients will get an IPv4 service address from IPv6-only host and their messages will be routed to SIIT.

    [0075] As illustrated in FIG. 4B, operation 420 transfers media directly between an IPv4-only host on an IPv4-only network and an IPv6-only host on an IPv6-only network. When negotiating a media address, the IPv6-only host will detect whether it talks to IPv4-only host (Step 421). If the IPv6-only host is not talking to an IPv4-only host (NO), the operation 420 ends (Step 423). If the IPv6-only host is talking to an IPv4-only host (YES), for example, the IPv4-only host will only offer an IPv4 address in the INVITE SDP ‘c’ and/or ‘m’ line. The operation 420 proceeds to (Step 425) determine if the IPv6-only host and the IPv4-only host want to transfer media directly. If the IPv6-only host and the IPv4-only host do not want to transfer media directly (NO) the operation 420 ends (Step 423); if (YES) (i.e., the hosts want to transfer media directly), the operation 420 proceeds to (Step 427). In (Step 427), the IPv6-only host will set its IPv4_SA in the ‘c’ line, allowing the IPv4-only host to send media directly to the IPv6-only host, using the IPv6 host's service address, IPv4_SA. The IPv6-only host can also send media directly to the IPv4-only host, by synthesizing an IPv4 host IPv4 translatable IPv6 address as a destination RTP address (Step 427). In (Step 429), media is directly transferred between the IPv4-only host on the IPv4-only network and the IPv6-only host on the IPv6-only network. Since the IPv6-only device extracts the IPv4 address from the IPv4 translatable IPv6 address and sets SIPv6 headers, ‘m’ and ‘c’ SDP lines itself, using IPv4_SA, there is no need for the ALG/SBC server.

    [0076] The IPv6 only host sends media, RTP, and RTCP to the NAT64 translator using the IPv4-translatable IPv6 address. For example, the NAT64 may extract the IPv4 destination address from a UDP destination address, by removing the translation prefix part of the destination address, and sends RTP to the IPv4-only host. The IPv6-only phone will synthesize an IPv4 translatable IPv6 address for the RTP destination. When an IPv6-only host sends media, RTP and RTCP, to NAT64 XLAT, using the IPv4-translatable IPV6 address, the NAT64 extracts IPv4 destination address and sends RTP to IPv4-only host. If an INVITE comes from (n4) the IPv4-only host, with an IPv4 address in the SDP ‘m’ and ‘c’ lines, (n6) the IPv6-only host takes the IPv4 address from ‘m’ line, adds the translation prefix, and sends RTPv6 packets to the NAT64, using an IPv4 translatable IPv6 address as the UDP packet destination address (IPv6 service address is a translation prefix+IPv4 address in ‘c’ line). The IPv6-only host (n6) creates an IPv6 service address for media to (n4) the IPv4-only host and an IPv4 service address for registration to SIPv4 proxy.

    [0077] FIG. 5 illustrates an example of an address translation table 500 in accordance with the embodiments described herein, although other data formats are possible and in accordance with the embodiments described herein.

    [0078] Address Translation Table 500 comprises the fields/columns “DEVICE,” “NETWORK MODE,” “IPv6 ADDRESS,” “IPv4 ADDRESS,” and “CONTACT.” The columns listed in Address Translation table 500 are for illustrative purposes only, and not all columns are required, additionally, the table may include other columns not listed in this example.

    [0079] For example, NAT64 230 may generate the address translation table 500.

    [0080] FIG. 6 illustrates a computing system 600 used to enhance connectivity to between single-mode nodes connected to different single mode networks as described herein, according to one implementation. Similar computing systems may be included in the Clients, Hosts, and routers described herein.

    [0081] The computing system 600 is representative of any computing system or systems with which the various operational architectures, processes, scenarios, and sequences disclosed herein for providing a communication service and selecting media paths may be implemented.

    [0082] The computing system 600 is an example of the single mode devices 112, 122, 212, and 222, and the servers 111, 121, 211, and 221, although other examples may exist. The computing system 600 comprises a communication interface 601, a user interface 602, and a processing system 603. The processing system 603 is linked to the communication interface 601 and the user interface 602. The processing system 603 includes a microprocessor and/or processing circuitry 605 and a memory device 606 that stores operating software 607. The computing system 600 may include other well-known components such as a battery and enclosure that are not shown for clarity. The computing system 600 may comprise a server, a user device, a desktop computer, a laptop computer, a tablet computing device, or some other user communication apparatus.

    [0083] The communication interface 601 comprises components that communicate over communication links, such as network cards, ports, radio frequency (RF), processing circuitry and software, or some other communication devices. The communication interface 601 may be configured to communicate over metallic, wireless, or optical links. The communication interface 601 may be configured to use SIP, TCP, UDP, Time Division Multiplex (TDM), Internet Protocol (IP), Ethernet, optical networking, wireless protocols, communication signaling, or some other communication format—including combinations thereof. In some implementations, the communication interface 601 is configured to communicate with other end user devices, wherein the communication interface is used to transfer and receive voice communications for the devices.

    [0084] The user interface 602 comprises components that interact with a user to receive user inputs and to present media and/or information. The user interface 602 may include a speaker, microphone, buttons, lights, display screen, touch screen, touch pad, scroll wheel, communication port, or some other user input/output apparatus—including combinations thereof. The user interface 602 may be omitted in some examples.

    [0085] The processing circuitry 605 comprises a microprocessor and other circuitry that retrieves and executes operating the software 607 from the memory device 606. The memory device 606 may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. The memory device 606 may be implemented as a single storage device, but may also be implemented across multiple storage devices or sub-systems. The memory device 606 may comprise additional elements, such as a controller to read the operating software 607. Examples of storage media include random access memory, read only memory, magnetic disks, optical disks, and flash memory, as well as any combination or variation thereof, or any other type of storage media. In some implementations, the storage media may be a non-transitory storage media. In some instances, at least a portion of the storage media may be transitory. It should be understood that in no case is the storage media a propagated signal.

    [0086] The processing circuitry 605 is typically mounted on a circuit board that may also hold the memory device 606 and portions of the communication interface 601 and the user interface 602. The operating software 907 comprises computer programs, firmware, or some other form of machine-readable program instructions. The operating software 607 includes an IPv4 translation module 608 and a detection module 610, although any number of software modules within the application may provide the same operation. The operating software 607 may further include an operating system, utilities, drivers, network interfaces, applications, or some other type of software. When executed by the processing circuitry 605, the operating software 607 directs the processing system 603 to operate the computing system 600 as described herein.

    [0087] In at least one implementation, the IPv4 translation module 608, when read and executed by the processing system 603, directs the processing system 603 to extract an IPv4 address from an IPv4 translatable IPv6 address assigned to an IPv6-only device. In some embodiments, the IPv4 translation module 608, when read and executed by the processing system 603, directs the processing system 603 to append an IPv6 prefix to an IPv4 address for IPv4 only to IPv6 only. For example, the IPv6 prefix may be appended to the IPv4 packet header source address and the registered contact IPv4 address. In at least one implementation, the detection module 610, when read and executed by the processing system 603, directs the processing system 603 to determine that the destination of a communication is an IPv4-only device on an IPv4-only network.

    [0088] It should also be appreciated that the methods described above may be performed by hardware components or may be embodied in sequences of machine-executable instructions, which may be used to cause a machine, such as a general-purpose or special-purpose processor (GPU or CPU) or logic circuits programmed with the instructions to perform the methods (FPGA). These machine-executable instructions may be stored on one or more machine readable mediums, such as CD-ROMs or other type of optical disks, floppy diskettes, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, flash memory, or other types of machine-readable mediums suitable for storing electronic instructions. Alternatively, the methods may be performed by a combination of hardware and software.

    [0089] Specific details were given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, processes, algorithms, structures, and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.

    [0090] Also, it is noted that the embodiments were described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.

    [0091] Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

    [0092] While illustrative embodiments of the disclosure have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed, and that the appended claims are intended to be construed to include such variations, except as limited by the prior art.