From 8258b7d89d2ad59d19c8a385b2c3d040f9be7a4a Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Wed, 23 Jul 2025 14:57:31 +0300 Subject: [PATCH] Propagate original SIP response status text. --- pkg/sip/outbound.go | 10 ++++++++-- pkg/sip/protocol.go | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/pkg/sip/outbound.go b/pkg/sip/outbound.go index bd74ae65..85900cb9 100644 --- a/pkg/sip/outbound.go +++ b/pkg/sip/outbound.go @@ -777,13 +777,19 @@ authLoop: case sip.StatusOK: break authLoop default: - return nil, fmt.Errorf("unexpected status from INVITE response: %w", &livekit.SIPStatus{Code: livekit.SIPStatusCode(resp.StatusCode)}) + return nil, fmt.Errorf("unexpected status from INVITE response: %w", &livekit.SIPStatus{ + Code: livekit.SIPStatusCode(resp.StatusCode), + Status: resp.Reason, + }) case sip.StatusBadRequest, sip.StatusNotFound, sip.StatusTemporarilyUnavailable, sip.StatusNotAcceptableHere, sip.StatusBusyHere: - err := &livekit.SIPStatus{Code: livekit.SIPStatusCode(resp.StatusCode)} + err := &livekit.SIPStatus{ + Code: livekit.SIPStatusCode(resp.StatusCode), + Status: resp.Reason, + } if body := resp.Body(); len(body) != 0 { err.Status = string(body) } else if s := resp.GetHeader("X-Twillio-Error"); s != nil { diff --git a/pkg/sip/protocol.go b/pkg/sip/protocol.go index 3a512401..590ce926 100644 --- a/pkg/sip/protocol.go +++ b/pkg/sip/protocol.go @@ -263,7 +263,10 @@ func sendRefer(ctx context.Context, c Signaling, req *sip.Request, stop <-chan s case sip.StatusOK, 202: // 202 is Accepted return resp, nil default: - return resp, &livekit.SIPStatus{Code: livekit.SIPStatusCode(resp.StatusCode)} + return resp, &livekit.SIPStatus{ + Code: livekit.SIPStatusCode(resp.StatusCode), + Status: resp.Reason, + } } }