### Description According [rfc5952#section-4.2.1](https://tools.ietf.org/html/rfc5952#section-4.2.1)
**4.2.1. Shorten as Much as Possible**
The use of the symbol "::" MUST be used to its maximum capability. For example, 2001:db8:0:0:0:0:2:1 must be shortened to 2001:db8::2:1.
The current Kamailio master does not use `::` inside IPv6 address representation. Example ``` INVITE user@example.com SIP/2.0 Record-Route: sip:[2600:1f1c:6d5:aa02:0:0:0:4];transport=tcp;r2=on;lr=on;ftag=gK0c013f75 Record-Route: sip:3.101.84.4;r2=on;lr=on;ftag=gK0c013f75 Via: SIP/2.0/TCP [2600:1f1c:6d5:aa02:0:0:0:4];branch=z9hG4bK66f8.35b78246c71e1583d2785ae652c42ed5.0 ```
### Possible Solutions Port feature from another IPv6 address formatting functions with RFC5952 support. Example: function [`x_IPv6ToString`](https://www.ncbi.nlm.nih.gov/IEB/ToolBox/CPP_DOC/doxyhtml/ncbi__ipv6_8c_sour...), string 404 - 440.
Should be implemented now in master branch.
I also switched the ipv6 hex digit style to be the compacted form in lowercase to be easier to test with the master branch and if no issues are found will stay the default mode in the next major release. This new mode uses a POSIX function, so I took the time to relocate some functions from ip_addr.h to ip_addr.c, to simplify the header file given that some functions got quite consistent in size.
All together will require some testing to be sure nothing got broken, having it default in master allows enough time till next major release.
Closed #2510.