BelledonneCommunications / linphone-android

Linphone.org mirror for linphone-android (https://gitlab.linphone.org/BC/public/linphone-android)
https://linphone.org
GNU General Public License v3.0
1.12k stars 687 forks source link

Issue if A and B both request to hold the call at the same time #2222

Closed long2602 closed 2 months ago

long2602 commented 2 months ago

Hi @Viish,

I have an issue where, if A and B both request to hold the call at the same time, the current call between them gets terminated.

Some logs:

I/FMC ( 7976): CallSession [0x6dc0fb6ad8] moving from state LinphoneCallStreamsRunning to LinphoneCallPausing

I/FMC ( 7976): INVITE sip:1014@172.21.0.132:5060 SIP/2.0 I/FMC ( 7976): Via: SIP/2.0/UDP 10.130.1.7:51802;branch=z9hG4bK.Xk2mvVO2~;rport I/FMC ( 7976): From: sip:1015@172.21.0.132;tag=u50rE4Y I/FMC ( 7976): To: sip:1014@172.21.0.132;tag=49a1bd9f-5918-4f9f-8dbb-1bfbe2b072d1 I/FMC ( 7976): CSeq: 111 INVITE I/FMC ( 7976): Call-ID: 55271700-87e0-4ff5-9e66-2a85a08c7a05 I/FMC ( 7976): Max-Forwards: 70 I/FMC ( 7976): Subject: Call on hold I/FMC ( 7976): Supported: replaces, outbound, gruu, path I/FMC ( 7976): Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO, PRACK, UPDATE I/FMC ( 7976): Content-Type: application/sdp I/FMC ( 7976): Content-Length: 517 I/FMC ( 7976): Contact: sip:1015@10.130.1.7:51802;transport=udp;expires=1800;+org.linphone.specs="lime" I/FMC ( 7976): User-Agent: Android I/FMC ( 7976): I/FMC ( 7976): v=0 I/FMC ( 7976): o=1015 4019 879 IN IP4 10.130.1.7 I/FMC ( 7976): s=Talk I/FMC ( 7976): c=IN IP4 10.130.1.7 I/FMC ( 7976): t=0 0 I/FMC ( 7976): a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics I/FMC ( 7976): m=audio 45303 RTP/AVP 96 9 97 98 0 8 101 99 100 I/FMC ( 7976): a=rtpmap:96 opus/48000/2 I/FMC ( 7976): a=fmtp:96 useinbandfec=1 I/FMC ( 7976): a=rtpmap:97 speex/16000 I/FMC ( 7976): a=fmtp:97 vbr=on I/FMC ( 7976): a=rtpmap:98 speex/8000 I/FMC ( 7976): a=fmtp:98 vbr=on I/FMC ( 7976): a=rtpmap:101 telephone-event/48000 I/FMC ( 7976): a=rtpmap:99 telephone-event/8000 I/FMC ( 7976): a=rtpmap:100 telephone-event/16000 I/FMC ( 7976): a=sendonly I/FMC ( 7976): a=rtcp:38485 I/FMC ( 7976): a=rtcp-fb: trr-int 1000 I/FMC ( 7976): a=rtcp-fb: ccm tmmbr

I/FMC ( 7976): SIP/2.0 100 Trying I/FMC ( 7976): Via: SIP/2.0/UDP 172.21.0.132:5060;branch=z9hG4bKhsig0000000446QY8DAHikMAQAABPErBUAhA.XIP I/FMC ( 7976): From: sip:1014@172.21.0.132;tag=49a1bd9f-5918-4f9f-8dbb-1bfbe2b072d1 I/FMC ( 7976): To: sip:1015@172.21.0.132;tag=u50rE4Y I/FMC ( 7976): Call-ID: 55271700-87e0-4ff5-9e66-2a85a08c7a05 I/FMC ( 7976): CSeq: 2 INVITE

I/FMC ( 7976): SIP/2.0 491 Request pending I/FMC ( 7976): Via: SIP/2.0/UDP 172.21.0.132:5060;branch=z9hG4bKhsig0000000446QY8DAHikMAQAABPErBUAhA.XIP I/FMC ( 7976): From: sip:1014@172.21.0.132;tag=49a1bd9f-5918-4f9f-8dbb-1bfbe2b072d1 I/FMC ( 7976): To: sip:1015@172.21.0.132;tag=u50rE4Y I/FMC ( 7976): Call-ID: 55271700-87e0-4ff5-9e66-2a85a08c7a05 I/FMC ( 7976): CSeq: 2 INVITE

I/FMC ( 7976): SIP/2.0 488 Not Acceptable Here I/FMC ( 7976): Call-ID: 55271700-87e0-4ff5-9e66-2a85a08c7a05 I/FMC ( 7976): Content-Length: 0 I/FMC ( 7976): CSeq: 112 INVITE I/FMC ( 7976): Contact: sip:1014@172.21.0.132:5060 I/FMC ( 7976): From: sip:1015@172.21.0.132;tag=u50rE4Y I/FMC ( 7976): To: sip:1014@172.21.0.132;tag=49a1bd9f-5918-4f9f-8dbb-1bfbe2b072d1 I/FMC ( 7976): Via: SIP/2.0/UDP 10.130.1.7:51802;branch=z9hG4bK.aXmfB6p5u;rport I/FMC ( 7976): Warning: 399 172.21.0.132 "Miscellaneous warning"

After that the current call gets terminated.

When the call is in the 'Pausing' state, I try to cancel the hold request by using call.resume(), but I receive the message: 'Call is currently in state LinphoneCallPausing and cannot be immediately resumed, therefore this task will be scheduled.'

How can I solve this issue? Do you have any ideas or solutions?

Thanks @Viish

Viish commented 2 months ago

Duplicate of https://github.com/BelledonneCommunications/linphone-sdk/issues/389, please keep SDK issue in SDK repository. This repository is only for issues related to our app, not the SDK.