Skip to content
cloud pbx
  • Home
  • Produk & Layanan
    • Cloud PBX
      • Enterprise PBX
      • Multi Tenant Cloud PBX
      • Cloud PBX Office
      • Cloud PBX Lite
      • Cloud PBX Hotel
      • Cloud Call Center
        • Cloud Call Center
        • Call center customer service
        • Call Center Telemarketing
        • Customer Service AI
      • Cloud SIP Trunk
    • Layanan
      • Data & Integration
        • Optimalisasi Monitoring 3CX, Grafana, dan SQL Dashboard
        • Wallboard Custom – Dimension
        • Custom – API
        • Integrasi CRM Apapun dengan 3CX
      • Solusi Contact Center
        • Omni Channel Customer Service
        • Telemarketing – Predictive Dialer
        • Solusi Business Process Outsourcing
      • Solusi Channel Komunikasi
        • Microsoft Teams Direct Routing
        • Whatsapp business calling API dengan PBX
        • Video conference
        • Webrtc softphone
        • Softphone
    • AI Agent Integrasi API: Solusi Customer Service Otomatis 24/7
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar FXO Gateway
      • FXS
        • Solusi Integrasi Telepon Analog: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Fanvil
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone (MS-Teams)
    • SBC
      • Mikro SBC 3CX
  • Case Studies
  • News
  • Video
    • Tutorial
    • Integrasi
    • Testimoni
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
cloud pbx
  • Home
  • Produk & Layanan
    • Cloud PBX
      • Enterprise PBX
      • Multi Tenant Cloud PBX
      • Cloud PBX Office
      • Cloud PBX Lite
      • Cloud PBX Hotel
      • Cloud Call Center
        • Cloud Call Center
        • Call center customer service
        • Call Center Telemarketing
        • Customer Service AI
      • Cloud SIP Trunk
    • Layanan
      • Data & Integration
        • Optimalisasi Monitoring 3CX, Grafana, dan SQL Dashboard
        • Wallboard Custom – Dimension
        • Custom – API
        • Integrasi CRM Apapun dengan 3CX
      • Solusi Contact Center
        • Omni Channel Customer Service
        • Telemarketing – Predictive Dialer
        • Solusi Business Process Outsourcing
      • Solusi Channel Komunikasi
        • Microsoft Teams Direct Routing
        • Whatsapp business calling API dengan PBX
        • Video conference
        • Webrtc softphone
        • Softphone
    • AI Agent Integrasi API: Solusi Customer Service Otomatis 24/7
  • Devices
    • Voice Gateway
      • FXO
        • Dinstar FXO Gateway
        • Yeastar FXO Gateway
      • FXS
        • Solusi Integrasi Telepon Analog: Dinstar
      • E1
        • E1/T1 Digital VoIP Gateway Newrock OM1000-TE (1–4 E1)
        • Beronet E1 Voip Gateway
    • IP Phone
      • Fanvil
      • SNOM D140, D150
      • Yealink IP Phone series
      • Poly Desk Phone (MS-Teams)
    • SBC
      • Mikro SBC 3CX
  • Case Studies
  • News
  • Video
    • Tutorial
    • Integrasi
    • Testimoni
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
cloud pbx

IP Phone

4
  • Factory Reset IP Phone: Langkah Wajib Sebelum Provisioning Biar Nggak Error
  • Daftar IP Phone yang kompatibel dengan 3CX
  • Apa itu Ip Phone?
  • Cara install/Provisioning IP Phone

3CX Softphone: Webclient and Apps

6
  • Digital Receptionist (IVR): Cara Bikin Menu Telepon Otomatis yang Profesional
  • Cara Mudah Mengatur Status Available, Away, dan DND di 3CX
  • Belajar Fitur Komunikasi Dasar 3CX dalam 5 Menit
  • Cara Instalasi dan Aktivasi 3CX Desktop App di Windows (PWA & Windows App)
  • Aktivasi 3CX Mobile App dengan QR Code
  • Cara Mengakses 3CX web client

3CX Admin Console & Manajemen Sistem

6
  • Apa Itu FXO? Cara Mudah Menghubungkan Telepon Lama ke Sistem VoIP
  • Apa Itu SBC? Kenalan dengan “Satpam” yang Menjaga Sistem VoIP Kamu
  • Office Hours & Holiday Rules Biar Telepon Bisnis Tetap Rapi, Bahkan Saat Kantor Tutup
  • Manajemen Departemen & Users di 3CX: Cara Tambah User, Atur Role, dan Kelola Departemen dengan Mudah
  • Ring Groups vs Call Queues di 3CX: Biar Customer Nggak Nunggu Lama, Tim Kamu Juga Nggak Keteteran
  • Cara Setup Router Phone / 3CX SBC untuk Karyawan Remote & WFH

Keamanan VoIP dan Troubleshoot

3
  • Cara Membuka Blokir IP Akibat Salah Password Berkali-kali
  • Mengatasi One-Way Audio di 3CX Telepon Nyambung Tapi Suara Cuma Kedengeran Sepihak?
  • 3CX Firewall Checker: Cara Cek Port 3CX Supaya Telepon Tetap Lancar

Developer

6
  • Aplikasi Softphone flutter WebRTC meggunakan package sip_UA.
  • WebRTC SBC Gateway Integration for Flutter
  • Mengoptimalkan Kolaborasi Perusahaan Melalui 3CX Video Conference API
  • Transformasi Arsitektur Telepon Perusahaan dengan WebRTC SBC Gateway
  • Panduan Endpoint REST API XAPI untuk Konfigurasi 3CX
  • Panduan Struktur & Deskripsi XML Template CRM 3CX

SIP TRUNK

3
  • Ada Berapa Jenis Nomor atau Layanan SIP Trunk?
  • Apa Itu SIP Trunk?
  • Manajemen SIP Trunk Cara Menghubungkan Nomor Telepon Provider Lokal ke 3CX
View Categories
  • Home
  • Pusat Bantuan
  • Developer
  • WebRTC SBC Gateway Integration for Flutter

WebRTC SBC Gateway Integration for Flutter

Admin
Updated on July 4, 2026

2 min read

Dokumentasi ini ditujukan bagi developer untuk menghubungkan aplikasi Integrasi Flutter WebRTC mobile (Flutter – Android/iOS) ke infrastruktur SolusiPBX WebRTC SBC Gateway. Gateway ini berfungsi sebagai jembatan signaling dan media anchor antara protokol WebRTC (sisi aplikasi mobile) dan Core PBX (sisi backend SIP).

1. Arsitektur & Alur Koneksi #

WebRTC SBC Gateway bertindak sebagai penerjemah signaling dan pengaman jalur media (media anchor). Alur komunikasi dirancang sebagai berikut:

  1. Signaling (Persinyalan): Aplikasi Flutter menggunakan koneksi WebSocket Secure (wss://) untuk bertukar data JSON (Registrasi SIP, Handshake, dan Negosiasi SDP Offer/Answer).
  2. Media Stream (Audio/Video): Aliran suara dienkripsi menggunakan SRTP/DTLS antara aplikasi Flutter dan WebRTC SBC Gateway, kemudian diteruskan sebagai RTP standar ke Core PBX.

2. Persyaratan & Dependencies (Flutter) #

Tambahkan library utama berikut pada file pubspec.yaml proyek Flutter Anda untuk menangani Integrasi Flutter WebRTC dan koneksi WebSocket.

YAML
dependencies:
  flutter:
    sdk: flutter
  # Library utama untuk pemrosesan WebRTC (Audio/Video)
  flutter_webrtc: ^0.12.0 
  # Client WebSocket untuk komunikasi signaling ke Gateway
  web_socket_channel: ^2.4.5

Konfigurasi Izin Platform (Permissions) #

  • Android: Pastikan minSdkVersion pada build.gradle minimal bernilai 21. Tambahkan izin berikut pada AndroidManifest.xml:

XML
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />

iOS: Tambahkan deskripsi izin akses mikrofon dan kamera pada ios/Runner/Info.plist:
XML
<key>NSMicrophoneUsageDescription</key>
<string>Aplikasi membutuhkan akses mikrofon untuk melakukan panggilan telepon.</string>
<key>NSCameraUsageDescription</key>
<string>Aplikasi membutuhkan akses kamera untuk melakukan video call.</string>

3. Parameter Endpoint Gateway #

Detail endpoint yang digunakan untuk menginisialisasi koneksi ke SolusiPBX Gateway:

  • SBC WebSocket URL: wss://sbc.solusipbx.com:8989 (Sesuaikan dengan domain/port gateway yang diberikan)

  • WebSocket Protocol: janus-protocol (Sub-protokol wajib untuk handshake)

  • Service Module Identifier: janus.plugin.sip (Modul internal penyedia layanan SIP)

4. Langkah Integrasi & Payload JSON #

Komunikasi antara Flutter dan SBC Gateway berbasis JSON-RPC melalui WebSocket.

⚠️ PENTING UNTUK DEVELOPER: Protokol signaling WebRTC SBC Gateway SolusiPBX menggunakan standarisasi JSON-RPC spesifik. Oleh karena itu, kata kunci (key) "janus" pada root JSON bersifat mandatory (wajib) secara sintaksis sistem dan tidak boleh diubah/diganti menjadi nama lain agar request dapat dikenali oleh Gateway Engine.

Langkah 1: Membuka Koneksi WebSocket & Session #

Aplikasi Flutter harus membuka koneksi socket stabil dan membuat Gateway Sesi.

Dart
import 'package:web_socket_channel/io.dart';

final channel = IOWebSocketChannel.connect(
  Uri.parse('wss://sbc.solusipbx.com:8989'),
  protocols: ['janus-protocol'],
);

Kirimkan payload ini untuk membuat sesi baru:

JSON
 
{
  "janus": "create",
  "transaction": "tx_create_session_01"
}

SBC Gateway akan mengembalikan respons berisi session_id yang wajib disimpan untuk langkah berikutnya.

Langkah 2: Mengaktifkan SIP Service Module #

Gunakan session_id yang didapat untuk melakukan attach ke modul layanan SIP.

JSON
 
{
  "janus": "attach",
  "session_id": 123456789,
  "plugin": "janus.plugin.sip",
  "transaction": "tx_attach_sip_01"
}

Gateway akan mengembalikan respons berisi handle_id. ID ini merepresentasikan jalur komunikasi spesifik untuk ekstensi telepon Anda.

Langkah 3: Registrasi Ekstensi SIP (Register Extension) #

Kirimkan perintah register agar WebRTC SBC Gateway mendaftarkan akun ke Core PBX SolusiPBX.

JSON
 
{
  "janus": "message",
  "session_id": 123456789,
  "handle_id": 987654321,
  "transaction": "tx_sip_register_01",
  "body": {
    "request": "register",
    "username": "sip:[email protected]", 
    "secret": "S3cretP4ssword",          
    "proxy": "sip:core-pbx.solusipbx.internal", 
    "refresh": true
  }
}

Langkah 4: Melakukan Panggilan Keluar (Outbound Call) #

Untuk membuat panggilan, aplikasi Flutter membuat objek PeerConnection lokal via flutter_webrtc, menghasilkan SDP Offer, lalu mengirimkannya ke Gateway dalam objek jsep.

JSON
 
{
  "janus": "message",
  "session_id": 123456789,
  "handle_id": 987654321,
  "transaction": "tx_outbound_call_01",
  "body": {
    "request": "call",
    "uri": "sip:[email protected]" 
  },
  "jsep": {
    "type": "offer",
    "sdp": "v=0\r\no=- 123456..." // SDP String hasil generate dari flutter_webrtc
  }
}

5. Manajemen Koneksi & Best Practices #

Session Keep-Alive (Heartbeat) #

WebRTC SBC Gateway memerlukan mekanisme heartbeat agar sesi tidak hangus (timeout). Developer wajib mengirimkan ping berkala setiap 25–30 detik menggunakan format:

JSON
 
{
  "janus": "keepalive",
  "session_id": 123456789,
  "transaction": "tx_keepalive_rand"
}

Konfigurasi STUN/TURN (ICE Servers) #

Saat menginisialisasi RTCConfiguration di flutter_webrtc, developer wajib menyertakan STUN/TURN server SolusiPBX. Hal ini penting untuk memastikan media (suara/video) dapat menembus jaringan seluler atau Wi-Fi yang terproteksi NAT/Firewall ketat, mencegah kendala one-way audio (suara searah) atau no-audio.

 

Aplikasi Softphone flutter WebRTC meggunakan package sip_UA.Mengoptimalkan Kolaborasi Perusahaan Melalui 3CX Video Conference API
Table of Contents
  • 1. Arsitektur & Alur Koneksi
  • 2. Persyaratan & Dependencies (Flutter)
    • Konfigurasi Izin Platform (Permissions)
  • 3. Parameter Endpoint Gateway
  • 4. Langkah Integrasi & Payload JSON
    • Langkah 1: Membuka Koneksi WebSocket & Session
    • Langkah 2: Mengaktifkan SIP Service Module
    • Langkah 3: Registrasi Ekstensi SIP (Register Extension)
    • Langkah 4: Melakukan Panggilan Keluar (Outbound Call)
  • 5. Manajemen Koneksi & Best Practices
    • Session Keep-Alive (Heartbeat)
    • Konfigurasi STUN/TURN (ICE Servers)

Share This Article :

  • Facebook
  • X
  • LinkedIn

Was it helpful ?

  • Happy
  • Normal
  • Sad
  • Home
  • Produk & Layanan
  • Devices
  • Case Studies
  • News
  • Video
  • Pusat Bantuan
  • Hubungi Kami
  • Partner
  • Tentang kami
  • Cloud PBX Enterprise
  • Multi Tenant Cloud PBX
  • Cloud call center
  • Cloud PBX office
  • Click to Talk
  • WebRTC Softphone
  • AI Agent Customer Service
  • Integrasi WABA Calling PBX
  • Integrasi CRM dengan 3CX
  • Pusat Bantuan
  • Patuhi Standar PCI DSS & HIPAA
  • Cara Praktis Efisiensi Komunikasi Hotel
  • Agentic AI: Era Baru Sistem Telepon Cerdas
  • Cloud PBX Office untuk Komunikasi Bisnis
  • Memahami Fitur Call Flow Designer
  • Call Center Hospitality
  • Customer Service WhatsApp dengan 3CX
  • Monitoring PBX dengan Grafana dan SQL Dashboard

PT. Solusi Teknologi Unggul | My Republik Plaza Wing A Ground Level Zona 6, Green Office Park 6. BSD City Tangerang Banten 15345 Tel:+62-21-50111266

Copyright © 2026 PT. Solusi Teknologi Unggul

butuh bantuan? Whatsapp kami
WhatsApp
Hallo 👋, Selamat datang di Solusipbx.com, Terima kasih telah menghubungi kami

Untuk membantu kami memberikan solusi yang tepat, silahkan informasikan Nama, Perusahaan serta
detail kebutuhan anda
Open Chat
Powered by Joinchat