Package: asterisk
Version: 1:1.8.13.1~dfsg1-3+deb7u3
Severity: normal

Dear Maintainer,

Connecting with Microsoft Lync through one or more SIP proxies fails when the Record-Route value exceeds 256 characters in length. Asterisk's log shows the following warning message:

[Nov 10 16:11:04] WARNING[22109]: sip/reqresp_parser.c:1070
 get_in_brackets_full: No closing bracket found in
 '<sip:192.168.10.2;r2=on;lr;ftag=as36b4c879;vsf=AAAAAAAAAAA'

where the complete Record-Route was:
<sip:127.1.2.3;line=sr-EcmQ.7qAr7xCqCtAi7V9q7qy.13CnXJzETMC8bByn1ehE7xMPcthPLxh6-3R6zBREzEzianBn7eQ.16z67Bwusjwusjwusjwusjwusjwusjwusjwu2iY3smwsaAQdBjXOKjw3-RgsaElrdl2OXuM67qAr7YU67KhPajyogmmEQ**>,<sip:192.168.10.2;r2=on;lr;ftag=as736f5b00;vsf=AAAAAAAAAAAAAAAAAAAAAABCUEIARlpOQVhAAFxWRg--;did=f31.5bf1;nat=yes>.

As you can see it cuts the Record-Route string short at exactly 256 chars.

Looking into this I found that in chan_sip.c in function build_route there is a definition of 'char rr_copy[256]' (line 14252). This is too small as you can see. My proposed fix would be to enlarge this field to a bigger value. For now I have set mine to 8192. This completely resolves the issue.


-- System Information:
Debian Release: 7.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash


--
Met vriendelijke groet,
Dirk Teurlings BICT
Signet B.V.


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to