원격 제어
원격 제어를 사용하면 다른 휴대폰에서 본인 휴대폰으로 짧은 SMS 한 통을 보내 SmsForwarder가 대신 작업을 수행하도록 할 수 있습니다 — 대신 SMS 답장을 보내거나, 전달을 켜고 끄거나, 앱 상태를 조회하거나, 휴대폰이 온라인인지 확인하거나, Google Play와 구독 상태를 다시 동기화하거나, (Advanced 구독이 있는 경우) 자연어로 지시를 내릴 수 있습니다.
명시적으로 허용 목록에 추가한 전화번호만 이러한 명령을 보낼 수 있습니다. 공유 비밀번호는 없으며, 발신자의 전화번호 자체가 자격 증명입니다.
시작하기 전에
- 앱 설정에서 원격 제어 를 엽니다.
- 원격 제어 메인 스위치를 켭니다.
- 허용된 전화번호 를 최소 한 개 추가합니다. 국제 형식 전체(예:
+821012345678)로 입력하세요. - 명령 결과를 받을 방식을 선택합니다 — 아래 응답 받기 참조.
#REPLY를 사용할 계획이거나 발신자에게 SMS로 회신을 받으려면 SMS 보내기 권한이 부여되어 있는지 확인하세요.
명령 형식
각 명령은 허용된 번호에서 본인 휴대폰으로 보낸 평범한 SMS입니다. 비어 있지 않은 첫 줄은 항상 명령 키워드(#로 시작)이며, 추가 정보가 필요한 명령에서는 각 값이 자기 줄에 들어갑니다.
명령 자체는 일반 SMS로 전달되지 않습니다 — 앱이 인식하여 소비합니다.
#REPLY — 대신 SMS 답장 보내기
휴대폰을 손에 들고 있지 않을 때, 누군가에게 대신 SMS를 보내고 싶을 때 사용합니다.
형식:
#REPLY
<수신자 전화번호>
<답장 본문>
SIM 지정(선택 사항, 듀얼 SIM 휴대폰 — 어느 SIM으로 보낼지 고정):
#REPLY
#<본인 SIM 전화번호>
<수신자 전화번호>
<답장 본문>
SIM 지정 줄은 #로 시작하고 마지막 8자리로 매칭됩니다. 단일 SIM 휴대폰이거나 시스템 기본 SIM을 사용하려면 이 줄을 생략하세요.
예시:
#REPLY
+821012345678
가는 중입니다. 10분 안에 도착해요.
#REPLY
#15557654321
+14155550123
이건 두 번째 SIM으로 보내줘.
참고:
- 수신자에게는 원래 발신자의 번호가 아니라 본인 휴대폰 번호에서 보낸 답장으로 표시됩니다.
- SMS 보내기 권한이 필요합니다. 권한이 없거나 취소되어 있으면 이 명령은 실행할 수 없습니다.
- 답장 본문은 여러 줄이어도 됩니다.
#CTRL — 규칙, 채널, 메인 스위치 켜기/끄기
휴대폰을 만지지 않고도 전달 규칙, 전송 채널, 메인 스위치를 토글할 수 있습니다.
형식:
#CTRL
<대상>
<이름 또는 범위>
<ON 또는 OFF>
- 대상 은
RULE,CHANNEL,FORWARDING중 하나입니다(대소문자 구분 없음). - 이름 또는 범위 는 대상에 따라 달라집니다:
RULE— 앱에 표시되는 정확한 규칙 이름(대소문자 구분, 고유해야 함).CHANNEL— 앱에 표시되는 정확한 채널 이름(대소문자 구분, 고유해야 함).FORWARDING—SMS,CALL,NOTIFICATION(또는NOTIFY),ALL중 하나.
- ON / OFF 는
1/0,TRUE/FALSE,YES/NO로도 작성할 수 있습니다.
예시:
특정 규칙 켜기:
#CTRL
RULE
급여 입금 알림
ON
SMS 전달 메인 스위치 끄기:
#CTRL
FORWARDING
SMS
OFF
전송 채널 끄기:
#CTRL
CHANNEL
내 Telegram
OFF
한 번에 모두(SMS, 통화, 알림) 끄기:
#CTRL
FORWARDING
ALL
OFF
참고:
- 이 명령은 메인 SMS 전달이 꺼져 있어도 동작 합니다 — 따라서 원격에서 다시 켜는 용도로도 사용할 수 있습니다.
- 규칙과 채널 이름은 고유해야 합니다. 두 규칙이 같은 이름을 공유하면 잘못된 대상에 작용하는 것을 막기 위해 명령이 거부됩니다.
- 규칙과 채널 이름은 대소문자와 공백을 포함해 정확히 일치해야 합니다.
#STATUS — 현재 무엇이 켜져 있는지 확인하기
읽기 전용 조회. 메인 스위치 상태와 켜져 있는 모든 규칙, 채널 이름을 반환합니다.
형식:
#STATUS
응답 예시:
[원격] 상태
전달 · SMS on · 통화 off · 알림 off
규칙 (2): 급여 입금 알림, OTP
채널 (1): 내 Telegram
규칙과 채널 수에 따라 응답이 여러 SMS 세그먼트에 걸쳐 올 수 있습니다. 통신사 요금은 세그먼트 단위로 부과됩니다.
#PING — 휴대폰 생존 확인
읽기 전용 조회. 휴대폰의 현재 상태 스냅샷을 반환합니다 — 휴대폰이 깨어 있고 온라인이며 배터리가 거의 없는 상태가 아닌지만 확인하고 싶을 때 유용합니다.
형식:
#PING
응답 예시:
[원격] Pixel 7 · 2026-05-01 14:35
배터리 73% · 충전 중
절전 모드: off
네트워크: Wi-Fi · 인터넷 정상
휴대폰이 모바일 데이터를 사용 중이라면 응답에는 네트워크 세대, 통신사, (Android 10 이상에서) 0–4단계의 신호 강도도 포함됩니다:
[원격] OnePlus 9 · 2026-05-01 14:35
배터리 45% · 배터리 사용
절전 모드: on
네트워크: 모바일 · 인터넷 정상
모바일: 5G · 통신사
신호: 3/4
참고:
- 듀얼 SIM 휴대폰에서는 신호 강도가 데이터 SIM 기준으로 표시되며, 이는 명령을 수신한 SIM과 다를 수 있습니다.
#PING은 메인 전달 스위치 상태와 관계없이 실행됩니다.
#HELP — 본 문서 링크 받기
읽기 전용 조회. 이 온라인 명령 레퍼런스에 대한 링크를 반환합니다. 다른 사람과 문서를 공유하거나, 명령의 정확한 형식이 기억나지 않아 찾아보고 싶을 때 유용합니다.
형식:
#HELP
응답 예시:
[원격] 명령 레퍼런스: https://smsforward.zobubo.com/Remote-Control/
현재 #HELP 는 기본적으로 영어 페이지를 반환하며, 앱이 중국어인 경우에만 중국어 버전을 반환합니다. 그 외 언어는 아직 영어 페이지로 폴백됩니다 — 해당 페이지에 모든 명령이 정리되어 있습니다. #HELP 는 메인 전달 스위치 상태와 관계없이 실행됩니다.
#REFRESH — Google Play와 구독 상태 다시 동기화하기
읽기 전용 조회. 휴대폰에 대해 이 기기에 로그인된 Google 계정의 활성 구독 상태를 즉시 Google Play에 다시 조회하고, 반환된 내용으로 로컬 구독 상태를 덮어쓰도록 지시합니다.
다른 휴대폰에서 다시 구독했거나(혹은 방금 결제했고) 매일 한 번 실행되는 백그라운드 점검을 기다리지 않고 이 휴대폰에서 새 권한을 즉시 반영하고 싶을 때 사용합니다.
형식:
#REFRESH
응답 예시:
[원격] 구독 갱신 완료: 월간 요금제 사용 중
[원격] 구독 갱신 완료: 연간 요금제 사용 중
[원격] 갱신 완료: 이 Google 계정에 활성 구독이 없습니다
[원격] 갱신 실패: Google Play에 연결할 수 없습니다. 네트워크를 확인한 후 다시 시도하세요.
참고:
- 휴대폰에 네트워크 액세스와 정상적인 Google Play 연결이 필요합니다. 둘 중 하나라도 불가능하면 명령은 실패를 보고하고 로컬 구독 상태는 변경되지 않습니다.
- 조회는 기기에 현재 로그인되어 있는 Google 계정을 사용합니다. 그 계정이 구독을 보유한 계정인지 확인하세요.
- 로컬 구독이 이미 만료된 상태에서도
#REFRESH는 실행됩니다 — 그것이 이 명령이 노리는 복구 경로입니다. 메인 전달 스위치 상태와도 무관하게 실행됩니다. - 동작은 멱등적입니다:
#REFRESH를 반복해서 보내도 구독을 새로 구매하거나 해지하지 않으며, Google Play가 이미 알고 있는 정보를 다시 읽을 뿐입니다.
#AI — 자연어로 지시 보내기
구조화된 명령을 작성하는 대신, 일상 언어로 휴대폰에 지시를 내리고 싶을 때 사용합니다. SmsForwarder는 메시지를 설정된 클라우드 AI 공급자에게 전달해 기존 명령 중 하나로 다시 표현하도록 요청한 다음, 그 명령을 실행합니다 — 단, 결과가 여전히 허용된 키워드 중 하나에 대응될 때에만 실행됩니다.
형식:
#AI
<원하는 언어로 작성한 지시문>
예시:
#AI
+821012345678 에게 10 분 안에 도착한다고 답장해 줘
#AI
일단 모든 전달을 꺼 줘
#AI
지금 이 폰의 배터리와 신호는 어때?
사전 조건:
- 기기에 로그인된 Google 계정에 활성화된 Advanced 구독이 있어야 합니다.
- AI 메인 스위치가 켜져 있고, 설정 → AI 에서 AI 클라우드 경로가 구성되어 있어야 합니다 — Advanced 구독자의 기본값인 내장 클라우드(API 키 불필요), 또는 BYOK 공급자(Gemini, Claude, OpenAI) 와 정상 작동하는 API 키 중 하나여야 합니다.
- 원격 제어 페이지에서 자연어 원격 명령 스위치가 켜져 있어야 합니다.
사전 조건 중 하나라도 충족되지 않으면 짧은 사유와 함께 명령이 거부됩니다.
참고:
#AI는 항상 클라우드에서 실행됩니다. SmsForwarder 의 AI 처리는 설계상 클라우드 전용입니다.- AI가 생성한 텍스트는
#REPLY/#CTRL/#STATUS/#PING/#HELP/#REFRESH와 동일한 허용 목록으로 다시 검사됩니다. 그 목록을 벗어난 것은 모두 폐기됩니다 —#AI를 통해 새로운 명령이나 임의의 명령을 실행할 수는 없습니다. - 변환된 구조화 명령은 새 SMS로 재전송되지 않습니다. 사용자가 직접 해당 구조화 명령을 입력한 것과 동일한 방식으로 실행됩니다. 원본
#AI텍스트와 변환된 명령은 감사 목적으로 전달 기록 상세 패널에 함께 저장됩니다. - 클라우드 공급자에 연결할 수 없거나 응답을 허용된 명령으로 해석할 수 없는 경우, 결과 메시지에 그 사유가 표시되며 그 외에 다른 동작은 발생하지 않습니다.
응답 받기
각 명령은 짧은 결과 메시지를 만들어 냅니다. 원격 제어 에서 다음 두 방식 중 하나 혹은 둘 다로 결과를 받을 수 있습니다:
- 발신자에게 SMS 회신. 결과는 명령을 보낸 번호로 일반 SMS로 회신됩니다. SMS 보내기 권한이 필요합니다. 권한을 취소하면 이 옵션은 자동으로 꺼집니다.
- 전송 채널로 푸시. 결과는 이미 설정된 전송 채널(Telegram, 이메일, 웹훅 등)을 통해 라우팅됩니다. 최대 10개 채널을 선택할 수 있습니다. 비활성화되었거나 설정되지 않은 채널은 건너뜁니다.
두 옵션은 서로 독립적입니다. 한 가지만 사용하거나 둘 다 사용하거나 둘 다 사용하지 않을 수 있습니다(둘 다 끄면 명령은 실행되지만 결과를 받을 수 없습니다).
자주 발생하는 오류
명령 형식이 잘못되면 다음과 같은 메시지를 받습니다:
[원격] 명령 거부됨: <사유>
대표적인 사유:
- 수신자 누락 —
#REPLY에 대상 전화번호가 없음. - 답장 내용 누락 —
#REPLY에 본문이 없음. - 대상 누락 —
#CTRL두 번째 줄에RULE,CHANNEL,FORWARDING이 없음. - 알 수 없는 대상 —
#CTRL두 번째 줄이 위 세 가지 유효 값 중 하나가 아님. - 이름 누락 —
#CTRL RULE또는#CTRL CHANNEL에 이름이 없음. - ON / OFF 누락 — 토글 줄이 비어 있음.
- 잘못된 토글 값 — 토글 줄이 인식되는 값이 아님.
- 잘못된 범위 —
#CTRL FORWARDING에SMS,CALL,NOTIFICATION/NOTIFY,ALL외의 값이 옴. - "X" 라는 규칙 / 채널이 없음 — 이름이 어떤 규칙 또는 채널과도 일치하지 않음.
- "X" 라는 규칙 / 채널이 둘 이상 있음 — 이름이 중복되어 있으니 앱에서 먼저 하나의 이름을 변경하세요.
알아두면 좋은 점
- 허용 목록에 없는 번호에서 보낸 명령은 조용히 무시됩니다.
- 허용 목록은 발신자 전화번호를 정확히 일치 비교합니다. 통신사가 전달하는 형식 그대로(앞에
+가 붙은 국제 형식이 가장 신뢰할 수 있음) 등록하세요. - 명령 형태의 SMS는 인식되어 소비되므로 전달 기록에 "전달됨"으로 표시되지 않습니다.
- 일부 응답 경로(예: SMS 회신)는 다른 모든 SMS와 마찬가지로 통신사의 SMS 사용량을 차감합니다.
명령이 예상대로 동작하지 않는 경우 기술 지원 페이지를 참고하세요.