Hi,
It seems there's a bug with Android VPN service in Kitkat 4.4.x versions.
I can receive calls with linphone but no rtp traffic is sent.
This is my test case:
The source has IP 10.200.100.0
The destiny (Kitkat 4.4) local ip is 192.168.0.10 and its tun IP is: 172.17.0.30
The destiny rings and when i answer the first time, this udp packet is sent:
16:20:19.259200 IP 172.17.0.30.1024 > 10.200.100.0.sip-tls: UDP, length 788
address@hidden
▒d....▒....SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.200.100.0:5061;branch=z9hG4bK.PgoHdBo9W;rport
To: <sip:172.17.0.30>;tag=~yhgPwA
Call-ID: xaVyW37-tc
CSeq: 20 INVITE
User-Agent: LinphoneAndroid/MyApp 1.0 (belle-sip/1.2.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Contact: "NAME" <
sip:address@hidden>;+sip.instance="<urn:uuid:6f2f861e-3e6f-4a81-8017-74c5a353197b>"
Content-Type: application/sdp
Content-Length: 253
But it seems it's not received by 10.200.100.0, because i get several retries with the same packet.
If i hang up and retry the call, the second time the conversation is established correctly. The only difference is the packet's contact name:
sip:address@hidden vs
sip:address@hidden
16:18:59.883827 IP 172.17.0.30.1024 > 10.200.100.0.sip-tls: UDP, length 793
address@hidden
▒d....▒.!..SIP/2.0 200 Ok
Via: SIP/2.0/UDP 10.200.100.0:5061;branch=z9hG4bK.xH2G8pckg;rport
To: <sip:172.17.0.30>;tag=JaFhe~S
Call-ID: s5nIpJiwqt
CSeq: 20 INVITE
User-Agent: LinphoneAndroid/MyApp 1.0 (belle-sip/1.2.4)
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
Content-Type: application/sdp
Content-Length: 254
Before calling i do the previously proposed workaround: To modify the parameter nat_adress with tun IP in linphonerc. But the contact is still wrong in the first call.
The same code works fine with Android 4.1.2, 4.3 and 5.0.1. All versions have the right contact name in the first call.
Any clue? Do you think this issue is avoidable with Linphone configuration or modifying linphone?
Thank you,
Eloy