ClawOps Docs

Status Callback

통화 상태 변경 시 전송되는 Status Callback의 이벤트 종류와 파라미터를 안내합니다.

Status Callback은 통화 상태가 변경될 때마다 지정한 URL로 이벤트를 전송합니다. 아웃바운드 통화 생성 시 status_callback 파라미터로 통화별로 설정합니다.

call = client.calls.create(
    to="01012345678",
    from_="07052358010",
    url="https://my-app.com/twiml",
    status_callback="https://my-app.com/status",
    status_callback_event="initiated ringing answered completed",
)

이벤트 종류

status_callback_event에 수신할 이벤트를 공백으로 구분하여 지정합니다.

파라미터타입필수설명
initiatedevent선택통화가 시작됨 (발신 시작)
ringingevent선택상대방 전화벨이 울리는 중
answeredevent선택상대방이 전화를 받음
completedevent선택통화가 종료됨

요청 파라미터

기본 파라미터(CallId, AccountId, From, To, Direction)에 추가로 다음 파라미터가 포함됩니다.

파라미터타입필수설명
CallStatusstring필수현재 통화 상태 (initiated, ringing, answered, completed)
Durationstring선택통화 시간 (초) — completed 이벤트에서만 포함
Timestampstring필수이벤트 발생 시각 (ISO 8601)

예제

from flask import Flask, request

app = Flask(__name__)

@app.route("/status", methods=["POST"])
def status_callback():
    call_id = request.form.get("CallId")
    status = request.form.get("CallStatus")
    duration = request.form.get("Duration")

    print(f"통화 {call_id}: {status}")
    if status == "completed" and duration:
        print(f"  통화 시간: {duration}초")

    return "", 204

Status Callback 요청에도 X-Signature 헤더가 포함됩니다. 서명 검증 가이드를 참고하여 요청의 무결성을 확인하세요.