diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index 4213d682a41bcb88bdfc2143f477a3b224b87987..b4ea7c7c4d9d590ff58c8fa9a05c85782c06fffa 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -342,7 +342,7 @@ SIPCall::SIPSessionReinvite()
 }
 
 void
-SIPCall::sendSIPInfo(const char* const body, const char* const subtype)
+SIPCall::sendSIPInfo(std::string_view body, std::string_view subtype)
 {
     std::lock_guard<std::recursive_mutex> lk {callMutex_};
     if (not inv or not inv->dlg)
@@ -356,17 +356,14 @@ SIPCall::sendSIPInfo(const char* const body, const char* const subtype)
 
     /* Create request message. */
     pjsip_tx_data* tdata;
-
     if (pjsip_dlg_create_request(inv->dlg, &method, -1, &tdata) != PJ_SUCCESS) {
         JAMI_ERR("[call:%s] Could not create dialog", getCallId().c_str());
         return;
     }
 
     /* Create "application/<subtype>" message body. */
-    pj_str_t content;
-    pj_cstr(&content, body);
-    pj_str_t pj_subtype;
-    pj_cstr(&pj_subtype, subtype);
+    pj_str_t content = CONST_PJ_STR(body);
+    pj_str_t pj_subtype = CONST_PJ_STR(subtype);
     tdata->msg->body = pjsip_msg_body_create(tdata->pool, &type, &pj_subtype, &content);
     if (tdata->msg->body == NULL)
         pjsip_tx_data_dec_ref(tdata);
@@ -388,7 +385,7 @@ SIPCall::updateRecState(bool state)
     JAMI_DBG("Sending recording state via SIP INFO");
 
     try {
-        sendSIPInfo(BODY.c_str(), "media_control+xml");
+        sendSIPInfo(BODY, "media_control+xml");
     } catch (const std::exception& e) {
         JAMI_ERR("Error sending recording state: %s", e.what());
     }
@@ -402,10 +399,10 @@ SIPCall::requestKeyframe()
         and lastKeyFrameReq_ != time_point::min())
         return;
 
-    constexpr const char* const BODY = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
+    constexpr auto BODY = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"
                                        "<media_control><vc_primitive><to_encoder>"
                                        "<picture_fast_update/>"
-                                       "</to_encoder></vc_primitive></media_control>";
+                                       "</to_encoder></vc_primitive></media_control>"sv;
     JAMI_DBG("Sending video keyframe request via SIP INFO");
     try {
         sendSIPInfo(BODY, "media_control+xml");
@@ -429,7 +426,7 @@ SIPCall::setMute(bool state)
     JAMI_DBG("Sending mute state via SIP INFO");
 
     try {
-        sendSIPInfo(BODY.c_str(), "media_control+xml");
+        sendSIPInfo(BODY, "media_control+xml");
     } catch (const std::exception& e) {
         JAMI_ERR("Error sending mute state: %s", e.what());
     }
@@ -894,16 +891,17 @@ SIPCall::carryingDTMFdigits(char code)
 {
     int duration = Manager::instance().voipPreferences.getPulseLength();
     char dtmf_body[1000];
+    int ret;
 
     // handle flash code
     if (code == '!') {
-        snprintf(dtmf_body, sizeof dtmf_body - 1, "Signal=16\r\nDuration=%d\r\n", duration);
+        ret = snprintf(dtmf_body, sizeof dtmf_body - 1, "Signal=16\r\nDuration=%d\r\n", duration);
     } else {
-        snprintf(dtmf_body, sizeof dtmf_body - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
+        ret = snprintf(dtmf_body, sizeof dtmf_body - 1, "Signal=%c\r\nDuration=%d\r\n", code, duration);
     }
 
     try {
-        sendSIPInfo(dtmf_body, "dtmf-relay");
+        sendSIPInfo({dtmf_body, (size_t)ret}, "dtmf-relay");
     } catch (const std::exception& e) {
         JAMI_ERR("Error sending DTMF: %s", e.what());
     }
@@ -921,7 +919,7 @@ SIPCall::setVideoOrientation(int rotation)
 
     JAMI_DBG("Sending device orientation via SIP INFO");
 
-    sendSIPInfo(sip_body.c_str(), "media_control+xml");
+    sendSIPInfo(sip_body, "media_control+xml");
 }
 
 void
diff --git a/src/sip/sipcall.h b/src/sip/sipcall.h
index 5db4f8224209d3094c47cc92dd4243a8fabac8c9..9e64534ab5c7e4948c09abae66efc786aa3d6d96 100644
--- a/src/sip/sipcall.h
+++ b/src/sip/sipcall.h
@@ -171,7 +171,7 @@ public: // SIP related
 
     SipTransport* getTransport() { return transport_.get(); }
 
-    void sendSIPInfo(const char* const body, const char* const subtype);
+    void sendSIPInfo(std::string_view body, std::string_view subtype);
 
     void requestKeyframe();