Transfer to business

A common Virtual Agent flow is: the AI handles the front of the call, then hands the caller to a human at a business number. Transfers use an in-dialog SIP REFER. Alianza performs the transfer on your behalf — there is no new call leg for you to create and no SDP to renegotiate.

What your Virtual Agent must do

  1. Send a REFER in-dialog — same Call-ID and tags as the ongoing call — with a Refer-To header carrying the business number in E.164 format:

    REFER sip:alianza@... SIP/2.0
    Call-ID: <the ongoing call's Call-ID>
    Refer-To: <sip:+14155551234@...>
    
  2. Watch for in-dialog NOTIFY requests on the subscription the REFER implicitly creates. These report transfer progress and the final outcome.

  3. On a final NOTIFY reporting success (200 OK), expect a BYE from Alianza shortly after. The transfer is complete and your Experience is out of the call.

  4. On a final NOTIFY reporting failure, the original call is untouched — the caller is still with you. You may retry the REFER.

Because the REFER travels inside the existing dialog, Alianza correlates it from the dialog itself. You do not attach correlation headers to a transfer.

What Alianza does

  • Accepts the REFER with 202 Accepted, then issues its own REFER toward the business. No new call leg, no SDP renegotiation.
  • Reports progress (100 Trying) and the final outcome via NOTIFY on the subscription the REFER created.
  • On success: sends the final NOTIFY (200 OK), then a BYE ending your Experience's leg.
  • On failure: reports the underlying failure reason via NOTIFY and leaves the original call untouched.

Billing stops at the BYE. Your Experience's leg ends when Alianza sends the BYE after a successful transfer — not when the caller eventually hangs up with the business.

Possible outcomes

Outcome What you'll see Caller impact
Transfer succeeded Final NOTIFY 200 OK, then a BYE ending your leg Caller is now with the business; your Experience is out of the call
Refer-To missing, not E.164, or an unsupported scheme 400 on the REFER None
Attended transfer (Replaces header) 488 — not yet supported None
A transfer is already in progress on this call 491 None
Business rejected the call Final NOTIFY carrying that rejection status None — you may retry
No answer within the timeout Final NOTIFY 408 None — you may retry
Transport failure reaching the business Final NOTIFY 503 None — you may retry

Every failure leaves the caller with your Experience, so a failed transfer is recoverable: decide whether to retry, offer an alternative, or continue the conversation.

Spec gap. The no-answer timeout that produces a NOTIFY 408 is not documented, so you cannot predict how long a transfer attempt blocks before failing. Confirm the value with Alianza if your Experience needs to keep the caller informed while a transfer is ringing.

Gap ID refer-no-answer-timeout

See also