diff --git a/src/sip/sipvoiplink.cpp b/src/sip/sipvoiplink.cpp index 8832d7e8dc64a5428bfa7b1f5a2f0f62e656e0db..1e4f3ed02518e1f0267d8fe4da634deb3e7ce082 100644 --- a/src/sip/sipvoiplink.cpp +++ b/src/sip/sipvoiplink.cpp @@ -1118,9 +1118,12 @@ transaction_state_changed_cb(pjsip_inv_session* inv, pjsip_transaction* tsx, pjs onRequestInfo(inv, rdata, msg, *call); else if (methodName == "NOTIFY") onRequestNotify(inv, rdata, msg, *call); - else if (methodName == "MESSAGE") + else if (methodName == "MESSAGE") { if (msg->body) - call->onTextMessage(im::parseSipMessage(msg)); + runOnMainThread([call, m = im::parseSipMessage(msg)]() mutable { + call->onTextMessage(std::move(m)); + }); + } } int SIPVoIPLink::getModId()