Pairing
La politique de messages directs par défaut pour les SMS est l’appairage.
Gateway security
Examinez l’exposition du Webhook et les contrôles d’accès des expéditeurs.
Channel troubleshooting
Diagnostics intercanaux et procédures de réparation.
Avant de commencer
Vous avez besoin de :- Le Plugin SMS officiel installé avec
openclaw plugins install @openclaw/sms. - Un compte Twilio avec un numéro de téléphone compatible SMS, ou un service de messagerie Twilio.
- Le SID de compte Twilio et le jeton d’authentification.
- Une URL HTTPS publique qui atteint votre Gateway OpenClaw.
- Un choix de politique d’expéditeur :
pairingpour un usage privé,allowlistpour les numéros de téléphone préapprouvés, ouopenuniquement pour un accès SMS volontairement public.
Configuration rapide
Créer ou choisir un expéditeur Twilio
Dans Twilio, ouvrez Numéros de téléphone > Gérer > Numéros actifs et choisissez un numéro compatible SMS. Enregistrez :
- SID du compte, par exemple
ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Jeton d’authentification
- Numéro de téléphone expéditeur, par exemple
+15551234567
MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.Configurer le canal SMS
Enregistrez ceci sous Appliquez-le :
sms.patch.json5 et modifiez les espaces réservés :Pointer Twilio vers le Webhook du Gateway
Dans les paramètres du numéro de téléphone Twilio, ouvrez Messagerie et définissez Un message arrive sur :Utilisez HTTP
POST. Le chemin local par défaut est /webhooks/sms ; modifiez channels.sms.webhookPath si vous avez besoin d’une route différente.Exposer le chemin exact du Webhook SMS
Votre URL publique doit router le chemin SMS vers le processus Gateway. Si vous utilisez Tailscale Funnel pour les tests locaux, exposez explicitement Les appels vocaux et les SMS utilisent des chemins de Webhook distincts. Si le même numéro Twilio gère les deux, conservez les deux routes configurées dans Twilio et dans votre tunnel.
/webhooks/sms :Exemples de configuration
Fichier de configuration
Utilisez la configuration par fichier lorsque vous voulez que la définition du canal soit transportée avec la configuration du Gateway :Variables d’environnement
Utilisez la configuration par variables d’environnement pour les déploiements à compte unique où les secrets proviennent de l’environnement hôte :TWILIO_SMS_FROM est accepté comme alias de TWILIO_PHONE_NUMBER. Utilisez TWILIO_MESSAGING_SERVICE_SID au lieu d’un expéditeur par numéro de téléphone lorsque Twilio doit choisir l’expéditeur à partir d’un service de messagerie.
Jeton d’authentification SecretRef
authToken peut être une SecretRef. Utilisez ceci lorsque le Gateway doit résoudre le jeton d’authentification Twilio depuis l’environnement d’exécution des secrets OpenClaw au lieu de stocker la configuration en texte clair :
Numéro privé uniquement sur liste d’autorisation
Utilisezallowlist lorsque seuls des numéros de téléphone connus doivent pouvoir parler à l’agent :
Expéditeur via service de messagerie
UtilisezmessagingServiceSid au lieu de fromNumber lorsque Twilio doit choisir l’expéditeur via un service de messagerie :
fromNumber et messagingServiceSid sont tous deux présents après la résolution de la configuration et des variables d’environnement, fromNumber est utilisé.
Cible sortante par défaut
DéfinissezdefaultTo lorsque l’automatisation ou la livraison initiée par l’agent doit avoir une destination par défaut si un flux d’envoi omet une cible explicite :
Contrôle d’accès
channels.sms.dmPolicy contrôle l’accès direct par SMS :
pairing(par défaut)allowlist(nécessite au moins un expéditeur dansallowFrom)open(nécessite queallowFrominclue"*")disabled
allowFrom doivent être des numéros de téléphone E.164 comme +15551234567. Les préfixes sms: sont acceptés et normalisés. Pour un assistant privé, privilégiez dmPolicy: "allowlist" avec des numéros de téléphone explicites.
Envoyer des SMS
Les cibles SMS sortantes utilisent le préfixe de servicesms: avec le canal SMS sélectionné :
twilio-sms:+15551234567 sélectionne ce canal sans prendre le contrôle du préfixe de service sms: existant, détenu par le canal et utilisé par iMessage.
--target explicite. defaultTo est destiné aux chemins d’automatisation et de livraison initiée par l’agent où la cible peut être résolue depuis la configuration du canal.
Les réponses de l’agent issues de conversations SMS entrantes retournent automatiquement à l’expéditeur via l’expéditeur Twilio configuré.
La sortie SMS est du texte brut. OpenClaw supprime le markdown, aplatit les blocs de code clôturés, préserve les liens lisibles et découpe les longues réponses avant de les envoyer via Twilio.
Vérifier la configuration
Après le démarrage du Gateway :- Confirmez que le journal du Gateway affiche la route du Webhook SMS.
- Exécutez une sonde côté Twilio :
- Envoyez un SMS au numéro Twilio depuis votre téléphone.
- Exécutez
openclaw pairing list sms. - Approuvez le code d’appairage avec
openclaw pairing approve sms <CODE>. - Envoyez un autre SMS et confirmez que l’agent répond.
Test de bout en bout depuis macOS iMessage/SMS
Sur un Mac capable d’envoyer des SMS opérateur via Messages, vous pouvez utiliserimsg pour piloter le côté expéditeur sans toucher à votre téléphone :
Sécurité du Webhook
Par défaut, OpenClaw valideX-Twilio-Signature à l’aide de publicWebhookUrl et authToken. Gardez publicWebhookUrl aligné octet pour octet avec l’URL configurée dans Twilio, y compris le schéma, l’hôte, le chemin et la chaîne de requête.
Pour les tests de tunnel local uniquement, vous pouvez définir :
Configuration multi-comptes
Utilisezaccounts lorsque vous exploitez plusieurs numéros Twilio :
webhookPath distinct.
Dépannage
Twilio renvoie 403 ou OpenClaw rejette le Webhook
Vérifiez quepublicWebhookUrl correspond exactement à l’URL configurée dans Twilio, y compris le schéma, l’hôte, le chemin et la chaîne de requête. Twilio signe la chaîne d’URL publique ; les réécritures de proxy et les noms d’hôte alternatifs peuvent donc casser la validation de signature.
Aucune demande d’appairage n’apparaît
Vérifiez l’URL et la méthode du Webhook Messagerie du numéro Twilio. Il doit pointer vers l’URL du Webhook SMS et utiliserPOST. Confirmez également que le Gateway est accessible depuis Internet public ou via votre tunnel.
Si le journal des messages Twilio affiche l’erreur 11200, Twilio a accepté le SMS entrant mais n’a pas pu atteindre votre Webhook. Vérifiez :
- Messagerie > Un message arrive dans Twilio pointe vers
publicWebhookUrl. - La méthode est
POST. - Le tunnel ou le proxy inverse expose le
webhookPathexact ; pour Tailscale Funnel, exécuteztailscale funnel statuset confirmez que/webhooks/smsest répertorié. publicWebhookUrlutilise les mêmes schéma, hôte, chemin et chaîne de requête que ceux envoyés par Twilio, afin que la validation de signature puisse reproduire l’URL signée.
Les envois sortants échouent
Confirmez queaccountSid, authToken, et soit fromNumber soit messagingServiceSid sont résolus. Si vous utilisez un compte Twilio d’essai, le numéro de destination devra peut-être être vérifié dans Twilio avant que les SMS sortants puissent être envoyés.
Les messages arrivent mais l’agent ne répond pas
VérifiezdmPolicy et allowFrom. Avec la stratégie pairing par défaut, l’expéditeur doit être approuvé avant que les tours d’agent normaux soient traités.