귀찮은 080 광고 전화, 자동화 시스템으로 해결하기
처음부터 바이브 코딩을 할 생각은 아니였습니다. 새로운 뭔가가 나왔을 때 해당 분야를 깊이 공부하고 뭘 하기보다는 일단 뭔가를 만들면서 배우는걸 더 좋아하는 편입니다. 마침 계속해서 (광고)라고 시작되는 문자가 어느순간부터 많이 오더군요. 이런류의 문자들은 마지막에 080 번호가 붙어있는데 해당 번호로 전화를 걸면 ARS가 나와서 보통 연락처를 입력하면 수신거부가 됩니다.
이런 문자를 받으면 저는 보통 전화를 해서 수신거부를 하는 편인데 어느 순간 빡침이 밀려오더라구요. 문자로 그냥 “수신거부” 라고 답장을 하면 그냥 수신거부게 되게 되면 간단할거 같은데 왜 그게 안될까해서 검색해보니 보통은 소비자에게 수신거부를 할 수 있는 수단을 표기만 하면 된다고 정보통신망 이용촉진 및 정보보호 등에 관한 법률에 나와 있다고 합니다. 문자로 수신거부를 하면 너무 편할텐데 이게 대부분 ARS로 되어 있는게 시스템 구현이 어려워서인지 수신거부가 어려운 편이 더 나아서인지 모르겠습니다.
080은 사전동의를 구하고 보내야하는게 원칙인데 요즘 각종 행사 및 가입 과정에서 교묘하게 광고성 문자 수신 동의가 숨어있다보니 언제 동의를 했는지 알기도 쉽지 않습니다.
그래서 일명 080 수신거부 자동화 시스템 을 만들어보게 되었습니다.
서비스 주소: https://spam.juns.mywire.org/
주요 기능
- 웹페이지에서 광고 문자를 붙여넣는 방식과 문자를 대신 보내서 처리하는 것도 가능합니다. 대신 문자로 보내실때는 긴문자는 모뎀에서 인식을 못하는거 같아서 연락처만 보내시거나 해야됩니다. 아이폰 사용자분들은 제가 간단한 단축어를 만들었으니 해당 단축어를 활용하셔도 됩니다.
- 어뷰징을 방지하기 위해 처음 시도하는 연락처의 경우, 인증 번호를 거치도록 했습니다. 웹에서도 연락처를 입력하면 인증문자가 전송되고, 문자로 바로 보내실 경우도 이전에 인증받지 않은 연락처면 인증받도록 했습니다.
- 인증을 받아야하는 구조상 연락처가 DB에 저장될 수 있는데 이게 불편한 분들도 계실 것 같아서 상단에 바로 탈퇴 버튼을 만들어 뒀습니다.
- 현재는 단순한 패턴으로 수신거부를 시도합니다. 전화를 걸고, 몇초후에 “연락처#” 을 입력해서 보내고, 몇초후에 1을 입력합니다.
- 통화를 마치면, 간단한 분석을 거쳐 휘스퍼 기반의 STT(Speech-to-Text) 분석을 통해 성공/실패를 판정하고, 통화 녹음파일도 들을 수있습니다. (통화 종료 후 STT 분석이 안보이면 브라우저 새로고침 해보세요. 버그가 있어요)
- 서비스 하단에 있는 패턴 매니저를 통해서 직접 패턴을 만들어보실 수 있어요.
⚠️ 한계점
- 현재 알뜰통신사 USIM을 라즈베리파이5에 물려서 한개의 모뎀으로 운영되는 시스템이다보니 (그럴일은 없겠지만..) 실제 통화까지 진행되는데 시간이 좀 걸릴 수 있어요.
- 현재는 한가지 기본 패턴으로만 수신거부를 하기때문에 패턴이 다른 080전화 번호는 수신 거부가 어렵습니다. 또한, 수신거부 080 중에서 연락처 입력을 묻지 않고, 바로 수신거부하겠냐고 물어보는 패턴이 있는데 이부분도 어렵습니다. 실패한 전화는 다시 전화를 걸어 패턴을 자동으로 파악하는 부분도 만들어뒀는데 좀더 테스트가 필요해요.
- 취미삼아 개발하는 프로젝트라서 언제든 서비스가 일시 중단될 수 있는 점 양해부탁드려요. 해당 서비스가 올려져있는 라즈베리파이5는 24시간 돌아가고 있습니다.
- STT 분석은 집에 있는 맥미니 M1이 담당하고 있는데 적당히 큰 모델을 사용하지만 웹에서 쓰시는 에이전트들보다는 분석된 워딩이 정확하지 않을 수 있습니다.
- 버그가 아주 많을 것으로 예상되고, 수신거부도 실패할 확률이 높지만 광고 문자를 수집한다는 관점에서 한번씩들 사용해주시면 감사하겠습니다.
개선 계획
- 아이폰에서는 어렵지만 안드로이드에서는 문자 받은거에 광고문자 중 080 번호가 있으면 자동으로 거부되도록 만들어도 좋을거 같다는 생각이 듭니다.
- 현재 사용하고 있는 모뎀이 뭔가 문자 수신이 많이 되면 더 이상 문자가 수신되지 않는 부분이 있는거 같아서 모뎀에 저장된 문자 같은걸 정기적으로 비워줘야 하는거 아닌가하고 생각하고 있습니다.
- 재미삼아 해당 연락처로 전화를 걸면 080 수신거부 전화와 비슷하게 ARS로도 접수를 받아볼까 하는 생각이 들어요. 하지만 이걸 누가 쓸까요..ㅎㅎ
🔍 개발 스펙
- 하드웨어: 라즈베리파이5(RAM 16G, 512 SSD) + LTE EG25G 모뎀
- 플랫폼: RasPBX, Asterisk, PHP, Python, Sqllite
서비스 화면
다음은 서비스 화면들입니다. AI한테 디자인을 맡겼는데 이쁘게 UI 뽑기가 쉽지 않더군요.
데스크탑
*로그인 이후에 보이는 메인 화면입니다.
*녹음파일 목록은 이렇게 제공해드려요.
*어드민화면입니다. 관리자만 볼 수 있어요.
모바일
*로그인했을때 보이는 화면입니다.
*녹음파일등을 눌렀을때 인증 로그인 화면입니다.
*문자로 알림도 보내줘요.