Microsoft Teams Direct Routing dengan Media Bypass

Postingan awal tahun ini akan membedah media bypass. Walaupun fitur ini sudah ada sejak 2020, yang juga diumumkan di Techcommunity Microsoft, ternyata masih banyak yang belum memanfaatkannya. Alasan utama yang sering sekali saya dengar adalah, bahwa Network Administrator harus membuka firewall ke SBC (minimal port untuk signaling dan media), agar dapat tersambung dengan pengguna MSTeams dari jaringan mana pun.

Itu sebabnya MSTeams menyediakan server STUN/TURN untuk memfasilitasi media bypass baik akses ke SBC dibuka ke internet publik ataupun tidak.

Cara kerja Media Bypass

Jika dua pengguna MSTeams hendak melakukan komunikasi suara maupun gambar, perangkat MSTeams akan mengirim signaling berupa HTTP REST ke server MSTeams, untuk kemudian dilanjutkan ke pengguna tujuan, dan memberikan notifikasi. Contohnya sebagai berikut,

Seorang pengguna dengan identitas MSTeams user@domaint.tld yang normalnya bisa berada di mana pun (baik di dalam kantor maupun di luar area kantor), hendak melakukan panggilan ke pengguna lain di kantor dengan identitas MSTEams receptionist@domain.tld. Gawai MSTeams user@domain.tld akan mengirimkan sinyal dalam protkol HTTP REST ke server MSTeams yang intinya memberitahukan bahwa pengguna tersebut hendak berkomunikasi dengan pengguna lain. Server MSTeams kemudian menyampaikan notifikasi tersebut ke pengguna tujuan dengan identitas receptionist@domain.tld, bahwa user@domain.tld hendak berkomunikasi. Jika panggilan tersebut diterima oleh pengguna tujuan, maka selanjutnya terbentuklah jalur komunikasi suara/gambar (media), langsung dari gawai pengguna user@domain.tld ke perangkat MSTeams milik receptionist@domain.tld. Alurnya kira-kira seperti gambar berikut:

Dari gambar tersebut, tampak media tidak lagi melalui server MSTeams, melainkan tersambung langsung dari perangkat ke perangkat dengan bantuan server STUN/TURN, karena kebanyakan perangkat lebih sering berada di belakang NAT.

Alur menjadi sedikit berbeda apabila pengguna terhubung ke fitur MSTeams Direct Routing. Apabila pengguna tersebut hendak menghubungi sebuah nomor telepon PSTN/GSM, sinyal panggilan yang melewati server MSTeams, akan diubah menjadi protokol SIP ke arah SBC, untuk kemudian disambungkan ke nomor PSTN/GSM tujuan. Sedangkan media dari gawai pengguna, secara default akan diarahkan ke server media processor MSTeams,yang selanjutnya diteruskan ke SBC, seperti pada gambar berikut:

tampak jalur media memutar terlebih dahulu ke server di datacenter Microsoft, untuk kemudian dikembalikan ke SBC. Apabila pengguna tersebut berada di dalam satu jaringan LAN dengan SBC dalam sebuah kantor, tentu saja panggilan ini tidak efektif, dan tidak menutup kemungkinan, panggilan akan mengalami penurunan kualitas, mengingat pengguna tidak dapat melakukan kendali terhadap trafik yang melewati internet.

Fitur media bypass bertujuan untuk memaksimalkan panggilan dengan melewatkan media dari perangkat pengguna langsung ke SBC (dengan tambahan setelan di firewall) seperti gambar alur berikut:

Akses Media Bypass ke SBC

Agar SBC dapat menerima komunikasi melalui media bypass, pertama aktifkan dulu fitur ICE/ICE Lite di sisi SIP interface yang menghadap ke MSTeams Phone System. Berikut cara setup di SBC Ribbon Edge 1000/Ribbon SWe Edge/SWe Lite (untuk brand lain silahkan mengacu ke dokumentasi resmi dari produk bersangkutan).

Lalu tambahkan setelan pstn gateway di MSTeams Phone System dengan MediaBypass menjadi $true:

Set-CsOnlinePstnGateway -Identity <sbc_id> -MediaBypass $true

Jika kita membuka trafik dari internet publik ke SBC, maka komunikasi akan tersambung langsung dari perangkat pengguna ke SBC seperti yang ditunjukkan pada SDP SIP handshake berikut:

Di dalam negosiasi final SDP INVITE, tampak candidate pengguna terdeteksi dengan public ip address 125.160.230.181 (kebetulan menggunakan layanan internet dari IndiHome), dan juga private ip address perangkat 192.168.1.4 yang berada di jaringan lokal. Di bagian agak bawah sedikit terdapat entri a=remote-candidates, merupakan host lawan bicara yang telah dipilih, yang merupakan ip address dari SBC. Di bagian lain isi SDP juga terdeteksi tipe sambungan yaitu WLAN.

Sedangkan isi dari SDP jawaban dari lawan bicara (yang ada di dalam respon 200 OK) tampak seperti berikut:

SBC menyetujui pembicaraan dengan mengirimkan informasi ip address dan port RTP sesuai dengan entri candidate di atas yang ditujukan untuk remote-candidates yang berada di bawahnya, sekaligus mengirimkan codec yang disetujui oleh kedua pihak.

Lalu muncul pertanyaan pengguna:

“Bisakah kalau tidak harus membuka akses SBC ke internet publk?”

Tentu saja, bisa, karena MSTeams Phone System juga menyediakan mekanisme TURN. Walaupun akses ke internet publik ditutup, setidaknya firewall SBC wajib di buka, minimal untuk blok ip address berikut:

  • 52.112.0.0/14
  • 52.120.0.0/14
  • 13.107.64.0/18

Blok ip address diatas adalah blok server Media Processor dan Transport Relay milik Microsoft. Dalam hal media bypass, kita akan menggunakan Transport Relay.

Pertama pastikan bahwa, akses ke Transport Relay terdekat sudah dibuka di sisi firewall dengan bantuan Teams Network Assesment Tool. Jalankan dari command prompt seperti berikut:

C:\> NetworkAssessmentTool.exe
Microsoft Teams - Network Assessment Tool

Starting Relay Connectivity Check:
UDP, PseudoTLS, FullTLS, HTTPS connectivity will be checked to this relay (VIP) FQDN: worldaz.tr.teams.microsoft.com
If user wants to check connectivity to a particular relay (VIP) IP, please specify in NetworkAssessment.exe.config.

Connectivity check source port range: 50000 - 50019

Relay : 52.113.11.46    is the relay load balancer (VIP)
Relay : 52.113.11.46    is reachable using Protocol UDP and Port 3478

Starting Service Connectivity Check:
Relay : 52.113.11.46    is QOS (Media Priority) enabled
Relay : 52.113.11.46    is the relay load balancer (VIP)
Relay : 52.113.11.46    is reachable using Protocol PseudoTLS and Port 443
Relay : 52.113.11.46    is the relay load balancer (VIP)
Relay : 52.113.11.46    is reachable using Protocol FullTLS and Port 443
Relay : 52.113.11.46    is the relay load balancer (VIP)
Relay : 52.113.11.46    is reachable using Protocol HTTPS and Port 443
Relay : 52.113.155.65   is the actual relay instance (DIP)
Relay : 52.113.155.65   is reachable using Protocol UDP and Port 3478
Relay : 52.113.155.65   is the actual relay instance (DIP)
Relay : 52.113.155.65   is reachable using Protocol UDP and Port 3479
Relay : 52.113.155.65   is the actual relay instance (DIP)
Relay : 52.113.155.65   is reachable using Protocol UDP and Port 3480
Relay : 52.113.155.65   is the actual relay instance (DIP)
Relay : 52.113.155.65   is reachable using Protocol UDP and Port 3481

Relay connectivity and Qos (Media Priority) check is successful for all relays.
Service verifications completed successfully

dari hasil test, salah satu ip address server Transport Relay adalah 52.113.155.65. Setiap kali kita menjalankan test, hasilnya akan berbeda-beda karena ada banyak sekali. Jika diperhatikan, walaupun hasilnya berbeda, rentang ip address biasanya masih terdapat dalam satu subnet.

SDP INVITE melalui TURN dari Transport Relay akan tampak seperti berikut:

Server Transport Relay melakukan relay dari ip address pengguna (IndiHome), untuk disambungkan dengan remote-candidate yang mencantumkan ip address SBC, yang menjawab negosiasi tersebut melalui 200 OK dengan SDP seperti berikut:

Kali ini SBC mengarahkan panggilan ke Transport Relay, bukan langsung ke pengguna. Sehingga sepanjang komunikasi, Transport Relay akan mewakili pengguna untuk tersambung ke SBC, dan panggilan pun tetap dapat berlangsung walaupun ip address pengguna tidak dapat mengakses ip address SBC secara langsung dikarenakan diblokir oleh firewall.

Bagaimana? Mau coba media bypass?

Pranala Luar

      Leave a Comment

      Your email address will not be published. Required fields are marked *