IP TOLERANCE AND SIGNAL COOPERATION
The system addresses IP version intolerance by adapting IP addresses in SIP messages, ensuring seamless communication between IPv4 and IPv6 devices by detecting and modifying IP versions at the application layer.
Patent Information
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2018-06-05
- Publication Date
- 2026-03-19
AI Technical Summary
Existing communication systems face issues with IP version intolerance, particularly when IPv6 addresses are included in SIP messages, leading to malfunctions or crashes in IPv4-only implementations, necessitating a way to detect and adapt IP versions for compatibility in mixed IPv4/IPv6 environments.
A system that modifies IP addresses in communication messages to ensure compatibility by detecting IP version intolerance, adjusting IP versions at the application layer, and adapting IP addresses in SIP messages to establish seamless communication sessions between IPv4 and IPv6 devices.
Ensures interoperability between IPv4 and IPv6 devices by automatically adapting IP addresses, preventing malfunctions and enabling successful communication sessions.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Internet Protocol (IP) version 4 (IPv4) is a network protocol that provides communication capabilities over the internet. In IPv4, each IP address is 32 bits long, allowing for 4.3 billion unique addresses to identify devices. With so many mobile communication devices now in operation, additional IP addresses are needed before the IPv4 address pool is exhausted. Internet Protocol version 6 (IPv6), the replacement for IPv4, increases the number of available IP addresses by changing the way addresses are assigned. In IPv6, an IP address is 128 bits long.
[0002] Existing Requests for Comments (RFCs) for the Session Initiation Protocol (SIP) state that newer IPv6 solutions must support IPv4 addresses, and older IPv4 implementations must support both IPv4 and IPv6. While some newer implementations support both types of IP addresses when the managed address is either IPv4 or IPv6, this approach is not universal. In other words, there are cases where a newer implementation does not support IPv4 addresses in messages when configured as an IPv6 device, and does not support IPv6 addresses when configured as an IPv4 device.
[0003] Furthermore, most older implementations that only support IPv4 do not tolerate IPv6 addresses in SIP messaging. If IPv6 addresses are included in the SIP messages, such implementations may malfunction or, in the worst case, crash instead of processing the IPv6 addresses. What is needed is a way to detect IP version intolerance to enable better collaboration in a mixed IPv4 / IPv6 environment. SUMMARY
[0004] These and other needs are addressed by the various embodiments and configurations of the present disclosure. When attempting to establish a communication session between a first communication unit and a second communication unit, an initial message is received. The initial message may, for example, be a SIP INVITE message. Based on a registration message from the first communication unit and / or the second communication unit, it is determined that at least one of the first or second communication unit is Internet Protocol (IP) version intolerant. In response to the determination that at least one of the first or second communication unit is IP version intolerant, one or more IP addresses are adapted in messages (e.g., the SIP INVITE message) to establish the communication session.Such concepts are known, for example, from US 2016 / 0036943 A1 or US 2005 / 0066038 A1.
[0005] The adjustment changes / removes one or more IP addresses to a different IP version to ensure correct IP compatibility.
[0006] The phrases "at least one", "one or more", "or", and "and / or" are open expressions that function both subjunctive and disjunctive. For example, each of the expressions "at least one of A, B and C", "at least one of A, B or C", "one or more of A, B and C", "one or more of A, B or C", "A, B and / or C", and "A, B or C" means A alone, B alone, C alone, A and B together, A and C together, B and C together, or A, B and C together.
[0007] The term "a" or "an" unit refers to one or more of these units. The terms "a," "one or more," and "at least one" can be used interchangeably here. It should also be noted that the terms "comprise," "contain," and "exist" can be used interchangeably.
[0008] The term "automatic" and variations thereof, as used here, refers to any process or operation that is typically continuous or semi-continuous and is carried out without material human input when the process or operation is executed. However, a process or operation can also be considered automatic even if its execution involves material or immaterial human input, provided that the input is received prior to the execution of the process or operation.
[0009] Human input is considered essential if it influences how the process or operation is carried out. Human input that is consistent with the execution of the process or operation is not considered "essential".
[0010] Aspects of this disclosure may take the form of a complete hardware implementation, a complete software implementation (including firmware, resident software, microcode, etc.), or an embodiment that combines software and hardware aspects, all of which may be referred to herein generally as a "circuit," "module," or "system." Any combination of one or more computer-readable media may be used. The computer-readable medium may be a computer-readable signaling medium or a computer-readable storage medium.
[0011] The computer-readable storage medium may, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or a suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media would include: an electrical connection with one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), an optical fiber, portable read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or a suitable combination of the foregoing.For the purposes of this document, a computer-readable storage medium can be any tangible medium capable of containing or storing a program for use by or in conjunction with a command execution system, device, or apparatus.
[0012] A computer-readable signal medium can comprise a propagating data signal containing computer-readable program code, for example, in the baseband or as part of a carrier wave. Such a propagating signal can take various forms, including, but not limited to, electromagnetic, optical forms, or a suitable combination thereof.
[0013] A computer-readable signaling medium can be any computer-readable medium that is not a computer-readable storage medium and that can communicate, disseminate, or transport a program for use by or in conjunction with a command execution system, device, or apparatus. Program code embodied on a computer-readable medium can be transmitted by any suitable medium, including, but not limited to, wireless, wired, fiber optic cables, RF, etc., or any suitable combination thereof.
[0014] The terms “determine”, “calculate”, “calculate” and variations thereof as used here are used interchangeably and include any kind of methodology, process, mathematical operation or technique.
[0015] The term "means," as used herein, shall be construed in the broadest possible manner in accordance with 35 USC, Section 112(f) and / or Section 112, Paragraph 6. Accordingly, a claim containing the term "means" shall include all structures, materials, or actions set forth herein and all equivalents thereof.
[0016] Furthermore, the structures, materials or actions and their equivalents must all be included in the summary, the brief description of the drawings, the detailed description, the abstract and the claims themselves.
[0017] The term "communication unit," as used here, can refer to any unit that is an endpoint in a dialogue. A communication unit can be a communication endpoint, a back-to-back user agent, a communication system, a SIP user agent (SIP UA), and / or similar. A dialogue is a communication session between communication units, each with its own connection identifier (e.g., as in...). Fig. 4-5 described). For example, a dialog in SIP has a unique session identifier for each SIP dialog.
[0018] The SIP message types, such as a SIP INVITE message, a SIP 200 OK message, a SIP ACK message, a SIP NOTIFY message, a SIP REGISTER message, a SIP PUBLISH message, a SIP 488 NOT ACCEPTABLE HERE message, a SIP SUBSCRIBE message, a SIP NOTIFY message, a SIP PUBLISH message, and / or the like, are based on standardized SIP messages according to the SIP standards. The disclosure describes that some of these messages can be modified to ensure IP tolerance between different communication entities.
[0019] When quoting standard SIP messages herein, average professionals would recognize that the scope of these messages is limited to the SIP protocol unless otherwise stated.
[0020] The foregoing is a simplified summary intended to facilitate understanding of some aspects of the disclosure. This summary does not constitute a comprehensive or exhaustive overview of the disclosure and its various embodiments. It is not intended to identify essential or critical elements of the disclosure, nor to delimit its scope, but rather to present selected concepts of the disclosure in a simplified form as an introduction to the description provided below. As can be seen, other embodiments of the disclosure are possible, which, alone or in combination, utilize one or more of the features mentioned above or described in detail below. While the disclosure is presented using exemplary embodiments, it should be noted that individual aspects of the disclosure may be claimed separately. BRIEF DESCRIPTION OF THE DRAWINGS Fig.Figure 1 is an exemplary block diagram of a first exemplary system for handling IP version intolerance. Fig. Figure 2 is an exemplary block diagram of a second exemplary system for handling IP version intolerance between communication systems. Fig. Figure 3 is an exemplary block diagram of the message flow in a communication session between communication endpoints with IP tolerance / intolerance. Fig. Figure 4 is a flowchart of a process for handling IP version tolerance in a Session Initiation Protocol (SIP) communication session. Fig. Figure 5 is a flowchart of a process for handling IP version tolerance in a Session Initiation Protocol (SIP) communication session with a sequenced back-to-back user agent. Fig.Figure 6 is a flowchart of a process for registering multiple communication endpoints of a user with a single record address. Fig. Figure 7 is a flowchart of a call forking process where multiple communication endpoints of a user have been registered with a single record address. DETAILED DESCRIPTION
[0021] Fig. Figure 1 is an exemplary block diagram of a first exemplary system 100 for handling IP version intolerance. The first example system 100 consists of the communication endpoints 101A-101N, a network 110, and a communication system 120.
[0022] The communication endpoints 101A-101N can be any communication endpoint device capable of communicating over network 110, such as a personal computer (PC), telephone, video system, mobile phone, personal digital assistant (PDA), tablet, notebook, web server, media server, smartphone, and / or similar device. The communication endpoints 101A-101N are devices where a communication session terminates. They are not network elements that facilitate and / or forward a communication session within the network, such as a communication manager or router. As described in Fig. As shown in Figure 1, any number of communication endpoints 101A-101N can be connected to network 110. The communication endpoints 101A-101N can be Session Initiation Protocol (SIP) User Agents (SIP UAs).
[0023] The communication endpoint 101A still consists of a processor 102A, an IP protocol stack 103A, and a network interface 104A. The communication endpoints 101B-101N may also contain the elements 102-104 in a similar configuration to the communication endpoint 101A, although this is not shown.
[0024] The 102A processor can be or include any hardware processor, such as a microprocessor, microcontroller, digital signaling processor (DSP), application-specific processor, multi-core processor, and / or similar. The 102A processor can process software / firmware instructions to implement the Communication Endpoint 101 processes described herein.
[0025] The IP protocol stack 103A can contain any firmware / software that can be used to support the Internet Protocol (IP). The IP protocol stack 103A can support IPv4, IPv6, or a combination of both. The IP protocol stack 103A can support other IP versions along with other protocol stacks. For example, the communication endpoint 101A can support SIP, H.323, Web Real-Time Communication (WebRTC), Session Description Protocol (SDP), Real-Time Communication Protocol (RTCP), and / or similar protocols.
[0026] The network interface 104A can be or include any hardware interface that enables the communication endpoint 101 to communicate over the network 110, such as an Ethernet interface, a WiFi interface, a cellular interface, a fiber optic interface, a wireless interface and / or the like.
[0027] Network 110 can or may include any collection of communication devices capable of sending and receiving electronic communications, such as the Internet, a Wide Area Network (WAN), a Local Area Network (LAN), a Voice over IP (VoIP) network, the Public Switched Telephone Network (PSTN), a packet-switched network, a circuit-switched network, a mobile network, a combination of these, and the like. Network 110 can use a variety of electronic protocols, such as Ethernet, Internet Protocol (IP), Session Initiation Protocol (SIP), H.323, video protocols, WebRTC, Integrated Services Digital Network (ISDN), and the like. Thus, Network 110 is an electronic communications network configured to transmit messages via packets and / or circuit-switched communication.
[0028] The communication system 120 can be or include any hardware system coupled with software / firmware capable of managing communication on the network 110, such as a communication manager, session manager, private branch exchange (PBX), router, switch, proxy server 121, central office switch, and / or the like. The communication system 120 further includes the proxy server 121, a processor 122, an IP protocol stack 123, a network interface 124, one or more back-to-back user agents (B2BUA) 125, and an IP version manager 126.
[0029] Proxy server 121 can be any proxy server, or it can contain one, capable of managing communication sessions between communication endpoints 101A-101N. In one embodiment, proxy server 121 can be a SIP proxy server. SIP proxy server 121 can manage a communication session (i.e., a single SIP dialogue) between two or more communication endpoints 101.
[0030] Processor 122 can be any hardware processor or contain one. For example, Processor 122 can be identical or similar to Processor 102.
[0031] IP protocol stack 123 can be the same as or different from IP protocol stack 103 in communication endpoint 101. IP protocol stack 123 supports both IPv4 and IPv6, while IP protocol stack 103 can support only one or both of IPv4 or IPv6.
[0032] Network interface 124 can be the same as or different from network interface 104. Network interface 124 can comprise multiple network interfaces. For example, network interface 124 can consist of a WiFi interface and an Ethernet interface.
[0033] The Back-to-Back User Agent (B2BUA) 125 can be or contain any application capable of managing communication sessions between communication endpoints 101A-101N. For example, the B2BUA 125 could be a call recording application, a call forwarding application, a call forking application, a transcription application, a translation application, and / or similar. A B2BUA 125 can be IP-intolerant. For example, a B2BUA 125 might only support IPv4 or IPv6 in SIP messages. Although the B2BUA 125 appears in the communication system 120, it can also be separate from the communication system 120 in other instances, such as in a SIP proxy server or another SIP entity.
[0034] The IP Version Manager 126 can contain any firmware / software that can be used to support the Internet Protocol (IP). For example, the IP Version Manager 126 can switch between IPv4 and IPv6 (or between IPv6 and IPv4) to protect IP-intolerant communication endpoints 101 and B2BUAs 125 that are IP-intolerant.
[0035] Fig. Figure 2 is an exemplary block diagram of a second exemplary system 200 for handling IP version intolerance between communication systems 120. The second example system 200 comprises the communication endpoints 101A-101N, the networks 110A-110C and the communication systems 102A-120B. Fig. Figure 2 shows examples of where the communication systems 120 can be distributed. For example, network 110B could be the Internet, and networks 110A and 110C could be corporate networks. Fig.In addition to the communication endpoints 101A-101N, one or more of the communication systems 120A-120B may be IP-intolerant. For example, communication system 120A (e.g., proxy server 121) may use IPv4 / IPv6, while communication system 120B may only use IPv4. Fig. 2. Other devices (not shown) may also be present. For example, firewalls may exist between the communication systems 120A / 120B and the network 110B.
[0036] Fig. Figure 3 is an exemplary block diagram of the message flow in a communication session between communication endpoints 101A-101N (communication units) with IP tolerance / intolerance. The process of Fig. Section 3 is discussed using the communication endpoints 101A-101N as an example. As described here and in the claims, a communication endpoint 101 can be a communication unit. In some embodiments, the process of Fig.3. However, they lie between two non-communication endpoints (e.g., as in Fig. Figure 2 shows where a communication session can include two communication systems 120, or where a communication unit is a B2BUA 125. Alternatively, only one of the communication units can be a communication endpoint 101, e.g., a communication session between a communication endpoint 101 and a media server / B2BUA 125.
[0037] IP tolerance / intolerance, as defined here, occurs when a communication unit (e.g., a communication endpoint 101, a B2BUA 125, an application, a communication system 120, a proxy server 121, and / or another device (e.g., a gateway, session border controller, etc.) is unable to receive and / or respond to messages of a different IP version at the application layer. Examples of application layer protocols include SIP, H.323, WebRTC, H.624, G711, and / or similar. Handling different IP versions at the application layer differs from handling different IP versions at the network layer (e.g., as defined in the ISO 7-layer model). IP is a network layer protocol. Adaptation between different versions of IP (especially IPv4 / IPv6) at the network layer is known and is not covered by this patent application.
[0038] If a device or application is IP-intolerant, the communication system 120 modifies one or more of the outgoing messages 302 / 306 to ensure that communication sessions can be established properly. The following is a list of the different types of IP tolerance / intolerance. • IPv4-intolerant: These communication units can only accept and generate IPv4 addresses for signaling over IPv4 connections. IPv4-intolerant devices / applications cannot send / receive messages with IPv6 addresses. • IPv6-intolerant: These communication units can only accept and generate IPv6 addresses in signaling over IPv6 connections. IPv6-intolerant devices / applications cannot send / receive messages with IPv4 addresses. • IPv4-tolerant: In addition to IPv4 addresses, these communication units can accept and generate IPv6 addresses in signaling over IPv4 connections. • IPv6-tolerant: In addition to IPv6 addresses, these communication units can accept and generate IPv4 addresses in signaling over IPv6 connections. • IPv46-intolerant: These communication units support both IPv4 and IPv6 addresses: These communication units can only accept and generate IPv4 addresses in signaling over IPv4 connections; and only IPv6 addresses over IPv6 connections. (This classification applies only to SIP communication units). • IPv46-tolerant: These communication units support both IPv4 and IPv6 addresses: They can accept and generate IPv4 addresses in signaling over IPv6 connections; and IPv6 addresses over IPv4 connections. (This classification applies only to SIP communication units).
[0039] Table 1 below lists the different combinations of IP tolerance / intolerance and whether the communication system 120 needs to change one or more of the outgoing messages 302 / 306 to ensure IP version compatibility. Table 1 Endpoint of communication 101A Endpoint of communication 101N Communication system 120 IPv4-intolerant IPv4-intolerant No adjustment IPv4-intolerant IPv6-tolerant Adjustment of output 302 / 306 IPv4-intolerant IPv4-tolerant Adjustment of output 306 IPv4-intolerant IPv6-tolerant Adjustment of output 306 IPv4-intolerant IPv46-intolerant If communication is initiated at endpoint 101N in IPv6, adjust outputs 302 / 306. If communication is initiated at endpoint 101A in IPv4, no adjustment is necessary. IPv4-intolerant IPv46-tolerant Adjustment of output 306 IPv6-intolerant IPv6-intolerant No adjustment IPv6-intolerant IPv4-tolerant Adjustment of output 306 IPv6-intolerant IPv6-tolerant Adjustment of output 306 IPv6-intolerant IPv46-intolerant If communication endpoint 101N is initiated in IPv4, adjust outputs 302 / 306. If communication endpoint 101A is initiated in IPv6, no adjustment is necessary. IPv6-intolerant IPv46-tolerant Adjustment of output 306 IPv4-tolerant IPv4-tolerant No adjustment IPv4-tolerant IPv6-tolerant No adjustment IPv4-intolerant IPv46-tolerant Output 302 is adjusted if the addresses are from the address family opposite to the address family of the connection. IPv4-tolerant IPv46-tolerant No adjustment IPv6-tolerant IPv6-tolerant No adjustment IPv6-intolerant IPv46-tolerant Output 302 is only adjusted if both IPv4 and IPv6 are included in the same message. IPv6-tolerant IPv46-tolerant No adjustment IPv46-intolerant IPv46-intolerant Adjustment is necessary if the addresses are in a different family. IPv46-intolerant IPv46-tolerant Output 306 is only adjusted if both IPv4 and IPv6 are included in the same message. IPv46-tolerant IPv46-tolerant No adjustment
[0040] Based on Table 1, the communication system 120 (proxy server 121 / IP version manager 126) modifies outgoing messages 302 / 306 as needed. In some implementations, the modification may consist of changing only a portion of the IP addresses within outgoing messages 302 and / or 306. In some cases, incoming messages 300 and / or 304 may contain both IPv4 and IPv6 addressing. For example, in a conference call with three or more participants, an IPv4-tolerant communication endpoint 101 may confer with both an IPv6-intolerant communication endpoint 101 and an IPv4-intolerant communication endpoint 101. In this case, some or all incoming messages 300 / 304 addressed to IPv6-intolerant communication endpoint 101 and IPv4-intolerant communication endpoint 101 may contain both IPv4 and IPv6 addresses.In these cases, the proxy server 121 / IP version manager 126 can adjust the IP addresses as needed to ensure interoperability between the IP versions. This adjustment may involve removing parts of headers, parameters, etc., to guarantee interoperability.
[0041] For example, communication endpoint 101A can be assumed to be an IPv6-intolerant communication unit, and communication endpoint 101N is an IPv4-intolerant communication unit. In this example, communication system 120 changes the IP version (IPv6) of incoming message 300 to IPv4 in outgoing message 302. Communication system 120 changes the IP version by replacing / removing IP addresses at the application layer (e.g., the ISO 7-layer model). For example, by changing / removing IPv6 addresses in SIP messages. Similarly, communication system 120 changes the IP version (IPv4) in incoming message 304 to IPv6 in outgoing message 306. In the above example, there is only a single communication session (i.e., a dialogue with a single session identifier) between communication endpoints 101A and 101N.
[0042] Alternatively, if communication endpoint 101A and communication endpoint 101N are both IPv6-intolerant, communication system 120 does not need to modify the IP addresses in any of the outgoing messages 302 / 306, since both communication endpoints 101A and 101N are IPv6-intolerant. In this case, the messages are assumed to contain only IPv6 addresses, as communication endpoints 101A and 101N are both IPv6-intolerant.
[0043] Fig. Figure 4 is a flowchart of a process for handling IP version tolerance in a Session Initiation Protocol (SIP) communication session. The communication endpoints 101A-101N, the IP protocol stacks 103 / 123, the network interfaces 104 / 124, the communication system 120A-120B, the proxy server 121, the B2BUAs 125, and the IP version manager 126 are examples of storage program-controlled units, such as a computer or microprocessor, that implement the method of Fig.3-7 and executes the processes described here by carrying out program instructions stored on a computer-readable storage medium, such as memory or a hard disk. Although the in Fig. If the procedures described in 3-7 were presented in a specific order, a person skilled in the art would recognize that the steps in Fig. Steps 3-7 can be implemented in different orders and / or in a multi-threaded environment. Furthermore, depending on the implementation, various steps can be omitted or added.
[0044] The processes of Fig. 4-7 are described by SIP messages. However, an average professional would recognize that similar messages, such as those in H.323, WebRTC, H.624, G.711, and the like, are included in the flowcharts of the Fig. 4-7 can be taken over.
[0045] The process begins at step 400, when communication endpoint 101N sends a SIP REGISTER message to proxy server 121 / IP version manager 126, indicating that communication endpoint 101N is IPv6-intolerant. In step 401, proxy server 121 / IP version manager 126 sends a SIP 200 OK response to communication endpoint 101N. In step 402, communication endpoint 101A sends a SIP REGISTER message to proxy server 121 / IP version manager 126, indicating that communication endpoint 101A is IPv4-intolerant. In step 403, proxy server 121 / IP version manager 126 sends a SIP 200 OK response to communication endpoint 101A. The IP version manager 126 stores the IP tolerance types of the communication endpoints 101A and 101N in memory (e.g., in a database) in step 404.
[0046] In one embodiment, communication endpoints 101A and 101N send the IP version-intolerant information in the SIP-REGISTER messages of steps 400 and 402 to a Contact header. Alternatively, communication endpoints 101A and 101N can send the IP version-intolerant information in other fields within the SIP-REGISTER messages of steps 400 and 402. Alternatively, the registration process can also use other messages, such as a SIP-REFER message, a SIP-OPTIONS message, a SIP-INVITE message, a SIP-SUBSCRIBE message, and / or similar.
[0047] In addition to registration via SIP-REGISTER messages, communication endpoints can be identified with a specific type of IP tolerance / intolerance in various other ways. For example, the IP version manager can detect certain phone or device types and correlate the phone / device type with a specific IP version tolerance / intolerance type against a list. Alternatively, for older devices that do not register, an administrator can manage the IP tolerance type from an administration terminal (not shown).
[0048] The proxy server 121 / IP version manager 126 receives a SIP INVITE message in step 406 that uses IPv4 addresses. For example, the SIP "To" and / or "From" headers in the SIP INVITE message can contain IPv4 IP addresses. In one implementation, the SIP From header might look like this: From: "Joe@xyz.com"<sip:10000@10.172.0.2> The proxy server 121 / IP version manager 126 adapts the 32-bit SIP address 10.172.0.2 to a 128-bit IPv6 address in step 408. For example, the adapted SIP From header might look like this: From: “Joe@xyz.com”<sip:10000@FE80:0:0:0:202:B3FF:FE1E:8329> The IPv6 address is the address of communication system 120. This example uses local IPv6 addresses. However, global IPv6 addresses can be used in other implementations.
[0049] The proxy server 121 / IP version manager 126 sends the customized SIP INVITE message with the modified IPv6 addresses in step 410 to the communication endpoint 101N. The communication endpoint 101N sends a SIP 200 OK message in step 412. In the SIP 200 OK message of step 412, the communication endpoint 101N uses the IPv6 address of communication system 120 (FE80:0:0:0:202:B3FF:FE1E:8329) in the SIP contact header (e.g., To: "Joe@xyz.com"). <sip:10000@FE80:0:0:0:202:B3FF:FE1E:8329). Der Proxy-Server 121 / IP-Versionsmanager 126 passt in Schritt 414 die SIP-200-OK-Nachricht von Schritt 412 wieder an die IP-Adresse 10.172.0.2 an. Beispielsweise würde das Feld SIP-From: in der SIP-200-OK-Nachricht von Schritt 416 wie folgt aussehen: From: “Joe@xyz.com” <sip:10000@10.172.0.2. Der Proxy-Server 121 / IP-Versionsmanager 126 sendet in Schritt 416 die angepasste SIP-200-OK-Nachricht an den Kommunikationsendpunkt 101A.
[0050] In response to the SIP 200 OK message from step 416, communication endpoint 101A sends a SIP ACK message to proxy server 121 / IP version manager 126 in step 418. Proxy server 121 / IP version manager 126 modifies the SIP ACK message (if necessary) as described in step 408 in step 420 (replacing the SIP From header with an IPv6 address). The modified SIP ACK message is sent to communication endpoint 101N in step 422. A communication session is then established in step 424 (e.g., a voice call).
[0051] In this example, there is only a single SIP dialogue between communication endpoints 101A and 101N. The communication session between communication endpoints 101A and 101N has a single session identifier (which is different from a telephone number).
[0052] The process of Fig.4 is described by a SIP INVITE message, a SIP 200 OK message, and a SIP ACK message. However, in standard SIP, other types of messages can also be involved in establishing a connection, such as a SIP CANCEL, a SIP INFO, a SIP 180 RINGING, a SIP CANCEL, a SIP OPTIONS, a SIP PRAK, a SIP PUBLISH, a SIP TRYING, a SIP CALL IS BEING FORWARDED, a SIP QUEUED, a SIP SESSION IN PROGRESS message, and / or similar. Similar customizations can be used for these types of messages if needed.
[0053] Fig. Figure 5 is a flowchart of a process for handling IP version tolerance / intolerance in a Session Initiation Protocol (SIP) communication session with a sequenced back-to-back user agent. The process of Fig. 5 resembles the process of Fig. 4 by adding a SIP B2BUA 125, which was added to the call flow. In Fig.The B2BUA 125 is IPv6-intolerant for SIP messaging. Additionally, communication endpoints 101A and 101N are IPv4-intolerant.
[0054] When a B2BUA 125 is inserted into the signaling message flow in SIP, typically all SIP signaling messages flow through the B2BUA 125, as shown in Fig. Figure 5 illustrates this. When the B2BUA 125 is included in the signaling call flow, it creates two separate dialogs: 1) SIP Dialog 1 – from communication endpoint 101A and the B2BUA 125, and 2) SIP Dialog 2 – from the B2BUA 125 and communication endpoint 101N. In this case, there are two separate communication sessions with separate session identifiers (i.e., according to standard SIP messaging as described in SIP RFC 3261 “SIP: Session Initiation Protocol June 2002”, which is hereby incorporated by reference).
[0055] The process begins at step 500, when communication endpoint 101N sends a SIP-REGISTER message to IP version manager 126 indicating that communication endpoint 101N is IPv4-intolerant. Similarly, at step 502, communication endpoint 101A sends a SIP-REGISTER message to IP version manager 126 indicating that communication endpoint 101N is IPv4-intolerant. In this exemplary embodiment, B2BUA 125 also sends a SIP-REGISTER message to IP version manager 126 at step 504 indicating that B2BUA 125 is IPv6-intolerant. In another embodiment, however, B2BUA 125 can register its IP intolerance via an administrator. In response to messages 500, 502 and 504, the IP version manager 126 stores the IP intolerance types of the communication endpoints 101A and 101N and the IP intolerance type of the B2BUA 125 in memory (e.g. a database) in step 506.
[0056] In step 508, the communication endpoint 101A sends a SIP INVITE message using IPv4 addresses. The proxy server 121 / IP version manager 126 adapts the SIP INVITE message (if necessary) as described in step 510 (as described in step 408 above). In step 512, the proxy server 121 / IP version manager 126 sends the adapted SIP INVITE message (adapted to IPv6) to the B2BUA 125. In step 514, the B2BUA 125 sends the SIP INVITE message (adapted to IPv6 in step 510) to the proxy server 121 / IP version manager 126. In step 516, the proxy server 121 / IP version manager 126 adapts the SIP INVITE message from step 514 back to IPv4. In step 518, the proxy server 121 / IP version manager 126 sends the adapted SIP INVITE message (adapted to IPv4) to the communication endpoint 101N. The process then repeats. Fig.4 with the additional step of sending the SIP-200 OK message by the B2BUA 125 (i.e., from 101N → 120 → 125 → 120 → 120 → 101A) and the SIP ACK message (from 101A → 120 → 125 → 120 → 101N) in step 520. The communication session is then established in step 522.
[0057] The process of Fig. Step 5 is discussed when a single B2BUA 125 is involved in the communication session 522. In SIP, multiple B2BUA 125s can be included in the communication session. In this case, after step 516, the proxy server 121 / IP version manager 126 would send a customized SIP INVITE message to the second B2BUA 125. The second B2BUA 125 would then send the SIP INVITE message back to the proxy server 121 / IP version manager 126. This process would be repeated for each additional B2BUA 125.
[0058] The descriptions above refer to specific SIP messages (e.g., SIP INVITE message, SIP 200 OK message, and SIP ACK message) and specific SIP headers that use IP addresses (e.g., SIP To and From headers). However, the process can convert IPv4 to IPv6 and vice versa in all SIP messages where IP intolerance exists.
[0059] In an embodiment with third-party SIP registration, where a registering SIP UA (e.g., a communication unit) is incompatible, a SIP av.sig.iptolerance parameter passed in a SIP Contact header may have an IP address that is incompatible with another registering communication unit. In this case, IP matching may be necessary if there is an IP version incompatibility.
[0060] In one embodiment, if a third-party vendor registers (e.g., Communication Endpoint 101) that SIP UA is hosted on a different server that is not registered, the IP address of the registering SIP UA is determined based on the presence of a proprietary header that identifies the IP tolerance / intolerance type.
[0061] For SIP dialogs that create requests (e.g., a SIP INVITE message, a SIP SUBSCRIBE message, and a SIP REFER message) originating from a first-party SIP UA, the registered SIP UA itself initiates a SIP dialog-generating request. The IP version manager 126 uses the IP version in the SIP contact header.
[0062] In one implementation, SIP Uniform Resource Identifiers (URIs) located in SIP headers are adapted as needed to ensure interoperability across IP versions. For example, a SIP NOTIFY might contain a SIP URI that uses IP addresses.
[0063] For a SIP INVITE message and a SIP SUBSCRIBE message, all known parameters can be used to transmit the IP version intolerance information. Additionally, the Communication System 120 can insert the IP version of the intolerance information as an escaped parameter before forwarding the message.
[0064] In SIP, escaped characters (new name percent encoding) are used to convert characters in the URI that are not allowed. For example, spaces are not allowed in the URI parameter; therefore, the space is converted to a percent encoding so that the string appears contiguous. The IP version manager 126 decodes the space. For example, suppose the sending communication unit has a URI of "doug@example;param=Hello There". Because there is a space (between Hello and There) that causes URI parsing to fail, before sending, the sender will escape (or percent encode) "Hello There" to Hello%20There. The resulting URI will look like doug@example;param=Hello%20There. As you can see, after encoding, there is no space in the URI; instead, the space has been replaced by %20, which is the hexadecimal representation of space.Similarly, there are other characters (so-called special characters) that must be encoded as percent signs: e.g., ":" / " / " / "?" / "#" / "[" / "]" / "@". The request URI may contain av-nouri parameters because the customization uses av-nouri to store the original value of the av-ouri parameter during the customization process. Since this can appear in a contact header, and the contact header can be placed in the request URI of a new request, the customization may need to convert the av-nouri back to av-ouri. This can be an implementation-specific customization. If the implementation stores the original parameter value (of a parameter to be customized) in a differently named parameter, then it would need to reverse this when it sees it in the request URI of an initial request.
[0065] For SIP INVITE messages where the outgoing leg is IPv4-intolerant and the incoming leg is IPv4-tolerant, or where the outgoing leg is IPv6-intolerant and the incoming leg is IPv6-tolerant, communication system 120 stores and strips the SIP Record Route headers from the SIP INVITE message, assigning them a separate IP address that matches the IP address type of the next leg. For the corresponding response (e.g., a SIP-200-0K message), communication system 120 checks the contents of the SIP Record Route header. If communication system 120 modified the header during the request (within the SIP INVITE message), it restores the SIP Record Route header. The above process is also used for mid-dialog messages. For example, Record Route headers can be modified either by changing the IP addresses or by stripping the headers.In both cases, it is prevented that Record Route headers with the wrong IP address type are sent to communication endpoint 101.
[0066] If the outgoing leg is IPv4-intolerant and the incoming leg is IPv4-tolerant, or if the outgoing leg is IPv6-intolerant and the incoming leg is IPv6-tolerant, communication system 120 strips SIP via headers from the messages. Communication system 120 inserts its own IP address, corresponding to the IP version on the next hop. During inbound processing, communication system 120 checks the contents of the SIP via headers. If a SIP via header has been modified, communication system 120 restores the SIP via headers before processing the message.
[0067] Changing and restoring IP addresses in record route headers to match the IP version at the next hop also applies to SIP via headers for record routes. The Communication System 120 can either strip the addresses and then add them back in the other direction, or adjust them by replacing the IP addresses and then reverting to the original addresses in the other direction.
[0068] The Communication System 120 adjusts the SIP History Info header if the IP version of the Targeted-to-URI in the History Info header is not supported by the communication unit. The Communication System 120 inserts its own IP address as the Targeted-to-URI address and adds the original URI address (including the port number) as an escaped parameter 'ohiaddr' before forwarding the request.
[0069] If the IP version of the URI in the Refer-to header of a SIP REFER message is not supported by the communication unit, the communication system (120) inserts its own IP address as the URI address in the Refer-to header before forwarding the request at the output and includes the original URI address (including the port number) in certain parameters. The user portion and all parameters except the transport parameter are maintained in the new Refer-to header. For an initial request (e.g., a SIP INVITE message), the proxy server (121) / IP version manager (126) inserts its own address as the URI address in the request URI and includes the original URI address as part of an escaped parameter before forwarding the request. The user portion and parameters are maintained in the new request URI. For example, if the request URI is sip:xyz@[2620::123]:old-port;param1=xyz, the resulting REQUESTURI will look like this: sip:xyz@192.168.1.1:new-port;param1=xyz;av-oraddr=escaped ([2620::123]:oldport). After receiving an initial request with the IP address of communication system 120 in the domain part and the av-oraddr parameter in the request URI, on the input leg, the IP version manager 126 restores the original domain and port of the request URI and removes the inserted parameter.
[0070] For a mid-dialog request, if the incoming request contains the communication system's address in the request URI, IP version manager 126 removes the communication manager's address and replaces it with the address in the parameter that IP version manager 126 previously inserted before forwarding the request (e.g., avocaddr or av-oraddr). (Note: This reverse operation during mid-dialog processing results from the adjustment of the contact header or the REQUEST URI at the time the request is processed.) For example, if the request URI of a mid-dialog request is xyz@192.168.1.1:newport; param 1 = xyz; If the IP version manager specifies `av. oraddr=escaped([2620:: 123]: old-port)`, where [192.168.1.1] is the address of the communication system, the IP version manager strips the address of the communication manager and restores the original address, forwarding the request with the request URI `xyz@[2620::123]:old-port;param1=xyz`.
[0071] When multiple communication systems 120 are involved, the upstream communication system 120 adapts as needed (e.g., as described in Table 1) to ensure interoperability between the communication systems 120. For example, when a SIP INVITE message is sent from an IPv6-tolerant communication system 120A to an IPv4-intolerant communication system 120B, communication system 120A adapts the IPv6 addresses to IPv4 addresses for the SIP INVITE message. Similarly, when a SIP 200 OK message is sent by communication system 120B, communication system 120A adapts the SIP 200 OK message to IPv6 addresses.
[0072] Fig.Figure 6 is a flowchart of a process for registering multiple communication endpoints (101) of a user with a single record address. For example, a user might have a registered address bob@companyxyz.com. In this example, the user (Bob) has four communication endpoints (101A-101N) registered with the address bob@companyxyz.com.
[0073] The process begins in step 600 when communication endpoint 101A sends a SIP-REGISTER message to proxy server 121 / IP version manager 126. In this example, communication endpoint 101 registers that it is IPv4-intolerant. In response, proxy server 121 / IP version manager 126 sends a SIP-200-OK message in step 602. The SIP-200-OK message sent to communication endpoint 101A (from step 602) contains the IP addresses of communication endpoints 101A and 101C (no IPv6 addresses). The IP addresses of communication endpoints 101B (IPv6-intolerant) and 101N (IPv6-tolerant) are stripped from the SIP 200 OK message in step 602. Since communication endpoint 101A is IPv4 version-intolerant, it cannot consume the IPv6 contact addresses of communication endpoints 101B and 101N.
[0074] In step 604, communication endpoint 101B sends a SIP-REGISTER message to proxy server 121 / IP version manager 126. The SIP-REGISTER message from step 604 indicates that communication endpoint 101B is IPv6-intolerant. In response, proxy server 121 / IP version manager 126 sends a SIP-200-OK message in step 606. The SIP-200-OK message sent to communication endpoint 101B (from step 606) contains the IP addresses of communication endpoints 101B and 101N (no IPv4 addresses). The IP addresses of communication endpoints 101A (IPv4-intolerant) and 101C (IPv4-tolerant) are removed from the SIP200 OK message sent in step 606 because communication endpoint 101B cannot accept IPv4 addresses.
[0075] In step 608, communication endpoint 101C sends a SIP-REGISTER message to proxy server 121 / IP version manager 126. The SIP-REGISTER message from step 608 indicates that communication endpoint 101C is IPv4-tolerant. In response, proxy server 121 / IP version manager 126 sends a SIP-200-OK message in step 610. The SIP-200-OK message sent to communication endpoint 101C (from step 610) contains the IP addresses of communication endpoints 101A-101N, because communication endpoint 101C can handle both IP versions (IPv4 and IPv6).
[0076] In step 612, communication endpoint 101C sends a SIP-REGISTER message to proxy server 121 / IP version manager 126. The SIP-REGISTER message from step 612 indicates that communication endpoint 101C is IPv6-tolerant.
[0077] In response, the proxy server 121 / IP version manager 126 sends a SIP 200 OK message in step 614. The SIP 200 OK message sent to communication endpoint 101N (from step 614) contains the IP addresses of communication endpoints 101A-101N, since communication endpoint 101N can handle both types of IP versions (IPv4 and IPv6).
[0078] Fig. Figure 7 is a flowchart of a call forking process where multiple communication endpoints of a user with a single record address have been registered. The process of Fig. 7 is based on the registrations of Fig.6. A SIP INVITE message is received in step 700 at proxy server 121 / IP version manager 126 from communication endpoint 101X (another communication endpoint 101). Communication endpoint 101X is IPv4-intolerant. In this example, the SIP INVITE message from step 700 is forwarded in steps 702 and 704 to communication endpoints 101A and 101C, which are the only communication endpoints 101 that support IPv4 and are associated with the address of the record.
[0079] The call is accepted at communication endpoint 101C in step 705. This causes the SIP 200 OK message (containing IPv4 addresses) to be sent from communication endpoint 101C to proxy server 121 / IP version manager 126 in step 706. In response to the SIP 200 OK message, proxy server 121 / IP version manager 126 sends a SIP CANCEL message to communication endpoint 101A in step 708 to cancel this leg of the forked call. In step 710, proxy server 121 / IP version manager 126 sends the SIP 200 OK message to communication endpoint 101X (using IPv4 addresses). In step 712, communication endpoint 101X sends a SIP ACK message to proxy server 121 / IP version manager 126. The SIP ACK message uses IPv4 addresses. In step 714, proxy server 121 / IP version manager 126 sends the SIP ACK message (also using IPv4 addresses) to communication endpoint 101C. In step 716, a communication session is then established.
[0080] In the example above, the SIP INVITE message is forwarded only to communication endpoints 101A and 101C, which support IPv4. However, in other implementations, the SIP INVITE message can be forwarded to any of the communication endpoints 101A-101N. In this case, the SIP INVITE message sent to communication endpoint 101B (IPv6-intolerant) would need to be modified according to Table 1 to replace the IPv4 addressing with IPv6 addressing. Similarly, a SIP 200 OK message (if answered) from communication endpoint 101B would need to be modified.
[0081] A similar process can be used for server clusters. For example, if an incoming communication request can be routed to different servers depending on the load, instead of branching, the incoming request is directed from communication system 120 to communicate with a specific server. Based on the IP tolerance type of the communication unit sending the request (e.g., a SIP INVITE message), various incoming and outgoing messages can be adapted to ensure IP version compatibility between the sender of the incoming request and the selected server.
[0082] IP version intolerance can also apply to serial forking. If the originally selected server in the cluster cannot process the request, proxy server 121 can forward the request to an alternative server in the cluster. If each server supports a different address family connection, the request may need to be readjusted if such alternative routing / forking occurs.
[0083] Examples of the processors described here may include, but are not limited to, Qualcomm® Snapdragon® 800 and 801, Qualcomm® Snapdragon® 610 and 615 with 4G LTE integration and 64-bit computing, Apple® A7 processor with 64-bit architecture, Apple® M7 motion coprocessors, Samsung® Exynos® series, the Intel® Core™ processor family, the Intel® Xeon® processor family, the Intel® Atom™ processor family, the Intel Itanium® processor family, Intel® Core® i5-4670K and i7-4770K 22nm Haswell, Intel® Core® i5-3570K 22nm Ivy Bridge, the AMD® FX™ processor family, AMD® FX-4300, FX-6300 and FX-8350 32nm Vishera, AMD® Kaveri processors, Texas Instruments® Jacinto C6000™ automotive infotainment processors, Texas Instruments® OMAP™ automotive-class mobile processors, ARM@ Cortex™-M processors, ARM® Cortex-A and ARM926EJ-S™ processors and other industry-equivalent processors, and can perform computational functions with any known or future standard instruction set,Execute libraries and / or architecture.
[0084] All steps, functions and operations described here can be executed continuously and automatically.
[0085] However, in order not to unnecessarily obscure the present disclosure, some known structures and devices have been omitted from the preceding description. This omission is not to be understood as a limitation of the scope of the claimed disclosure. Specific details are provided to aid in understanding the present disclosure. It should be evident that the present disclosure can be practiced in a variety of ways beyond the details set forth herein.
[0086] While the exemplary embodiments shown here group together the various components of the system, certain components of the system may also be located remotely, in distant parts of a distributed network 110, such as a LAN and / or the Internet, or in a dedicated system. It should therefore be noted that the components of the system can be combined into one or more devices or grouped together on a specific node of a distributed network, such as an analog and / or digital telecommunications network, a packet-switched network, or a circuit-switched network. For computational efficiency, it is estimated from the foregoing description that the components of the system can be placed anywhere within a distributed network of components without affecting the operation of the system.For example, the various components can be located in a switch such as a telephone system and a media server, a gateway, in one or more communication devices, with one or more users, or a combination thereof. Likewise, one or more functional parts of the system can be distributed between one or more telecommunications devices and an associated computing device.
[0087] Furthermore, it is evident that the various connections linking the elements can be wired or wireless, or any combination thereof, or any other known or subsequently developed element capable of supplying and / or transmitting data to and from the connected elements. These wired or wireless connections can also be secure and capable of transmitting encrypted information. For example, coaxial cables, copper wire, and optical fibers can be used as transmission media for electrical signals, and these signals can take the form of acoustic waves or light waves, as generated, for instance, in radio wave and infrared data transmission.
[0088] While the flowcharts have been discussed and illustrated in relation to a particular sequence of events, it is also evident that changes, additions, and omissions may occur in this sequence without substantially affecting the operation of the disclosure.
[0089] A number of variations and modifications of the revelation can be used. It would be possible to include some features of the revelation without including others.
[0090] In another embodiment, the systems and methods of this disclosure can be implemented in conjunction with a specialized computer, a programmed microprocessor or microcontroller and peripheral integrated circuit elements, an ASIC or other integrated circuit, a digital signal processor, a hard-wired electronic or logic circuit such as a circuit with discrete components, a programmable logic device or a gate array such as a PLD, PLA, FPGA, PAL, a specialized computer, comparable means, or the like. In general, any device or means capable of applying the methodology presented herein can be used to implement the various aspects of this disclosure. Exemplary hardware that can be used for this disclosure includes computers, handheld devices, telephones (e.g., smartphones, mobile phones, etc.).Cellular, internet-enabled, digital, analog, hybrid, and other hardware known according to the state of the art. Some of these devices include processors (e.g., a single or multiple microprocessors), memory, non-volatile memory, input devices, and output devices. Furthermore, alternative software implementations, including but not limited to distributed processing or distributed processing of components / objects, parallel processing, or virtual machine processing, can be designed to implement the methods described herein.
[0091] In a further embodiment, the disclosed methods can be implemented in conjunction with software using object-oriented software development environments that provide portable source code usable on a variety of computer or operating platforms. Alternatively, the disclosed system can be implemented partially or completely in hardware using standard logic circuits or a VLSI design. Whether the systems according to this disclosure are implemented with software or hardware depends on the speed and / or efficiency requirements of the system, its specific function, and the software or hardware systems, or microprocessor or microcomputer systems, used.
[0092] In a further embodiment, the disclosed methods can be partially implemented in software that can be stored on a storage medium and executed on a programmed general-purpose computer with the assistance of a controller and memory, a specialized computer, a microprocessor, or the like. In these cases, the systems and methods of this disclosure can be implemented as a program on a PC, such as an applet, Java® or CGI script, as a resource on a server or computer workstation, as a routine in a dedicated measurement system, a system component, or the like. The system can also be implemented by physically integrating the system and / or the method into a software and / or hardware system.
[0093] Although this disclosure describes components and functions implemented in embodiments with reference to certain standards and protocols, the disclosure is not limited to such standards and protocols. Other similar standards and protocols not mentioned herein exist and are deemed to be included. Furthermore, the standards and protocols mentioned herein, and other similar standards and protocols not mentioned herein, are regularly replaced by faster or more effective equivalents that have essentially the same functions. Such replacement standards and protocols with the same functions are deemed to be equivalents included in this disclosure.
[0094] The present disclosure comprises components, methods, processes, systems, and / or devices in various embodiments, configurations, and aspects, which are substantially presented and described as such, including various embodiments, combinations, and subsets thereof. Persons skilled in the art will understand how to manufacture and use the systems and methods disclosed herein based on an understanding of the present disclosure. The disclosure also includes the provision of devices and processes in the absence of items not presented and / or described herein, or in various embodiments, configurations, or aspects thereof, including the absence of such items that were used in earlier devices or processes, for example, to improve performance, achieve ease of use, and reduce implementation costs.
[0095] The foregoing discussion of the disclosure has been presented for illustrative and descriptive purposes. It is not intended to limit the disclosure to the form or forms disclosed herein. For example, the foregoing detailed description summarizes various features of the disclosure in one or more embodiments, configurations, or aspects to simplify the disclosure. The features of the embodiments, configurations, or aspects of the disclosure may be combined in alternative embodiments, configurations, or aspects other than those mentioned above. This type of disclosure is not to be construed as reflecting the intention that the claimed disclosure requires more features than are expressly stated in each claim.Rather, the inventive aspects, as reflected in the following claims, lie in fewer than all features of a single previously disclosed embodiment, configuration, or aspect. Therefore, the following claims are hereby incorporated into this detailed description, each claim being considered a separate preferred embodiment of the disclosure.
[0096] Even though the description of the disclosure includes the description of one or more embodiments, arrangements, or aspects and certain variations and modifications, other variations, combinations, and modifications also fall within the scope of the disclosure, e.g., within the scope of the skills and knowledge of those in the current art after they have understood the present disclosure. The intention is to obtain rights encompassing alternative embodiments, configurations, or aspects, to the extent permitted, including alternative, interchangeable, and / or equivalent structures, functions, areas, or steps to those claimed, regardless of whether such alternative, interchangeable, and / or equivalent structures, functions, areas, or steps are disclosed herein or not, and without the intention of publicly dedicating a patentable subject matter. REFERENCE MARK LIST 101 SIP communication endpoint 102 microprocessor 122 microprocessor 120 Communication system 300 first message 304 first message
Claims
[1] Procedure comprising the following: Receiving a first message (300, 304) by a microprocessor (102, 122) located in a communication system (120) to establish a communication session between a first communication unit and a second communication unit; Determine by the microprocessor (102, 122) on the basis of a registration of at least one of the first communication unit, the second communication unit or an administration, that at least one of the first communication unit or the second communication unit is internet protocol (IP) version intolerant with respect to the IP version of the other communication endpoint (101); and In response to the determination that at least one of the first communication unit or the second communication unit is IP version intolerant, the microprocessor (102, 122) adapts one or more IP addresses in one or more messages (300, 304) to establish the communication session in order to change the one or more IP addresses to a different IP version, wherein the microprocessor (102, 122) modifies the one or more IP addresses in the one or more messages (300, 304) by inserting the IP address of the communication system (120) in place of an IP address of the first communication unit, while retaining the original Uniform Resource Identifier (URI) parameters of the user portion in the one or more messages (300, 304). [2] Method according to claim 1, wherein the communication session is a Session Initiation Protocol (SIP) communication session, further comprising a Back-to-Back User Agent (B2BUA), wherein the SIP communication session comprises two SIP dialogues, wherein the B2BUA registers its IP tolerance / intolerance, and further comprising: Determine the IP version compatibility of the two SIP dialogs based on the B2BUA registration. [3] Method according to claim 1 or 2, wherein the communication session is a Session Initiation Protocol (SIP) communication session, wherein, when adjusting the one or more IP addresses in the one or more messages (300, 304), the addition and removal of an IP address of the first communication unit or the second communication unit comprises at least one of the following: Removing and restoring one or more SIP record route headers or Removing and restoring one or more SIP via headers. [4] System which includes: a network interface; and a computer-readable medium coupled to a microprocessor (102, 122) located in a communication system (120) and comprising microprocessor-readable and executable instructions that cause the microprocessor (102, 122) to: to receive an initial message (300, 304) to establish a communication session between a first communication unit and a second communication unit; to determine, based on a registration of at least one of the first communication unit, the second communication unit, or an administration, that at least one of the first communication unit or the second communication unit is IP version-intolerant with respect to the other communication endpoint (101); and to adapt one or more IP addresses in one or more messages (300, 304) to establish the communication session, to change the one or more IP addresses to a different IP version in response to determining that at least one of the first communication unit or the second communication unit is IP version intolerant, wherein the microprocessor (102, 122) changes the one or more IP addresses in the one or more messages (300, 304) by inserting the IP address of the communication system (120) in place of an IP address of the first communication unit, while retaining the original Uniform Resource Identifier (URI) parameters of the user portion in the one or more messages (300, 304). [5] System according to claim 4, wherein the communication session is a Session Initiation Protocol (SIP) communication session, wherein the first communication unit and the second communication unit are SIP communication endpoints (101), and wherein the SIP communication session between the first communication unit and the second communication unit uses a single SIP session identifier to recognize a single SIP dialogue between the first communication unit and the second communication unit. [6] System according to claim 4, wherein the communication session is a Session Initiation Protocol (SIP) communication session, wherein the second communication unit comprises a plurality of communication endpoints (101), wherein the first message (300, 304) is a SIP INVITE message (300, 304), and wherein the adaptation of the one or more IP addresses in the one or more messages (300, 304) to establish the communication session comprises one of the following: Forks of the SIP INVITE message (300, 304) only to communication endpoints (101) that support the same IP version; or Forking the SIP INVITE message (300, 304) to communication endpoints (101) that support the different IP versions, and adapting the IP addresses in the SIP INVITE message (300, 304) between communication endpoints (101) that have at least one communication endpoint (101) that is IP-intolerant. [7] System according to claim 4, wherein the communication session is a Session Initiation Protocol (SIP) communication session and further comprises instructions that cause the microprocessor (102, 122) to: to receive a SIP INVITE message, a SIP SUBSCRIBE message (300, 304) or a SIP REFER message (300, 304) from a third communication unit in order to change the communication session; and to determine whether the third communication unit is IP version intolerant with respect to the first and second communication units, in response to receiving the SIP INVITE message, the SIP SUBSCRIBE message (300, 304) or the SIP REFER message. [8] System according to claim 4, wherein the communication session is a Session Initiation Protocol (SIP) communication session, wherein the adjustment of the one or more IP addresses in the one or more messages comprises the adjustment of at least one of: a SIP To: field, a SIP From: field, a SIP URI, a SIP Contact header or an escaped parameter in a SIP header or field. [9] Procedure which includes: Receiving by a microprocessor (102, 122) located in a communication system (120) an initial Session Initiation Protocol (SIP) Register message (300, 304) for registering an initial communication endpoint (101) to be registered with one or more other communication endpoints (101) using a recording address for a user; Determine by the microprocessor (102, 122) that at least one of the Internet Protocol (IP) versions of one or more other communication endpoints (101) does not match the IP version of the first communication endpoint (101); in response to determining that at least one of the IP versions of one or more other communication endpoints (101) does not match the IP version of the first communication endpoints (101), the microprocessor (102, 122) removes in a SIP 200 OK response message (300, 304) all IP addresses of the at least one or more other communication endpoints (101) whose IP version does not match the IP version of the first communication endpoint (101), and inserts the IP address of the communication system (120) in place of the IP address of the first communication endpoint, while retaining the original Uniform Resource Identifier (URI) parameters of the user portion in the one or more messages (300, 304).
Citation Information
Patent Citations
Session control system, communication terminal and servers
US20050066038A1
DNS-enabled communication between heterogeneous devices
US20160036943A1