Skip to content

Warm transfer outbound consult INVITE is canceled and retried, causing 482 Request merged #626

Description

@Bolu-Rio-Eigen

We’re seeing a warm transfer failure with LiveKit SIP and I think the problem is happening in the SIP server layer, not the app.

Setup:

  • provider: Africa’s Talking
  • transport: UDP
  • deployment: EC2
  • livekit/sip version from logs: v2.11.4-0.20251016050252-63f7c8381817

Flow:

  • inbound PSTN/SIP call comes into LiveKit SIP
  • during the active call, we create an outbound consult leg with CreateSIPParticipant into a consultation room

What I expected:

  • one outbound INVITE for the consult leg
  • then either answer / reject / timeout from the provider

What is actually happening:

  • LiveKit SIP sends the first outbound INVITE
  • then sends CANCEL for that INVITE
  • provider responds 487 Request Terminated
  • LiveKit SIP then sends a second INVITE
  • provider responds 482 Request merged

From pcap:

  • 08:42:33.998765 first outbound INVITE
  • 08:42:36.411865 CANCEL from our side
  • 08:42:36.536778 487 Request Terminated
  • 08:42:36.723757 second outbound INVITE
  • 08:42:36.848409 482 Request merged

From SIP server logs:

  • SIP invite failed ... error: "canceled"
  • then another Creating SIP participant
  • then SIP invite failed ... error: "unexpected status from INVITE response: sip status: 482: Request merged"

I don’t see this second attempt being intentionally triggered from app logic, so I’m trying to understand:

  • what causes the first outbound INVITE to get canceled?
  • why does a second INVITE get sent immediately after?
  • is this expected behavior in livekit/sip warm transfer / CreateSIPParticipant flow?

Happy to attach the pcap and full logs if useful.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions