diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp index 9a348107a7948bcd622a6ce1ca80b46134128eae..6e6a196b3e6066e9f911486d9bd0a46399406da3 100644 --- a/src/sip/sipcall.cpp +++ b/src/sip/sipcall.cpp @@ -392,7 +392,10 @@ SIPCall::hangup(int reason) // Stop all RTP streams stopAllMedia(); setState(Call::ConnectionState::DISCONNECTED, reason); - removeCall(); + runOnMainThread([w = weak()] { + if (auto shared = w.lock()) + shared->removeCall(); + }); } void @@ -822,7 +825,10 @@ SIPCall::sendKeyframe() void SIPCall::onPeerRinging() { - setState(ConnectionState::RINGING); + runOnMainThread([w = weak()] { + if (auto shared = w.lock()) + shared->setState(ConnectionState::RINGING); + }); } void