통화 전환 결과
통화 전환 결과
통화 전환 결과
통화를 상담원이나 다른 번호로 넘겼을 때, 그 전환이 어떻게 됐는지가 통화 조회 응답의
transferTo, transferStatus, transferDuration 에 남습니다.
이 필드들은 읽기 전용 관측 필드입니다. 값을 지정하는 요청 필드나 VoiceML verb 는 없고,
전환은 에이전트가 통화 중에 실행하며 그 결과가 사후에 채워집니다. 전환이 없었던 통화는
전부 null 입니다.
어디서 받나요
어느 전환이 여기에 기록되나요
<Dial> 은 다릅니다
VoiceML 의 <Dial> 은 통화 중에 다른 목적지를 붙이는 것이지, 통화를 넘기고 빠지는 전환이
아닙니다. 그래서 위 transfer* 필드에는 아무것도 남지 않습니다. 결과는 두 가지로 받습니다.
필드
transferStatus 값
진행 중 상태는 이 필드에 나타나지 않습니다. transferStatus 는 끝난 전환의 결과만 담습니다.
initiated, ringing, connected, interrupted 는 transfers[].status 와 Status Callback
의 transfer 이벤트에만 존재합니다.
다단계 전환과 재시도
한 통화에서 전환을 여러 번 시도할 수 있습니다. 1번 상담원이 받지 않아 2번으로 넘기는 경우입니다.
이때 transfers 에는 시도마다 한 건씩 쌓이고, 위 transfer* 단일 필드는 그중 대표 leg 하나만
보여줍니다.
대표 leg 는 끝난 leg 중 하나입니다. completed 인 leg 가 있으면 그것을, 없으면 sequence 가
가장 큰 leg 를 보여줍니다.
즉 세 번 시도해 마지막에 성공했다면 transferStatus 는 completed 이고 transferTo 는 그 성공한
번호이며, 앞선 두 번의 실패는 transfers 에만 남습니다. 전환 시도를 빠짐없이 보려면 transfers 를
쓰세요.
2026-07-10 이전 전환은 leg 별 시각과 destinationType 이 없습니다. 그때는 전환 결과를 통화
한 건에 한 줄로만 기록했고 지금의 leg 이력은 그 기록에서 되살린 것이라, startedAt ·
connectedAt · endedAt · destinationType 이 전부 null 입니다. 연결 여부를 connectedAt
으로 판정하면 그 구간을 오분류합니다 — status 와 duration 을 보세요.
transferDuration 과 transfers[].duration 은 관측값이지 과금 초가 아닙니다. 청구 기준 초는
transfers[].billableDuration 이니 duration 을 합산하지 마세요.
예시
전환을 두 번 시도해 두 번째에 연결된 통화입니다.
조회는 통화 ID 로 합니다.
통화가 끝나기 전에 알기
위 필드는 통화가 끝난 뒤에 조회해서 봅니다. 전환이 실패했을 때 바로 다른 상담원으로 재시도하거나
안내 문자를 보내려면 Status Callback 의 transfer 이벤트를 쓰세요. 전환 한 건마다 시작, 연결,
종료 순으로 통지됩니다.
transfer 는 기본 이벤트에 포함되지 않습니다. 받으려면 기본 이벤트와 함께 직접 나열해야 합니다.
번호의 statusCallbackEvents 또는 발신 요청의 StatusCallbackEvent 에 위 문자열을 그대로 넣으면
됩니다. 통지에 실리는 파라미터는 다음과 같습니다.
이 이벤트에는 CallStatus 가 실리지 않습니다. 통화 자체의 상태 통지와 구분하려면
TransferStatus 필드의 존재 여부로 분기하세요. 또한 같은 종료 이벤트가 두 번 이상 도착할 수
있으므로, CallId 와 TransferSequence, TransferStatus 조합을 키로 삼아 멱등하게 처리하세요.