From 5c747cf6d17ada81c644305a8dc010ead0f57b5b Mon Sep 17 00:00:00 2001 From: SoanSaini Date: Wed, 9 Jul 2025 14:16:04 +1000 Subject: [PATCH] Sending Request terminated status when Call is cancelled --- pkg/sip/inbound.go | 3 +-- pkg/sip/participant.go | 5 +++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/sip/inbound.go b/pkg/sip/inbound.go index f9f75ac6..e4c46fc1 100644 --- a/pkg/sip/inbound.go +++ b/pkg/sip/inbound.go @@ -960,7 +960,7 @@ func (c *inboundCall) closeWithCancelled() { c.state.DeferUpdate(func(info *livekit.SIPCallInfo) { info.DisconnectReason = livekit.DisconnectReason_CLIENT_INITIATED }) - c.close(false, CallHangup, "cancelled") + c.close(false, CallCancelled, "cancelled") } func (c *inboundCall) closeWithHangup() { @@ -1317,7 +1317,6 @@ func (c *sipInbound) StartRinging() { case r := <-cancels: close(c.cancelled) _ = tx.Respond(sip.NewResponseFromRequest(r, sip.StatusOK, "OK", nil)) - c.RespondAndDrop(sip.StatusRequestTerminated, "Request Terminated") return case <-ticker.C: } diff --git a/pkg/sip/participant.go b/pkg/sip/participant.go index f4025051..96ee46a3 100644 --- a/pkg/sip/participant.go +++ b/pkg/sip/participant.go @@ -68,6 +68,8 @@ func (v CallStatus) Attribute() string { return "active" case CallHangup: return "hangup" + case CallCancelled: + return "cancelled" } } @@ -89,6 +91,8 @@ func (v CallStatus) SIPStatus() (sip.StatusCode, string) { switch v { default: return sip.StatusBusyHere, "Rejected" + case CallCancelled: + return sip.StatusRequestTerminated, "RequestTerminated" case callMediaFailed: return sip.StatusNotAcceptableHere, "MediaFailed" } @@ -101,6 +105,7 @@ const ( CallRinging CallAutomation CallActive + CallCancelled CallHangup callUnavailable callRejected