프로젝트 배경
전화상담 운영에서는 PBX의 통화 상태와 기존 결제 원장의 과금 상태가 어긋날 때 중복 차감·누락 정산·장애 오판이 발생하므로, AMI 이벤트·CDR·포인트 원장을 call_id 기준으로 추적하고 운영 API p95 500ms 이하를 기준으로 삼았습니다. 잔액 부족, 중복 Webhook, AMI 재연결, CDR 누락 등 17개 운영 시나리오를 정의하고 실제 MariaDB와 시뮬레이터 어댑터로 15개를 검증해,
프로젝트 성과
17개 운영 시나리오 중 15개 검증
잔액 부족·중복 이벤트·재연결·CDR 누락 등 15개 흐름을 검증하고, 승인 회선과 고객 복구 기준 2개는 외부 연동으로 분리했습니다.
중복 Webhook 3회에도 과금 1건
동일 완료 요청을 3회 전송해도 CDR과 과금 원장이 각각 1건만 생성되고 중복 차감은 0건임을 확인했습니다.
운영 조회 p95 4.24ms
현재 통화·대기·상담사 상태를 제공하는 운영 API를 반복 측정해 p95 4.24ms로 500ms 기준을 충족했습니다.
상담사 상태 변경 p95 3.87ms
상담 가능·후처리·자리비움 상태 변경과 PBX 상태 복귀 흐름을 p95 3.87ms로 처리했습니다.
실제 MariaDB 통합 검증 26건 통과
포인트 예약, 이벤트 투영, Webhook 멱등성, 과금 대사와 복구를 실제 MariaDB에서 26건 검증했습니다.
핵심 기능
진행 단계
요구사항·연동 경계 설계
2026.07.
기존 시스템을 유지한다는 전제로 SIP·AMI·AGI·회원 DB·결제 원장의 책임과 실패 시 처리 기준을 API 계약으로 분리했습니다.
프로젝트 상세
기존 회원·상담사·결제 시스템을 유지하면서 CTI 통화 이벤트와 포인트 과금을 하나의 원장으로 관리하도록 설계한 운영 시스템입니다. 통화 요청부터 AMI 이벤트 정규화, 포인트 예약·차감, CDR 생성, Webhook 전송, 과금 대사까지 이어지는 흐름을 Node.js·TypeScript·MariaDB 기반으로 구축했습니다. 관리자 화면에서는 현재 통화·대기·상담사 상태와 데이터 최신성을 함께 확인하고,







