I'm a SIP newbie, and having major trouble getting a Sipper test client and
a GlassFish/Sailfin server to talk to each other.  The latest issue seems to
involve IPv6.  My flow is pretty basic:

> INVITE, < 180, < 200, > ACK, > BYE

The server receives the INVITE and sends an OK response.  Sipper does not
generate an ACK, although the logs show the response is received.  The logs
show the Contact header field in the OK response as containing an IPv6
address, or as a blank, depending on what's being logged:

I believe Sipper is not responding because it can't determine where to send
the ACK.  I have the impression that it will try to respond to the address
in the Contact field.  I tried forcing the server to use IPv4 addresses by
calling SipServletResponse.setHeader(), but it informed me that I'm not
allowed to modify a system header.  The SipServlet Java code has a comment
saying that the Contact header value is obtained by STUN, but aside from
that, I don't know how it's setting that field.  It may be that the IPv6
address is formatted in a way that Sipper can't use it:

sip:2001:0:4137:9e76:46:37ea:9f0b:aa6e:5060

Inspecting the Ruby source code of Sipper, it looks like it may be expecting
the IP address to have a set of square brackets around it.  I don't see very
much information online about dealing with IPv6 addresses, and I don't know
how to work around this.  I don't know how to get the server to send an IPv4
address (leaving aside the question of whether that would be a good thing),
and apparently Sipper can't use the IPv6 address the server sends.  Any help
would be much appreciated.
_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to