--- channels/sip/reqresp_parser.c (revision 318547) +++ channels/sip/reqresp_parser.c (working copy) @@ -2302,10 +2302,16 @@ } v->sent_by = ast_skip_blanks(v->sent_by); - /* store the port */ - if ((parm = strchr(v->sent_by, ':'))) { + /* store the port (skip past ] for ipv6) */ + if (v->sent_by[0] == '[') { + parm = strchr(v->sent_by, ']'); + if (parm && parm[1] == ':') { + char *endptr; + parm += 2; + v->port = strtol(parm, &endptr, 10); + } + } else if ((parm = strchr(v->sent_by, ':'))) { char *endptr; - v->port = strtol(++parm, &endptr, 10); }