|
From: | Peio Rigaux |
Subject: | Re: [Linphone-users] Bug: Invalid IPv6 address in SIP message parser (via attribute) |
Date: | Thu, 9 Apr 2020 09:39:35 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
Hello.
As we will change our Gitlab rights soon, please submit your pull request on our Github mirror https://github.com/BelledonneCommunications/
Regards
Peio Rigaux
Junior Software Engineer
Belledonne Communications, the company behind Linphone
Linphone.org
I've created a patch which fixes the "issue" and sent an contributor agreement to your sales department. Where do you want me to create a merge request? In your gitlab instance? However as a new user you don't have the permissions to create a fork of a project.
Am Di., 7. Apr. 2020 um 14:32 Uhr schrieb Waishon <address@hidden>:
I just investigated the issue: Some providers tend to send the IPv6 address in the received parameter with square brackets some do not. Currently linphone only handles the event without having square brackets:
https://github.com/BelledonneCommunications/belle-sip/blob/master/src/grammars/belle_sip_message.g#L1933
The problem is described in this rfc information.
https://tools.ietf.org/html/rfc5118#section-4.5
LinPhone should handle both cases. A quick solution would be to add a "| ipv6reference" in line 1933. I just tested it and both SIP providers with or without brackets now works absolutely fine. However I don't know if we're allowed to use ipv6reference here, because it seems to be a function and not a simple grammar rule like ipv6address or ipv4address. Maybe someone can confirm if this would be a correct fix so that I can create a pull request.
Am Mo., 6. Apr. 2020 um 23:48 Uhr schrieb Waishon <address@hidden>:
Hey there,
I'm currently trying to connect to a SIP server using IPv6, which fails.
Linphone fails to decode the IPv6 address sent back in the Via header of the 401 Unauthorized reply (after first REGISTER request). The IPv6 is in the "URL encoded" format with squared brackets: [2000:abc::1]:5060. There seems to be an issue in theprotocol definition where an IPv6 address isn't allowed to contain squared brackets.
Which is used here:The following error is shown in the log when this parsing error occurrs:
2020-04-06 17:02:35:725 MESSAGE [org.antlr.runtime.MismatchedTokenException] reason [1342:1: via_params : ( via_received[$header_via::current] | generic_param[BELLE_SIP_PARAMETERS($header_via::current)] );] 2020-04-06 17:02:35:725 ERROR header_via parser error for [Via:SIP/2.0/UDP [2001:470:xxx:xxx::b56b]:5060;branch=z9hG4bK.XtPlwI23x;rport=5060;received=[2001:470:xxx:xxx::b56b]] 2020-04-06 17:02:35:726 MESSAGE channel [0x1b7a4f0] [563] bytes parsed 2020-04-06 17:02:35:727 ERROR channel [0x1b7a4f0]: no via in response. 2020-04-06 17:02:35:727 WARNING Response has no via. 2020-04-06 17:02:35:727 WARNING Discarding stateless response [401]
I'm using the latest flatpak version of Linphone on Ubuntu 19.10:Desktop 4.1.1 - Qt5.9.0Core 3.12.0
This bug is very annoying, because multiple SIP providers do support IPv6 and we would like to use the advantages of IPv6 SIP, so disabling IPv6 isn't an option :)
Thank you very much in advance.Gruß
Sören
_______________________________________________ Linphone-users mailing list address@hidden https://lists.nongnu.org/mailman/listinfo/linphone-users
signature.asc
Description: OpenPGP digital signature
[Prev in Thread] | Current Thread | [Next in Thread] |