From 54d9c0f0689626da484837d38672383932ef2da2 Mon Sep 17 00:00:00 2001
From: Olivier Dion <olivier.dion@savoirfairelinux.com>
Date: Tue, 6 Jul 2021 21:13:47 -0400
Subject: [PATCH] register thread to pjsip

Change-Id: I1acac4dd8e87d2ffe1c63638d03fd28c6749adef
---
 src/ice_transport.cpp      | 4 ++++
 src/sip/sipaccountbase.cpp | 2 ++
 src/sip/sipcall.cpp        | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/src/ice_transport.cpp b/src/ice_transport.cpp
index dbb503d13b..acff2772eb 100644
--- a/src/ice_transport.cpp
+++ b/src/ice_transport.cpp
@@ -1082,6 +1082,8 @@ IceTransport::isInitiator() const
 bool
 IceTransport::startIce(const Attribute& rem_attrs, std::vector<IceCandidate>&& rem_candidates)
 {
+    sip_utils::register_thread();
+
     if (not isInitialized()) {
         JAMI_ERR("[ice:%p] not initialized transport", pimpl_.get());
         pimpl_->is_stopped_ = true;
@@ -1148,6 +1150,8 @@ IceTransport::startIce(const Attribute& rem_attrs, std::vector<IceCandidate>&& r
 bool
 IceTransport::startIce(const SDP& sdp)
 {
+    sip_utils::register_thread();
+
     if (pimpl_->streamsCount_ != 1) {
         JAMI_ERR("Expected exactly one stream per SDP (found %u streams)", pimpl_->streamsCount_);
         return false;
diff --git a/src/sip/sipaccountbase.cpp b/src/sip/sipaccountbase.cpp
index 11396b5a1a..f2112cdfc4 100644
--- a/src/sip/sipaccountbase.cpp
+++ b/src/sip/sipaccountbase.cpp
@@ -86,6 +86,8 @@ SIPAccountBase::CreateClientDialogAndInvite(const pj_str_t* from,
                                             pjsip_dialog** dlg,
                                             pjsip_inv_session** inv)
 {
+    sip_utils::register_thread();
+
     if (pjsip_dlg_create_uac(pjsip_ua_instance(), from, contact, to, target, dlg) != PJ_SUCCESS) {
         JAMI_ERR("Unable to create SIP dialogs for user agent client when calling %s", to->ptr);
         return false;
diff --git a/src/sip/sipcall.cpp b/src/sip/sipcall.cpp
index ef5ad8f3d0..d00656779c 100644
--- a/src/sip/sipcall.cpp
+++ b/src/sip/sipcall.cpp
@@ -672,6 +672,8 @@ SIPCall::setInviteSession(pjsip_inv_session* inviteSession)
 void
 SIPCall::terminateSipSession(int status)
 {
+    sip_utils::register_thread();
+
     JAMI_DBG("[call:%s] Terminate SIP session", getCallId().c_str());
     std::lock_guard<std::recursive_mutex> lk {callMutex_};
     if (inviteSession_ and inviteSession_->state != PJSIP_INV_STATE_DISCONNECTED) {
-- 
GitLab