VoipoxManager Orchestrator

Multi-Tenant Asterisk & Linux Container Fleet

Docker: {{ hostInfo?.dockerVersion || '...' }} | CPU: {{ hostInfo?.cpuCores || 0 }} Core | RAM: {{ hostInfo?.totalMemoryMb || 0 }} MB | OS: {{ hostInfo?.freeDiskGb || 0 }} GB
{{ authUser || 'Yönetici' }} {{ authRole }}
Canlı Filo & Sistem Metrikleri (Son Güncelleme: {{ lastMetricsUpdate }})
Otomatik Yenileme:
Toplam Santral
{{ fleetMetrics.totalTenants || tenants.length }}
İzole Container Ortamı
Çalışan (Aktif)
{{ fleetMetrics.runningTenants || 0 }}
Hizmet veriyor
Durdurulan
{{ fleetMetrics.stoppedTenants || 0 }}
Beklemede
Filo CPU Kullanımı
%{{ fleetMetrics.totalCpuPercentage || 0 }}
Anlık toplam yük
Filo Bellek (RAM)
{{ Math.round(fleetMetrics.totalMemoryUsageMb || 0) }} MB
Tüketilen RAM
Ağ Trafiği (Net)
{{ formatBytes(fleetMetrics.totalNetworkRxBytes || 0) }} / {{ formatBytes(fleetMetrics.totalNetworkTxBytes || 0) }}
RX / TX Toplamı
Sistem Diski (OS) /
%{{ hostInfo?.diskUsagePercent || 0 }}
{{ hostInfo?.freeDiskGb || 0 }} GB Boş {{ hostInfo?.totalDiskGb || 0 }} GB Toplam
Veri Diski (1 TB) /data
%{{ hostInfo?.dataDiskUsagePercent || 0 }}
{{ (hostInfo?.dataDiskFreeGb || 0) >= 1000 ? Math.round((hostInfo?.dataDiskFreeGb || 0) / 1024 * 100) / 100 + ' TB' : (hostInfo?.dataDiskFreeGb || 0) + ' GB' }} Boş {{ (hostInfo?.dataDiskTotalGb || 0) >= 1000 ? Math.round((hostInfo?.dataDiskTotalGb || 0) / 1024 * 10) / 10 + ' TB' : (hostInfo?.dataDiskTotalGb || 0) + ' GB' }} Toplam

Santral Listesi & Anlık Durum

Ana sunucuda çalışan tüm bağımsız Asterisk müşterileri

Canlı Asterisk Konsolu & Komut Gönderici

Container içine `asterisk -rx` komutları gönderin veya logları izleyin

Asterisk:
Linux:
Komut çıktısı veya loglar burada görünecektir. Yukarıdaki butonları kullanabilir veya aşağıya komut yazabilirsiniz.
root@voipox:~# {{ entry.command }}asterisk*CLI> {{ entry.command }} {{ entry.time }}
{{ entry.output }}

Web Dosya Yöneticisi & Konfigürasyon Editörü

Müşterinin ayar dosyalarını doğrudan web üzerinden düzenleyin, kaydedin ve Asterisk'e reload gönderin

Dosyalar
{{ file }}
Dosya bulunamadı veya santral seçilmedi.
{{ selectedFilePath || 'Lütfen sol taraftan bir dosya seçin' }}

Sunucu Güvenlik & Sistem Araçları Yönetim Merkezi

Fail2ban SIP kalkanı, UFW güvenlik duvarı ve sistem araçlarını tek tıkla kurun ve yönetin

Fail2ban (SIP & SSH Kalkanı)

SIP şifresini hatalı giren saldırgan IP'leri otomatik banlar

{{ getService('fail2ban')?.statusText || 'Yüklü Değil' }}
Banlanan Saldırgan IP'ler ({{ bannedIps.length }})
{{ banned.ipAddress }} Jail: {{ banned.jail }}
Şu an banlı bir IP adresi bulunmuyor.

UFW (Linux Güvenlik Duvarı)

Portları korur, sadece izinli VoIP trafiğini geçirir

{{ getService('ufw')?.statusText || 'Yüklü Değil' }}
Opsiyon 1: Genel VoIP Profili

SIP (5060 UDP/TCP) ve RTP (10000-20000) tüm dünyaya açıktır. Dinamik IP'li mobil çalışanlar ve ev kullanıcıları için uygundur. Fail2ban ile korunur.

Opsiyon 2: Sıkı VoIP Profili (Önerilen)

SIP ve RTP tüm dünyaya kapatılır. Santrale sadece aşağıdaki tabloda tanımladığınız güvenli IP adresleri (Trunk operatörü, sabit ofis IP vb.) bağlanabilir.

Aktif Güvenlik Duvarı Kuralları & İzinli IP Listesi

# Hedef (To) İşlem Kaynak (From) Açıklama İşlem
[{{ rule.number }}] {{ rule.to }} {{ rule.action }} {{ rule.from }} {{ rule.comment || '-' }}
Henüz kural bulunmuyor veya UFW kapalı.

Ek Sistem & Ağ Araçları

{{ getService(tool)?.displayName || tool }}

{{ getService(tool)?.isInstalled ? 'Kurulu' : 'Yüklü Değil' }}

{{ getService(tool)?.description }}

Ana Sunucu & Docker Bilgileri

İşletim Sistemi: {{ hostInfo?.operatingSystem }}
Docker Versiyon: {{ hostInfo?.dockerVersion }}
Mimari & Kernel: {{ hostInfo?.architecture }} / {{ hostInfo?.kernelVersion || 'N/A' }}
Mevcut Container Sayısı: {{ hostInfo?.totalContainers || 0 }} (Çalışan: {{ hostInfo?.runningContainers || 0 }})
İmaj Sayısı: {{ hostInfo?.imagesCount || 0 }}
Sunucu Saati: {{ hostInfo?.serverTime }}
Sistem Diski (OS - /): {{ hostInfo?.freeDiskGb || 0 }} GB Boş / {{ hostInfo?.totalDiskGb || 0 }} GB (%{{ hostInfo?.diskUsagePercent || 0 }})
Santral Veri Diski (1 TB - /data): {{ (hostInfo?.dataDiskFreeGb || 0) >= 1000 ? Math.round((hostInfo?.dataDiskFreeGb || 0) / 1024 * 100) / 100 + ' TB' : (hostInfo?.dataDiskFreeGb || 0) + ' GB' }} Boş / {{ (hostInfo?.dataDiskTotalGb || 0) >= 1000 ? Math.round((hostInfo?.dataDiskTotalGb || 0) / 1024 * 10) / 10 + ' TB' : (hostInfo?.dataDiskTotalGb || 0) + ' GB' }} (%{{ hostInfo?.dataDiskUsagePercent || 0 }})

Hızlı Başlangıç & Host Hazırlık Komutları

Sıfır bir Ubuntu 24.04/22.04 sunucuya VoipoxManager kurmak ve temel Asterisk imajını oluşturmak için terminalde aşağıdaki script'leri çalıştırmanız yeterlidir:

# 1. Sunucu paketlerini ve çekirdek UDP ayarlarını hazırla:
sudo bash /opt/VoipoxManager/scripts/install-host-prerequisites.sh
# 2. Ubuntu + Asterisk + MSSQL hazır kalıp imajını derle:
bash /opt/VoipoxManager/scripts/build-base-image.sh

Sanal Telekom Operatörü (Mock SIP Carrier)

Host Asterisk (95.0.209.138) üzerinde çalışan sanal telekom santrali ve konteyner dış hat yönetimi

Telekom IP / Port {{ providerOverview?.hostIp || '95.0.209.138' }}:{{ providerOverview?.sipPort || 5060 }}
Tanımlı Sanal Hatlar {{ (providerOverview?.trunks || []).length }} Hat
Sanal Numara (DID) Havuzu {{ (providerOverview?.phoneNumbers || []).length }} Numara
WebRTC Simulator WS ws://{{ providerOverview?.hostIp || '95.0.209.138' }}:{{ providerOverview?.wsPort || 8088 }}/ws

Sanal Dış Hatlar (Tenant Konteyner Trunk'ları)

Konteyner santraller bu hat hesaplarıyla host Asterisk'e bağlanır
Trunk Adı SIP Kullanıcı Adı SIP Şifresi Bağlı Tenant / Konteyner Konteyner IP Atanmış DID Numaraları Durum İşlemler
Henüz tanımlı bir sanal hat yok. Yukarıdaki "Yeni Sanal Hat Ekle" butonuna basarak ekleyebilirsiniz.
{{ trunk.name }} {{ trunk.username }} {{ trunk.secret }} •••••••• {{ trunk.tenantName || 'Seçilmedi' }} {{ trunk.tenantIp || '-' }}
{{ did }} Tüm Numaralar (*)
{{ trunk.status }}

Sanal Telefon Numaraları Havuzu (DID Numbers)

Konteyner santrallerin gelen arama planlarında eşleşecek numaralar
{{ num.number }}

{{ num.description || 'Açıklama belirtilmemiş' }}

Hat: {{ num.assignedTenantName || 'Boşta' }}
Henüz kayıtlı bir sanal numara yok. "Yeni Numara Ekle" butonunu kullanarak test numaralarınızı tanımlayabilirsiniz.

Konteyner Santralde Dış Hat (Trunk) Nasıl Tanımlanır?

Konteyner santralinizin (örn: Dobedan veya Kamelya) bu sanal sağlayıcı üzerinden gelen çağrıları alabilmesi için, santral yönetim panelinde Dış Hatlar (Trunks) bölümüne yeni bir hat ekleyin:

Host (Sunucu): 95.0.209.138
Port: 5060
Username: Yukarıda oluşturulan Trunk kullanıcı adı
Secret: Yukarıda oluşturulan Trunk şifresi
Type: peer / friend
Context: from-trunk
Register: Evet (Kayıt ol)
Nat: force_rport,comedia

Çağrı Simülasyon Ayarları

Sanki dış dünyadan arayan gerçek bir müşteriymiş gibi senaryoyu belirleyin

WebRTC: {{ webrtcState.statusText }}
Santral bu numarayı görecektir
Hızlı Şablonlar:
Konteynerin Gelen Hat düğümündeki numara

Son Test Aramaları

Henüz test araması yapılmadı.
{{ h.number }}
Arayan: {{ h.callerId }} | Hat: {{ h.trunkName }}
{{ h.duration || '0 sn' }}
Voipox Carrier SIP {{ webrtcCall.timer }} 00:00
{{ webrtcForm.targetNumber }} Numara Giriniz
{{ webrtcCall.statusText || 'Hazır (Standby)' }}

Canlı ses bağlantısı mikrofonunuzu kullanır. Çağrı esnasında tuşlara basarak IVR menülerini test edebilirsiniz.

{{ modalTrunk.form.id ? 'Sanal Hattı Düzenle' : 'Yeni Sanal Hat (Trunk) Tanımla' }}

Yeni Sanal Numara Tanımla

Yeni Asterisk Santrali Kur (Tenant)

Ağ ve IP Yapılandırması (Macvlan)
Web Alan Adı (Domain) ve Zaman Dilimi Nginx Ters Vekil & Saat

Belirtilirse Nginx port 80 üzerinden santrale ters vekil yönlendirmesi kurulur.

Konteyner, Asterisk CDR ve log saatini belirler.

MSSQL Veritabanı Bağlantısı
Voipox Web Admin Giriş Bilgileri (admin.html) port 5000 yönetici paneli
{{ modalCreate.error }}

Santral Detay & Düzenleme: {{ modalDetail.form.name }}

SSL Sertifikası (HTTPS) Yönetimi ({{ modalDetail.form.domain }})
HTTPS Aktif ({{ modalDetail.tenant?.sslProvider }}) SSL Yok (Yalnızca HTTP:80)

Tanımlı alan adınız için tek tıkla ücretsiz Let's Encrypt SSL sertifikası kurabilir veya mevcut ticari/wildcard sertifikanızı yükleyebilirsiniz.

Özel SSL Sertifikası Metinleri (PEM / Base64)
MSSQL Veritabanı Bağlantısı VoipoxService veritabanı bağlantı parametreleri
Voipox Web Admin Giriş Bilgileri (admin.html) admin.html paneli için yetkili kullanıcı ve parola
Container Disk & Log Tüketimi
Container Katmanı (Writable / Sanal)
Container içi yazma katmanı boyutu
{{ modalDetail.tenant?.diskUsageFormatted || '-' }}
Docker Stdout/Stderr Log Dosyası
Container konsol log boyutu (/var/lib/docker)
{{ modalDetail.tenant?.logSizeFormatted || '0 B' }}
Fiziksel Disk Eşlemeleri (1 TB Veri Diski ↔ Container) 1 TB /data 11 Kalıcı Eşleme
Toplam Boyut: {{ formatBytes(modalDetail.diskUsage.total || 0) }}
Asterisk & Medya Depolama
Ayar Dosyaları /etc/asterisk
{{ modalDetail.tenant?.hostConfigPath }}
{{ formatBytes(modalDetail.diskUsage.config || 0) }}
Ses Kayıtları /var/spool/asterisk/monitor
{{ modalDetail.tenant?.hostRecordingsPath }}
{{ formatBytes(modalDetail.diskUsage.recordings || 0) }}
Özel Ses & Anons /var/lib/asterisk/sounds
{{ modalDetail.tenant?.hostSoundsPath }}
{{ formatBytes(modalDetail.diskUsage.sounds || 0) }}
Bekletme Müziği (MoH) /var/lib/asterisk/moh
{{ modalDetail.tenant?.hostMohPath || (modalDetail.tenant?.hostBasePath + '/moh') }}
{{ formatBytes(modalDetail.diskUsage.moh || 0) }}
AGI Scriptleri /var/lib/asterisk/agi-bin
{{ modalDetail.tenant?.hostAgiPath || (modalDetail.tenant?.hostBasePath + '/agi-bin') }}
{{ formatBytes(modalDetail.diskUsage.agi || 0) }}
Çağrı & Servis Logları /var/log/asterisk
{{ modalDetail.tenant?.hostLogsPath }}
{{ formatBytes(modalDetail.diskUsage.logs || 0) }}
VoipoxService V2 & Güvenlik
UFW Güvenlik Duvarı /etc/ufw
{{ (modalDetail.tenant?.hostBasePath || '') + '/ufw' }}
{{ formatBytes(modalDetail.diskUsage.ufw || 0) }}
VoipoxService Programı /opt/voipoxservice
{{ (modalDetail.tenant?.hostServicePath || (modalDetail.tenant?.hostBasePath + '/voipoxservice')) + '/bin' }}
{{ formatBytes(modalDetail.diskUsage.serviceBin || 0) }}
Veri & Görsel Akışlar /opt/voipoxservice/data
{{ (modalDetail.tenant?.hostServicePath || (modalDetail.tenant?.hostBasePath + '/voipoxservice')) + '/data' }}
{{ formatBytes(modalDetail.diskUsage.serviceData || 0) }}
TTS Ses Önbelleği /opt/voipoxservice/audio_cache
{{ (modalDetail.tenant?.hostServicePath || (modalDetail.tenant?.hostBasePath + '/voipoxservice')) + '/audio_cache' }}
{{ formatBytes(modalDetail.diskUsage.audioCache || 0) }}
Servis Ayarları /opt/voipoxservice/appsettings.json
{{ (modalDetail.tenant?.hostServicePath || (modalDetail.tenant?.hostBasePath + '/voipoxservice')) + '/appsettings.json' }}
{{ formatBytes(modalDetail.diskUsage.appSettings || 0) }}
VoipoxService V2 Servis & API Entegrasyonu
Port 5000 Aktif Kontrol Ediliyor...
SignalR Hub: http://{{ modalDetail.tenant?.ipAddress }}:5000/santralhub
Yüklü Sürüm: {{ modalDetail.tenant?.serviceVersion || 'v2.0 (İlk Kurulum)' }}

Docker Container Log Dosyasını Boşalt

{{ truncateModal.tenant?.name }} ({{ truncateModal.tenant?.ipAddress }})

Mevcut Log Dosyası Boyutu: {{ truncateModal.tenant?.logSizeFormatted || '0 B' }}
Container ID: {{ truncateModal.tenant?.containerId?.substring(0, 16) }}...
Dosya Yolu (Host): {{ getTruncateFilePath(truncateModal.tenant) }}
Bu işlem nasıl çalışır?

Log boşaltma işlemi canlı çalışan container'ı durdurmaz veya yeniden başlatmaz. Asterisk ve ses trafiği kesintiye uğramadan dosya işaretçisi sıfırlanır ve disk alanı anında sisteme geri kazandırılır.

Manuel Terminal Komutu (SSH Fallback)
{{ getTruncateCommand(truncateModal.tenant) }}

Sunucuya SSH ile bağlanıp yukarıdaki komutu doğrudan çalıştırarak da aynı işlemi yapabilirsiniz.

Santral Sürüm Güncelleme (VoipoxService V2) Tamamlandı Güncelleniyor

{{ modalUpdate.tenant?.name }} • {{ modalUpdate.tenant?.ipAddress }}

Mevcut Çalışan Sürüm {{ modalUpdate.tenant?.serviceVersion || 'v2.0 (İlk Kurulum)' }}
Havuzdaki Hedef Sürüm Güncel Yeni Sürüm
{{ deploymentInfo?.latestVersion || 'Kontrol ediliyor...' }}
İşlem İlerlemesi %{{ modalUpdate.progress }}
Güncelleme Aşamaları
{{ step.title }} {{ step.status === 'pending' ? 'Bekliyor' : step.status === 'running' ? 'İşleniyor...' : step.status === 'success' ? 'Tamamlandı' : 'Hata!' }}

{{ step.desc }}

Güncelleme İşlemi Başarısız Oldu: {{ modalUpdate.errorMessage }}
Sürüm Güncellemesi Başarıyla Tamamlandı! Santral container yeniden başlatıldı ve VoipoxService V2 REST API port 5000 üzerinden yanıt vermeye başladı.
Lütfen işlem tamamlanana kadar pencereyi kapatmayınız. Santral hazır ve aktif. İşlem ortalama 5-10 saniye sürmektedir.

VoipoxManager

Multi-Tenant Asterisk & Container Fleet Orchestrator

Yönetici Girişi
{{ loginError }}
VoipoxManager © 2026 • Asisia Santral Sistemleri