← 블로그 목록
유즈케이스2026-06-03
본인인증 받는 AI 전화 만들기 — DTMF + 음성 동의로 ARS 대체
본인인증 받는 AI 전화 만들기 — DTMF + 음성 동의로 ARS 대체
기존 ARS 본인인증 — "1번을 눌러주세요, 2번을 ..." 단조롭고 이탈률 높음. ClawOps 070 + AI + DTMF 조합으로 자연스럽게 본인 확인 + 개인정보 동의 + 추가 정보 음성 입력까지 한 통화에 끝.
0. 활용 예
- 금융 회원가입 본인 확인
- 부동산 매물 등록 본인 확인
- 중고거래·당근 부정거래 방지
- 의료 환자 본인 확인 (예약 변경시)
1. 흐름 설계
[사용자 신청 폼 제출]
↓ 자동 트리거
[ClawOps 070 발신 → 사용자 010]
↓
[AI 인사 + 동의 안내]
↓ 사용자 "네"
[생년월일 음성 입력 받기]
↓
[DTMF — 인증번호 6자리 입력 받기 (사이트가 SMS 보낸 번호)]
↓
[검증 → DB 마킹 → hang_up]
2. Outbound 본인인증 — 코드
from clawops import ClawOps
client = ClawOps()
# 사용자 폼 제출 트리거
def start_verification(user_id: int, phone: str, name: str, birth_year: int):
# SMS 로 6자리 OTP 발송
otp = generate_otp()
db.execute("INSERT INTO otps (user_id, code, expires_at) VALUES (?, ?, ?)",
(user_id, otp, time.time() + 300))
# 070 발신 시작 (AI Completion 모드)
call = client.calls.create(
to=phone, from_=KOREA_070,
ai={
"provider": "openai",
"model": "gpt-realtime",
"api_key": OPENAI_API_KEY,
"language": "ko",
"voice": "alloy",
"messages": [{
"role": "system",
"content": IDENTITY_VERIFY_PROMPT.format(
name=name, expected_birth_year=birth_year, expected_otp=otp,
),
}],
# tools 는 OpenAI function-calling 형식의 도구 정의 (dict)
"tools": [VERIFY_OTP_TOOL, MARK_VERIFIED_TOOL],
},
)
return call.call_id
IDENTITY_VERIFY_PROMPT = """
당신은 OOO 회사 본인인증 안내원입니다.
# 첫 발화
"안녕하세요, OOO 회사 본인인증 통화입니다.
{name} 님 본인 맞으시면 '네' 라고 답해주세요.
통화는 본인 확인 목적으로 녹음됩니다."
# 절차
1. 본인 확인 응답 받기 ("네" 또는 동등 표현)
2. 동의 받기:
"OOO 회사 회원가입을 위한 본인 확인과 개인정보 수집·이용 동의 부탁드립니다. 동의하시면 '동의합니다' 라고 답해주세요."
3. 생년월일 확인:
"본인 확인을 위해 출생연도 4자리 말씀해주세요."
답변과 {expected_birth_year} 비교. 불일치시 hang_up + DB 마킹 'failed'.
4. SMS 코드 입력:
"방금 보내드린 SMS 6자리 인증번호를 휴대폰 키패드로 입력해주세요."
DTMF 6자리 받기. verify_otp 도구 호출.
5. 검증 결과:
- 일치 → mark_verified 도구 → "인증 완료되었습니다, 감사합니다."
- 불일치 → "인증번호가 일치하지 않습니다, 다시 입력해주세요." (최대 2회 재시도)
- 3회 실패 → "본인인증 실패, 사이트에서 다시 시도해주세요." hang_up
# 절대 금지
- 동의 안 받았는데 진행
- 비밀번호·계좌·카드 묻기
- 본인 확인 외 다른 정보 요청
- 통화 3분 초과
"""
# AI Completion 모드의 tools 는 OpenAI function-calling 형식의 정의(dict)다.
VERIFY_OTP_TOOL = {
"type": "function",
"name": "verify_otp",
"description": "SMS OTP 검증.",
"parameters": {
"type": "object",
"properties": {
"entered_code": {"type": "string"},
"user_id": {"type": "integer"},
},
"required": ["entered_code", "user_id"],
},
}
MARK_VERIFIED_TOOL = {
"type": "function",
"name": "mark_verified",
"description": "DB 에 인증 완료 마킹.",
"parameters": {
"type": "object",
"properties": {"user_id": {"type": "integer"}},
"required": ["user_id"],
},
}
3. DTMF 입력 받기 — ClawOps Agent 패턴
AI Completion 모드(OpenAI Realtime / Gemini Live)는 DTMF 이벤트를 함께 수신. 시스템 프롬프트에 "키패드로 입력" 안내하면 사용자가 누른 톤을 AI 가 verify_otp 도구의 entered_code 인자로 받는다.
4. 통화 예시
AI: "안녕하세요, OOO 회사 본인인증 통화입니다. 김OOO 님 본인 맞으시면 '네' 답해주세요. 통화는 녹음됩니다."
사용자: "네"
AI: "회원가입 본인 확인과 개인정보 수집·이용 동의 부탁드립니다. 동의하시면 '동의합니다' 라고 답해주세요."
사용자: "동의합니다"
AI: "본인 확인을 위해 출생연도 4자리 말씀해주세요."
사용자: "1985년"
AI: "확인했습니다. 방금 보내드린 SMS 6자리 인증번호를 휴대폰 키패드로 입력해주세요."
사용자: [키패드 123456 입력]
AI: "인증 완료되었습니다, 감사합니다."
[hang_up]
5. 컴플라이언스 (한국)
- 개인정보보호법 — 동의 받기 의무. 시스템 프롬프트 첫 발화에 명시.
- 통화 녹음 — 일방 동의 합법이지만 명시 안내 권장 (위 첫 발화에 포함).
- 본인 확인 정보 저장 — 가능한 최소화 (음성 녹음만 보관, 텍스트 전사는 7일 후 삭제).
- KISA/금감원 권고 — 금융 본인인증은 별도 보안 요구사항 (PASS 인증 등 보조).
6. 보안
- OTP — 1회용, 5분 만료, 시도 3회 제한
- 통화 녹음 — GCP 서울 리전 내, 일정 기간 후 자동 폐기
- 회사 측에서 사용자 발화 음성 데이터를 외부 LLM 에 전달할 때 PII 마스킹
7. 비용
- ClawOps Individual ₩19,000/월 (인증 100건 = 30분)
- SMS OTP 발송: ₩30/건 (LMS)
다음 단계
관련 글 더 보기
유즈케이스
견적 문의 전화 자동 응대 AI — 인바운드 lead qualification 자동화
광고/마케팅으로 들어오는 견적 문의 전화를 AI 가 1차 응대해서 회사명·연락처·예산·일정 받아 영업팀 lead 큐로. 영업 시간외 100% 응대.
유즈케이스부재중 전화 자동 응대 AI — 영업시간 외 24시간 메모·콜백 자동화
영업시간 외 전화에 AI 가 응답하고 용건·연락처 받아 다음 영업일에 자동 callback 큐로 처리. 부재중 손실 0.
유즈케이스정기 확인 전화 자동화 — 구독·결제·예약 리마인더 AI 통화
구독 갱신·결제 예정·예약 D-1 같은 정기 알림을 ClawOps 070 + AI 자동 전화로 처리. 이메일·SMS 보다 도달률 높고 대화형 confirm 가능.
유즈케이스학원 AI 상담 전화 만들기 — 학기·시간·비용 안내 + 상담 예약 자동화
어학원·입시학원·취미학원 — 070 + AI 로 커리큘럼·반편성·수강료·상담 일정 자동 응대. 카운셀러 인건비 절감 + 24시간 응답률 100%.
유즈케이스카페 AI 주문·예약 전화 만들기 — 메뉴·테이크아웃·이벤트 자동 응대
스페셜티 카페·디저트샵·베이커리 — 070 + AI 로 메뉴·운영시간·테이크아웃 예약 자동 응대. 단가 ₩19,000/월.