diff --git a/sippy/ua.go b/sippy/ua.go index 0712880..16fc587 100644 --- a/sippy/ua.go +++ b/sippy/ua.go @@ -222,9 +222,15 @@ REQ_LOOP: if self.pr_rel { t.SetPrackCBs(self.RecvPRACK, disc_fn) } + cancel_cb := self.state.RecvCancel + cancel_fn := func(rtime *sippy_time.MonoTime, req sippy_types.SipRequest) { + self.session_lock.Lock() + cancel_cb(rtime, req) + self.session_lock.Unlock() + } return &sippy_types.Ua_context{ Response : nil, - CancelCB : self.state.RecvCancel, + CancelCB : cancel_fn, NoAckCB : disc_fn, } } else {