Pairing
La policy DM predefinita per SMS è l’abbinamento.
Gateway security
Esamina l’esposizione del webhook e i controlli di accesso dei mittenti.
Channel troubleshooting
Diagnostica cross-channel e playbook di riparazione.
Prima di iniziare
Ti servono:- Il Plugin SMS ufficiale installato con
openclaw plugins install @openclaw/sms. - Un account Twilio con un numero di telefono abilitato agli SMS, oppure un Twilio Messaging Service.
- Il Twilio Account SID e l’Auth Token.
- Un URL HTTPS pubblico che raggiunga il tuo OpenClaw Gateway.
- Una scelta di policy per i mittenti:
pairingper uso privato,allowlistper numeri di telefono preapprovati, oppureopensolo per accesso SMS intenzionalmente pubblico.
Configurazione rapida
Create or choose a Twilio sender
In Twilio, apri Phone Numbers > Manage > Active numbers e scegli un numero abilitato agli SMS. Salva:
- Account SID, per esempio
ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Auth Token
- Numero di telefono mittente, per esempio
+15551234567
MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.Point Twilio at the Gateway webhook
Nelle impostazioni del numero di telefono Twilio, apri Messaging e imposta A message comes in su:Usa HTTP
POST. Il percorso locale predefinito è /webhooks/sms; modifica channels.sms.webhookPath se ti serve una route diversa.Expose the exact SMS webhook path
Il tuo URL pubblico deve instradare il percorso SMS al processo Gateway. Se usi Tailscale Funnel per test locali, esponi esplicitamente Le chiamate vocali e gli SMS usano percorsi webhook separati. Se lo stesso numero Twilio gestisce entrambi, mantieni entrambe le route configurate in Twilio e nel tuo tunnel.
/webhooks/sms:Esempi di configurazione
File di configurazione
Usa la configurazione tramite file quando vuoi che la definizione del canale viaggi con la configurazione del Gateway:Variabili d’ambiente
Usa la configurazione tramite variabili d’ambiente per distribuzioni con un solo account in cui i segreti provengono dall’ambiente host:TWILIO_SMS_FROM è accettato come alias di TWILIO_PHONE_NUMBER. Usa TWILIO_MESSAGING_SERVICE_SID invece di un mittente con numero di telefono quando Twilio deve scegliere il mittente da un Messaging Service.
Auth token SecretRef
authToken può essere un SecretRef. Usalo quando il Gateway deve risolvere il Twilio Auth Token dal runtime dei segreti di OpenClaw invece di archiviare la configurazione in chiaro:
Numero privato solo allowlist
Usaallowlist quando solo numeri di telefono noti devono poter parlare con l’agente:
Mittente Messaging Service
UsamessagingServiceSid invece di fromNumber quando Twilio deve scegliere il mittente tramite un Messaging Service:
fromNumber sia messagingServiceSid, viene usato fromNumber.
Destinazione in uscita predefinita
ImpostadefaultTo quando l’automazione o la consegna avviata dall’agente devono avere una destinazione predefinita se un flusso di invio omette una destinazione esplicita:
Controllo dell’accesso
channels.sms.dmPolicy controlla l’accesso diretto via SMS:
pairing(predefinito)allowlist(richiede almeno un mittente inallowFrom)open(richiede cheallowFromincluda"*")disabled
allowFrom devono essere numeri di telefono E.164 come +15551234567. I prefissi sms: sono accettati e normalizzati. Per un assistente privato, preferisci dmPolicy: "allowlist" con numeri di telefono espliciti.
Invio di SMS
Le destinazioni SMS in uscita usano il prefisso di serviziosms: con il canale SMS selezionato:
twilio-sms:+15551234567 seleziona questo canale senza acquisire il prefisso di servizio sms: già posseduto dal canale e usato da iMessage.
--target esplicito. defaultTo è per i percorsi di automazione e consegna avviati dall’agente in cui la destinazione può essere risolta dalla configurazione del canale.
Le risposte dell’agente dalle conversazioni SMS in ingresso tornano automaticamente al mittente tramite il mittente Twilio configurato.
L’output SMS è testo semplice. OpenClaw rimuove il markdown, appiattisce i blocchi di codice recintati, conserva link leggibili e suddivide le risposte lunghe prima di inviarle tramite Twilio.
Verifica della configurazione
Dopo l’avvio del Gateway:- Conferma che il log del Gateway mostri la route del webhook SMS.
- Esegui una sonda lato Twilio:
- Invia un SMS al numero Twilio dal tuo telefono.
- Esegui
openclaw pairing list sms. - Approva il codice di abbinamento con
openclaw pairing approve sms <CODE>. - Invia un altro SMS e conferma che l’agente risponda.
Test end-to-end da macOS iMessage/SMS
Su un Mac che può inviare SMS dell’operatore tramite Messaggi, puoi usareimsg per pilotare il lato mittente senza toccare il telefono:
Sicurezza del Webhook
Per impostazione predefinita, OpenClaw convalidaX-Twilio-Signature usando publicWebhookUrl e authToken. Mantieni publicWebhookUrl allineato byte per byte con l’URL configurato in Twilio, inclusi schema, host, percorso e stringa di query.
Solo per test con tunnel locale, puoi impostare:
Configurazione multi-account
Usaaccounts quando gestisci più di un numero Twilio:
webhookPath distinto.
Risoluzione dei problemi
Twilio restituisce 403 oppure OpenClaw rifiuta il webhook
Controlla chepublicWebhookUrl corrisponda esattamente all’URL configurato in Twilio, inclusi schema, host, percorso e stringa di query. Twilio firma la stringa dell’URL pubblico, quindi riscritture del proxy e nomi host alternativi possono interrompere la convalida della firma.
Non compare alcuna richiesta di abbinamento
Controlla l’URL e il metodo del webhook Messaging del numero Twilio. Deve puntare all’URL del webhook SMS e usarePOST. Conferma anche che il Gateway sia raggiungibile da Internet pubblico o tramite il tuo tunnel.
Se il log dei messaggi Twilio mostra l’errore 11200, Twilio ha accettato l’SMS in ingresso ma non è riuscito a raggiungere il tuo webhook. Controlla:
- Twilio Messaging > A message comes in punta a
publicWebhookUrl. - Il metodo è
POST. - Il tunnel o reverse proxy espone il
webhookPathesatto; per Tailscale Funnel, eseguitailscale funnel statuse conferma che/webhooks/smssia elencato. publicWebhookUrlusa lo stesso schema, host, percorso e stringa di query inviati da Twilio, così la convalida della firma può riprodurre l’URL firmato.
Gli invii in uscita falliscono
Conferma cheaccountSid, authToken e fromNumber oppure messagingServiceSid siano risolti. Se usi un account Twilio di prova, potrebbe essere necessario verificare il numero di destinazione in Twilio prima di poter inviare SMS in uscita.
I messaggi arrivano ma l’agente non risponde
ControlladmPolicy e allowFrom. Con la policy pairing predefinita, il mittente deve essere approvato prima che vengano elaborati i normali turni dell’agente.