통화 생성
아웃바운드 통화를 생성합니다. 발신 번호에 활성 traffic split 정책이 없을 때만 agent를 직접 지정할 수 있습니다.
Authorizations
조직 API 키를 Authorization: Bearer <token> 형식으로 보냅니다.
Body
아웃바운드 통화 생성 요청입니다. 에이전트를 직접 지정하려면 agent를 보냅니다. 발신 번호에 활성 traffic split 정책이 있으면 agent를 생략합니다.
v3 아웃바운드 통화 생성 요청.
발신 번호. 하이픈 없는 국내 번호 (예: '01012345678'). libphonenumber 검증.
수신 번호. 하이픈 없는 국내 번호 (예: '01098765432').
agent_id와 agent_version으로 구성된 에이전트 매핑 객체입니다.
자유 형식 메타데이터입니다. 응답에서 그대로 반환합니다.
에이전트 프롬프트에 주입할 동적 변수. {{변수명}} 치환.
수신자에게 표시할 번호. 조직 승인 번호만 허용. 미지정은 null.
Response
성공 응답
v3 단건 통화 응답. transcript 포함.
AI 원장 순수성 (Operator-Call Split §7.1): 이 응답은 AI 구간만 담는다 —
transcript/analysis에 operator 발화는 구조적으로 없다. 사람 상담 구간은
operator-control이 소유한다. takeover.operator_call_id는 그 구간의
opaque join key이며, 이 API의 조회 path가 아니다.
통화의 고유 식별자입니다.
agent_id와 agent_version으로 구성된 에이전트 매핑 객체입니다.
통화 유형. 'web'/'phone'/'inbound'/'outbound'/'api' 중 하나.
web, phone, inbound, outbound, api 통화 상태입니다. 값 의미와 전이 규칙은 CallStatusV3Enum 정의를 참고합니다.
queued, ongoing, ended, error, canceled, not_connected 서버가 귀속한 고객 UUID입니다. 아직 고객 귀속이 완료되지 않았거나 귀속 대상이 없으면 null입니다.
통화가 속한 캠페인의 정수 문자열 id. 캠페인 미소속이면 null입니다.
발신 번호. 하이픈 없는 국내 번호 (예: '01012345678'). 웹 통화 등은 null.
수신 번호. 하이픈 없는 국내 번호.
수신자에게 표시할 발신 번호. 조직이 사전 등록·승인한 번호 (telephone_presentation_numbers). 미지정 시 null.
통화 종료 사유. 진행 중이면 null.
user_hangup, agent_hangup, dial_no_answer, dial_failed, dial_busy, voicemail_reached, concurrency_limit_reached, insufficient_balance, error_voxai, max_duration_reached, inactivity, flow_error, call_transfer, orphaned_no_agent_pickup, dial_declined, daily_call_limit_reached, hourly_call_limit_reached, blocked_number, operator_hangup 통화가 시작된 시각 (unix ms). 통화가 아직 시작되지 않았으면 null.
통화가 종료된 시각 (unix ms). 통화가 아직 종료되지 않았으면 null.
녹음 파일 URL. 녹음 없거나 옵트아웃이면 null.
요청 시 전달된 정적 메타데이터를 그대로 반환합니다.
요청 시 전달된 동적 변수를 그대로 반환합니다.
통화 분석 결과입니다(요약, 감정, 사용자 정의 분석). 분석 완료 전에는 null입니다.
통화 비용입니다(KRW 원 단위, Decimal 문자열). 계산 완료 전에는 null입니다.
Traffic split variant label. Split 미사용/우회/폴백 통화는 null.
민감정보 저장 거부 여부. true면 transcript/recording/analysis null.
통화 대화록 (통합 리스트, AI 구간 전용). 항목 role 3종:
- 'agent'/'user': {role, content, start_at?, end_at?}
- 'tool_call_invocation': {role, tool_call_id, name, arguments}
- 'tool_call_result': {role, tool_call_id, content} 옵트아웃 시 null.
이어받기 블록. call_transfer와 matching operator web relation으로 파생. 사람 구간 대화/지표는 이 응답에 없다. operator_call_id는 operator-control 원장의 opaque join key이며 api-server public path가 아니다.
통화 구간 목록 (mode 'ai'|'human'). 이어받기 없는 콜은 ai 1구간. hold gap(dormancy→COMMIT)은 구간 사이 공백으로 표현.
'ai' | 'operator'. matching committed operator call 존재로 파생하며 bare call_transfer는 operator로 분류하지 않음. null이면 판정 불가(attribution 조회 일시 실패) — 정본은 operator call 리소스이므로 재조회로 복원 가능.