mock (geliştirme, ağ yok), plivo (Voice API + XML aktarımı +
GetInput konuşması), telnyx (Call Control v2), twilio (Programmable Voice +
Media Streams).
Voice Call plugin’i Gateway işleminin içinde çalışır. Uzak bir
Gateway kullanılıyorsa plugin, Gateway’in çalıştığı makineye kurulup
yapılandırılmalı ve ardından yüklenmesi için Gateway yeniden başlatılmalıdır.
Hızlı başlangıç
1
Plugin'i yükleyin
- npm'den
- Yerel bir klasörden (geliştirme)
2
Sağlayıcıyı ve Webhook'u yapılandırın
Yapılandırmayı
plugins.entries.voice-call.config altında ayarlayın (aşağıdaki
Yapılandırma bölümüne bakın). En azından şunlar gereklidir: provider, sağlayıcı
kimlik bilgileri, fromNumber ve herkese açık olarak erişilebilen bir Webhook URL’si.3
Kurulumu doğrulayın
streaming veya realtime) etkin olduğunu denetler.4
Temel testi çalıştırın
--yes ekleyin:Yapılandırma
enabled: true ancak seçilen sağlayıcının kimlik bilgileri eksikse Gateway
başlangıcı, eksik anahtarları içeren bir kurulum-tamamlanmadı uyarısı kaydeder ve
çalışma zamanını başlatmayı atlar. Komutlar, RPC çağrıları ve ajan araçları kullanıldığında
eksik yapılandırmanın tam karşılığını döndürmeye devam eder.
Voice Call kimlik bilgileri SecretRef’leri kabul eder.
plugins.entries.voice-call.config.twilio.authToken, plugins.entries.voice-call.config.realtime.providers.*.apiKey, plugins.entries.voice-call.config.streaming.providers.*.apiKey ve plugins.entries.voice-call.config.tts.providers.*.apiKey standart SecretRef yüzeyi üzerinden çözümlenir; bkz. SecretRef kimlik bilgisi yüzeyi.Yapılandırma başvurusu
Yukarıda gösterilmeyen,plugins.entries.voice-call.config altındaki üst düzey anahtarlar:
Twilio varsayılan olarak US1 REST uç noktasını kullanır. Aramaları desteklenen
ABD dışı bir Bölgede işlemek için
twilio.region değerini ie1 veya au1 olarak ayarlayın ve
o Bölgeye ait kimlik bilgilerini kullanın. Bkz.
Twilio’nun ABD dışı REST API kılavuzu.
Sağlayıcı erişimi ve güvenlik notları
Sağlayıcı erişimi ve güvenlik notları
- Twilio, Telnyx ve Plivo’nun tümü herkese açık olarak erişilebilen bir Webhook URL’si gerektirir.
mockyerel bir geliştirme sağlayıcısıdır (ağ çağrısı yoktur).- Telnyx,
skipSignatureVerificationtrue olmadığı sürecetelnyx.publicKey(veyaTELNYX_PUBLIC_KEY) gerektirir. skipSignatureVerificationyalnızca yerel test içindir.- Ücretsiz ngrok katmanında
publicUrldeğerini tam ngrok URL’sine ayarlayın; imza doğrulaması her zaman zorunludur. tunnel.allowNgrokFreeTierLoopbackBypass: true, yalnızcatunnel.provider="ngrok"olduğunda veserve.bindgeri döngü olduğunda (ngrok yerel ajanı), geçersiz imzalı Twilio Webhook’larına izin verir. Yalnızca yerel geliştirme içindir.- Ücretsiz ngrok katmanı URL’leri değişebilir veya geçiş sayfası davranışı ekleyebilir;
publicUrldeğişirse Twilio imzaları başarısız olur. Üretim için kararlı bir alan adı veya Tailscale funnel tercih edin.
Akış bağlantısı sınırları
Akış bağlantısı sınırları
streaming.preStartTimeoutMs(varsayılan5000), hiçbir zaman geçerli birstartçerçevesi göndermeyen soketleri kapatır.streaming.maxPendingConnections(varsayılan32), kimliği doğrulanmamış başlangıç öncesi toplam soket sayısını sınırlar.streaming.maxPendingConnectionsPerIp(varsayılan4), kaynak IP başına kimliği doğrulanmamış başlangıç öncesi soket sayısını sınırlar.streaming.maxConnections(varsayılan128), tüm açık medya akışı soketlerini (bekleyen + etkin) sınırlar.
Eski yapılandırma geçişleri
Eski yapılandırma geçişleri
Yapılandırma ayrıştırma, bu eski anahtarları otomatik olarak normalleştirir ve
yerine geçen yolu belirten bir uyarı kaydeder; uyumluluk katmanı gelecekteki bir
sürümde (
2026.6.0) kaldırılacağından, kaydedilmiş yapılandırmayı
standart şekle yeniden yazmak için openclaw doctor --fix çalıştırın:provider: "log"→provider: "mock"twilio.from→fromNumberstreaming.sttProvider→streaming.providerstreaming.openaiApiKey→streaming.providers.openai.apiKeystreaming.sttModel→streaming.providers.openai.modelstreaming.silenceDurationMs→streaming.providers.openai.silenceDurationMsstreaming.vadThreshold→streaming.providers.openai.vadThresholdrealtime.agentContext.includeSystemPromptkaldırılmıştır (gerçek zamanlı bağlam artık oluşturulan ajan istemini kullanır)
Oturum kapsamı
Voice Call varsayılan olaraksessionScope: "per-phone" kullanır; böylece
aynı arayanın tekrarlanan aramalarında konuşma belleği korunur. Her
operatör aramasının yeni bir bağlamla başlaması gerektiğinde sessionScope: "per-call" ayarlayın;
örneğin aynı telefon numarasının farklı toplantıları temsil edebileceği resepsiyon,
rezervasyon, IVR veya Google Meet köprü akışlarında.
Voice Call, oluşturulan oturum anahtarlarını yapılandırılmış ajan ad alanında
(agent:<agentId>:voice:*) depolar. Açıkça belirtilen ham entegrasyon anahtarları
aynı ad alanına çözümlenir: standart bir agent:<configuredAgentId>:* anahtarı bu
sahibi korur ve çekirdek session.mainKey/genel kapsam takma adlandırmasına uyar; yabancı veya
hatalı biçimlendirilmiş agent:* girdisi, yapılandırılmış ajan altında opak bir anahtar
olarak kapsamlandırılır; global ve unknown genel sentinel değerleri olarak kalır.
Gerçek zamanlı sesli konuşmalar
realtime, canlı arama sesi için tam çift yönlü gerçek zamanlı bir ses sağlayıcısı seçer.
Bu, sesi yalnızca gerçek zamanlı transkripsiyon
sağlayıcılarına ileten streaming özelliğinden ayrıdır.
Geçerli çalışma zamanı davranışı:
realtime.enabled, Twilio ve Telnyx için desteklenir.realtime.provideristeğe bağlıdır. Ayarlanmamışsa Voice Call, kaydedilen ilk gerçek zamanlı ses sağlayıcısını kullanır.- Paketle birlikte gelen gerçek zamanlı ses sağlayıcıları: sağlayıcı pluginleri tarafından kaydedilen Google Gemini Live (
google) ve OpenAI (openai). - Sağlayıcının sahip olduğu ham yapılandırma
realtime.providers.<providerId>altında bulunur. - Voice Call, paylaşılan
openclaw_agent_consultgerçek zamanlı aracını varsayılan olarak kullanıma sunar. Arayan kişi daha derin akıl yürütme, güncel bilgi veya normal OpenClaw araçları istediğinde gerçek zamanlı model bu aracı çağırabilir. realtime.consultPolicy, gerçek zamanlı modelinopenclaw_agent_consultaracını ne zaman çağırması gerektiğine ilişkin isteğe bağlı yönlendirme ekler.realtime.agentContext.enabledvarsayılan olarak kapalıdır. Etkinleştirildiğinde Voice Call, oturum kurulumu sırasında gerçek zamanlı sağlayıcı talimatlarına sınırlandırılmış bir aracı kimliği ve seçili çalışma alanı dosyalarından oluşan bir kapsül ekler.realtime.fastContext.enabledvarsayılan olarak kapalıdır. Etkinleştirildiğinde Voice Call, danışma sorusu için önce dizine alınmış bellek/oturum bağlamında arama yapar ve yalnızcarealtime.fastContext.fallbackToConsultdoğruysa tam danışma aracısına geri dönmeden önce bu parçalarırealtime.fastContext.timeoutMsiçinde gerçek zamanlı modele döndürür.realtime.providerkaydedilmemiş bir sağlayıcıyı gösteriyorsa veya hiçbir gerçek zamanlı ses sağlayıcısı kaydedilmemişse Voice Call bir uyarı kaydeder ve pluginin tamamını başarısız kılmak yerine gerçek zamanlı medyayı atlar.realtime.enableddoğru olduğundainboundPolicy,"disabled"olmamalıdır;validateProviderConfigbu birleşimi reddeder.- Danışma oturumu anahtarları, mevcut olduğunda depolanan çağrı oturumunu yeniden kullanır; ardından yapılandırılmış
sessionScopedeğerine geri döner (varsayılan olarakper-phoneveya yalıtılmış çağrılar içinper-call).
Araç politikası
realtime.toolPolicy, danışma çalıştırmasını denetler:
realtime.consultPolicy yalnızca gerçek zamanlı model talimatlarını denetler:
Aracı ses bağlamı
Ses köprüsünün, sıradan dönüşlerde tam bir aracı danışma gidiş dönüşünün maliyetini üstlenmeden yapılandırılmış OpenClaw aracısı gibi duyulması gerektiğinderealtime.agentContext seçeneğini etkinleştirin. Bağlam kapsülü,
gerçek zamanlı oturum oluşturulduğunda bir kez eklenir; bu nedenle dönüş
başına gecikme eklemez. openclaw_agent_consult çağrıları yine de tam OpenClaw
aracısını çalıştırır ve araç çalışmaları, güncel bilgiler, bellek aramaları
veya çalışma alanı durumu için kullanılmalıdır.
Gerçek zamanlı sağlayıcı örnekleri
- Google Gemini Live
- OpenAI
Varsayılanlar:
realtime.providers.google.apiKey, GEMINI_API_KEY
veya GOOGLE_API_KEY üzerinden API anahtarı; model gemini-3.1-flash-live-preview;
ses Kore. Daha uzun, yeniden bağlanabilir çağrılar için
sessionResumption ve contextWindowCompression varsayılan olarak açıktır.
Telefon sesiyle daha hızlı söz sırası geçişlerini ayarlamak için
silenceDurationMs, startSensitivity ve endSensitivity kullanın.Akışlı transkripsiyon
streaming, Twilio Media Streams’i gerçek zamanlı bir transkripsiyon sağlayıcısına bağlar.
Klasik akış yolu provider: "twilio" gerektirir; Telnyx, Plivo veya mock ile
yapılan yapılandırma reddedilir. Telnyx canlı sesi bunun yerine ayrı olarak
kimliği doğrulanmış realtime.enabled yolunu kullanır.
Geçerli çalışma zamanı davranışı:
streaming.provideristeğe bağlıdır. Ayarlanmamışsa Voice Call, kaydedilen ilk gerçek zamanlı transkripsiyon sağlayıcısını kullanır.- Paketle birlikte gelen gerçek zamanlı transkripsiyon sağlayıcıları: sağlayıcı pluginleri tarafından kaydedilen Deepgram (
deepgram), ElevenLabs (elevenlabs), Mistral (mistral), OpenAI (openai) ve xAI (xai). - Sağlayıcının sahip olduğu ham yapılandırma
streaming.providers.<providerId>altında bulunur. - Twilio, kabul edilmiş bir akış
startiletisi gönderdikten sonra Voice Call akışı hemen kaydeder, sağlayıcı bağlanırken gelen medyayı transkripsiyon sağlayıcısı üzerinden kuyruğa alır ve ilk karşılamayı yalnızca gerçek zamanlı transkripsiyon hazır olduktan sonra başlatır. streaming.providerkaydedilmemiş bir sağlayıcıyı gösteriyorsa veya hiçbir sağlayıcı kaydedilmemişse Voice Call bir uyarı kaydeder ve pluginin tamamını başarısız kılmak yerine medya akışını atlar.
Akış sağlayıcısı örnekleri
- OpenAI
- xAI
Varsayılanlar: API anahtarı
streaming.providers.openai.apiKey veya
OPENAI_API_KEY; model gpt-4o-transcribe; silenceDurationMs: 800;
vadThreshold: 0.5.Çağrılar için TTS
Voice Call, çağrılarda konuşma akışı için çekirdektts
yapılandırmasını kullanır. Plugin yapılandırması altında aynı yapıyla
geçersiz kılabilirsiniz; tts ile derinlemesine birleştirilir.
- Plugin yapılandırmasındaki eski
tts.<provider>anahtarları (openai,elevenlabs,microsoft,edge)openclaw doctor --fixtarafından onarılır; kaydedilen yapılandırmatts.providers.<provider>kullanmalıdır. - Twilio medya akışı etkinleştirildiğinde çekirdek TTS kullanılır; aksi takdirde çağrılar sağlayıcıya özgü seslere geri döner.
- Bir Twilio medya akışı zaten etkinse Voice Call, TwiML
<Say>seçeneğine geri dönmez. Bu durumda telefon TTS’i kullanılamıyorsa oynatma isteği iki oynatma yolunu karıştırmak yerine başarısız olur. - Telefon TTS’i ikincil bir sağlayıcıya geri döndüğünde Voice Call, hata ayıklama için sağlayıcı zincirini (
from,to,attempts) içeren bir uyarı kaydeder. - Twilio araya girme veya akış kapatma işlemi bekleyen TTS kuyruğunu temizlediğinde, kuyruğa alınan oynatma istekleri oynatmanın tamamlanmasını bekleyen arayanları askıda bırakmak yerine sonuçlandırılır.
TTS örnekleri
- Yalnızca çekirdek TTS
- ElevenLabs ile geçersiz kılma (yalnızca aramalar)
- OpenAI modeliyle geçersiz kılma (derin birleştirme)
Gelen aramalar
Gelen arama politikası varsayılan olarakdisabled değerindedir. Gelen aramaları etkinleştirmek için şunu ayarlayın:
responseModel,
responseSystemPrompt ve responseTimeoutMs ile ayarlayın.
Numara başına yönlendirme
Tek bir Voice Call plugin’i birden fazla telefon numarasına gelen aramaları aldığında ve her numaranın farklı bir hat gibi davranması gerektiğindenumbers kullanın. Örneğin,
bir numara gündelik bir kişisel asistan kullanırken başka bir numara kurumsal
bir kişilik, farklı bir yanıt ajanı ve farklı bir TTS sesi kullanabilir.
Rotalar, sağlayıcı tarafından sunulan ve aranan To numarasından seçilir. Anahtarlar
E.164 numaraları olmalıdır. Bir arama geldiğinde Voice Call, eşleşen
rotayı bir kez çözümler, eşleşen rotayı arama kaydında saklar ve bu
etkin yapılandırmayı karşılama, klasik otomatik yanıt yolu, gerçek zamanlı
danışma yolu ve TTS oynatma için yeniden kullanır. Hiçbir rota eşleşmezse genel Voice Call
yapılandırması kullanılır. Giden aramalar numbers kullanmaz; aramayı
başlatırken giden hedefi, mesajı ve oturumu açıkça iletin.
Rota geçersiz kılmaları şu anda şunları destekler:
inboundGreetingttsagentIdresponseModelresponseSystemPromptresponseTimeoutMs
tts rota değeri, genel Voice Call tts yapılandırması üzerine derinlemesine birleştirilir; böylece
genellikle yalnızca sağlayıcı sesini geçersiz kılabilirsiniz:
Sözlü çıktı sözleşmesi
Otomatik yanıtlar için Voice Call, sistem istemine{"spoken":"..."} JSON yanıtı gerektiren katı bir sözlü çıktı sözleşmesi ekler. Voice Call
konuşma metnini korumalı biçimde ayıklar:
- Akıl yürütme/hata içeriği olarak işaretlenen yükleri yok sayar.
- Doğrudan JSON’ı, kod çitli JSON’ı veya satır içi
"spoken"anahtarlarını ayrıştırır. - Düz metne geri döner ve muhtemel planlama/meta giriş paragraflarını kaldırır.
Konuşma başlatma davranışı
Gidenconversation aramaları için ilk mesaj işleme, canlı
oynatma durumuna bağlıdır:
- Araya girme kuyruğunu temizleme ve otomatik yanıt, yalnızca ilk karşılama etkin olarak seslendirilirken engellenir.
- İlk oynatma başarısız olursa arama
listeningdurumuna döner ve ilk mesaj yeniden deneme için kuyrukta kalır. - Twilio akışı için ilk oynatma, ek gecikme olmadan akış bağlantısında başlar.
- Araya girme, etkin oynatmayı durdurur ve kuyrukta olup henüz oynatılmayan Twilio TTS girdilerini temizler. Temizlenen girdiler atlanmış olarak çözümlenir; böylece sonraki yanıt mantığı, hiçbir zaman oynatılmayacak sesi beklemeden devam edebilir.
- Gerçek zamanlı sesli konuşmalar, gerçek zamanlı akışın kendi açılış sırasını kullanır. Voice Call, bu ilk mesaj için eski bir
<Say>TwiML güncellemesi göndermez; böylece giden<Connect><Stream>oturumları bağlı kalır.
Twilio akış bağlantısı kesilme ek süresi
Bir Twilio medya akışının bağlantısı kesildiğinde Voice Call, aramayı otomatik olarak sonlandırmadan önce 2000 ms bekler:- Akış bu süre içinde yeniden bağlanırsa otomatik sonlandırma iptal edilir.
- Ek süre sonrasında hiçbir akış yeniden kaydolmazsa etkin aramaların takılı kalmasını önlemek için arama sonlandırılır.
Bayat arama temizleyici
Hiçbir zaman yanıtlanmayan ve hiçbir zaman canlı konuşma durumuna ulaşmayan aramaları, örneğin sağlayıcının hiçbir zaman sonlandırıcı Webhook göndermediği bildirim modundaki aramaları sonlandırmak içinstaleCallReaperSeconds (varsayılan 120) kullanın. Devre dışı bırakmak için
0 olarak ayarlayın.
Temizleyici her 30 saniyede bir çalışır ve yalnızca
answeredAt zaman damgası olmayan ve halihazırda sonlandırılmış veya canlı
(speaking/listening) durumda bulunmayan aramaları sonlandırır; böylece yanıtlanan konuşmalar bu zamanlayıcı
tarafından hiçbir zaman temizlenmez. maxDurationSeconds (varsayılan 300), çok uzun
süren yanıtlanmış aramaları sonlandıran ayrı sınırdır.
Operatörlerin çalma/yanıtlama Webhook’larını yavaş teslim edebildiği bildirim tarzı
akışlarda, yavaş ancak normal aramaların erken temizlenmemesi için
staleCallReaperSeconds değerini varsayılanın üzerine çıkarın; 120-300 saniye makul bir üretim
aralığıdır.
Webhook güvenliği
Gateway’in önünde bir proxy veya tünel bulunduğunda Plugin, imza doğrulaması için genel URL’yi yeniden oluşturur. Bu seçenekler, hangi iletilen üstbilgilere güvenileceğini denetler:string[]
İletme üstbilgilerinden gelen izin verilenler listesindeki ana makineler.
boolean
İzin verilenler listesi olmadan iletilen üstbilgilere güvenin.
string[]
İletilen üstbilgilere yalnızca isteğin uzak IP’si listeyle eşleştiğinde güvenin.
- Webhook yeniden oynatma koruması Twilio, Telnyx ve Plivo için etkindir. Yeniden oynatılan geçerli Webhook istekleri onaylanır ancak yan etkileri uygulanmaz.
- Twilio konuşma sıraları,
<Gather>geri çağırmalarında sıra başına bir belirteç içerir; böylece eski/yeniden oynatılan konuşma geri çağırmaları daha yeni bir bekleyen döküm sırasını karşılayamaz. - Kimliği doğrulanmamış Webhook istekleri, sağlayıcının gerekli imza üstbilgileri eksik olduğunda gövde okunmadan önce reddedilir.
- Voice Call Webhook’u, imza doğrulamasından önce paylaşılan kimlik doğrulama öncesi gövde okuma profilini (en fazla 64 KB gövde, 5 saniyelik okuma zaman aşımı) ve anahtar başına devam eden istek sınırını (varsayılan olarak anahtar başına 8 eşzamanlı istek) kullanır.
CLI
voicecall komutları,
CLI’nin ikinci bir Webhook sunucusuna bağlanmaması için Gateway’in sahip olduğu Voice Call çalışma zamanına
devredilir. Hiçbir Gateway’e erişilemiyorsa komutlar bağımsız
CLI çalışma zamanına geri döner.
latency, varsayılan Voice Call depolama yolundan calls.jsonl okur. Farklı bir günlüğü
belirtmek için --file <path>, analizi son N kayıtla (varsayılan 200) sınırlamak için
--last <n> kullanın. Çıktı; sıra gecikmesi ve dinleme-bekleme süreleri için minimum/maksimum/ortalama,
p50 ve p95 değerlerini içerir.
Ajan aracı
Araç adı:voice_call.
Voice Call Plugin’i, eşleşen bir ajan becerisiyle birlikte gelir.
Gateway RPC
dtmfSequence yalnızca mode: "conversation" ile geçerlidir; bildirim modundaki çağrılar,
bağlantı sonrası rakamlara ihtiyaç duyuyorsa çağrı oluşturulduktan sonra
voicecall.dtmf kullanmalıdır.
Sorun giderme
Kurulum Webhook erişimini açamıyor
Kurulumu Gateway’i çalıştıran ortamdan çalıştırın:twilio, telnyx ve plivo için webhook-exposure yeşil olmalıdır. Yapılandırılmış
bir publicUrl, yerel veya özel ağ alanını işaret ettiğinde yine başarısız olur;
çünkü operatör bu adreslere geri çağrı yapamaz.
publicUrl olarak localhost, 127.0.0.1, 0.0.0.0, 10.x, 172.16.x-172.31.x,
192.168.x, 169.254.x, fc00::/7, fd00::/8 veya operatör sınıfı NAT
aralıklarını kullanmayın.
Twilio bildirim modundaki giden çağrılar, başlangıç <Say> TwiML’lerini doğrudan
çağrı oluşturma isteğinde gönderir; dolayısıyla ilk sesli mesaj, Twilio’nun
Webhook TwiML’ini getirmesine bağlı değildir. Durum geri çağrıları, konuşma çağrıları,
bağlantı öncesi DTMF, gerçek zamanlı akışlar ve bağlantı sonrası çağrı denetimi için
herkese açık bir Webhook yine de gereklidir.
Herkese açık erişim yollarından birini kullanın:
--yes iletmediğiniz sürece voicecall smoke bir deneme çalıştırmasıdır.
Sağlayıcı kimlik bilgileri başarısız oluyor
Seçilen sağlayıcıyı ve gerekli kimlik bilgisi alanlarını kontrol edin:- Twilio:
twilio.accountSid,twilio.authTokenvefromNumberveyaTWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKENveTWILIO_FROM_NUMBER. - Telnyx:
telnyx.apiKey,telnyx.connectionId,telnyx.publicKeyvefromNumberveyaTELNYX_API_KEY,TELNYX_CONNECTION_IDveTELNYX_PUBLIC_KEY. - Plivo:
plivo.authId,plivo.authTokenvefromNumberveyaPLIVO_AUTH_IDvePLIVO_AUTH_TOKEN.
Çağrılar başlıyor ancak sağlayıcı Webhook’ları ulaşmıyor
Sağlayıcı konsolunun herkese açık Webhook URL’sini tam olarak işaret ettiğini doğrulayın:publicUrl,serve.pathyolundan farklı bir yolu işaret ediyor.- Gateway başlatıldıktan sonra tünel URL’si değişti.
- Bir proxy isteği iletiyor ancak ana makine/protokol başlıklarını kaldırıyor veya yeniden yazıyor.
- Güvenlik duvarı veya DNS, herkese açık ana makine adını Gateway dışında bir yere yönlendiriyor.
- Gateway, Voice Call Plugin’i etkinleştirilmeden yeniden başlatıldı.
webhookSecurity.allowedHosts değerini herkese açık ana makine adına ayarlayın ya da
bilinen bir proxy adresi için webhookSecurity.trustedProxyIPs kullanın.
webhookSecurity.trustForwardingHeaders seçeneğini yalnızca proxy sınırı
denetiminiz altındaysa kullanın.
İmza doğrulaması başarısız oluyor
Sağlayıcı imzaları, OpenClaw’ın gelen istekten yeniden oluşturduğu herkese açık URL’ye göre denetlenir. İmzalar başarısız olursa:- Sağlayıcının Webhook URL’sinin şema, ana makine ve yol dâhil olmak üzere
publicUrlile tam olarak eşleştiğini doğrulayın. - ngrok ücretsiz katman URL’leri için tünelin ana makine adı değiştiğinde
publicUrldeğerini güncelleyin. - Proxy’nin özgün ana makine ve protokol başlıklarını koruduğundan emin olun veya
webhookSecurity.allowedHostsyapılandırmasını ayarlayın. - Yerel testler dışında
skipSignatureVerificationseçeneğini etkinleştirmeyin.
Google Meet Twilio katılımları başarısız oluyor
Google Meet, Twilio çevirmeli katılımları için bu Plugin’i kullanır. Önce Voice Call’u doğrulayın:--dtmf-sequence değerini kontrol edin. Telefon çağrısı sağlıklı
olabilirken toplantı, yanlış bir DTMF dizisini reddedebilir veya yok sayabilir.
Google Meet, Twilio telefon ayağını bağlantı öncesi DTMF dizisiyle
voicecall.start üzerinden başlatır. PIN’den türetilen diziler, Google Meet
Plugin’inin voiceCall.dtmfDelayMs değerini (varsayılan 12000 ms) baştaki Twilio
bekleme rakamları olarak içerir; çünkü Meet çevirmeli istemleri geç ulaşabilir. Ardından Voice Call,
giriş selamlaması istenmeden önce gerçek zamanlı işleme geri yönlendirir.
Canlı aşama izlemesi için openclaw logs --follow kullanın. Sağlıklı bir Twilio Meet
katılımı şu sırayla günlüğe kaydedilir:
- Google Meet, Twilio katılımını Voice Call’a devreder.
- Voice Call, bağlantı öncesi DTMF TwiML’ini depolar.
- Twilio başlangıç TwiML’i tüketilir ve gerçek zamanlı işlemeden önce sunulur.
- Voice Call, Twilio çağrısı için gerçek zamanlı TwiML sunar.
- Google Meet, DTMF sonrası gecikmenin ardından
voicecall.speakile giriş konuşmasını ister.
openclaw voicecall tail kalıcı çağrı kayıtlarını göstermeye devam eder; çağrı durumu ve
dökümler için kullanışlıdır, ancak her Webhook/gerçek zamanlı geçiş
orada görünmez.
Gerçek zamanlı çağrıda konuşma yok
Yalnızca bir ses modunun etkinleştirildiğini doğrulayın:realtime.enabled ve
streaming.enabled aynı anda doğru olamaz.
Gerçek zamanlı Twilio/Telnyx çağrıları için ayrıca şunları doğrulayın:
- Bir gerçek zamanlı sağlayıcı Plugin’i yüklenmiş ve kaydedilmiş.
realtime.providerayarlanmamış veya kayıtlı bir sağlayıcıyı adlandırıyor.- Sağlayıcı API anahtarı Gateway işlemi tarafından kullanılabiliyor.
openclaw logs --follow, gerçek zamanlı TwiML’in sunulduğunu, gerçek zamanlı köprünün başladığını ve başlangıç selamlamasının kuyruğa alındığını gösteriyor.