Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linphone will not send ACK if a Ringing response is sent. #451

Open
JonathanWilbur opened this issue Nov 21, 2024 · 2 comments
Open

Linphone will not send ACK if a Ringing response is sent. #451

JonathanWilbur opened this issue Nov 21, 2024 · 2 comments

Comments

@JonathanWilbur
Copy link

First of all, please say "Hi" or "Hello", it doesn't cost much.

Hello! (Again) Let me first preface this by saying I am testing this against SIP server software I am currently writing. It is absolutely plausible that there is a bug in my implementation. However, looking at my Wireshark packet captures, examples from the SIP RFCs, and more, it really looks like my implementation should be fine.

  1. Describe the bug (mandatory)

Linphone will not send an ACK request if the server sends a Ringing response. I have modified the server to not send Trying and just send Ringing responses, as well as just sending Trying responses. Only sending Trying, then OK elicits an ACK from Linphone.

Also, if applicable, do you reproduce it with linphone-android latest release from the Play Store?

If the issue is about the SDK (build, issue, etc...) open the ticket in the linphone-sdk repository or one of it's submodules!

  1. To Reproduce (mandatory)

If you are so inclined, here is the server: https://github.com/JonathanWilbur/astrophone

  1. Expected behavior (mandatory)

I expect an ACK response and for the call to proceed.

  1. Please complete the following information (mandatory)

Device: Google Pixel 5
OS: CalyxOS
Version of the App: 5.2.5
Version of the SDK: 5.3.47ds
Where you did got it from: Play Store
Please tell us if your Android is a Lineage OS or another variant.

If you are using a SDK that isn't the latest release, please update first as it's likely your issue is already solved.

  1. SDK logs (mandatory)

https://www.linphone.org:444//tmp/673f3644c069b_b123e47b17fb4a478266.gz

  1. Adb logcat logs (mandatory if native crash)

N/A

  1. Screenshots (optionnal)

N/A

  1. Additional context (optionnal)

None

Thank you in advance for filling bug reports properly!

@JonathanWilbur
Copy link
Author

Welp, since GitHub won't allow me to upload a Wireshark packet capture, here is the full UDP stream. Hopefully this helps:

INVITE sip:[email protected]:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
CSeq: 20 INVITE
Call-ID: REzhq9yM4w
Max-Forwards: 70
Supported: replaces, outbound, gruu, path, record-aware
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, PRACK, UPDATE
Content-Type: application/sdp
Content-Length: 560
Contact: <sip:192.168.1.215:47798;transport=udp>;+org.linphone.specs="conference/1.0,ephemeral/1.1,groupchat/1.2,lime"
User-Agent: LinphoneAndroid/5.2.5 (Pixel 5) LinphoneSDK/5.3.47 (tags/5.3.47^0)

v=0
o=linphone.android 986 1916 IN IP4 192.168.1.215
s=Talk
c=IN IP4 192.168.1.215
t=0 0
a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics
a=record:off
m=audio 45732 RTP/AVP 96 97 98 0 8 18 101 99 100
a=rtpmap:96 opus/48000/2
a=fmtp:96 useinbandfec=1
a=rtpmap:97 speex/16000
a=fmtp:97 vbr=on
a=rtpmap:98 speex/8000
a=fmtp:98 vbr=on
a=fmtp:18 annexb=yes
a=rtpmap:101 telephone-event/48000
a=rtpmap:99 telephone-event/16000
a=rtpmap:100 telephone-event/8000
a=rtcp:39770
a=rtcp-fb:* trr-int 5000
a=rtcp-fb:* ccm tmmbr
SIP/2.0 100 Trying
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 0
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport

SIP/2.0 180 Ringing
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 0
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport

SIP/2.0 200 OK
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 145
Contact: <sip:[email protected]:5060>
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS
Supported: 
Accept: application/sdp
Content-Type: application/sdp
Content-Disposition: session

v=0
o=linphone.android 986 1916 IN IP4 192.168.1.215
s=Talk
c=IN IP4 192.168.1.162
t=0 0
m=audio 43088 RTP/AVP 8
a=sendrecv
a=rtcp:43089
SIP/2.0 200 OK
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 145
Contact: <sip:[email protected]:5060>
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS
Supported: 
Accept: application/sdp
Content-Type: application/sdp
Content-Disposition: session

v=0
o=linphone.android 986 1916 IN IP4 192.168.1.215
s=Talk
c=IN IP4 192.168.1.162
t=0 0
m=audio 43088 RTP/AVP 8
a=sendrecv
a=rtcp:43089
SIP/2.0 200 OK
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 145
Contact: <sip:[email protected]:5060>
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS
Supported: 
Accept: application/sdp
Content-Type: application/sdp
Content-Disposition: session

v=0
o=linphone.android 986 1916 IN IP4 192.168.1.215
s=Talk
c=IN IP4 192.168.1.162
t=0 0
m=audio 43088 RTP/AVP 8
a=sendrecv
a=rtcp:43089
SIP/2.0 200 OK
Call-ID: REzhq9yM4w
CSeq: 20 INVITE
From: "Linphone Android" <sip:[email protected]>;tag=mEugH1PST
To: sip:[email protected]
Content-Length: 145
Contact: <sip:[email protected]:5060>
Via: SIP/2.0/UDP 192.168.1.215:47798;branch=z9hG4bK.vS~qqsS~T;rport
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS
Supported: 
Accept: application/sdp
Content-Type: application/sdp
Content-Disposition: session

v=0
o=linphone.android 986 1916 IN IP4 192.168.1.215
s=Talk
c=IN IP4 192.168.1.162
t=0 0
m=audio 43088 RTP/AVP 8
a=sendrecv
a=rtcp:43089

@Viish
Copy link
Member

Viish commented Nov 21, 2024

Hi @JonathanWilbur,

FYI all protocols related questions should go to linphone-sdk repository, the linphone-android repository is for issues with the user interface only.

Thanks.

@Viish Viish transferred this issue from BelledonneCommunications/linphone-android Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants