diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp
index 1c009a5472994f87ed01efef8b383b7b72401c6e..80522548bbefa1b9eb722e4c2664143f3232662a 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);