From 7e918cee107d94d9ce18c6b0c2ad3fdbff4176da Mon Sep 17 00:00:00 2001
From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com>
Date: Mon, 26 Apr 2021 10:28:00 -0400
Subject: [PATCH] sip: respond with the original offer once receiving empty
 offer from RE-INVITE

Gitlab: #528

Change-Id: I90ad328a2e24da9903bf39bcb595c84683c36f7e
---
 src/sip/sipvoiplink.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index 1c009a5472..80522548bb 100644
--- a/src/sip/sipvoiplink.cpp
+++ b/src/sip/sipvoiplink.cpp
@@ -927,6 +927,8 @@ invite_session_state_changed_cb(pjsip_inv_session* inv, pjsip_event* ev)
 static pj_status_t
 reinvite_received_cb(pjsip_inv_session* inv, const pjmedia_sdp_session* offer, pjsip_rx_data* rdata)
 {
+    if (!offer)
+        return !PJ_SUCCESS;
     if (auto call = getCallFromInvite(inv)) {
         return call->onReceiveOffer(offer, rdata);
     }
@@ -975,7 +977,7 @@ sdp_create_offer_cb(pjsip_inv_session* inv, pjmedia_sdp_session** p_offer)
     sdp.setPublishedIP(address);
 
     // This list should be provided by the client. Kept for backward compatibility.
-    auto mediaList = account->createDefaultMediaList(account->isVideoEnabled());
+    auto mediaList = account->createDefaultMediaList(!call->isAudioOnly());
 
     const bool created = sdp.createOffer(mediaList);
 
-- 
GitLab