Web Messenger üzerinden yapılan karşılıklı sesli agent görüşmelerinde mikrofon, bağlantı ve ses aktarımı sorunlarını adım adım inceleme rehberi.
Bu doküman, tarayıcı içindeki Sesli Asistan görüşmelerinde yaşanan sorunları incelemek için ortak kontrol adımlarını içerir. Menü adları tarayıcının diline ve sürümüne göre farklı görünebilir; örnek adımlar Chrome üzerinden anlatılmıştır.
Temel kontrol: Yazılı sohbetin çalışması, voice bağlantısının da çalıştığı anlamına gelmez. Mikrofon erişimi, iki ayrı voice WebSocket bağlantısı, sesli sohbet odasına katılım ve iki yönde ses aktarımı ayrı ayrı doğrulanmalıdır.
1. Sesli görüşme nasıl çalışır?
- Kullanıcı Web Messenger içindeki Sesli Asistan ekranını açar ve Görüşmeyi Başlat düğmesine basar.
- Tarayıcı gerekli mikrofon iznini ister. Kullanıcı doğru mikrofonu seçer ve erişime izin verir.
- Voice için gerekli bağlantılar kurulur ve kullanıcı sesli sohbet odasına katılır.
- Kullanıcının sesi işlenir; agent yanıtı tarayıcıdan duyulur. Görüşme boyunca bağlantıların ve ses aktarımının devam etmesi gerekir.
Başarı ölçütü: Arayüzde Bağlandı görünmesine ek olarak kullanıcının konuşmasının agent tarafından anlaşılması ve agent yanıtının kullanıcıya duyulması gerekir.
2. Hızlı kontrol ve belirtiye göre yönlendirme
| Belirti | İlk kontrol | İlgili adım |
|---|---|---|
| Mikrofon izni görünmüyor veya erişim reddediliyor. | Site izni, işletim sistemi izni, HTTPS ve kurumsal tarayıcı politikası. | Mikrofon izinleri |
| Görüşmeyi Başlat sonrası bağlantı kurulamıyor. | Console hataları ve her iki voice WebSocket isteği. | WebSocket incelemesi |
| Yazılı sohbet çalışıyor, voice çalışmıyor. | Voice alan adları için ayrı ağ erişimi; mikrofon ve oda bağlantısı. | Kurumsal ağ |
| Bağlandı görünüyor fakat agent kullanıcıyı duymuyor. | Doğru giriş aygıtı, mute durumu ve giden ses aktarımı. | Ses aktarımı |
| Agent yanıt veriyor gibi görünüyor fakat ses duyulmuyor. | Hoparlör/kulaklık, sekme sesi, oynatma izni ve gelen ses aktarımı. | Ses aktarımı |
| Görüşme bir süre sonra kesiliyor. | Kopma zamanı, WebSocket kapanışı, VPN/proxy zaman aşımı ve ağ değişikliği. | Console / Ağ |
| Yalnızca kurumsal cihazda veya VPN üzerinde oluşuyor. | İzin verilen karşılaştırmalı test ve güvenlik ürünü günlükleri. | Karşılaştırmalı test |
3. Mikrofon ve ses çıkışı izinleri
3.1. Tarayıcı mikrofon izni
- Messenger'ın bulunduğu gerçek web sayfasını açın ve Görüşmeyi Başlat'a basın.
- Mikrofon izni penceresinde kullanılacak aygıtı seçin. Tarayıcının diline göre “Siteyi ziyaret ederken izin ver” veya “Bu sefer izin ver” gibi seçenekler görünebilir. Mikrofon kullanımına izin veren seçeneği kullanın; engelleme seçeneği görüşmede mikrofon erişimini önler.
- İzin önceden engellendiyse adres çubuğunun yanındaki site bilgileri/izinler menüsünden Microphone / Mikrofon ayarını kontrol edin. Gerekirse site ayarlarını açarak izni değiştirin ve sayfayı yeniden yükleyin.
- İznin hangi site kökeni için istendiğini kontrol edin. Paylaşılan örneklerdeki
public.jetlink.iobir test sayfasıdır; kendi kurulumunuzda izin isteyen köken farklı olabilir.
3.2. İşletim sistemi ve aygıt kontrolü
- Windows: Ayarlar → Gizlilik ve güvenlik → Mikrofon bölümünde mikrofon erişimini ve tarayıcı gibi masaüstü uygulamalarının erişimini kontrol edin. Sürümüne göre menü adları değişebilir.
- macOS: Sistem Ayarları → Gizlilik ve Güvenlik → Mikrofon bölümünde ilgili tarayıcının iznini kontrol edin.
- Tarayıcıda seçilen mikrofonun gerçekten kullanılan aygıt olduğundan emin olun. İşletim sisteminin giriş seviyesi göstergesinde konuşurken hareket görülmelidir.
- Kulaklığın fiziksel mute düğmesini ve görüşme ekranındaki mikrofon durumunu kontrol edin. Bluetooth bağlantısı veya dock değişikliği seçili aygıtı etkileyebilir.
- Aygıt başka bir uygulama tarafından kullanılamaz hale getiriliyorsa ilgili uygulamayı kapatıp yeniden deneyin. İzin değişikliği sonrası gerekirse tarayıcıyı yeniden başlatın.
- Çıkış aygıtı, sistem ses düzeyi ve sekmenin sessize alınma durumunu ayrıca kontrol edin.
3.3. Sayfa ve entegrasyon kontrolleri
Üretim sayfası güvenli bir bağlamda, normalde HTTPS üzerinden çalışmalıdır. İframe kullanılan entegrasyonlarda üst sayfanın Permissions-Policy ayarı ve iframe izinleri mikrofon erişimini kısıtlayabilir. İzin isteyen gerçek köken için politika kontrol edilmelidir. Kurumsal tarayıcı politikası mikrofonu engelliyorsa ilgili kurumsal politika kontrol edilmelidir.
4. Hata kaydını hazırlama
Bağlantı sorununu yeniden üretmeden önce geliştirici araçlarını açın. Sonradan açılan Network panelinde başlangıç bağlantıları eksik kalabilir.
- Chrome/Edge'de F12 veya Ctrl+Shift+I; macOS'ta Cmd+Option+I ile geliştirici araçlarını açın.
- Network sekmesinde kaydın açık olduğunu doğrulayın, Preserve log seçeneğini açın ve ağ kısıtlamasını No throttling yapın.
- Console sekmesinde Preserve log'u açın. Metin filtrelerini temizleyin ve tüm log seviyelerini gösterin. İframe varsa ilgili çalışma bağlamını da inceleyin.
- Mevcut kayıtları temizleyin, sayfayı yeniden yükleyin ve görüşmeyi başlatın. Hatanın tarihini, saatini ve saat dilimini kaydedin.
- Kişisel veri içermeyen kısa bir test cümlesi söyleyin. Hatanın izin aşamasında mı, oda bağlantısında mı, yoksa konuşma sırasında mı oluştuğunu not edin.
İlk hatayı ve onu izleyen olayları birlikte inceleyin. Örneğin mikrofon izni reddedildikten sonra gelen bağlantı hatası, asıl sorunun sonucu olabilir.
5. WebSocket bağlantılarını inceleme
5.1. Kontrol edilecek bağlantılar
| Bağlantı | Kontrol |
|---|---|
wss://voice-api-transcribe.jetlink.io | Voice için gerekli bağlantılardan biri. Başarıyla kurulmalı ve ilgili oturum trafiği aktarılabilmelidir. |
wss://voice-api.jetlink.io/ | Voice için gerekli diğer bağlantı. Başarıyla kurulmalı; oda bağlantısı ve görüşme akışı ayrıca doğrulanmalıdır. |
Bu adresler sunucu kökenlerini gösterir. Uygulama gerçek istekte ek yol ve oturum parametreleri kullanabilir. İnceleme için Messenger'ın oluşturduğu gerçek isteği kullanın. Adresi tarayıcı çubuğunda açmak veya kimlik doğrulamasız manuel WebSocket denemesi yapmak görüşmenin çalıştığını kanıtlamaz.
5.2. Network → Socket / WS kontrolü
- Network panelinde Socket veya tarayıcı sürümüne göre WS filtresini seçin.
- Her iki voice alan adını bulun. Alan adı sütunu görünmüyorsa isteğin Headers → Request URL alanını kontrol edin.
- Her istekte bağlantı durumunu ayrı kaydedin. HTTP/1.1 WebSocket el sıkışmasında 101 Switching Protocols başarılı protokol geçişini gösterir.
- İsteğin Messages sekmesini açın. Gönderilen ve alınan mesajların zamanlarını ve görüşme sırasında hareket olup olmadığını inceleyin. Bazı sürümlerde sekme adı Frames olabilir; ikili içerik okunabilir metin olarak görünmeyebilir.
- Görüşme kesilirse aynı istekte kapanış/hata bilgisine ve o andaki Console kayıtlarına bakın. Yeni bağlantıların sürekli açılıp kapanması da kaydedilmelidir.
Paylaşılan Network ekranındaki sonuçlar aşağıda aktarılmıştır. URL sorgularındaki oturum bilgilerini yayımlamamak için bu ekranın ham görüntüsü yerine tablo kullanılmıştır.
| Görünen alan adı | Status | Type | Time |
|---|---|---|---|
| voice-api-transcribe.jetlink.io | 101 | websocket | Pending |
| voice-api.jetlink.io | 101 | websocket | Pending |
101, Pending ve 0.0 kB nasıl yorumlanır? 101 bağlantının açıldığını gösterir; odanın kullanıma hazır olduğunu veya sesin iki yönde aktığını tek başına kanıtlamaz. Açık WebSocket'in Pending görünmesi normal olabilir. Liste satırındaki 0.0 kB değeri de tek başına trafik olmadığı anlamına gelmez; Messages ve medya kontrollerini kullanın.
5.3. Bağlantı listede yoksa
Önce kaydın görüşme başlamadan açıldığını ve filtrelerin isteği gizlemediğini doğrulayın. Ardından Console'daki ilk hatayı inceleyin. Mikrofon hatası veya uygulamanın başlangıç adımındaki bir hata, bağlantı girişimini engellemiş olabilir. Listede istek olmaması tek başına firewall engeli kanıtı değildir.
6. Odaya katılım ve karşılıklı ses aktarımı
6.1. Odaya katılım
Görüşmeyi Başlat sonrasında arayüzün Bağlandı durumuna geçip geçmediğini kaydedin. Bağlantı kuruluyor görünümünde kalıyorsa iki WebSocket'in durumunu, oda katılımıyla ilgili Console kayıtlarını ve varsa oturum/kimlik doğrulama hatalarını birlikte inceleyin. Token süresi, oturum yetkisi veya servis hatası ağ engeliyle aynı belirtiyi verebilir; nedeni sunucu kayıtlarıyla doğrulayın.
6.2. Uçtan uca ses testi
- Kullanıcı kısa bir test cümlesi söylesin. Doğru mikrofonun sesi aldığı doğrulansın.
- Agent'ın bu cümleye anlamlı yanıt verip vermediği kontrol edilsin. Varsa transkript gözlemi destekleyici kanıt olarak kullanılsın.
- Yanıtın kulaklık/hoparlörden duyulduğu doğrulansın.
- Birkaç kez karşılıklı konuşularak aktarımın sürdüğü kontrol edilsin. Sadece açılış sesi duymak yeterli değildir.
6.3. WebSocket başarılı, ses aktarımı başarısızsa
WebSocket bağlantısının kurulması ile ses verisinin uçtan uca aktarılması ayrı ayrı doğrulanmalıdır. WebRTC medya aktarımı kullanılan oturumlarda her ses paketinin WebSocket Messages sekmesinde görülmesi beklenmez. Bağlantı kontrolünü gerçek konuşma testi ve gerektiğinde medya istatistikleriyle tamamlayın.
Kullanılan oturumda WebRTC bağlantısı varsa Chrome'da chrome://webrtc-internals ekranını testten önce açarak ICE/bağlantı durumunu ve ses istatistiklerini inceleyebilir. Görüşme sırasında ilgili audio akışının giden/gelen bytesSent, bytesReceived veya paket sayaçlarının zaman içinde artışı yardımcı kanıttır. Alanların görünümü sürüme ve akışa göre değişir. Sayaç artışı tek başına anlaşılır ses duyulduğunu kanıtlamaz; gerçek konuşma testiyle birlikte değerlendirin.
ICE bağlantısı başarısızsa veya medya paketleri akmıyorsa medya erişimini de kontrol edin. Bu dokümanda ortama özgü ek medya/TURN alan adları ve portları listelenmemiştir. Sorun mevcut kontrollerle çözülemiyorsa ikinci seviye destek kapsamında ortama özgü bağlantı gereksinimleri doğrulanmalıdır.
7. Console hatalarını yorumlama
Aşağıdaki ifadeler olası hata örnekleridir; paylaşılan görüntülerde bu hataların yaşandığı gösterilmemektedir. Gerçek mesajın tamamını, zamanı ve hangi işlemle ilişkili olduğunu kaydedin.
| Hata / belirti | Olası anlamı ve sonraki adım |
|---|---|
NotAllowedError | getUserMedia sırasında ise site/OS mikrofon izni, güvenli bağlam veya Permissions Policy kontrol edilir. play() sırasında ise otomatik ses oynatma kısıtlaması olabilir; hatanın hangi çağrıdan geldiğini ayırın. |
NotFoundError | Uygun giriş aygıtı bulunamamış olabilir. Mikrofonun bağlı olduğunu ve seçilen aygıtı kontrol edin. |
NotReadableError | İzin verilmiş olsa bile aygıta erişilemiyor olabilir. İşletim sistemi, sürücü ve başka uygulamaların aygıt kullanımı incelenir. |
OverconstrainedError | İstenen aygıt veya ses koşulları mevcut aygıtlarla karşılanamıyor olabilir. Aygıt seçimini ve istenen ses koşullarını kontrol edin; sorun sürerse hata ayrıntısını ikinci seviye inceleme için kaydedin. |
WebSocket connection ... failed | Genel bağlantı hatasıdır. Tek başına kök nedeni vermez. Hedef alan adını, Headers durumunu ve aynı zamandaki ağ hatasını bulun. |
ERR_NAME_NOT_RESOLVED | DNS çözümleme sorunu olabilir. Kurumsal DNS ve alan adı filtrelemesini kontrol edin. |
ERR_CONNECTION_TIMED_OUT / ERR_CONNECTION_RESET | Zaman aşımı veya bağlantının kesilmesi. VPN, proxy, firewall ve servis kayıtları aynı zaman aralığında karşılaştırılır; tek başına hangi tarafın kestiğini göstermez. |
ERR_TUNNEL_CONNECTION_FAILED / HTTP 407 | Proxy tüneli veya proxy kimlik doğrulaması incelenir. |
ERR_CERT_AUTHORITY_INVALID ve diğer sertifika hataları | Sertifika zinciri, cihaz saati ve kurumsal TLS incelemesi kontrol edilir. Sertifika doğrulamasını kapatmak çözüm değildir. |
Content Security Policy / connect-src ihlali | Sayfanın bağlantı politikası hedefi engelliyor olabilir. Mesajda belirtilen hedef için mevcut CSP'yi kontrol edin. |
El sıkışmada HTTP 401 / 403 | Oturum/yetki hatası veya ağ güvenlik katmanının yanıtı olabilir. Yanıtın kaynağını inceleyin; bunu doğrudan VPN hatası kabul etmeyin. |
HTTP 502 / 503 | Proxy, ağ geçidi veya servis erişilebilirliği sorunu olabilir. Yanıtı veren bileşen ve servis durumu kontrol edilir. |
WebSocket kapanış kodu 1006 | Normal kapanış süreci tamamlanmadan kopma gözlenmiştir. Bir kök neden değildir; kopma öncesi kayıtları inceleyin. Tarayıcı her zaman ayrıntılı kapanış nedeni göstermez. |
| Odaya katılım zaman aşımı / ICE veya peer connection hatası | Oturum, oda bağlantısı ve varsa WebRTC medya erişimi birlikte incelenir. İfade sürüme göre değişir; gerçek hata metnini kaydedin. |
Console'daki Issues sayacı tek başına voice hatası sayısı değildir. Kayıtların zamanını ve voice çağrısıyla ilişkisini kontrol edin; ilgisiz sayfa uyarılarını kök neden olarak raporlamayın.
8. Kurumsal ağ, VPN ve güvenlik kontrolleri
8.1. Ağ erişimi ve güvenlik kontrolleri
- İki voice alan adı için DNS çözümlemesi ve varsayılan WSS portu olan TCP 443 üzerinden dış bağlantı sağlanmalıdır.
- Firewall/proxy WebSocket el sıkışmasını ve uzun süreli, çift yönlü bağlantıyı desteklemelidir. HTTP/1.1 kullanılan yolda Upgrade trafiğinin engellenmediği kontrol edilmelidir.
- URL filtrelemesi, TLS inspection, proxy kimlik doğrulaması ve uç nokta güvenlik yazılımı kayıtları hatanın zamanı ile eşleştirilmelidir.
- Bağlantı bir süre sonra kopuyorsa proxy/VPN oturum ve boşta kalma zaman aşımı politikaları incelenmelidir.
- Tarayıcı mikrofon politikasının, işletim sistemi izinlerinin ve sayfanın CSP/iframe izinlerinin kurum tarafından kısıtlanıp kısıtlanmadığı kontrol edilmelidir.
- WebSocket erişimi sağlandığı halde medya çalışmıyorsa ortama özgü WebRTC/TURN erişimi ikinci seviye incelemede doğrulanmalıdır. Sadece TCP 443 erişimini bütün voice sistemi için yeterli kabul etmeyin.
8.2. Kontrollü karşılaştırma
Testleri kurumun izin verdiği cihaz ve ağlarla yürütün. VPN veya güvenlik ürününü kontrolsüz kapatmak yerine kurum tarafından onaylanan test koşullarını kullanın. Her testte aynı sayfa, benzer oturum ve aynı konuşma adımlarını kullanın.
| Karşılaştırma | Sonucun yönlendirdiği inceleme |
|---|---|
| Aynı cihaz kurumsal ağda başarısız, onaylı alternatif ağda başarılı. | Kurumsal ağ/VPN/proxy yolu öncelikli incelenir. Kesin neden için günlükler gerekir. |
| Aynı ağda bir cihaz başarısız, başka cihaz başarılı. | Cihaz politikası, tarayıcı profili, mikrofon ve uç nokta güvenliği öncelikli incelenir. |
| Aynı cihazda yalnızca bir tarayıcı/profil başarısız. | Site izinleri, eklentiler ve yönetilen tarayıcı politikaları karşılaştırılır. |
| Farklı izinli ağ ve cihazlarda aynı anda başarısız. | Entegrasyon, oturum yapılandırması ve Jetlink servis kayıtları incelenir. |
Başarılı DNS sorgusu veya ping, WebSocket'in kurulabildiğini göstermez. WebSocket başarısı da mikrofon ve medya aktarımının başarılı olduğu anlamına gelmez.
9. Çözüm sonrası doğrulama
Düzeltmeyi sorunun yaşandığı asıl kurumsal cihaz ve ağ koşullarında doğrulayın. Aşağıdaki adımlar önerilen kabul testidir; ürünün süre veya performans garantisini ifade etmez.
- Mikrofon izni alınabiliyor ve seçili mikrofon sesi algılıyor.
- Her iki voice WebSocket bağlantısı başarıyla kuruluyor ve beklenmedik şekilde kopmuyor.
- Kullanıcı sesli sohbet odasına katılıyor; arayüz Bağlandı durumuna geçiyor.
- En az birkaç karşılıklı konuşmada kullanıcı anlaşılabiliyor ve agent yanıtı duyuluyor.
- Yaklaşık iki dakikalık test sırasında bağlantı ve ses aktarımı sürüyor. Sorun daha geç oluşuyorsa test, gözlenen kopma süresini kapsayacak şekilde uzatılıyor.
- Görüşme sonlandırılıp yeniden başlatılabiliyor. Yeni çağrıda ilgili hatalar tekrarlanmıyor.
Çözüldü kaydı: Uygulanan değişikliği, test koşullarını ve iki yönlü ses testinin sonucunu destek kaydına ekleyin.
10. Sorun devam ediyorsa
Bu dokümandaki kontrol ve test adımları uygulandığı halde çözüm sağlanamıyorsa konu, ikinci seviye destek için Jetlink BT ekiplerine devredilir.
İncelemenin devam edebilmesi için sorunun hangi adımda oluştuğunu, yapılan kontrollerin sonuçlarını, hata zamanını ve saat dilimini paylaşın. Varsa ilgili Console hata kayıtlarını, iki voice WebSocket bağlantısının sonuçlarını ve sorunu gösteren ekran görüntülerini de ekleyin. Bilgilerin belirli bir formata dönüştürülmesi gerekmez.
Paylaşılan kayıtlardan token, access_token, cookie, Authorization başlığı ve kişisel verileri kaldırın. Gerekli oturum referanslarını yalnızca yetkili destek kanalı üzerinden iletin; API anahtarı, JWT gizli anahtarı veya oturum token'ı paylaşmayın.
Ek inceleme için HAR veya WebRTC tanılama çıktısı istenirse paylaşmadan önce içeriğini kontrol edin. HAR dosyası WebSocket mesajlarını ya da medya istatistiklerini eksiksiz içermeyebilir; ilgili ekran görüntüleri ve Console kayıtları ayrıca gerekebilir.
11. Sık sorulan sorular
Chat çalışıyor. Neden voice çalışmıyor?
Voice ayrı bağlantılar ve mikrofon erişimi kullanır. Chat bağlantısının başarılı olması iki voice WebSocket'inin, odaya katılımın veya ses aktarımının başarılı olduğunu göstermez.
İki WebSocket de 101 döndü. İşlem tamam mı?
Hayır. Odaya katılımı ve karşılıklı konuşmayı test edin. Ses sorunu sürüyorsa giriş/çıkış aygıtları, oynatma izinleri ve kullanılan medya bağlantısı incelenmelidir.
Pending bir hata mı?
Tek başına değildir. WebSocket görüşme boyunca açık kalabilir. Durumu Messages, kapanış olayları ve ses testiyle birlikte değerlendirin.
Console boşsa sorun yok mu?
Hayır. Kayıt geç açılmış veya filtrelenmiş olabilir. Tüm seviyeleri gösterip hatayı yeniden üretin; Network ve uçtan uca ses testini de kontrol edin.
VPN dışında çalışması neyi gösterir?
Ağ yolunun etkili olabileceğini gösterir; kesin neden belirtmez. Aynı zaman aralığındaki proxy, firewall ve VPN kayıtlarıyla doğrulanmalıdır.
Teknik kaynaklar
- MDN — getUserMedia: güvenli bağlam, izinler ve hata türleri
- MDN — Permissions-Policy: microphone
- Chrome DevTools — Network ve WebSocket mesajlarını inceleme
- Chrome DevTools — Console başvurusu
Ekran görüntüleri Jetlink tarafından paylaşılan örneklerden alınmıştır. Görsellerde görüşme başlangıcı ve başarılı bağlantı durumu gösterilmektedir; hata tabloları tanılama amacıyla hazırlanmıştır.