callbot — HANDOFF
🔶 루트 NOW 이관 — 진행·미결 (2026-08-19 대청소, 페페 지시)
루트
HANDOFF.md를 pncad 만 남기고 비웠다. 아래는 그때 옮겨온 원문(문구 무변경).
- callbot 업무 통화봇(노트20 + GPT Live) [코디] 26.7.30 계획 완료(원문 cut →
projects/callbot/handoff.md). 🔑오디오 배선 = BT HFP 직결로 부품비 0원. ⏳다음 = P0 오디오 실측 3항목. →projects/callbot/handoff.md· devplancallbot.html
🆕 NOW (26.7.30(목)) — 신규 · 폴더+devplan 등록만, 코드 0줄
페페 지시: "노트20폰을 코디에게 쥐어줬고 나는 GPT Plus로 GPT 라이브를 쓸 수 있다. 이걸로 통화용 봇을 만들고 싶다.
용도 = 자재 입고 일정 문의, 배차시 기사와 통화 및 출발지 주소 문자 발송. 파이프라인 계획만 짜봐" → 이어서 "새 툴 제작예정으로 폴더 만들고 devplan 등록해".
- 경로 C:\dev\tools\callbot\(README만) · devplan callbot.html(계획 전문 = 단일 출처) · projects.json candidate/ai 등록 + build_hub.py 재빌드(32건).
- 이름 = callbot(voicecody=코디와 음성대화 / callbot=외부와 통화). poin-agent phone.py를 재사용하는 형제 프로젝트.
✅ 확정 — 오디오 배선 = BT HFP 직결 (3턴 조사, 부품비 3만원 → 0원)
상대 ↔ 통화 ↔ 노트20 ↔ [BT HFP] ↔ PC
├ 크롬 마이크 = HFP 입력 ← 상대 목소리
└ 크롬 스피커 = HFP 출력 → GPT 목소리 → 상대
USB 케이블은 ADB 전용 유지(발신·문자·통화상태 감지)
- PC를 노트20의 무선 이어폰으로 쓴다. Windows
Handsfree Telephony(Bluetooth Audio Gateway Service) → 페어링 시 사운드 장치에헤드셋(… Hands-Free AG Audio)입·출력 쌍 생성. - 크롬 입출력을 둘 다 HFP로 박으면 실제 스피커/마이크를 안 거친다 → 에코 0·완전 디지털. 협대역(8/16kHz)은 통화 자체가 협대역이라 손실 없음.
🔑 조사 결론 (재조사 금지 — 결론만 쓴다)
- 비루팅 안드로이드는 통화 오디오를 앱이 실시간으로 못 뽑고 못 넣는다.
VOICE_CALL은CAPTURE_AUDIO_OUTPUT(시스템 앱 전용) 필요, 3자 앱은 내 목소리만. - USB로 오디오 주입 = 원리적 불가(페페 제안, 2겹 이유): ①역할 충돌 — ADB는
폰=디바이스/PC=호스트인데 폰이 USB 마이크를 받으려면 폰이 호스트여야 함(한 포트에서 배타적, 오디오 넣는 순간 ADB 죽음) ②PC엔 UDC 없음 — UAC 가젯은 라즈베리파이·Jetson 등 OTG 보드 전용. 단 BT는 역할이 소프트웨어라 자유롭다 → 페페 비유(BT 이어폰)는 BT에서 정답. - scrcpy
--audio-source=voice-call-downlink는 캡처가 된다(root 불필요, shell 권한,VOICE_DOWNLINK). 주입은 불가 → 단독으론 반쪽이라 통화 원본 녹음 채널로만 병행 채택. ⚠제조사 구현 의존, 노트20 미실측. - 백업안 = ①BT 오디오 수신기 동글+USB 사운드카드(~3만, 폰 입장엔 그냥 BT 이어폰이라 확실) ②유선 3.5 브릿지(~3만, USB-C 하나뿐이라 ADB 죽음 + 무선ADB는 라우터 AP격리로 막힌 이력) ③070 SIP(품질 최상이나 070은 업체가 안 받는다).
- GPT Live 채택 근거 = Plus 구독 안이라 추가 과금 0 + 네이티브 턴테이킹. 대가 = 통화 중 도구호출(PFS 실시간 조회) 불가 → 브리핑에 미리 다 넣는다. 필요해지면 STT(Groq)+텍스트GPT+TTS(edge-tts) 조립으로 전환(지연 2~3초 ↔ 도구호출).
파이프라인 8단계 (신규는 ④⑤⑥뿐 — ②⑦⑧은 poin-agent 기존 배관)
① 트리거(PFS 미확정 입고·배차 스캔) → ② 브리핑 생성(PFS+통화사실 400건+가구KB) → ③ 페페 승인 게이트 →
④ 세션 준비(크롬 음성모드 open+브리핑 주입, 장치=HFP) → ⑤ 발신(am start CALL+dumpsys telephony.registry 연결감지) →
⑥ 통화(감청·즉시끊기) → ⑦ 회수(대화창 텍스트=스크립트, 백업=scrcpy 녹음) → ⑧ 후처리(사실추출→PFS 정보만 / 확약은 사람 큐 / 문자 / 카톡 보고)
🛡 안전 게이트 (poin-agent 「정보/행위」 원칙 계승)
봇 통화 = 정보 질의·전달만(금액·납기·발주 확약 금지 → "확인 후 연락드리겠습니다"+사람 큐) · 오프닝에 AI 고지+녹음 고지 필수(사람인 척 안 함) · 발신 화이트리스트만(첫 대상=통화 상위 5명 중 단골) · 못 알아듣기 3회 → 자동 종료+콜백 큐 · 문자는 템플릿 고정(출발지=PFS 현장주소)+초기 매건 승인. ★"등록"≠"실행" 동일 적용 — 통화 산출물은 기록이다. 통화했다고 자재·차가 오지 않는다.
⏳ 다음 = P0 (부품 대기 0, 10분이면 판가름)
① 노트20 ↔ PC 페어링 → 윈도우 사운드에 "Hands-Free AG Audio" 입·출력 쌍 뜨나
② 아무 번호로 통화 → 양방향 오디오 실제로 흐르나
③ 크롬 음성모드 입출력을 그 장치로 지정 → GPT와 통화 성립하나 (크롬 AEC 훼방 여부 포함)
①에서 장치가 안 뜨면 즉시 BT 동글 주문, 뜨면 부품 0원. P0가 전부다 — 여기서 막히면 백업안으로 갈아탄다.
이후 P1 phone.py 발신·통화상태·종료감지 신규(⚠현재 phone.py에 발신·SMS 함수 없음 — 확인 완료) → P2 실업체 문의 1건(페페 감청) → P3 PFS 반영+문자 → P4 배차 기사 통화(최난도).
불변 핵심
- 계획 전문 단일 출처 = devplan
callbot.html(매 답변 갱신 대상). 이 파일은 상태·결정·조사결론만. - 노트20 고정값·폰 제어·봇탐지 회피 원칙은 poin-agent 쪽이 원본 →
projects/poin-agent/handoff.md참조(중복 기재 금지). - 관련: poin-agent(phone.py·사실추출·카톡보고) · freight-dispatch P6(KT 착신전환 = 인바운드 수신 경로, 별건) · voicecody(edge-tts) · ytmine(Groq STT).
HANDOFF 에서 이관 (2026-08-18)
- 🆕callbot 26.7.30 신규 — 업무 통화봇(노트20 회사번호 + ChatGPT Plus 고급음성=GPT Live, 추가 과금 0). 용도 3 = 자재 입고일정 문의 · 배차 기사 통화 · 출발지 주소 문자. 페페 지시로 계획 + 폴더 + devplan 등록까지만(코드 0줄). 폴더
C:\dev\tools\callbot\(README) · devplancallbot.html(계획 전문 단일 출처) · projects.jsoncandidate/ai등록·허브 재빌드(32건). ✅병목은 GPT가 아니라 오디오 배선이었고 3턴 조사로 BT HFP 직결 확정 → 부품비 3만원에서 0원: PC를 노트20의 무선 이어폰으로 쓴다(WindowsHandsfree Telephony→ 사운드 장치에Hands-Free AG Audio입·출력 쌍), 크롬 입출력을 둘 다 그 장치로 박으면 실스피커/마이크를 안 거쳐 에코 0·완전 디지털, USB는 ADB 전용으로 남는다. 🔑조사 결론(재조사 금지) = 비루팅은 통화 오디오 실시간 입출력 불가(VOICE_CALL=시스템앱 전용) · USB 주입은 원리적 불가(ADB는 폰=디바이스인데 USB 마이크 받으려면 폰이 호스트 = 배타적 + PC엔 UDC 없어 UAC 가젯 불가) — 단 BT는 역할이 소프트웨어라 자유로워 페페 비유가 정답 · scrcpyvoice-call-downlink는 캡처만 되므로(root 불필요) 원본 녹음 채널로 병행. GPT Live의 대가 = 통화 중 PFS 조회 불가 → 브리핑 선주입, 필요시 Groq STT+edge-tts 조립으로 전환. 파이프라인 8단계 중 신규는 ④세션준비·⑤발신·⑥통화뿐(②사실추출·⑦⑧적재·보고는 poin-agent 기존 배관 재사용). 안전게이트 = 정보 질의·전달만(확약 금지) · AI 고지 필수 · 화이트리스트 발신 · 3회 실패시 콜백. ⏳다음 = P0 오디오 실측 3항목(부품 대기 0, 10분이면 판가름 — 장치 안 뜨면 BT 동글 ~3만). ⚠phone.py에 발신·SMS 함수 없음 = P1 전부 신규. →projects/callbot/handoff.md· devplancallbot.html