198 | | 1. Application needs to replace all IPv6 occurrences with IPv4. |
199 | | |
200 | | In order to do this, we need to be able to synthesize IPv4 from IPv6 address. Apple uses the API getaddrindo() for this purpose, however this is only specific to Apple and as such, can only be considered as a workaround for now since other platforms may not support it. |
201 | | 2. Our RECOMMENDATION is that when the client is put with an IPv6-only connectivity, the SIP server must also support IPv6 connectivity. |
202 | | |
203 | | However, if the user is unable to install IPv6 server (maybe because it’s not his/her server), then user needs to enable ICE and use “dual stack” TURN (which is supported since PJSIP 2.6). |
| 198 | 1. Our RECOMMENDATION is that when the client is put with an IPv6-only connectivity, the SIP server must also support IPv6 connectivity. For the media, user needs a "dual stack" TURN (a TURN server which supports IPv6 connectivity and able to provide an IPv4 relay address upon request). Then all the application needs to do is enable ICE and use TURN (support for dual stack TURN is only available in PJSIP 2.6 or later). |
| 199 | 2. If 1) is not possible (no IPv6 server or not desirable to use TURN), application needs to replace all IPv6 occurences with IPv4 in the SIP messages and SDP. To do this, you need to be able to synthesize IPv4 from IPv6 address. Apple provides the API getaddrindo() for this, however this is only specific to Apple, so may not be able to work on other platforms. |