프로젝트 소개

SMS Gateway for Android는 스마트폰을 SMS 게이트웨이로 전환하는 안드로이드 애플리케이션으로, 애플리케이션과 서비스가 API 또는 CLI 도구를 통해 프로그래밍 방식으로 SMS 메시지를 주고받을 수 있게 해줍니다. Apache-2.0 라이선스로 배포되며 Kotlin, Ktor, Room, Firebase로 구축되었습니다. 핵심 기능 - API를 통해 SMS 송수신; 등록이 필요 없으며 로컬 모드에서는 계정이 전혀 필요하지 않습니다. - Android 5.0 이상을 지원합니다. - 자동 분할되는 멀티파트 메시지와 메시지 상태 추적. - 탭과 통계가 있는 SMS, 데이터 SMS, MMS 수신 메시지 뷰어. - 이전에 수신한 메시지 읽기를 포함한 웹훅을 통한 실시간 수신 SMS 및 MMS 알림. - MMS 지원: 본문과 첨부파일이 있는 다운로드 알림, 그리고 선택적 제목과 텍스트 본문과 함께 이미지, 오디오, 비디오 또는 파일을 포함한 MMS 전송. - 여러 메시지가 한꺼번에 도착할 때의 배치 웹훅 이벤트. - 대기 중인 메시지 취소, 상태와 유형별 메시지 필터링, 기간별 전송 속도 제한 적용. - 바이너리 페이로드(IoT 명령, 암호화된 메시지)를 위한 데이터 SMS 지원. - 설정된 시간 외에는 대기열을 일시 중지하는 근무 시간 스케줄링. - 대기 중인 전달과 재시도를 보여주는 웹훅 대기열 진단 화면. 보안 및 개인정보 보호 - 메시지 내용과 수신자 전화번호가 API에 도달하기 전에 종단간 암호화되고 기기에서 복호화됩니다. - 백엔드를 자체 인프라에서 실행할 수 있는 프라이빗 서버 지원. 고급 기능 - 멀티 SIM 카드 지원 및 멀티 디바이스 지원: Cloud 또는 Private 서버로 동일한 계정에 연결된 기기들이 메시지를 분산하여 수신합니다. 통합 - sms:received, sms:batch:received, sms:sent, sms:delivered, sms:failed, sms:cancelled, sms:data-received, mms:received, mms:downloaded, app:started, system:ping과 같은 이벤트를 위한 웹훅. - 웹훅은 기기에서 직접 전송되므로 기기에 외부 인터넷 연결이 필요합니다. 작동 모드 - Local Server: 앱이 기기에서 HTTP 서버를 실행하며 로컬 네트워크에서 접근 가능하고, 기본 인증 자격 증명과 /docs의 대화형 Swagger 문서를 제공합니다. 텍스트 및 MMS 메시지 전송을 위한 curl 및 CLI 명령 예시가 제공됩니다. - Cloud Server: 동적 또는 공유 IP 주소를 가진 기기를 위해 api.sms-gate.app에 연결합니다. 수신된 메시지는 중앙 집중식 접근을 위해 업로드됩니다. 대신 프라이빗 서버를 배포할 수도 있습니다. 설치 - 사전 빌드된 APK는 GitHub Releases 페이지에서 보안 릴리스 빌드와 비보안 개발 빌드(평문 트래픽 허용, 공용 환경용 아님)로 제공됩니다. - 필수 권한: SEND_SMS. 선택 권한: READ_PHONE_STATE(SIM 선택), READ_SMS(이전 메시지 읽기), RECEIVE_SMS, RECEIVE_MMS, RECEIVE_WAP_PUSH(수신 SMS/MMS용 웹훅). 의도된 사용 사례로는 SMS 기반 2단계 인증, 거래 메시지, 알림, 통지, 사용자 피드백이 있습니다. README는 이동통신사 제한 가능성 때문에 대량 전송을 권장하지 않는다고 명시하고 있습니다.