İçeriğe atla
megapromotingHadi konuşalım

Uzmanlık · Sesli ajanlar

Konuşan bir ajan — sizin sayfanızda ve telefonda — ve kesintiye uğratılabilir.

Kallina üzerinde sesli ajanlar kuruyoruz: yazılı rol, onaylanmış bilgi tabanı, görüşme sırasında çağırdıkları araçlar ve konuşmayı bir insana devrettikleri bir sınır. Yeni ajanların varsayılan dili Romencedir.

Zaten kurduklarımızAşağıda alıntılanan üç kendi uygulamamız. (1) Kallina platformu — depoda bugün sayılan 472 Deno edge işlevi ve 559 veritabanı migrasyonu; `https://app.kallina.info` 200 yanıt veriyor. (2) Bu sitedeki bileşen, `src/components/agents/KallinaVoiceAgent.tsx`, doğru oturum akışını uygular ve bir ses ajanının sessizce başarısız olduğu iki modu belgeler. (3) `elevenlabs-bridge` köprüsü ve `openai-realtime-session` oturumu; kesinti ve konuşma algılama için gerçek parametreler orada durur. Söylediğimiz rezerv: telefon kısmı bir SIP host’a bağlıdır ve test hatlarımızın geçtiği host yazım tarihinde yanıt vermiyor — telefon sayfasına bakın. Web’de akış bugün doğrulanabilir.

Bizde bir sesli ajan, „bir senaryo okuyan bot” değildir. İlk aramadan önce yazılı dört şeyi vardır: bir rol, sizin onayladığınız bir bilgi tabanı, çağırmasına izin verilen bir araç seti ve konuşmayı bir insana devrettiği bir sınır. Konuşmadan çıkan şey yalnızca bir transcript değildir: aramanın süresi, sağlayıcıya göre ayrıştırılmış maliyeti, kaydı ve analizi vardır; hepsi işletme hesabına bağlıdır.

Motor tek değil ve bu bir karar, kaza değil. Ajan yapılandırmasında ElevenLabs Conversational AI, OpenAI Realtime ve Gemini Live arasında seçersiniz ya da “auto” bırakırsınız ve platform dil, yük ve kullanılabilirliğe göre seçer. Bunun üstünde, ayrı olarak metinsel beyni seçersiniz; her modelin gecikme süresi ve dakika başına maliyeti arayüzde gösterilen bir katalogdan. Birisi „neden yavaş cevap veriyor” diye sorduğunda, cevap görüş değil, rakamlardır.

İnsanların en çok hissettiği kısım kesmedir. OpenAI Realtime’de konuşma algılama semantiktir, eşik 0,5’tir, konuşmayı bitirdiğinizi saymak için öncesinde 300 ms yastık ve 500 ms sessizlik vardır; „kesintilere izin ver” anahtarı varsayılan olarak açıktır. ElevenLabs’te kesme olayı anında yayını durdurması için telefon santraline iletilir. Ajanın sessizliğinizi ne kadar sonra bir yanıt saydığı ise ajan bazında yapılandırılabilir — bizim yazdığımız bir satış ajanında bu 12 saniyeye sıkıdır, varsayılan 15’e karşılık.

Ajan iki farklı yerde, farklı kısıtlarla yaşar. Web sayfasına tek bir script satırıyla ya da kendi bileşeniyle girer ve altın kural, sayfanın asla ajan kimliğini ve hiçbir sağlayıcı anahtarını tutmamasıdır — platformdan bir oturum ister ve kısa süreli imzalı bir URL alır. Telefonda SIP trunk üzerinden girer ve orada kısıtlar ajanın değil, operatörün ve santralindir; bunun hakkında ayrı olarak, telefon sayfasında yazıyoruz.

Moldova Cumhuriyeti'nde AI sesli ajanlar — nasıl çalışır, somut olarak · Rumence video, Türkçe altyazı ve deşifre metniyle

Tam döküm

Tamam, doğrudan konuya geçelim. Bugün, sesli ajanların iş ortamında gerçekten nasıl çalıştığına dair son derece hassas bir teknik analiz yapıyoruz. Tamamen, Moldova Cumhuriyeti’nde bizzat MEGA PROMOTING S.R.L. tarafından geliştirilmiş Kallina platformu mimarisine dayanacağız. Pazarlama dili yok, şişirilmiş vaatler yok; sadece gerçekler, saf altyapı ve elbette operasyonel gerçeklik. Net süreçlere dayanan ve bir işi yöneten herhangi bir ekip için, kaputun altındaki teknolojiyi anlamak, dürüst olmak gerekirse, kesinlikle vazgeçilmezdir. Bugün çok metodik bir ilerleyişimiz var. Altı noktadan geçiyoruz. Önce problemi ele alıyoruz, sonra çalışma mekanizmasını, ardından bir başarısızlığın anatomisini, motorlar ve kesintiler bölümünü, teknik sınırları ve son olarak da bir sonraki adımı. Sisteme tamamen şeffaf bir bakış bu. Öyleyse, ilk bölüm, sorun, zaman ve talepler. Tam olarak nereden başladığımıza bakalım. Operasyon yöneticilerinin geceleri uyuyamamasına yol açan tam da bu soru.

Operasyonel zaman tam olarak nerede kayboluyor ve çok önemli olarak, her gün kaç doğrulanmamış talep ortadan kayboluyor. Sıradan bir şirkette zaman, kaçırılan çağrılar, zamanında ele alınmayan talepler ve, şey, sonradan doğrulanamayan her türden etkileşim arasında adeta buharlaşıp gider. Ve bu sadece küçük bir rahatsızlık meselesi değil. Optimize edilmemiş bir iş akışında her gün kaybolan dev bir operasyonel kaynaktan söz ediyoruz. İkinci kısma, mekanizmaya, nasıl çalıştığına geçiyoruz. Hadi platformun gerçek mühendisliğine girelim. Şu sayıya biraz bakın, 472. Bu, şu anda platformu ayakta tutan tam yeni Edge işlevlerinin sayısı. Yani açıkça, bir hafta sonu prototipinden ya da sadece dışarıdan hoş görünen bir ön yüz arayüzünden bahsetmiyoruz. Bu, son derece karmaşık rota ve iş mantıklarını yönetmek için tasarlanmış gerçek bir sunucudaki devasa bir altyapı.

Ve olgunluk seviyesini vurgulamak için, Supabase üzerinden barındırılan PostgreSQL altyapısında tam 559 temel veritabanı migrasyonu var. Bu rakamlar bize satır düzeyinde uygulanmış güvenlik politikalarına sahip süper sağlam bir temel gösteriyor. Pratikte bu, ölçeklenmek ve verileri kusursuz bir düzende tutmak için kurulmuş bir sistem. Şimdi, bir web ajanında işlem sırasının nasıl göründüğüne bakın, çünkü bu detay gerçekten müthiş. 1. adımda sayfa mikrofona erişim ister. 2. adımda ziyaretçinin kabul etmesi gerekir. Ve ancak 3. adımda, kısa bir süre için geçerli, imzalı bir URL geri alınarak bir oturum açmak üzere sunucuya istek gönderilir. Bu neden bu kadar önemli bir stratejik hamle? Basit: 2. adımda mikrofon reddedilirse sistem ilerlemez. Matematiksel olarak bu, tüketilen 0 dakika ve hayali oturumlar için çöpe atılan 0 para demek.

3. bölüm muhtemelen en sevdiğim kısım. Bir başarısızlığın anatomisi. Çünkü hiçbir şey, tam şeffaflık kadar güven inşa etmez, değil mi? Şu kâbus gibi durumu hayal edin. Bir web sayfasına bir sesli ajan entegre edilmişti, ama butona bastığınızda kesinlikle hiçbir şey olmuyordu. Ses yok, uyarı mesajı yok, geliştirici konsolunda hata yok. Tam bir sessizlik. Deneyimli bir teknisyen için bile böyle bir arızanın ilk bakışta yerini tespit etmek imkânsız görünüyordu. Neden? Çünkü hiçbir hata kaydı yoktu. Tamamen sessiz bir başarısızlık. Daha derine inildiğinde, teknik analiz tamamen görünmez iki düşmanı ortaya çıkardı. İlk olarak, sunucu mikrofon kullanımını tamamen yasaklayan bir başlık gönderiyordu. Tarayıcı, itaatkâr olduğundan, kurala uyuyor ve isteği reddediyordu, ama bunu görsel arayüzü uyarmadan yapıyordu. İkinci olarak, sayfaya statik olarak bir ses bileşeni import edilmişti.

Dosya basitçe bulunamıyordu ve 404 hatası dönüyordu. Bu yüzden, tüm betik arka planda sessizce çöküyor ve sonraki tüm yapılandırmaları engelliyordu. Ama çözümün ne kadar zarif olduğuna bakın. Sorun, açıkça AI’da değil, doğrudan ağdaydı. Sunucu başlığı, kendi kaynağından mikrofona izin verecek şekilde değiştirildi, bakın orada, düzeltilmiş durumda, ve kod importu tam olarak butona basma eyleminin içine taşındı. Hata tamamen ortadan kalktı. Şimdi, biri butona basarsa ve mikrofon tarayıcı tarafından engellenirse, başarısızlık artık sessiz değil. Hemen, neyi değiştirmeniz gerektiğini tam olarak açıklayan, Rumence açık bir mesaj görünür. Bu, olumsuz sürprizleri tamamen ortadan kaldıran, akıllıca yapılmış mühendislik demek. Dördüncü bölüme geçiyoruz, motorlar, diller ve kesintiler. Şimdi bu sistemin tam olarak neler yapabildiğini inceleme zamanı. Burada öznel görüşleri bir kenara bırakıp sadece milisaniyelerle konuşuyoruz.

Flash modelini ElevenLabs'ten kullandığınızda gecikme sadece 75 milisaniyedir. Bir fikir vermek gerekirse, insan kulağı için bu pratikte anlıktır. Öte yandan, Turbo modelinin sunduğu gibi mutlak premium bir ses kalitesi istiyorsanız, gecikme yaklaşık 250 milisaniyeye çıkar. Bir telefon görüşmesinde her milisaniye kritiktir ve platform, şirketin operasyonel ihtiyaçlarına sıkı sıkıya bağlı olarak tam olarak hangi motoru istediğinizi seçmenize izin verir. Sık duyduğumuz çok yaygın bir soru şu: Tamam, ama ajan konuşurken onu bölebilir miyim? Cevap kesin bir evet, sadece mekanizma farklıdır. Örneğin, OpenAI Realtime'da algılama semantiktir. 0.5'te sabitlenmiş bir eşik ve 300 milisaniyelik teknik bir güvenlik tamponu vardır. Buna karşılık, ElevenLabs için, bir kesinti devreye girer girmez, bir olay sesi anında kesmek için doğrudan telefon santraline, yani PBX sistemine gönderilir. Dahası, ajanın kendi sırasını beklemeden önce beklediği sessizlik süresi çok ince ayarlanabilir.

Mesela, varsayılan 15 değeri yerine 12 saniyeye çekilebilir; bu da konuşmayı çok daha doğal ve hızlı hale getirir. Desteklenen diller açısından bakıldığında, ajanın resmi yapılandırması 32 farklı dili başarıyla destekler. Ama burada bizim için son derece önemli bir operasyonel nokta? Romence dili, bu platformda yeni oluşturulan tüm ajanlar için varsayılan olarak ayarlanmıştır. Beşinci bölüme, teknik sınırlamalar ve sorumluluklara geldik; çünkü bazen doğru beklentilere sahip olmak için bir sistemin ne yapamayacağını bilmek de en az onun kadar önemlidir. Çok net bir çizgi çekelim. Ajan harici işlevleri çalıştırabilir, sunucu üzerinde dahili araçları doğrudan tetikleyebilir ve çağrıyı hiçbir sorun olmadan bir insan meslektaşa aktarabilir. Ama sistem, ajanların sıkı şekilde düzenlenen alanlarda doğaçlama yapmasını yasaklar. Biraz düşünün. Mevzuatın son derece sıkı olduğu yerde doğaçlama yapmaya başlayan bir ajan, şirket için devasa bir risk haline gelir; kesinlikle bir avantaj değil.

Dahası, belirli bir süre sonunda verilerin otomatik olarak silinmesi gibi şeyler, bir menüdeki basit işaretler değildir. Bunlar, kuruluş tarafından özel olarak uygulanması gereken ayrı usul projeleridir. Öte yandan güvenlik, mutlak bir titizlikle ele alınır. Ajanları barındıran web sayfaları yalnızca sözünü ettiğimiz imzalı URL’yi alır. Hiçbir zaman, ama kesinlikle hiçbir zaman, çalınıp şirketin parasıyla kullanılabilecek bir ajan ID’si ya da bir API anahtarı almazlar. Ses tarafında ise telefon hizmeti, işlevsel bir harici SIP trunk’a %100 bağlıdır ve mevcut sınırlamalar konusunda tamamen şeffaf olmak için söyleyelim, test amaçlı harici SIP hatları şu anda yanıt vermiyor. Bu, teknik gerçekliğin her zaman ilk sırada olduğunu, ticari tartışmaların ötesinde, gösteren mühendislerden son derece dürüst bir yaklaşımdır. Ve işte altıncı bölüme, aynı zamanda son bölüme ve süreçteki bir sonraki adıma geldik.

Bundan sonra tüm bu bilgilerle ne yapıyoruz? Bu teknik incelemenin tamamı, çalışma akışlarınızın son derece nesnel bir değerlendirmesine bizi götürmelidir. Asıl mesele bu. Kuruluşun içindeki hangi operasyonel süreç aslında daha verimli çalışmaya ihtiyaç duyuyor? Yapay zekâyı sadece moda diye uygulamıyoruz, değil mi? Amaç, bir voice agent’ın mantıklı biçimde entegre olabileceği, ölçeklenebileceği ve en yüksek güvenlik koşullarında çalışabileceği tam o doğru yeri belirlemektir. Son bir not olarak, burada Chișinău’daki MEGA PROMOTING S.R.L. şirketinin operasyonel koordinatları, IDNO ve web adresi dahil, sizde var. Bu, halihazırda işinizde kullandığınız sistemlere bu karmaşık yapıların nasıl entegre edilebileceğini netleştirmeye yönelik, tamamen teknik bir görüşme içindir. Herhangi bir karardan önce, hepimizin üzerinde düşünmesi için kışkırtıcı bir soru bırakırdım. Acaba şirketlerimizdeki mevcut müşteri yönetimi süreçleri, bu sistemin geçtiği kadar sert ve şeffaf bir teknik analize gerçekten dayanabilir mi? Sürekli yenilikle tanımlanan bir pazarda, yalnızca olgulara ve sayılara dayalı bir bakış, elimizde bulunan en güçlü araç olmaya açık ara devam ediyor. Bir sonraki sefere!

Neleri kapsıyor

Çalışma, bileşenlerine ayrılmış hâliyle

Oturum platformdan istenir, ses sağlayıcısından değil

Sayfa `POST /functions/v1/widget-voice-session` ile widget’ın genel kimliğini gönderir ve karşılığında imzalı bir URL alır. Asla ajan kimliğine ve hiçbir anahtara sahip değildir. Yanlış sürüm — HTML’de doğrudan `startSession({ agentId })` — oturum, kredi ve platform günlüğü katmanını tamamen atlar ve ajanı sayfa kaynağını açan herkese ifşa eder. Devraldığımız her uygulamada ilk kontrol budur.

Mikrofon oturumdan önce istenir, dolayısıyla bir ret hiçbir şeye mal olmaz

Sıra sabittir ve önemlidir: mikrofonu `getUserMedia({audio:true})` ile isteyin ve ancak kişi kabul ederse oturumu isteyin. Ziyaretçi reddederse, hiçbir imzalı URL üretilmez ve hiçbir dakika tüketilmez. Mikrofon isteği, herhangi bir beklemenin jesti aşabileceği bir gecikmeden önce, düğme basışının içinde yapılır — aksi halde tarayıcı isteği yok sayar.

Ajan kesilebilir ve bu rakamlarla ayarlanır

OpenAI Realtime’de: semantik konuşma algılama, eşik 0,5, 300 ms yastık, 500 ms sessizlik, kesintilere varsayılan olarak izin verilir. ElevenLabs’te: `interruption` olayı yayını kesmesi için santrale iletilir. Bunun üstünde, ajan başına `turn_timeout` ajanın kaç saniye sessizlikten sonra sıranın kendisine geldiğine karar vereceğini belirler — varsayılan 15 saniye, bir satış ajanında 12’ye sıkılır. Ve bir müşterinin bildirdiği „onu kesemiyorum” çoğu zaman eşiklerden başka bir nedene sahiptir: fazla uzun yanıtlar. Onu promptta ve token üst sınırında çözeriz, konuşma algılamada değil.

Konuşma sırasında araçları çağırın

Ajan bildiklerinin içine kapalı değildir. Konuşurken sunucu üzerinde işlevleri çağırabilir — bir uygunluğu okumak, bir rezervasyon yazmak, bir SMS göndermek veya bir katalog sorgulamak için. Araçlar, her ajan için ayrı ayrı, tiplenmiş parametrelerle ve kendi yürütme süresiyle tanımlanır; böylece yavaş bir araç konuşmayı engellemez.

İnsana devretme senaryonun bir parçasıdır, istisna değil

Mesajlaşmada, bir meslektaşa devralma akış üzerinde kendi durumuna sahiptir — `handoff_status`, devralma anı, neden, kimin atanmış olduğu, çözüm notları — 619 satırlık özel bir modülde uygulanmıştır. Telefonda, aktarma santral tarafından yapılır: `##` ile kör aktarım ve `*2` ile destekli aktarım, çağrının bunun için yazılmış bir dialplan bağlamına düşmesiyle. Bunlar iki farklı kanal olduğu için iki farklı mekanizmadır; ikisini de senaryoda yazarız.

Motor ve ses açıkça seçilir, varsayılan olarak değil

Dört sağlayıcı konumu: `elevenlabs`, `openai-realtime`, `gemini-live` ve `auto`. İngilizce dışındaki dillerde ses sentezi için varsayılan `eleven_flash_v2_5` — 32 dil, yaklaşık 75 ms; daha iyi kalite sürümü `eleven_turbo_v2_5`, yaklaşık 250 ms. OpenAI Realtime üzerinde on ses ve `gpt-realtime-2.1` seviyesine kadar motorlar vardır. Seçim, tahminimiz değil, ajan yapılandırmasındaki bir alandır.

Diller

Ajan yapılandırması 32 dili destekler, platformun iç dil haritasında 41 giriş vardır ve yönetim paneli 20 dile çevrilmiştir. Bunlar üç farklı şey için üç sayıdır ve birbirine karıştırılamaz. Romence, yeni bir ajanın varsayılan dilidir.

Aramadan sonra geriye kalan

Transkript, ses kaydı, süre, sağlayıcıya göre ayrıştırılmış maliyet, ayrıca arama sonrası bir analiz ve müşteri hafızası için oluşturulan kısa bir konuşma özeti. Analiz başlı başına bir amaç değildir: ajanın gerekeni yapıp yapmadığına ya da senaryoda bir boşluk olup olmadığına dair karar bunun üzerine kurulur.

Tüketim işlemden önce kontrol edilir, faturada değil

Maliyet gerektiren herhangi bir işlemden önce platform mevcut krediyi kontrol eder ve tüketim sağlayıcıya ve ajana göre ayrıştırılarak yazılır. Kapı aramanın önündedir. Pratikte: bir döngüye düşmüş bir ajan, bir sınıra çarpmadan sonsuza kadar tüketemez.

Nasıl görünüyor

Süreç, adım adım.

01

Tek bir yol seçer ve sınırlarını yazarız

Net bir giriş ve net bir çıkışa sahip bir senaryo: resepsiyonda alınan çağrı, sipariş onayı, uygunluk kontrolü. Ajanın ne yapamayacağını, ne söyleyemeyeceğini ve konuşmayı hangi yolla bir insana devredeceğini açıkça yazarız. Yazılı sınırları olmayan bir ajan daha yetenekli değildir, sadece daha öngörülemezdir.

02

Ajanı kuruyoruz: rol, bilgi, araçlar, sınırlar

Prompt, sizin onayladığınız bilgi tabanı, çağırabileceği araçlar ve konuşma eşikleri — sağlayıcı, ses, metin modeli, sessizlik süresi, kesintide davranış. Sonunda bir demo değil, yapılandırılmış bir ajanımız olur.

03

Onu kanala koyuyor ve dakika tüketmeden yolu kontrol ediyoruz

Web’de: başlangıç ve durdurma API’sinin üzerine tek satırlık bir script ya da özel bir bileşen. Bir tarayıcının tam yolunu izleyen bir script vardır — yapılandırma satırı, widget yapılandırması, oturum isteği — ve ses bağlantısını açmadan imzalı URL’de durur. Bir widget üzerinde ya da hepsinde çalışır, çıkış kodu döner, dolayısıyla planlı bir kontrolde yer alabilir. Telefonda: numara trunk’a girer ve gelen ile giden çağrılar ayrı ayrı test edilir, çünkü ayrı ayrı bozulurlar.

04

Ne çıktığını ölçüyor ve senaryoyu düzeltiyoruz

İlk gerçek konuşmalardan sonra izlenimleri değil, transkriptleri ve arama sonrası analizi okuruz. En sık düzelttiğimiz şey model değil, yanıtların uzunluğu ve senaryonun sınırlarıdır — aynı gün, prompt içinde değişen iki şey.

IntrareVerificareDeciziePublicareHiçbir şey doğrulanmadan ilerlemez.DÜZEN ARGÜMANDIR
Bir konuşmanın akışı: sayfa mikrofonu ister, platform imzalı bir oturum yayımlar, agent konuşur ve kesintiye uğratılabilir, bir araç çağırır, ve rolünü aşan şey bir insana devredilir.

Veriler

Neye dokunuyoruz, nerede duruyorlar ve ne kadar kalıyorlar

Veri koruma sorumlusu olan herkesin soracağı sorular — o sormadan önce burada sorulmuş hâliyle.

Verilerin nerede bulunduğu
Kendi altyapımızda barındırılan Supabase üzerinden PostgreSQL, 559 sürümlenmiş migrasyonla; bunların 195’i Row Level Security politikalarına dokunur. Dosyalar — kayıtlar, bilgi belgeleri, ses örnekleri — ayrı depolarda tutulur; yol, çalışma alanı tanımlayıcısıyla başladığı için yalıtım yalnızca sorguda değil, yapının içinde olur.
Sayfanıza asla ulaşmayan şey
Ses sağlayıcısının anahtarı ve ajanın tanımlayıcısı. Sayfa yalnızca platform tarafından verilen, kısa süreli, imzalı bir URL alır. Pratik sonuç: sayfanızın kaynağını okuyan biri ajanınızı sizin hesabınıza kullanamaz.
Bir aramadan ne kaydedilir
Ses, transcript, süre, arayan numara, arama sonucu ve sonrasında yapılan analiz. Ajanın müşteriyi aramalar arasında hatırladığı durumlar için, önceki konuşmanın kısa bir özeti de kaydedilir. Hepsi bir çalışma alanına bağlıdır; müşteriler arasında ortak bir depo yoktur.
İstek üzerine silme vardır; süre dolunca otomatik silme henüz yok
Bunu olduğu gibi söylüyoruz, çünkü bu bir vaat ile bir özellik arasındaki farktır. İstek üzerine silme uygulanmıştır: özel bir işlev, dosya deposundaki nesneleri siler, veritabanındaki silme yordamını çağırır ve oturumları geçersiz kılar; ayrıca veri dışa aktarma ve arama verileri için ayrı bir işlev vardır. Uygulanmamış olan: çalışma alanı başına yapılandırılabilir saklama süreleri. Bunlar Nisan ayındaki bir iç belgede tasarlanmıştır, ancak yapılandırma sütunu hiçbir migrasyonda görünmez — yani bugün süre sonu silme saatle değil, yordamla yapılır. Projenizin otomatik silmeye ihtiyacı varsa, bu bir iş kalemi olarak girer, ayar olarak değil.
Kimin bir ajanla konuştuğu bildiriliyor
Muhatabın otomatik bir sistemle konuştuğuna dair bildirim, görüşmenin kaydedilmesinin dayanağı ve aramanın başında okunan metin sizinle birlikte belirlenir ve senaryoya girer. Bunlar teknik bir ayar değildir: veri sorumlusunun, yani sizin kararınızdır.

Bir vaka

Hiçbir şey yapmayan düğme — ve üstelik hata da vermeyen

Durum

Bir web sayfasına yerleştirilmiş sesli ajan. Basınca kesinlikle hiçbir şey olmuyordu: ses yok, mesaj yok, aceminin görebileceği bir konsol hatası yok. Bu tür bir kusur, “çalışmıyor” diye raporlanır ve bir gün boyunca yanlış yerde aranır.

Ne kurduk

Nedenler iki taneydi ve ikisi de doğaları gereği sessizdi. Birincisi: sunucunun `Permissions-Policy` başlığı `microphone=()` içeriyordu ve tarayıcı, kullanıcı için görünür bir şey çıkarmadan mikrofon isteğini reddediyor. İkincisi: ses SDK’sı statik olarak içe aktarılıyordu ve statik içe aktarmada 404 döndüren bir modül tüm betiği çökertir — dolayısıyla yapılandırma isteği de onunla birlikte ölüyordu; bu da kusurun tam olarak “hiçbir şey olmadı” gibi görünmesine neden olur. SDK içe aktarmasını düğmeye basma işleminin içine taşıdık, mikrofon isteğini oturum isteğinden önce koyduk ve sunucu başlığını `microphone=(self)` olarak yazdık; içerik politikası SDK’nın dağıtım ağını açıkça izinli kılar.

Ne çıktı

Bugün bu sitede üretimde sunulan başlık `camera=(), microphone=(self), geolocation=(self)` ve içerik güvenlik politikası SDK kaynağını açıkça listeliyor. Bir hata artık sessiz değil: mikrofonun reddi, neyin değiştirilmesi gerektiğini söyleyen Romence bir mesaj üretir; reddin maliyeti yoktur, çünkü oturum zaten hiç istenmez.

Vakanın söylemedikleri

İki neden altyapı kaynaklıdır, ajana ait değildir. Eğer siteniz başka biri tarafından sunuluyorsa ve başlıklar bizim kontrolümüzde değilse, bunların doğrulanması işin sonunda bir sürpriz değil, başlangıç koşulu olur.

Sorular

İnsanların aramadan önce bize sordukları

Somut olarak neyle konuşuyor? Arkada hangi motor var?

ElevenLabs Conversational AI, OpenAI Realtime ve Gemini Live arasında seçim yaparsınız ya da “auto” bırakırsınız ve platform dili ile kullanılabilirliğe göre seçer. İngilizce dışındaki diller için ses sentezinde varsayılan `eleven_flash_v2_5`tir — 32 dil, yaklaşık 75 ms; daha yüksek kalite isteyip daha fazla gecikmeyi kabul ederseniz, `eleven_turbo_v2_5` yaklaşık 250 ms’dir. OpenAI Realtime üzerinde on ses vardır ve motor `gpt-realtime-2.1`e kadar gider. Metin beyni ayrı seçilir; her modelin gecikmesi ve dakika başı maliyeti yanında yazılı olduğu bir katalogdan.

Konuşurken onu bölebilir miyim, yoksa bitirmesini mi beklemeliyim?

Evet. OpenAI Realtime’da konuşma algılama semantiktir, eşik 0,5, 300 ms tampon ve 500 ms sessizlikle çalışır; kesme anahtarı varsayılan olarak açıktır. ElevenLabs’ta kesme olayı, çalmayı durdurması için telefon santraline gönderilir. Yine de “onu bölemiyorum” hissi varsa, neden genellikle başkadır: ajan cümlelerle değil, paragraflarla yanıt veriyordur. Bu, eşiklerde değil, promptta ve token sınırında düzeltilir.

Kaç dil konuşuyor?

Agent yapılandırması 32 dili destekler. Platformun dahili dil haritasında 41 giriş vardır, yönetim paneli ise 20 dile çevrilmiştir — üç farklı şey için üç sayı. Romence, yeni bir ajanın varsayılan dilidir. Belirli bir dil için önce hangi ses modeli ve sağlayıcı kombinasyonunun onu gerçekten kapsadığını kontrol ederiz, çünkü tüm modeller aynı dilleri kapsamaz.

Web siteme nasıl gelir ve bende neyi değiştirmem gerekir?

Widget’ın herkese açık tanımlayıcısını içeren bir script satırı ya da `start()` / `stop()` / `toggle()` üstündeki kendi bileşeniniz. Sunucunuzda iki şey doğru olmalıdır, aksi halde düğme hiçbir şey yapmaz ve hiçbir hata görünmez: `Permissions-Policy` başlığı `microphone=(self)` için izin vermelidir — `microphone=()` ile tarayıcı mikrofonu sessizce reddeder — ve içerik güvenlik politikası SDK’nın kullanılan dağıtım ağından yüklenmesine izin vermelidir. Bunları yayına almadan önce biz kontrol ederiz.

Sadece cevap vermekle kalmayıp ilk o arayabilir mi?

Evet, platformda toplu arama, kişi içe aktarma, yeniden deneme ve gerçek zamanlı izleme vardır. Ancak dış aramalar yalnızca bize bağlı değildir: sorun kaydımızda, operatör santralinin tüm çıkışlarda `403 Forbidden` döndürmeye başladığı, bizim yapılandırmamız değişmemişken ve gelen aramalar normal çalışırken görülen bir vaka belgelenmiştir. Bu nedenle bir arama kampanyası vaat etmeden önce çıkışları ayrı test ederiz ve bu testten önce belirli bir dış arama hacmi satmayız.

Ajan cevabı bilmiyorsa ne olur?

Devreder. Her ajanın yazılı sınırları ve yapılandırılmış bir aktarım yolu vardır. Mesajlaşmada akış, neden ve bir iş arkadaşa atama ile insan devralma durumuna geçer. Telefonda santral, kör ya da destekli aktarımı bir dahili hatta veya dış numaraya yapar. Ajanın rolünü aşan şey durdurulur, doğaçlama yapılmaz; bu bir tasarım tercihidir, çünkü düzenlemeye tabi bir alanda doğaçlama yapan bir ajan risk oluşturur, tasarruf değil.

Konuşmalar kaydediliyor mu? Ne kadar süre saklanıyor?

Evet, kaydedilir, yazıya dökülür ve analiz edilir; hepsi çalışma alanınızla bağlantılıdır. Ne kadar süre saklanacağı, size dayattığımız varsayılan bir değer değil, veri sorumlusu olarak sizin kararınızdır — ve açıkça söylemek gerekir ki, süre sonunda otomatik silme bugün platformda basit bir ayar değildir: isteğe bağlı silme uygulanmıştır, süre sonunda silme prosedürle yapılır. Otomatik bir saate ihtiyacınız varsa, proje içinde inşa edilir.

Ziyaretçi düğmeye basıp sonra mikrofonu reddederse para harcanır mı?

Hayır. Mikrofon oturumdan önce istenir. Kişi reddederse, oturum isteği hiç yapılmaz; dolayısıyla imzalı URL oluşturulmaz ve hiçbir şey tüketilmez. Ayrı olarak, maliyet oluşturan herhangi bir işlemden önce platform kullanılabilir krediyi kontrol eder — gate aramadan önce vardır, ay sonu faturasında değil.

Bugün bir sabit telefon numarasını yanıtlayan bir ajanım olabilir mi?

Ajan olmayan bir parçaya bağlıdır: aramanın içinden geçtiği SIP ana makinesi. Ajan tarafı hazırdır ve sayfada hemen gösterilebilir. Telefon tarafı, operatörden çalışan bir trunk ve yanıt veren bir santral ister; yazım tarihinde test hatlarımızın geçtiği ana makine yanıt vermiyor ve sizin önünüzde başlatamadığımız bir şeyi kullanılabilir olarak sunmuyoruz. Gerçek bir proje için telefon altyapısı ayrı boyutlandırılır — telefon ve contact center sayfasına bakın.

Yukarıdaki iddialar neye dayanıyor (21 kaynak)
  1. app.kallina.info bugün 200 döndürüyor; supabase.kallina.info edge fonksiyonlarına yanıt veriyorhttps://app.kallina.info/ · 2026-09-06
  2. Bugün megapromoting.com'da üretimde sunulan başlıklar mikrofona ve SDK kaynağına izin veriyorhttps://www.megapromoting.com/ · 2026-09-06

Bunlardan 19 tanesi depolarımızdaki kod ve dosyalardır. Adlarını ya da satırlarını yayımlamıyoruz: hepsi bir arada, tek bir sayfada, yalnızca bize ait olmayan sistemlerin nasıl kurulduğunu fazla net anlatırdı. İstek üzerine, depoda sizinle birlikte gözden geçiriyoruz — doğrulama hâlâ mümkün, sadece bir görüşme içinde yapılıyor.

Neyin daha iyi çalışmasını isterdiniz?

Bize sürecinizi anlatın. Neyin kurulmaya değer olduğuna, neyi bağlayabileceğimize ve sonucu nasıl doğrulayacağımıza birlikte karar verelim.

Hadi konuşalım