/webhooks/sms) kaydeder, varsayılan olarak Twilio istek imzalarını doğrular ve yanıtları Twilio’nun Messages API’si aracılığıyla geri gönderir.
Durum: resmî Plugin, ayrı olarak kurulur. Yalnızca metin: MMS/medya yoktur, yalnızca doğrudan mesajlar desteklenir.
Eşleştirme
SMS için varsayılan DM ilkesi eşleştirmedir.
Gateway güvenliği
Webhook erişimini ve gönderen erişim denetimlerini gözden geçirin.
Kanal sorunlarını giderme
Kanallar arası tanılama ve onarım çalışma planları.
Başlamadan önce
Gerekenler:openclaw plugins install @openclaw/smsile kurulmuş resmî SMS Plugin’i.- SMS özellikli bir telefon numarasına veya Twilio Messaging Service’e sahip bir Twilio hesabı.
- Twilio Account SID ve Auth Token.
- OpenClaw Gateway’inize ulaşan herkese açık bir HTTPS URL’si.
- Bir gönderen ilkesi seçimi: özel kullanım için
pairing(varsayılan), önceden onaylanmış telefon numaraları içinallowlistveya yalnızca bilerek herkese açık SMS erişimi sağlamak içinopen.
Hızlı Kurulum
1
Plugin'i kurun
2
Bir Twilio göndereni oluşturun veya seçin
Twilio’da Phone Numbers > Manage > Active numbers bölümünü açın ve SMS özellikli bir numara seçin. Şunları kaydedin:
- Account SID, örneğin
ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Auth Token
- Gönderen telefon numarası, örneğin
+15551234567
MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.3
SMS kanalını yapılandırın
Bunu Uygulayın:
sms.patch.json5 olarak kaydedin ve yer tutucuları değiştirin:4
Twilio'yu Gateway Webhook'una yönlendirin
Twilio telefon numarası ayarlarında Messaging bölümünü açın ve A message comes in değerini şuna ayarlayın:HTTP
POST kullanın. Varsayılan yerel yol /webhooks/sms şeklindedir; farklı bir rota gerekiyorsa channels.sms.webhookPath değerini değiştirin.5
Tam SMS Webhook yolunu kullanıma açın
Herkese açık URL’niz, SMS yolunu Gateway işlemine yönlendirmelidir (varsayılan port Sesli Arama ve SMS ayrı Webhook yolları kullanır. Aynı Twilio numarası her ikisini de işliyorsa her iki rotayı da Twilio’da ve tünelinizde yapılandırılmış olarak tutun.
18789). Yerel test için Tailscale Funnel kullanıyorsanız /webhooks/sms yolunu açıkça kullanıma açın:6
Gateway'i başlatın ve ilk göndereni onaylayın
Yapılandırma Örnekleri
Tüm anahtarlarchannels.sms altında (ve hesap başına channels.sms.accounts.<id> altında) bulunur:
Yapılandırma dosyası
Kanal tanımının Gateway yapılandırmasıyla birlikte taşınmasını istediğinizde yapılandırma dosyasıyla kurulumu kullanın:Ortam değişkenleri
Ortam değişkenleri yalnızca varsayılan hesaba uygulanır; yapılandırma değerleri ortam değerlerinden önceliklidir.SecretRef kimlik doğrulama belirteci
authToken bir SecretRef (source: "env" | "file" | "exec") olabilir. Gateway’in düz metin yapılandırmayı depolamak yerine Twilio Auth Token’ı OpenClaw gizli bilgiler çalışma zamanından çözümlemesi gerektiğinde bunu kullanın:
Messaging Service göndereni
Twilio’nun göndereni bir Messaging Service aracılığıyla seçmesi gerektiğindefromNumber yerine messagingServiceSid kullanın:
fromNumber hem de messagingServiceSid mevcutsa fromNumber kullanılır.
Varsayılan giden hedef
Bir gönderme akışı açık bir hedef belirtmediğinde otomasyon veya aracı tarafından başlatılan teslimatın varsayılan bir hedefi olması gerekiyorsadefaultTo değerini ayarlayın:
Erişim denetimi
channels.sms.dmPolicy doğrudan SMS erişimini denetler:
pairing(varsayılan): bilinmeyen gönderenler bir eşleştirme kodu alır;openclaw pairing approve sms <CODE>ile onaylayın.allowlist: yalnızcaallowFromiçindeki gönderenler işlenir. Boş birallowFromher göndereni reddeder (Gateway bir başlangıç uyarısı günlüğe kaydeder).open: yapılandırma doğrulaması,allowFromdeğerinin"*"içermesini gerektirir. Joker karakter olmadan yalnızca listelenen numaralar sohbet edebilir.disabled: gelen tüm DM’ler bırakılır.
allowFrom girdileri +15551234567 gibi E.164 telefon numaraları olmalıdır. sms: ve twilio-sms: ön ekleri kabul edilir ve normalleştirilir. Özel bir asistan için açık telefon numaralarıyla dmPolicy: "allowlist" kullanmayı tercih edin:
SMS gönderme
SMS kanalı seçildiğinde hedefler, yalın E.164 numaralarını veyasms: ön ekini kabul eder:
twilio-sms: ön eki, iMessage’ın kendi hedefleri için operatör SMS teslimatını seçmek üzere kullandığı sms: hizmet ön ekini devralmadan bu kanalı seçer:
--target gerektirir. defaultTo, hedefin kanal yapılandırmasından çözümlenebildiği otomasyon ve aracı tarafından başlatılan teslimat yolları içindir.
Gelen SMS görüşmelerine verilen aracı yanıtları, yapılandırılmış Twilio göndericisi üzerinden otomatik olarak gönderene geri iletilir.
SMS çıktısı düz metindir. OpenClaw; markdown biçimlendirmesini kaldırır, çitle çevrili kod bloklarını düzleştirir, bağlantıları label (url) olarak yeniden yazar ve uzun yanıtları Twilio üzerinden göndermeden önce en fazla textChunkLimit karakterlik (varsayılan 1500) parçalara böler.
Kurulumu Doğrulama
Gateway başladıktan sonra:- Gateway günlüğünde SMS Webhook yolunun gösterildiğini doğrulayın.
- Twilio tarafında bir yoklama çalıştırın (yapılandırılmış Twilio Webhook URL’sini/yöntemini ve son gelen ileti hatalarını denetler):
- Telefonunuzdan Twilio numarasına bir SMS gönderin.
openclaw pairing list smskomutunu çalıştırın.- Eşleştirme kodunu
openclaw pairing approve sms <CODE>ile onaylayın. - Başka bir SMS gönderin ve aracının yanıt verdiğini doğrulayın.
macOS iMessage/SMS üzerinden uçtan uca test
Messages üzerinden operatör SMS’i gönderebilen bir Mac’te, telefonunuza dokunmadan gönderici tarafını yönetmek içinimsg kullanabilirsiniz:
Webhook güvenliği
OpenClaw varsayılan olarakX-Twilio-Signature değerini publicWebhookUrl ve authToken kullanarak doğrular. publicWebhookUrl değerinin uç nokta bölümünü; şema, ana bilgisayar, yol ve sorgu dizesi dâhil olmak üzere Twilio’da yapılandırılan URL ile bayt bayt aynı tutun. OpenClaw, Twilio’nun gerektirdiği şekilde Twilio bağlantı geçersiz kılma parçalarını (#...) imza hesaplamasının dışında bırakır.
Webhook yolu, imza doğrulamasından bağımsız olarak şunları da uygular:
- Yalnızca
POST. - SMS hesabı, Webhook yolu ve çözümlenmiş istemci adresi başına dakikada 300 istekten oluşan başarısız istek bütçesi. Tüm istekler bu bütçeye dâhildir ancak HTTP 429 yalnızca bir istek gövde ayrıştırma, Twilio doğrulaması veya AccountSid eşleştirmesinde başarısız olduktan sonra uygulanır.
- Bu denetimler geçildikten sonra SMS hesabı, Webhook yolu ve çözümlenmiş istemci adresi başına dakikada 30 kabul edilmiş geri çağırmadan oluşan işlenebilir geri çağırma hız sınırı (bunun üzerinde HTTP 429). İmza doğrulaması devre dışıysa bu 30/dakika sınırı, kimliği doğrulanmamış işleme üst sınırıdır.
- İstemci adresleri, paylaşılan Gateway güvenilir proxy kuralları üzerinden çözümlenir.
gateway.trustedProxies, Twilio geri çağırmalarını ileten ters proxy’yi içeriyorsa OpenClaw bu sınırları iletilen istemci adresine göre belirler; aksi takdirde doğrudan soket adresine geri döner. - Yükteki
AccountSid, yapılandırılmışaccountSidile eşleşmelidir (aksi takdirde HTTP 403). - Yeniden oynatılan
MessageSiddeğerlerinin yinelenenleri 10 dakika boyunca ayıklanır. - Her SMS hesabının yeniden oynatma önbelleği en fazla 10.000 etkin ileti SID’sini saklar. Tüm yuvalar etkin olduğunda, o hesaba yönelik yeni Webhook’lar en eski yuvanın süresi dolana kadar HTTP 429 ve bir
Retry-Afterüst bilgisiyle kapalı biçimde başarısız olur. - 32 KB üzerindeki istek gövdeleri reddedilir.
Retry-After desteğini belgelememektedir. #rp=4xx ve #rp=all bağlantı geçersiz kılmaları 4xx yeniden denemelerini etkinleştirir ancak Twilio tüm yeniden deneme işlemini 15 saniyeyle sınırlar; bu nedenle yeniden denemeler, bir yeniden oynatma önbelleği yuvasının süresi dolmadan önce tamamlanabilir. Başarısız teslimatları başka bir işleyicinin alması gerekiyorsa bir yedek URL yapılandırın; 429 yanıtını güvenilir geri basınç olarak değil, kapalı biçimde başarısız olan bir ret olarak değerlendirin.
Yalnızca yerel tünel testi için şunu ayarlayabilirsiniz:
Çok hesaplı yapılandırma
Birden fazla Twilio numarası işletiyorsanızaccounts kullanın:
webhookPath kullanmalıdır; Gateway, yolu zaten başka bir hesaba ait olan bir Webhook yolunu kaydetmeyi reddeder. TWILIO_*/SMS_* ortam değişkeni geri dönüşleri yalnızca varsayılan hesaba uygulanır; bunun hangi hesap olduğunu değiştirmek için defaultAccount ayarlayın.
Sorun Giderme
Twilio 403 döndürüyor veya OpenClaw Webhook’u reddediyor
publicWebhookUrl değerinin şema, ana bilgisayar, yol ve sorgu dizesi dâhil olmak üzere Twilio’da yapılandırılan URL ile tam olarak eşleştiğini denetleyin. Twilio herkese açık URL dizesini imzalar; bu nedenle proxy yeniden yazımları ve alternatif ana bilgisayar adları imza doğrulamasını bozabilir.
Invalid account içeren bir 403 yanıtı, gelen yükün AccountSid değerinin yapılandırılmış accountSid ile eşleşmediği anlamına gelir; Webhook’un numaranın sahibi olan hesaba yönlendirildiğini denetleyin.
Eşleştirme isteği görünmüyor
Twilio numarasının Messaging Webhook URL’sini ve yöntemini denetleyin. SMS Webhook URL’sine yönelmeli vePOST kullanmalıdır. Ayrıca Gateway’e herkese açık internetten veya tüneliniz üzerinden erişilebildiğini doğrulayın.
Twilio ileti günlüğünde 11200 hatası gösteriliyorsa Twilio gelen SMS’i kabul etmiş ancak Webhook’unuza ulaşamamıştır. Şunları denetleyin:
- Twilio Messaging > A message comes in,
publicWebhookUrladresine yöneliyor. - Yöntem
POST. - Tünel veya ters proxy tam
webhookPathyolunu kullanıma açıyor; Tailscale Funnel içintailscale funnel statusçalıştırın ve/webhooks/smsdeğerinin listelendiğini doğrulayın. publicWebhookUrl, Twilio’nun gönderdiği şema, ana bilgisayar, yol ve sorgu dizesinin aynısını kullanıyor; böylece imza doğrulaması imzalanmış URL’yi yeniden oluşturabiliyor.
openclaw channels status --channel sms --probe, hem eşleşmeyen Twilio Webhook ayarlarını hem de son 11200 hatalarını gösterir.
Giden iletiler gönderilemiyor
accountSid, authToken ve fromNumber ya da messagingServiceSid değerlerinden birinin çözümlendiğini doğrulayın. Deneme sürümü bir Twilio hesabı kullanıyorsanız giden SMS’in gönderilebilmesi için hedef numaranın önce Twilio’da doğrulanması gerekebilir.
İletiler geliyor ancak aracı yanıt vermiyor
dmPolicy ve allowFrom değerlerini denetleyin. Varsayılan pairing ilkesi kullanıldığında, normal aracı turlarının işlenebilmesi için gönderenin onaylanmış olması gerekir.