这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
worker201

一种商业模式 - 海外手机和 SIM 卡托管

  •  
  •   worker201 · Apr 16 · 4152 views
    This topic created in 208 days ago, the information mentioned may be changed or developed.
    现在很多人都需要一个海外手机号,但是肉身在国内往往搞不定或者被封号
    我的设想是跟 vps 一样,一个服务器虚拟化出多个安卓主机,然后用户购买安卓主机
    用户可选择插卡或者不插卡,插卡的话可以选择把 sim 卡邮寄过去或者主机商自己卖卡
    20 replies  •  2026-10-30 12:41:13 +08:00
    needpp
    needpp
    Apr 16
    1
    你说的有没有可能就是目前成熟的 验证码代收服务
    worker201
    worker201
    OP
    Apr 16
    2
    @needpp 不仅接码,短信/电话通过可以转发,也可以远程登陆,就是一台远程手机,安装 app 什么的都行
    pjeunng
    pjeunng
    Apr 16
    3
    早就有了,虚拟手机 很成熟了大哥。
    pjeunng
    pjeunng
    Apr 16
    4
    很多人再国内开国外 tiktok 直播的,你以为就是一个翻墙吗?
    worker201
    worker201
    OP
    Apr 16
    5
    @pjeunng 比如?
    EngelEyes
    EngelEyes
    Apr 16
    6
    你说的这是猫池
    docx
    docx
    Apr 16 via iPhone
    7
    违法的

    SIMBOX 都下架了
    940i3s34v4F1HW41
    8
    刑
    FringJX
    FringJX
    Apr 16
    9
    合宙就是干这个,各种 4G 开发版解决方案。成本比手机低多了。
    kkk9
    kkk9
    Apr 16
    10
    @FringJX #9 ……有那功夫用合宙重新开发,直接买移远高通方案都有成熟产品了。
    killadm
    killadm
    Apr 16
    11
    这两天 vibe coding 了一个网关,用来托管副卡,能自动接听拨打电话,播放 TTS ,可以接收发送短信,可以把来电和短信通知转发到各种渠道,硬件成本只需要几十块钱
    ff521
    ff521
    Apr 16
    12
    @killadm 支持,很有用啊
    FabricPath
    FabricPath
    Apr 16❤️1
    13
    @worker201 这东西你自己玩玩还行,商业化是违法的。

    说一下我自己的方案
    服务端:
    1. 移远的 ec20
    2. freepbx

    移动端:ios 的 bria mobile ( 1 USD/月); Android 可以常驻后台,不需要买这种类似 bria 的 sip 转发服务

    电话拨入的流程:
    1. ec20 接收到电话
    2. freepbx 转发出站到 bria 服务端的连接(他们服务器在 sg ,所以唤起延迟较大)
    3. bria mobile 走 callkit 唤醒
    4. 打开 bria mobile app ,开始和服务端建 sip ,建连成功电话就通了

    只做电话拨出就不需要 sip 转发。

    这样的好处是,即使身处国外,也能走网络用自己的手机号打电话,在海外打过几次飞猪和携程的客服,语音质量很好

    你的问题是,现在只能私下玩玩,之前搞猫池的几家都被干了
    vz685
    vz685
    Apr 16
    14
    @killadm 咋弄的啊,哥
    HFX3389
    HFX3389
    Apr 16
    15
    @killadm #11 这生意不就来了~硬件+软件 1W 一套~卖给楼下
    nc
    nc
    Apr 16
    16
    在 US 、CN 都是违法的吧,总有一条适合您
    killadm
    killadm
    Apr 16
    17
    @vz685 就是楼上说的合宙模块,上位机用 esp32
    aero99
    aero99
    Apr 16
    18
    这玩意是电诈打击重点对象,不过对于墙内的很多人来说又是刚需
    SUP7R9
    SUP7R9
    Oct 30
    19
    @killadm #11
    抱歉突然打扰佬了,近期有托管副卡的需求,但之前从未接触过这方面,来 v 站翻找之前有无 v 友发过相关讨论帖,继而才翻到此帖,在评论区才看到佬你这条方案

    看佬你之后回复楼上 v 友说上位机用的 esp32 ,可 esp32 具体的型号也多了,不知具体是用哪家的 esp32 什么类型的硬件?

    还有佬你未说明移动端具体是用什么应用来和服务端进行通信?不知是 13 楼“FabricPath”这位大佬提供方案中 bria 的 sip 转发服务么?这块问题也麻烦佬进行回复说明惹

    另外,不知佬你当初 vibe coding 制作的 LTE Gateway 这款网关有在 github 上开源么?之前没怎么接触过 LTE 这块,怕给自用的 agent 喂得关键词不准确,到时做出来的成品偏离太多,所以想搭建一套佬你制作的 LTE Gateway 这款网关

    麻烦佬之后看到我上述三条提问,进行回复说明惹
    killadm
    killadm
    Oct 30
    20
    @SUP7R9 我用的 esp32S3 ,模块是合宙 air724UG ,串口连接。
    这个方案只能接收/发送短信,拨打电话和接听电话都只能播放设定 tts 语音,没有 sip 功能,需要 sip 得用 ec20 。移动端不需要和服务端通信,只要能接收设置渠道的通知即可。
    题材太敏感,没法开源,只能给你提示词。如果你的卡本身有流量的话 github 上有很多开源的转发项目,都不需要 esp32 。

    我还为这个项目设计了 pcb 和外壳







    # LTE-Gateway 架构分析与复刻指南
    # 第一部分:架构分析
    ## 1. 整体结构
    ```
    ┌─────────────────────────┐ UART1 115200 JSON (v2) ┌──────────────────────────┐
    │ Air724UG 4G 模块 │◄──────────────────────────►│ ESP32-S3 主控 │
    │ (LuatOS / Lua 固件) │ 每行一个 JSON, 事件驱动 │ (PlatformIO + Arduino) │
    │ │ │ │
    │ · 短信收发 │ │ · Web 控制台 (单文件 SPA) │
    │ · 外呼 + 通话中 TTS │ │ · 管理员认证 (PBKDF2) │
    │ · 来电 4 种默认策略 │ │ · 联系人/短信/通话/录音管理 │
    │ · 来电筛查(等主控决策) │ │ · 骚扰拦截(黑白名单+关键词)│
    │ · SD 卡通话录音(WAV) │ │ · 消息通知(5 种通道) │
    │ · LED 状态指示 │ │ · MQTT + Home Assistant │
    │ · 看门狗/心跳 │ │ · 备份恢复(AES 加密) │
    └─────────────────────────┘ │ · OTA / 配网 AP / 恢复出厂 │
    └──────────────────────────┘
    # 第二部分:复刻提示词
    ## 第 1 步:基础骨架提示词(一次性把双端跑通)
    ```markdown
    # 角色
    你是资深嵌入式固件 + IoT 全栈工程师。请帮我从零实现一个 "LTE 网关" 项目,
    由两部分组成,先搭建骨架并把整条链路跑通(能收发短信),后续功能我会按迭代清单逐步添加。
    # 硬件与软件环境
    1. Air724UG 4G Cat.1 模块,跑 LuatOS(Lua)。业务代码 + LuatOS 标准库(lib/ 用官方 LuatOS 自带的 sys/net/sim/sms/cc/audio/pmd/ril 等模块,无需自研)。
    2. ESP32-S3(8MB flash + PSRAM),PlatformIO + Arduino 框架,board=esp32-s3-devkitc-1,
    flash 8MB,qio_opi,开启 PSRAM 。依赖:ArduinoJson v6 、PubSubClient 。
    3. 分区表(partitions_8m_storage.csv):
    nvs/otadata/phy_init/ota_0(0x1E0000)/ota_1(0x1E0000)/
    storage(data fat 0x2F0000,独立 FAT 分区,持久化数据,固件 OTA 不丢失)/
    spiffs(0x140000,存 Web 前端 LittleFS)。
    4. 连线:Air724UG TX1→ESP32 GPIO17, RX1→ESP32 GPIO18,115200 8N1 。
    Air724UG 上 GPIO5=SYS LED,GPIO4=LTE LED;SD/TF 卡接 GPIO24-28,由 LDO_VMMC 供电。
    # 第 1 部分:Air724UG Lua 固件
    文件结构:main.lua(入口)、protocol.lua(UART JSON 协议层)、gateway.lua(命令分发)、
    sms_handler.lua(短信)、call_handler.lua(电话/TTS/来电筛查)、recording_manager.lua(录音)、
    status_builder.lua(状态字段聚合)、led_controller.lua(LED)。
    要求:
    - protocol.lua:UART1 115200;发送走队列+独立 worker,按行字节数估算发送间隔(8N1≈10bit/byte,
    下限 8ms 上限 180ms)避免挤爆缓冲;接收按 \n 切行、行上限 2048 、缓冲上限 4096;
    每行一个 JSON;发送前 json.encode,失败发 error 事件。
    - 命令(cmd,主机→模块)骨架阶段先实现:status(回完整状态)、sms(发送短信,校验号码≤32 位
    格式 ^\+?[\d\*#]+$、文本≤1024)、reboot(200ms 后 sys.restart)。
    其余命令(call/set_call_cfg/incoming_call_control/录音系列)先注册空实现或按后续迭代实现。
    - 来电策略:action 0=忽略 1=挂断 2=接听+TTS 3=响 N 声(默认 3,每声 4s)后接听+TTS,
    TTS 文本可配置(默认"您好,您拨打的号码已停用,请勿再次拨打。")。
    call_handler 实现状态机:idle/dialing/ringing_in/connected/tts_playing/ending;
    接通超时 60s 强挂、TTS 超时 30s 强挂;挂断原因归类(接听/无人接听/对方正忙/对方拒接/无拨号音/挂断)。
    支持来电筛查:screening=true 时收到来电先发 incoming_call 事件并挂起等待,
    超时 decision_timeout_ms(默认 3000,范围 500-15000)未收到决策则回退默认策略。
    - 事件(evt,模块→主机):ready 、status 、log 、error 、rebooting 、sms_recv 、sms_sent 、
    call_start 、call_connected 、tts_done 、call_end 、incoming_call 、incoming_answering 、
    incoming_answered 、incoming_tts_done 、incoming_hangup 、incoming_call_control_ack 、call_cfg_set 。
    - status/ready 事件字段:csq 、net_state 、sim_status 、temp 、iccid 、imei 、project 、version 、
    call_action 、call_tts 、call_rings 、screening 、decision_timeout_ms 、
    protocol_version=2 、features=["incoming_call_screening"]。
    - 周期任务:每 5s 发一次轻量 status(不带 iccid/imei 等重字段)+ LED 心跳;
    每 30s 读一次模块温度;等待网络注册(60s 超时继续);SIM 状态变化更新 LED 。
    - LED:SYS(GPIO5)开机快闪→正常慢闪,主循环 12s 无心跳判 hung 熄灭;
    LTE(GPIO4)无 SIM 灭、搜网快闪、已注册 4G 慢闪。
    - 启动时发 AT+SETVOLTE=1;LDO_VMMC 提前拉高到 level 15(3.177V,接近 SD 卡 3.3V 需求)
    并做版本兼容(旧固件用数字索引 3)。
    # 第 2 部分:ESP32-S3 主控 (src/main.cpp)
    骨架阶段要求:
    - Serial1(GPIO17/18, 115200, 接收缓冲 8192)读模块 JSON 行,解析后按 evt 分发:
    维护模块状态(ready/csq/imei/iccid/net_state/sim_status/temp/协议版本/能力位);
    15s 无数据判模块离线并重置状态。
    - 收到 ready/status 后,向模块同步已保存的来电配置(set_call_cfg)和录音配置。
    - WiFi:AP+STA 双模,AP 名 "LTE-Gateway"(开放,无密码)带 captive portal 探测
    (/generate_204 、/hotspot-detect.html 、/ncsi.txt 等返回 200/302);STA 连接可配置 WiFi,
    支持静态 IP 、扫描列表;STA 连接中 AP 常开,连上后按配置决定是否保留。
    - Web:端口 80,WebServer,单文件前端 data/index.html(LittleFS 提供,
    非 API 路径全部回退到 index.html,即 SPA)。
    - 认证:用户名固定 admin,密码首次未设置时引导 bootstrap(设置向导页:设密码→配 WiFi),
    密码用 PBKDF2(500 次迭代,16 字节 salt,存 NVS);会话用 Cookie "ltegw_session"
    (随机 token,TTL 12h,最多 4 个会话);所有 /api/* 写接口和部分读接口需登录。
    - 前端骨架(单 HTML 文件,内联 CSS+JS,中文界面):
    登录页 + 设置向导;主界面 9 个 Tab:状态/设置/联系人/短信/电话/骚扰拦截/通知/系统/日志。
    骨架阶段先实现:状态 Tab(轮询 /api/status 显示信号、SIM 、IMEI 、模块在线、WiFi 、堆内存)、
    日志 Tab(轮询 /api/logs)、短信 Tab(列表+发送框,调 /api/module/sms)。
    - 数据持久化:短信/通话记录用 JSON Lines 存 storage FAT 分区(/sms.log 、/calls.log),
    上限各 1200 条,超出时压缩(保留最新);内存中保留热缓存(PSRAM 可用时上限调大)。
    记录字段:SmsRecord{ts,dir(in/out),peer,text,status(pending/sent/failed)},
    CallRecord{ts,dir,peer,connected,result,reason}。
    所有文件写操作走"写临时文件+rename"原子方式;掉电后启动时恢复未完成的临时文件。
    - API(骨架阶段):GET /api/status 、/api/logs,POST /api/logs/clear 、
    /api/module/sms 、/api/module/status 、/api/module/reboot 、
    /api/sms(GET 分页+POST /api/sms/clear)、/api/calls(同上)、
    /api/auth/(status/bootstrap/login/logout)、POST /api/config(wifi/mqtt 配置存取)、
    POST /api/reboot 、/api/factory_reset 。
    - 看门狗:esp_task_wdt 30s,主循环喂狗;记录 reset reason 到日志。
    - 通用约束:全部代码 UTF-8;JSON 用 ArduinoJson;避免在 loop 里做阻塞操作;
    记录/配置读写做越界与坏行容错;中文界面文案。
    # 串口 JSON 协议(v2)——两端必须严格遵守的契约
    - 物理:UART1 115200 8N1,每行一个 JSON,UTF-8 。
    - 主机→模块:{"cmd":"...","参数..."};模块→主机:{"evt":"...","字段..."};
    错误统一 {"evt":"error","msg":"...","code":"..."}。
    - 命令:status / sms{to,text} / call{to,tts} /
    set_call_cfg{action(0-3),tts,rings(1-20),screening(bool),decision_timeout_ms(500-15000)} /
    incoming_call_control{from,action:hangup|allow_default} / reboot /
    set_recording_cfg{enabled,mode:all|incoming|outgoing|voicemail|off,max_seconds,min_seconds,
    voicemail_enabled,voicemail_prompt} / recording_storage / recording_delete{id} /
    recording_clear / recording_play{id} / recording_stop_play / recording_fetch_chunk{id,offset,len}。
    - incoming_call_control_ack:{from,action,ok,code?,msg?},失败 code:
    LATE_CONTROL/STATE_MISMATCH/NUMBER_MISMATCH/INVALID_ACTION 。
    - 事件:见上面 Air724UG 部分列表 + 录音系列(recording_started/recording_finished/
    recording_failed/recording_storage/recording_chunk{id,offset,len,size,eof,data(base64)}/
    recording_deleted/recordings_cleared/recording_play/recording_play_done/
    voicemail_recording)。
    - 能力协商:主机通过 status 的 protocol_version 和 features 判断模块是否支持
    来电筛查(incoming_call_screening)和通话录音(call_recording_v1);
    旧版模块无这些字段时,对应功能降级并在界面提示"模块不支持"。
    # 验收标准
    1. Air724UG 上电后 60s 内在串口发出 ready 和周期 status;ESP32 能收到并正确显示。
    2. Web 控制台:未设密码走设置向导;设置后可登录;短信 Tab 能收(模块上报 sms_recv 落盘+显示)
    能发(调 /api/module/sms 后模块回 sms_sent 更新状态)。
    3. 断电重启后短信记录不丢;固件重刷后 storage 分区数据仍在。
    4. 两端代码都要有清晰的模块划分,关键路径(串口收发、状态机、文件 IO)有日志。
    ```
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2310 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 53ms · UTC 13:33 · PVG 21:33 · LAX 05:33 · JFK 08:33
    ♥ Do have faith in what you're doing.