수신 전화 처리(API)
엔드 투 엔드: 에이전트를 구성하고, 전화번호에 할당하고, 전화를 받고, 대화 내용을 검토합니다.
터미널에서 수행하는 표준적인 "AI로 전화를 받기" 흐름입니다. 다음을 수행합니다.
- 프롬프트와 음성을 포함한 에이전트를 생성합니다.
- 전화번호를 프로비저닝(또는 가져오기)하고 에이전트를 해당 번호의 수신 처리기로 할당합니다.
- 번호로 전화를 겁니다. 통화 로그, 트랜스크립트 및 녹음을 확인합니다.
총 API 호출 수: 4회. 총 소요 시간: 5분 미만입니다.
1. 에이전트 생성
에이전트는 통화를 처리할 프롬프트, 음성 및 제품 티어를 묶습니다. 모든 구성 필드는 에이전트를 참조하세요. 최소 구성은 다음과 같습니다.
curl -X POST https://api.thunderphone.com/v1/agents \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Support",
"prompt": "You are a friendly support agent for Acme. Help callers with orders and returns. Keep answers short.",
"voice": "john",
"product": "spark"
}'반환된 id를 저장하세요. 2단계에서 필요합니다.
2. 전화번호 가져오기
단순히 전화할 번호가 필요하다면 ThunderPhone의 풀에서 데모 번호를 프로비저닝하세요.
curl -X POST https://api.thunderphone.com/v1/phone-numbers \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"area_code": "415"}'응답에는 E.164 형식의 id와 number가 포함됩니다. 데모 번호는
status="provisioning"으로 시작하며 몇 초 내에 active 상태가 됩니다.
필요하다면
GET /v1/phone-numbers/{id}를
폴링하여 상태 전환을 확인하세요.
3. 에이전트 할당
1단계의 에이전트를 번호의 수신 방향에 연결합니다.
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/{phone_id} \
-H "Authorization: Bearer sk_live_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"inbound_agent_id": 12}'이것으로 완료입니다. 번호가 활성화되었습니다. 동일한 PATCH에서
outbound_agent_id도 설정하면 해당 번호로 발신할 준비도 할 수 있습니다.
4. 통화 받기
휴대폰에서 번호로 전화를 거세요. 에이전트가 전화를 받고, 프롬프트에 따라 자신을 소개한 후 대화가 시작됩니다.
통화가 진행 중인 동안에는
GET /v1/calls에
status="in_progress"로 표시됩니다. 통화가 종료되면 레코드가
end_reason, duration_seconds, billable_minutes 및 (최종적으로)
녹음 URL과 AI 등급으로 업데이트됩니다.
5. 결과 확인
최근 통화 목록을 가져옵니다.
curl 'https://api.thunderphone.com/v1/calls?limit=5' \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"트랜스크립트를 가져옵니다.
curl https://api.thunderphone.com/v1/calls/{call_id}/transcript \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"그리고 녹음 URL(짧은 기간 동안 유효한 서명 URL)을 가져옵니다.
curl https://api.thunderphone.com/v1/calls/{call_id}/audio \
-H "Authorization: Bearer sk_live_YOUR_API_KEY"telephony.complete 웹훅을 구독했다면
동일한 데이터를 서버로 전송되는 POST로 수신합니다.
call.complete를 참조하세요.