morii

With every click of the shutter,
you’re trying to press pause on your life.
If only so you can feel a little more comfortable moving on
living in a world stuck on play.

Links

  • https://youtu.be/1asBOCAmgaw

midding

v. intr. feeling the tranquil pleasure of being near a gathering but not quite in it—hovering on the perimeter of a campfire, chatting outside a party while others dance inside, resting your head in the backseat of a car listening to your friends chatting up front—feeling blissfully invisible yet still fully included, safe in the knowledge that everyone is together and everyone is okay, with all the thrill of being there without the burden of having to be.

Links

  • https://www.dictionaryofobscuresorrows.com/post/174141113510/midding

Mencoba Microsoft Teams SIP Gateway dengan IP Phone Yealink T21P E2

Per November 2021, Microsoft Teams mengumumkan fitur resmi SIP Gateway yang memperbolehkan perangkat telepon SIP untuk dapat melakukan panggilan Teams. Perangat telepon SIP yang didukung masih terbatas, tapi lumayan lah untuk membantu migrasi awal ke Teams, jika tidak ingin membeli Microsoft Teams certified IP Phone yang harganya relatif cukup tinggi untuk saat ini.

Perangkat telepon SIP lama yang didukung pun masih terbatas dari produsen Cisco, Poly, AudioCodes dan Yealink. Untuk tipe-tipe dan firmware yang didukung pun dapat dilihat daftarnya di tautan ini:

https://docs.microsoft.com/en-us/microsoftteams/sip-gateway-plan.

Dan untuk kali ini, saya akan coba setup, dengan ip phone Yealink T21P E2 yang saya pinjam dari Svarakom.

Yealink SIP-T21P E2 - Dual-line Entry level IP phone - Voice Communication  | Yealink

IP Phone ini sangat mudah didapatkan di lokapasar seperti Tokopedia atau Bukalapak dengan kisaran harga mulai dari Rp 250.000 sampai dengan Rp 400.000.

Persiapan akun Microsoft Teams

Akun yang hendak digunakan untuk perangkat IP Phone dapat berupa akun Microsoft Teams dengan Phone System yang EnterpriseVocenya sudah diaktifkan, dan diassign nomor telepon DID. Jika akun tanpa DID (misal karena menggunakan CallerID Policy yang mencantumkan nomor telepon resource account), maka IP phone tidak akan dapat aktif, walaupun sudah disambungkan ke akun MSTeams dan diautentikasi dengan Pair Code.

Jadi pastikan akun disetel dengan perintah, misal:

Set-CsUser -Identity user@domain.tld -EnterpriseVoiceEnabled $true -HostedVoiceMail $true -OnpremLineURI tel:+622139701234

Atau dengan perintah cmdlet MicrosoftTeams yang baru:

Set-CsPhoneNumberAssignment -Identity "user@domain.tld" -PhoneNumber "+622139701234" -PhoneNumberType DirectRouting

Opsi lain, dapat menggunakan akun common area phone.

Persiapan IP Phone Yealink T21P E2

Sesuai dengan petunjuk yang dapat dibaca di dokumentasi Microsoft, per tulisan ini, versi firmware IP Phone yang direkomendasikan adalah 52.84.0.140.

Firmware dapat diunduh dari laman Yealink, dan cara pemutakhiran dapat diikuti sesuai dengan petunjuk buku panduan penggunaan perangkat.

Setelah firmware sudah sesuai, lakukan Reset to Factory untuk mengosongkan konfigurasi perangkat dari setelan sebelumnya. Tekan tombol yang ada di tab Settings > Upgrade > Reset to Factory, dan tunggu beberapa saat sampai perangkat siap kembali.

Setelah berhasil, asumsi perangkat mendapatkan IP address di LAN melalui DHCP, masuk ke halaman login web IP phone (default username dan password adalah admin/admin), lalu pilih tab Settings > Auto Provision lalu di isian Server URL, isikan dengan salah satu alamat URL dari daftar berikut ini:

  • Area EMEA (Europe, the Middle East, and Africa): http://emea.ipp.sdg.teams.microsoft.com
  • Area Americas : http: http://noam.ipp.sdg.teams.microsoft.com
  • APAC (Asia Pacific): http://apac.ipp.sdg.teams.microsoft.com

Dalam contoh kali ini saya akan memilih APAC:

Setelah itu klik Confirm dan klik Auto Provision Now di bagian bawah laman. Setelah klik Auto Provision Now, muncul pop up yang memastikan apakah akan dilakukan autoprovision sekarang, klik OK.

Perangkat akan booting beberapa kali (untuk tipe ini boot sebanyak 2 kali). Setelah selesai, maka secara otomatis di dalam setelan Account akan muncul seperti berikut:

Persiapan di Portal Admin Microsoft Teams

Masuk ke portal admin Teams di https://admin.teams.microsoft.com. Dan pastikan menu SIP devices sudah muncul di bawah menu Teams devices di panel menu sebelah kiri layar.

Jika belum, dari panel menu sebelah kiri, pilih Voice > Calling policies. Lalu di tabel Manage policies pilih Global (Org-wide default). Lalu pastikan di bagian SIP devices can be used for calls disetel ke On.

Di sini kita juga dapat membuat policy baru, tapi untuk kemudahan dalam mencoba, kali ini kita gunakan policy Global terlebih dahulu.

Berikutnya dari menu panel sebelah kiri, pilih Teams devices > SIP devices dan di pojok kanan atas, klik tulisan Actions > + Provision devices. Di bawah tulisan Waiting on activation klik Add MAC addresses manually, yang akan memunculkan laci menu di layar sebelah kanan. Isikan mac address IP Phone di bawah isian MAC Address, dan tulisakan lokasi perangkat di bawah Location. Di halaman Provision devices di dalam tabel Waiting on activation, pilih device yang barusan kita tambahkan, lalu klik Generate verification code yang akan menghasilkan 6 digit kode untuk enroll perangkat.

Lalu di perangkat IP Phone, tekan/dial *55* diikuti 6 digit verification code sesuai tabel di atas. Misal: *55*841234. Jika berhasil, telepon akan memberikan tone dalam kualitas HD sebanyak 2 kali, lalu kembali ke layar semula, kali ini dengan menu baru di layar bertuliskan Sign-in. Tekan menu Sign-in pada perangkat telepon, yang akan memunculkan 9 char Pair Code.

Buka laman https://microsoft.com/devicelogin, dan isikan Pair Code tersebut ke laman, lalu klik Next

di laman berikutnya pilih akun yang akan digunakan untuk perangkat IP phone ini. Saya pilih akun email kerja saya yang sudah diaktifkan EnterpriseVoice-nya, lalu klik Continue.

Tunggu beberapa saat, jika tidak ada kendala, perangkat IP phone akan muncul nomor DID sesuai dengan yang disematkan di akun MSTeams yang digunakan. Jika dilakukan test panggilan inbound, maka client MSTeams baik yang di gawai maupun IP Phone akan berdering bersamaan.

Jika ingin Sign-out dari perangkat tersebut, tekan button Sign-out yang telah disediakan di layar utama IP phone tersebut.

Keterbatasan SIP Phone

Walaupun dapat digunakan untuk mengirimkan dan menerima panggilan Microsoft Teams, SIP phone hanya memiliki fungsionalitas yang terbatas, dan tidak semua fitur panggilan Microsoft Teams dapat dinikmati. SIP phone untuk Microsoft Teams dapat melakukan fitur panggilan antara lain:

  • Mengirimkan dan menerima panggilan ke PSTN.
  • Multiple simultaneous calls, yaitu dapat melakukan hold call dan menerima panggilan lain. Selain itu juga dapat mengkonferensikan dua panggilan sekaligus.
  • Fitur DND (Do Not Disturb).
  • Melakukan Hold/Resume panggilan. Melakukan mute/unmute panggilan.
  • Dapat digunakan menerima voicemail.
  • MWI (Message Waiting Indicator), berupa notifikasi jika ada pesan suara (voicemail) baru.
  • Sign-in dan Sign-out akun. Jika hendak meninggalkan meja kantor, atau sedang berada di co-working space, maka kita ingin dapat dengan mudah menggunakan perangkat telepon yang ada, dan mematikan akun kita jika hendak meninggalkan lokasi.
  • DTMF (Dual Tone Multi Frequency). Pengguna SIP phone dapat berinteraksi dengan IVR lain melaui DTMF. (Misal, callcenter Bank, operator, dll).
  • Teams meeting dengan mendial ke nomor conference. Saat ini SIP phone tidak akan mendapatkan alert jika diundang ke sebuah conference.
  • Call transfers, baik blind transfer maupun attended transfer.
  • Local Call Forwarding. Perangkat SIP dapat disetel untuk melakukan callforward.

Bandingkan fitur di atas dengan fitur Microsoft Teams certified IP Phone, yang memiliki jauh lebih banyak kemampuan untuk mengakses semua fitur-fitur panggilan, calendar, user delegation, hot desking, video dan lain sebagainya.

Pranala luar

Custom Music On Hold di Microsoft Teams

Baru tau, kalo MSTeams sudah bisa mengunggah custom Music On Hold. Per tulisan ini, dokumentasinya sudah dimutakhirkan tanggal 9 Desember 2021 yang lalu. Mari kita coba.

Pertama, siapkan berkas lagu dalam format mp3 lengkap dengan path direktorinya untuk diunggah melalui PowerShell dengan cara seperti berikut ini:

$content = Get-content "C:\Users\HP\Music\goo-goo-dolls-iris.mp3" -Encoding byte -ReadCount 0

Lalu unggah file tersebut. Karena nama berkas lagu terlalu panjang, saya ganti dengan yang lebih pendek seperti berikut:

$lagu = Import-CsOnlineAudioFile -FileName "iris.mp3" -Content $content

Jika dilihat, variabel $lagu isinya bakal seperti berikut:

PS> $lagu


Id                : 181b9e70048e440cb8be2f5ea18f7e5b
FileName          : iris.mp3
ApplicationId     : TenantGlobal
MarkedForDeletion : False

Lalu buat policy baru untuk Music On Hold dengan mengambil masukan dari baris Id di atas seperti berikut:

New-CsTeamsCallHoldPolicy -Identity "CustomMOH1" -Description "Goo Goo Dolls"  -AudioFileId $lagu.Id

Jika berhasil keluarannya seperti berikut:

Identity    : Tag:CustomMOH1
Description : Goo Goo Dolls
AudioFileId : 181b9e70048e440cb8be2f5ea18f7e5b

Lalu berikan policy ke pengguna:

Grant-CsTeamsCallHoldPolicy -Identity username@domain.tld -PolicyName CustomMOH1

Tunggu beberapa saat lalu test panggilan, bisa melalui PSTN juka pengguna tersebut memiliki lisensi dan nomor DID, atau dari sesama pengguna MSTeams secara On-net. Lalu hold panggilan untuk test Music On Hold.

Per tulisan ini dibuat, penyetelan Music On Hold masih harus dilakukan dari PowerShell karena belum ada di GUI portal admin Microsoft Teams. Hal tersebut juga disampaikan di dokumentasinya:

Jika ingin menerapkan policy ke semua pengguna sekaligus yang mungkin jumlahnya banyak, maka bisa melakukan modifikasi di CsTeamsCallHoldPolicy Global.

PS> Get-CsTeamsCallHoldPolicy


Identity    : Global
Description :
AudioFileId :

Identity    : Tag:CustomMOH1
Description : Goo Goo Dolls
AudioFileId : 181b9e70048e440cb8be2f5ea18f7e5b

Yang perlu diperhatikan

Pastikan penggunaan lagu yang diunggah tidak melanggar hak cipta apa pun. Dari dokumentasi Microsoft juga mencantumkan pemberitahuan yang sama.

Pranala luar

Connect-AzureAD dari Ubuntu

Suatu ketika saya menggunakan dekstop Ubuntu untuk melakukan pekerjaan kantor, sekedar selingan saja. Dan kebetulan juga akhir-akhir ini sedang banyak belajar Azure AD, jadi saya mencoba install PowerShell di Ubuntu.

Tapi pada saat hendak tersambung ke Azure AD melalui PowerShell melalui perintah Connect-AzureAD, saya mendapati error:

Connect-azuread: The term 'Connect-azuread' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Padahal saya yakin sekali module cmdlet AzureAD sudah diinstall dan dapat dikonfirmasi:

dan juga sudah dilakukan Import-Module dan dapat dikonfirmasi:

PS /home/godril> Import-Module AzureAD
Import-Module: Assembly with same name is already loaded

Troubleshoot

Setelah browsing ke sana ke mari akhirnya nemu petunjuk bagaimana menjalankan cmdlet AzureAD di Ubuntu. Yaitu dengan meregister gallery berikut ini:

Register-PackageSource -Trusted -ProviderName 'PowerShellGet' -Name 'Posh Test Gallery' -Location https://www.poshtestgallery.com/api/v2/

Lalu tambahkan module AzureAD dari gallery tersebut:

Install-Module AzureAD.Standard.Preview

Lali import module yang telah diinstall tersebut:

Import-Module AzureAD.Standard.Preview

Setelah itu jalankan perintah Connect-AzureAD lagi yang akan meminta kita membuka link dan mengisikan kode yang digenerate seperti di bawah ini:

PS /home/godril> Connect-AzureAD                       
WARNING: To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code SMXA7N6DA to authenticate.

Buka tautan ke https://microsoft.com/devicelogin lalu isikan kode SMXA7N6DA di atas:

Klik Next dan PowerShell akan otomatis login ke AzureAD.

Pranala luar

Tabrakan perintah di module cmdlet AzureAD dan AzureADPreview

Lagi iseng baca-baca MS700, tiba-tiba perlu menjalankan perintah cmdlet AzureAD. Tapi setelah tersambung, perintah tersebut ternyata ada di module cmdlet AzureADPreview. Untuk menambahkan module AzureADPreview, walaupun beberapa perintah ada yang kembar (tapi banyak yang tidak sama juga), maka pasang module dengan perintah berikut:

Install-Module AzureADPreview -AllowClobber
Import-Module AzureADPreview

Nah, hanya saja setelah saya coba menjalakan perintah Connect-AzureAD, masih juga tidak menemukan perintah baru tersebut (dalam hal ini Get-AzureADDirectorySetting):

Dan karena perintah tersebut sebenarnya ada di AzureADPreview:

ada kemukinkan karena saya menjalankan perintah Connect-AzureAD dari module AzureAD, bukan dari AzureADPreview. Oleh karena itu saya coba logout dan tersambung kembali dari module AzureADPreview seperti berikut:

AzureADPreview\Connect-AzureAD

Setelah itu baru saya dapat menjalankan perintah Get-AzureADDirectorySetting tanpa error.

Pranala luar

Azure AD warning “Your organization has disabled this device”

Jadi ceritanya lagi minjem laptop anak, untuk ngakses Azure AD, tapi begitu berusaha tersambung melalui PowerShell mendapatkan pesan seperti ini:

Baru inget biasanya memang lebih sering ngakses dari laptop sendiri, jadi ketika ganti perangkat, akan dideteksi sebagai device baru. Untuk mengatasinya, masuk ke portal Azure AD, lalu klik icon menu di kiri atas, yang akan memunculkan drop down menu, dan pilih Azure Active Directory -> Devices -> All devices.

Di daftar device cari yang kolom Enabled nya masih status No:

Pilih device tersebut dengan mencentang kotak, lalu klik Enable yang kemudian akan memunculkan jendela konfirmasi. Klik Yes jika sudah yakin.

Jika berhasil, status device tersebut akan berubah:

Setelah itu, jika tidak ada kendala lain, maka untuk tersambung ke Azure AD sudah bisa kembali.

Pranala luar

Microsoft Teams 1:1 Call Recording

Video Record Logo Images, Stock Photos & Vectors | Shutterstock

Call Recording atau rekaman percakapan di Microsoft Teams bisa dilakukan dengan dua cara; yaitu dengan Compliance Recording, atau dengan mengaktifkan recording policy di dalam MSTeams sendiri.

Karena untuk Compliance Recording saya butuh perangkat yang bisa dioprek (ada yang mau meminjami? Wahihihhih…), kali ini saya akan membahas yang gampang dulu, yaitu 1:1 Call Recording yang secara default belum diaktifkan.

Kenapa?

Call Recording ini merupakan hal yang sensitif, terutama jika berkaitan soal hukum. Siapa yang boleh merekam, apa yang perlu direkam, kapan rekaman boleh dilakukan, apakah harus atas sepengetahuan kedua belah pihak yang berbicara atau cukup satu pihak saja, dan seterusnya. Jadi MSTeams memastikan produknya tidak berbenturan dengan hukum di wilayah tertentu dengan secara default mematikan 1:1 call recordingnya.

Untuk mengaktifkannya, bisa dengan mengakses TAC portal (https://admin.teams.microsoft.com). Lalu di panel menu sebelah kiri, pilih Voice. Pilih tab Manage policies. Di sini kita bisa memilih policy yang ada atau membuat baru untuk. Jika menggunakan policy yang ada, bisa memilih policy Global (Org-wide default) lalu geser saklar di Cloud recording for calling dari Off ke On.

lalu klik Save.

Dengan demikian secara defautl keseluruhan pengguna MSTeams dalam tenant tersebut akan memiliki kemampuan 1:1 Call recording.

Jika ingin hanya memberikan akses ke beberapa pengguna saja, kita dapat membuat policy baru melalui portal TAC maupun powershell.

Di halaman Calling policies, klik +Add di tabel Manage policies, yang kemudian akan memunculkan halaman persis seperti pada saat menampilkan Global policy di atas. Hanya saja kali ini kita harus memberikan nama untuk policy yang baru tersebut.

Di bagian Add a name for your calling policy isikan nama policy baru kita, misal, Rekaman, lalu geser saklar Cloud recording for calling ke arah On. Setelah itu Save.

Hal ini kita lakukan jika di Global policy tidak mengaktifkan Cloud recording for calling.

Untuk mengaktifkan pengguna dengna policy yang baru ini, masuk ke menu Users -> Manage users lalu pilih barus pengguna yang dituju dan klik kolom View Policies.

Di bawah tab Policies pilih Edit

yang akan memunculkan laci menu di sebelah kanan layar, lalu pilih Calling Policy, klik di tanda panah bawah untuk menampilkan semua policy yang ada. Policy baru kita yang bernama Rekaman akan muncul, lalu pilih dan klik Apply.

Tunggu beberapa saat hingga Microsoft melakukan perubahan policy tersebut. Bisa dalam waktu beberapa menit atau bahkan sampai jam. Jika policy pengguna tersebut sudah berubah, test call dengan sesama pengguna MSTeams. Pada saat panggilan sudah berlangsung, klik pada elipsis (menu bergambar titik tiga di kanan atas jika pada aplikasi desktop)

Klik Start recording dan akan muncul pemberitahuan bahwa perekaman pembicaraan sedang berlangsung:

Pemberitahuan di atas muncu di layar kedua belah pihak.

Hasil rekaman dapat diunduh dari jendela obrolan (chat) di kedua belah pihak seperti berikut:

Sayangnya, saat ini (per tulisan ini) rekaman panggilan ke PSTN masih belum dapat dilakukan dari aplikasi Desktop.

Tapi, kabar baiknya, masih bisa dilakukan dari MSTeams berbasis web browser.

Walaupun kadang harus mengorbankan kualitas pembicaraan karena entah kenapa jika saya melakukan panggilan MSTeams dari browser ke PSTN, delaynya selalu lebih tinggi dibanding melalui aplikasi desktop maupun smartphone.

Mengaktifkan 1:1 Call Recording dari PowerShell

Belum lengkap rasanya kalau belum menyampaikan cara mengaktifkan 1:1 Call Recording ini dari PowerShell.

Untuk membuat policy baru perintahnya adalah sebagai berikut (karena tadi sudah membuat policy Rekaman, sekarang kita buat Rekaman2 dengan setelan sama dengan sebelumnya):

New-CsTeamsCallingPolicy -Identity Rekaman2 -AllowCloudRecordingForCalls $true

Jika berhasil outputnya akan seperti ini:

Identity                          : Tag:Rekaman2
Description                       :
AllowPrivateCalling               : True
AllowWebPSTNCalling               : True
AllowVoicemail                    : UserOverride
AllowCallGroups                   : True
AllowDelegation                   : True
AllowCallForwardingToUser         : True
AllowCallForwardingToPhone        : True
PreventTollBypass                 : False
BusyOnBusyEnabledType             : Disabled
MusicOnHoldEnabledType            : Enabled
SafeTransferEnabled               : Disabled
AllowCloudRecordingForCalls       : True
AllowTranscriptionForCalling      : False
LiveCaptionsEnabledTypeForCalling : DisabledUserOverride
AutoAnswerEnabledType             : Disabled
SpamFilteringEnabledType          : Enabled
CallRecordingExpirationDays       : 60
AllowCallRedirect                 : Disabled

Kita bisa mengubah setelan untuk policy ini kelak dengan perintah Set-CsTeamsCallingPolicy -identity Rekaman2 <setelan tambahan>.

Jika sudah, sematkan ke pengguna MSTeams :

PS C:\WINDOWS\system32> Grant-CsTeamsCallingPolicy -Identity ghwishnu@domain.tld -PolicyName Rekaman2

Pranala Luar

AudioCodes VE AWS untuk MSTeams Direct Routing Multi Tenant.

Ceritanya…

Dapat tugas untuk melihat-lihat SBC di public cloud. Tidak banyak-banyak sih brand yang diulas, antara AudioCodes VE atau Ribbon Communications SWe Lite saja. Kalo yang SWe Lite kebetulan sudah punya mainannya di private cloud kantor, cuma pengen nyoba yang AudioCodes VE, walhasil nyoba yang di AWS. Percobaannya sama, yaitu menyambungkan Microsoft Teams Direct Routing ke kedua SBC tersebut.

AudioCodes VE AWS

AuidoCodes menyediakan dua jenis langganan di AWS. Yang pertama disebut Pay As You Go (PAYG). SBC ini memiliki fitur lengkap, dengan kapasitas 2000 concurrent calls, sudah mendukung Microsoft Teams Direct Routing, transcoding codec SILK, dukungan TLS dan SRTP, integrasi dengan Call Recording, dst dst.

Berapa duit tuh?

Pengguna hanya dikenakan biaya panggilan dalam menit. Jumlah menitnya tidak terbatas, pokoknya pakai dulu, nanti berapa lama panggilannya baru ditagihkan. Cocok untuk penyedia layanan yang ingin memulai layanan tanpa harus bingung macam-macama lisensi yang harus dibeli. Karena semua sudah ada.

Tapi karena hanya ingin mencoba, saya memilih jenis kedua, yaitu Bring Your Own License (BYOL). Jika jenis SBC ini diaktifkan, pengguna diberi kesempatan mencoba lebih awal (atau istilahnya evaluation license) dengan dukungan koneksi ke Microsoft Teams Direct Routing, 3 concurrent calls. Lumayan lah yaa…

Jika puas dengan percobaannya, nanti bisa beli lisensi di portal https://www.audiocodes.com/swactivation.

Singkatnya, yang saya pakai adalah :

  • AudioCodes VE versi 7.4 BYOL di AWS.
  • AWS instance tipe m5.large sesuai dengan rekomendasi AudioCodes.
  • Satu interface dengan satu ip public statik (SBC tidak peduli jika trafik lewat satu atau lebih interface, karena pengaturan terjadi di logic-nya).

Untuk pemasangan di AWS saya lewati saja, karena bisa dibaca di tautan berikut ini:

https://www.audiocodes.com/media/13254/mediant-virtual-edition-sbc-for-amazon-aws-installation-manual-ver-72.pdf.

Konfigurasi AudioCodes

Sebenarnya petunjuk instalasi AudioCodes untuk Multi Tenant Microsoft Teams Direct Routing cukup jelas tercantum di dokumentasi daringnya. Hanya saja untuk memahami maksud dari petunjuk setup tersebut memang sangat membingungkan. Jadi saya sekaligus membedah apa maksud dari isi petunjuk tersebut.

Tujuan percobaan ini agar terwujud topologi seperti gambar berikut:

  • SBC tersambung ke dua layanan Hosted PBX berbeda dengan DID yang berbeda pula.
  • Masing-masing Hosted PBX tersambung ke Microsoft Teams Direct Routing untuk dua tenant Office365 yang berbeda juga (misal, ofon.co.id dan customer.tld).

Menambahkan SBC

Masing-masing tenant Office365 (selanjutnya saya sebut O365 saja), tersambung ke SBC yang sama, dengan hostname yang berbeda. Untuk O365 ofon.co.id akan mengenali SBC sebagai ofon.biz, sedangkan O365 customer.tld akan mengenali SBC sebagai tenant1.ofon.biz.

Untuk detail penambahan domain dapat dibaca di tautan berikut ini:

https://docs.microsoft.com/en-us/microsoftteams/direct-routing-sbc-multiple-tenants

Pastikan SBC juga sudah ditambahkan dengan perinah:

untuk O365 ofon.co.id:

New-CsOnlinePSTNGateway -Fqdn ofon.biz -SipSignalingPort 5061 -Enabled $true -ForwardPai $true -MaxConcurrentSessions 5

untuk O365 customer.tld

New-CsOnlinePSTNGateway -Fqdn tenant1.ofon.biz -SipSignalingPort 5061 -ForwardCallHistory $true -Enabled $true -MaxConcurrentSessions 5

Konfigurasi AudioCodes VE

Unggah Berkas SSL Cert

Untuk mengunggah berkas sertifikat SSL yang sudah didapatkan (daftar Certificate Authority yang direkomendasikan Microsoft dapat dilihat di :

https://docs.microsoft.com/en-us/microsoftteams/direct-routing-plan#public-trusted-certificate-for-the-sbc

Dalam contoh di sini, saya menggunakan GeoTrust yang wildcard supaya bisa melingkupi banyak subdomain untuk ofon.biz. SSL ini di Indonesia bisa didapatkan di IDWEBHOST.

Setelah dikonversi menjadi P12 (cara membuat berkas sertifikat P12 dapat dibaca di https://www.ssl.com/how-to/create-a-pfx-p12-certificate-file-using-openssl/), unggah sertifikat tersebut melalui menu SETUP -> IP NETWORK -> SECURITY -> TLS Contexts

Instalasi AudioCodes sudah membuatkan TLS Context dasar dengan nama default. Kita bisa mengubah konfigurasi di context tersebut. Tapi disarankan sebaiknya membuat baru dengan memilih menu +New dan isikan:

Name: Teams (bebas, boleh diisi apa saja. Tapi kali ini saya memilih nama ini).

TLS Version: TLSv1.2 (versi TLS yang digunakan oleh Microsoft Teams Direct Routing).

DH key Size: 2048 (disetting sejak membuat CSR ketika hendak mendaftar pembelian SSL).

Sisa parameter lainnya biarkan default. Lalu klik Apply dan klik Save di bagian atas halaman konfigurasi.

Masih di halaman TLS Contexts, klik baris context Teams yang barusan kita buat, lalu skrol ke bawah klik Change Certificate

Di halaman Change Certificates, skrol layar ke bawah ke bagian UPLOAD CERTIFICATE FILES FROM YOUR COMPUTER, dan isian Private key pass-phrase isikan kata sandi yang dibuat pada saat menggenerasi file .P12.

Lalu klik Load Private Key File dan pilih file .P12 yang hendak diunggah. Jika unggahan berhasil akan tampak seperti berikut:

Unggah trusted certificate dari Baltimore milik MSTeams agar terbentuk sambungan Mutual TLS (MTLS). Certificate tersebut dapat diunduh dari https://docs.microsoft.com/en-us/microsoft-365/compliance/encryption-office-365-certificate-chains?view=o365-worldwide. Lalu unggah dari laptop dengan memilih Trusted Root Certificate, di sebelah Change Certificate:

Klik Import dan pilih berkas sertifikat Baltimore dalam bentuk .pem

Jika berhasil, sertifika tersebut akan muncul di tabel Trusted Root Certificates

Jangan lupa klik Save.

Media Realms

Media Realms adalah konfigurasi untuk menetapkan kelompok port RTP untuk masing-masing kaki SIP. Sesuai gambar topologi di atas, SBC memiliki “dua kaki” (walaupun network interfacenya cuma satu).

Satu ke arah Microsoft Teams Phone System dengan port 5061/TLS, dan yang lain ke arah layanan SIP trunk (dalam hal ini dua hosted IP PBX) dengan port 5060/UDP. Kedua port SIP ini kelak akan menginisisasi RTP port untuk komunikasi suara. Dalam contoh di sini, saya tetapkan, semua port RTP yang menuju IP PBX masuk dalam rentang 6000/UDP – 6100/UDP, sedangkan yang menghadap Microsoft Teams Phone System dalam rentang 7000/udp – 7100/udp. Sehingga setting Media Relams-nya seperti berikut:

Masuk ke menu SETUP -> SIGNALING & MEDIA -> CORE ENTITIES -> MEDIA REALMS lalu klik +New

Isikan parameter sebagai berikut:

Name: SIPTrunk (bebas diisi apa saja)

Topology Location: Down (ini untuk menentukan posisi di gambar topologi yang secara otomatis digenerasi oleh AudioCodes).

IPv4 Interface Name: #0 [eth0] (karena cuma ada satu, maka interface tersebut yang dipilih).

UDP Port Range Start: 6000

Number of Media Session Legs: 100

klik Apply dan Save.

Klik +New kembali untuk menambahkan Media Realms yang menghadap MSTeams. Lalu isikan:

Name: Teams (bebas)

Topology/Location: Up (untuk gambar topologi)

IPv4 Interface Name: #0 [eth0] (karena cuma ada satu, maka interface tersebut yang dipilih).

UDP Port Range Start: 7000

Number Of Media Session Legs: 100

Klik Apply dan Save.

SIP Interfaces

Seperti yang telah dibahas di atas, SBC memiliki “dua kaki” logical walaupun secara fisik hanya memiliki satu network interface. “Dua kaki” ini disetel melalui menu SIP Interfaces dengan memilih SETUP -> SIGNALING & MEDIA -> CORE ENTITIES -> SIP Interfaces lalu klik +New. Isikan parameter sebagai berikut:

Name: SIPTrunk (bebas,tapi sebaiknya diseragamkan dengan Media Realm).

Topology Location: Down (untuk gambar topologi)

Network Interface: #0 [eth0]

Application Type: SBC

[GENERAL]

UDP Port: 5060

TCP Port: 0

TLS Port: 0

[CLASSIFICATION]

Classification Failure Response Type: 500

[MEDIA]

Media Realm: #0[SIPTrunk] (pilih dari menu dropdown)

Direct Media: Disable

Klik Apply dan Save.

Klik +New untuk menambahkan SIP Interface yang menghadap MSTeams, lalu isikan sebagai berikut:

Name: Teams (bebas, tapi sebaiknya seragamkan dengan Media Realm).

Topology Location: Up (untuk gambar topologi)

[GENERAL]

Network Interface: #0[eth0]

Application Type: SBC

UDP Port: 0

TCP Port: 0

TLS Port: 5061

[CLASSIFICATION]

Classification Failure Reponse Type: 0 (rekomendasi dari AudioCodes untuk alasan keamanan).

[MEDIA]

Media Realm: #1[Teams] (dipilih dari menu dropdown)

Direct Media: Disable

[Security]

TLS Context Name: #1[Teams] (dipilih dari menu dropdown).

TLS Mutual Authentication: Enable (jangan lupa mengunggah trusted cert Baltimore milik MSTeams).

Klik Apply dan Save.

Proxy Sets

Proxy Sets adalah pengelompokan SIP peers, yaitu node SIP diujung kaki SBC. Contoh, di ujung kaki SBC yang menghadap ke SIPTrunk terdapat IP PBX, sehingga untuk kelompok Proxy Set di kaki ini berisi daftar ip address IP PBX. Sedangkan untuk yang menghadak ke Teams, Proxy Set akan berisi semua SIP server Microsoft Teams Phone System (sip.pstnhub.microsoft.com, sip2.pstnhub.microsoft.com, dan sip3.psnthub.microsoft.com).

Untuk menambahkan Proxy Sets, pilih Setup -> SIGNALING & MEDIA -> CORE ENTITIES -> Proxy Sets lalu pilih +New untuk menambahkan. Isikan parameter sebagai berikut:

[GENERAL]

Name: Teams

SBC IPv4 SIP Interface: #1 [Teams] (dipilih dari menu dropdown).

TLS Context Name: #2 [Teams] (dipilih dari menu dropdown)

[KEEP ALIVE]

Proxy Keep-Alive: Using OPTIONS

[REDUNDANCY]

Proxy Hot Swap: Enable

Proxy Load Balancing Method: Random Weights

Klik Apply dan Save.

Di halaman tabel Proxy Sets, pilih baris Teams, lalu gulung layar ke bawah dan pilih menu Proxy Address.

Klik +New dan isikan:

Proxy Address: sip.pstnhub.microsoft.com:5061

Transport Type: TLS

Proxy Priority: 1

Proxy Random Weights: 1

Klik Apply. Lalu tambahkan lagi untuk sip2.pstnhub.microsoft.com:5061 dengan priority 2, dan sip3.pstnhub.microsoft.com:5061 dengan priority 3.

Klik Apply dan Save.

Klik +New lagi untuk menambahkan Proxy Sets ke arah IP PBX dan isikan:

[GENERAL]

Name: SIPTrunks

SBC IPv4 SIP Interface: #0 [SIPTrunk] (dipilih dari menu dropdown).

[KEEP ALIVE]

Proxy Keep-Alive: Using OPTIONS

Klik Apply dan Save.

Di halaman Proxy Set, pilih baris SIPTrunks, lalu gulung layar ke bawah ke menu Proxy Address, pilih dan klik +New, isikan:

Proxy Address : f2ea30.pbx001.ofon.co.id:5060 (alamat Hosted PBX)

Transport Type: UDP

Proxy Priority: 0

Proxy Random Weights: 0

Klik Apply dan Save.

Sesuai dengan gambar topologi sebelumnya, saya akan menambahkan tenant satu lagi yang berlangganan Hosted PBX berbeda.

Di halaman Proxy Sets klik +New dan isikan:

[GENERAL]

Name: Maxotel

SBC IPv4 SIP Interface: #0 [SIPTrunk]

[KEEP ALIVE]

Proxy Keep-Alive: Using OPTIONS

Klik Apply dan Save.

Lalu di halaman tabel Proxy Set, pilih baris tenant di atas (Maxotel), lalu gulung layar ke bawah dan klik Proxy Address.

Klik +New dan isikan informasi alamat hosted PBX seperti di atas.

Keseluruhan tenant menjadi seperti berikut:

Dial Plan

Untuk jumlah routing panggilan yang mencapai ratusan, AudioCodes memiliki fitur tagging untuk mempermudah dan meringkas tabel routing. Tagging ini dapat menandai filter From dan To untuk setiap trunk sehingga kita tidak perlu menambahkan satu persatu IP-to-IP Routing.

Untuk menambahkan dial plan, pilih SETUP -> SIGNALING & MEDIA -> SIP DEFINITIONS -> Dial Plan. Klik +New untuk menambahkan kelompok Dial plan, dan isikan:

[GENERAL]

Name: TeamsTenants (mohon perhatikan baik-baik nama Dial plan ini dan dicatat, karena akan digunakan di dalam konfigurasi Call Setup Rules).

Prefix Case Sensitivity: Enable (untuk membaca prefix DID yang hendak ditagging).

Klik Apply dan Save.

Masih di halaman Dial Plan, pilih baris dial plan yang barusan kita buat, lalu gulung layar ke bawah dan klik Dial Plan Rules.

Klik +New dan isikan:

Name: Kazoo (bebas)

Prefix: +62213973XXXX (ganti XXXX dengan akhiran nomor telepon). Misal +622139734567.

Tag: ofon.biz (isikan dengan hostname SBC yang disematkan ke Tenant Office 365 utama).

Klik Apply dan Save.

Klik +New kembali untuk menambahkan tenant kedua:

Name: Enterprise1

Prefix: +6173667XXXX (ganti XXXX di sini dengan nomor akhiran telepon, misal +61736670001).

Tag: tenant1.ofon.biz (isikan dengan hostname SBC yang disematkan ke Tenant Office 365 kedua).

Klik Apply dan Save.

Call Setup Rules

Sebelum masuk ke menu Call Setup Rules ada catatan yang hendak sampaikan terlebih dahulu.

AudioCodes banyak memanfaatkan Subject dan Variabel di dalam konfigurasi SBC. Contoh variabel yang akan kita buat sendiri di sini nanti bernama TenantFQDN. Variabel ini akan mengambil dari SIP Header untuk menyimpan hostname SBC yang diberikan ke masing-masing Tenant O365. Seperti kita ketahui, Microsoft Teams membedakan tenant satu dengan yang lainnya berdasarkan hostname SBC yang didaftarkan di Azure Active Directory.

Sedangkan untuk subject, biasanya akan ditemui di isian parameter yang terdapat menu Editor seperti ini:

Jadi misal subject seperti Header.P-Asserted-Identity.URL.User, agar tidak salah memasukkan nama subject, klik bagian Editor tersebut. Di dalam isian, kita bisa memulai dengan menekan misal huruf pertama dari subject yang akan kita cari, maka SBC akan menampilkan semua subject dengan awalan hurup tersebut:

Dari sini, jika kita memilih, misal, Header, lalu diikuti dengan tanda titik, maka berikutnya SBC akan menampilkan subject berikutnya:

Dari sini kita bisa memilih, bahkan yang tidak cukup ditampilkan seperti P-Asserted-Identity, cukup menekan hurup pertama, yaitu P

pilih subject tersebut, dan lanjutkan hingga penuh misal :

Header.P-Asserted-Identity.URL.User seperti berikut:

Jika subject yang kita sebut benar, akan muncul centang warna hijau di sebelah kanan isian seperti gambar di atas. Apabila salah, akan muncul pesan Invalid subject seperti di bawah ini:

Jadi, selalu gunakan Editor agar subject yang kita tuliskan benar.

Untuk isiannya, ikuti arahan seperti berikut. Klik +New dan isikan:

Index: 0

NAME: TenantFQDN by PAI (bebas diisi apa saja)

RULES SET ID: 0 (perhatikan baik-baik ID ini untuk nanti dipakai pada saat memproses panggilan).

Request Type: Dial Plan (pilih dari menu dropdown).

Request Target: TeamsTenants (ini adalah nama tabel Dial Plan yang kita buat di atas. Pastikan sama).

Request Key: Header.P-Asserted-Identity.URL.User (gunakan Editor).

Condition: DialPlan.Found exists (gunakan Editor untuk memastikan sintaks benar).

Action Subject: Var. Session.TenantFQDN (gunakan Editor. TenantFQDN adalah nama variabel buatan kita sendiri. Boleh diganti dengan nama lain, tapi pastikan ketika direferensi dari setting lain, nama harus sama. Kali ini saya akan tetap menggunakan nama ini).

Action Type: Modify (pilih dari menu dropdown).

Action Value: DialPlan.Result

Klik Apply.

Klik +New

Index: 1

Name: TenantFQDN by From

Rules Set ID: 0

Request Type: Dial Plan

Request Target: TeamsTenants

Request Key: Param.Call.Src.User

Condition: DialPlan.Found exists And Var.Session.TenantFQDN==”

Action Subject: var.Session.TenantFQDN

Action Type: Modify

Action Value: DialPlan.Result

Klik Apply.

Klik +New

Index: 2

Name: SIP Trunk DstTags

Rules Set ID: 0

Request Type: None

Action Subject: DstTags

Action Type: Modify

Action Value: var.Session.TenantFQDN

Klik Apply.

Klik +New

Index: 3

Name: TenantFQDN by R-URI

Rules Set ID: 1

Request Type: Dial Plan

Request Target: TeamsTenants

Request Key: Param.Call.Dst.User

Condition: DialPlan.Found exists

Action Subject: Var.Session.TenantFQDN

Action Type: Modify

Action Value: DialPlan.Result

Klik Apply.

Klik +New

Index: 1

Name: Teams DstTags

Rule Set ID: 4

Request Type: None

Action Subjects: DstTags

Action Type: Modify

Action Value: ‘Teams’ (perhatikan nama tag ini. Nanti akan digunakan untuk tagging di IP Groups. Boleh diberi nama lain, tapi diingat dengan baik nama tag-nya. Kali ini saya tetap menggunakan nama ‘Teams’).

Klik Apply dan Save.

Keseluruhan Call Setup Rules menjadi:

Message Manipulations

Settingini untuk memodifikasi SIP header dalam bentuk Set. Jadi dalam sebuah paket SIP dapat dilakukan banyak modifikasi.

Pilih menu SETUP -> SIGNALING & MEDIA -> MESSAGE MANIPULATION -> Message Manipulations. Lalu tambahkan baris dengan klik +New.

Index: 0

Name: TeamsTenants (nama ini bebas dan tidak ada hubungannya dengan Dial Plan, tapi alangkah bagus jika dinamakan sama dengan Dial Plan).

Manipulation Set ID: 2 (perhatikan ID ini, untuk nanti digunakan di konifigurasi berikutnya).

Condition: Var.Session.TenantFQDN !=” (gunakan Editor).

Action Subject: Header.Contact.URL.Host

Action Type: Modify

Action Value: Var.Session.TenantFQDN

Klik Apply.

Klik +New

Index: 1

Name: Remove Privacy Header

Manipulation Set ID: 1

Condition: Header.Privacy exists And Header.From.URL !contains ‘anonymous’

Action Subject: Header.Privacy

Action Type: Remove

Klik Apply.

Klik +New

Index: 2

Name: Remove PAI

Manipulation Set ID: 1

Action Subject: Header.P-Asserted-Identity

Action TypeL: Remove

Klik Apply dan Save.

Keseluruhan Message Manipulation seperti berikut:

Coder Group

Coder Group merupakan semua daftar codec yang hendak digunakan. Untuk memastikan semua konfigurasi benar, akan banyak menggunakan G711. Jika konfigurasi SBC sudah oke, mungkin bisa beralih ke SILK.

Pilih menu SETUP -> SIGNALING & MEDIA -> CODERS & PROFILES -> Coder Groups.

Secara default sudah ada Coder Group Name 0: AudioCodersGroup_0, lalu di bagian kolom Coder Name pilih: G711A-law, G711U-law, dan G729. Biarkan setting lain default. Lalu klik Apply dan Save.

IP Profiles

IP Profiles ini untuk menentukan perilaku signaling dan media di masing-masing interface. Salah satunya yaitu REFER. Karena MSTeams Phone System mengembalikan REFER panggilan dari PSTN ke SBC, bahkan ketika melakukan transfer call ke sesama pengguna MSTeams dalam satu tenant O365. Jadi di sini kita akan mengembalikan semua REFER ke MSTeams itu sendiri, terlepas ke mana REFER itu mengarah, bahkan jika mengarah ke PSTN juga.

Untuk penyetelan, masuk ke menu SETUP -> SIGNALING & MEDIA -> CODERS & PROFILES -> IP Profiles. Lalu klik +New dan isikan:

[GENERAL]

Name: Teams (bebas mau diisi apa saja, tapi keseragaman mempermudah perunutan di kemudian hari).

[MEDIA SECURITY]

SBC Media Security Mode: Secured

[SBC EARLY MEDIA]

Remote Early Media Response Type: Transparent. (di sini juga dapat memilih Renspons Type 180 atau 183).

Remote Early Media RTP Dectectio Mode: By Media

[SBC MEDIA]

Extension Coders Group: #0 [AudioCodersGroup_0] (jika mengikuti setup di atas, hanya ada satu opsi di dropdown).

RTCP Mode: Generate Always (untuk menghitung MoS, kali-kali nantinya pengen masang monitoring seperti Homer).

ICE Mode: Disable (karena tidak mengaktifkan Media Bypass. Semua media akan ditangani SBC langsung).

[SBC SIGNALING]

SIP UPDATE Support: Not Supported (MSTeams tidak mendukung ini).

Remote re-INVITE Support: Supported Only With SDP

Remote Delayed Offer Support: Not Supported (codec langsung dipilih sejak INVITE).

[SBC Forward and Transfer]

Remote REFER Mode: Handle Locally (dari sini nanti SBC akan menindak lanjuti di setelan IP-to-IP Routing).

Remote 3xx Mode: Handle Locally

[SBC Hold]

Remote Hold Format: Inactive (SBC akan mengganti SIPTrunk yang menjawab Hold dengan a=inactive dan IP=0.0.0.0 dengan ip address SBC).

Klik Save dan Apply.

Klik +New, dan isikan:

[GENERAL]

Name: SIPTrunks

[MEDIA SECURITY]

SBC Media Security Mode: Not Secured

[SBC SIGNALING]

P-Asserted-Identity Header Mode: Add (jaga-jaga jika ada panggilan anonymous, sehingga masih muncul pemanggil aslinya)

[SBC Forward and Transfer]

Remote REFER Mode: Handle Locally

Remote Replaces Modes: Handle Locally

Play RBT To Transferee: Yes (kalo ada SIP Trunk yang tidak memainkan RBT saat transfer, bisa dibuatkan RBT di SBC).

Remote 3xx Mode: Handle Locally

Klik Apply dan Save.

IP Groups

IP Groups merupakan kumpulan perangkat yang hendak terhubung ke SBC. Bisa berupa IP PBX, SBC lain, ataupun IP Phone. Sebelum melakukan IP-to-IP Routing, IP Groups harus ditentukan terlebih dahulu untuk menentukan jalur.

Pilih SETUP -> SIGNALING & MEDIA -> CORE ENTITIES -> IP GROUPS lalu klik +New dan isikan:

[GENERAL]

Name: Teams

Topology Location: Up (untuk gambar topologi).

Type: Server

Proxy Set: #1 [Teams] (dipilih dari menu dropdown)

IP Profile: #1 [Teams]

Media Realm: #1 [Teams]

[SBC GENERAL]

Classify By Proxy Set: Disable

[ADVANCED]

Local Host Name: ofon.biz (semua sub domain tenant nanti akan menggunakan base domain ini).

Always Use Src Address: Yes

[SBC ADVANCED]

Media TLS Context: #1[Teams] (dipilih dari menu dropdown)

Tags: Teams (tinjau ulang di setelan Call Setup Rules di baris Action Value: ‘Teams’, karena isian di sini di ambil dari setelan tersebut)

[MESSAGE MANIPULATION]

Inbound Message Manipulation Set: 1 (tinjau ulang di bagian Message Manipulation)

Outbound Message Manipulation Set: 2 (tinjau ulang di bagian Message Manipulation)

Klik Apply dan Save.

Klik +New untuk penambahan IP Group Hosted PBX

[GENERAL]

Name: OFON PBX (bebas sesuaikan layanan yang dipakai)

Topology Location: Down (untuk penempatan gambar topologi)

Type: Server

Proxy Set: #2 [SIPTrunks] (dipilih dari menu dropdown)

IP Profile: #2 [SIPTrunks]

Media Realm: #0 [SIPTrunk]

SIP Group Name: f2ea29.pbx001.ofon.co.id (jika IP PBX selalu menjawab request dengan 407 Proxy Authentication Required, isikan ip address atau realm akun di sini, agar disertakan ketika INVITE ulang dengan menyertakan autentikasi. Jika tidak, maka realm akan diisi SIP server Microsoft Teams, yaitu sip.psnthub.microsoft.com, dan tentunya panggilan tidak akan bisa lewat karena autentikasinya salah. Opsi kedua untuk mengatasi masalah di atas ada di seksi SBC GENERAL -> SIP Source Host Name.).

Used By Routing Server: Used

[SBC GENERAL]

Classify By Proxy Set: Enable

Call Setup Rules Set ID: 1 (tinjau ulang Call Setup Rules)

Tags: ofon.biz (sesuai yang disetel di Dial Plan)

Klik Apply dan Save.

Klik +New untuk menambah informasi Tenant berikutnya:

[GENERAL]

Name: Enterprise1-SIPTrunk

Topology Location: Down

Type: Server

Proxy Set: #3 [Maxotel] (tinjau kembali setting Proxy Set)

IP Profile: #2 [SIPTrunks]

Media Realm: #0 [SIPTrunks]

[SBC GENERAL]

Classify By Proxy Set: Enable

[SBC ADVANCED]

Call Setup Rules ID: 1 (tinjau ulang Call Setup Rule)

Tags: tenant1.ofon.biz (sesuai dengan nama SBC yang disematkan ke tenant ini dan dijadikan tag di Dial Plan).

Klik Apply dan Save.

Media Security

Karena MSTeams Direct Routing cuma mau menerima SRTP saja, maka perlu disetel juga bagian ini. Pilih menu SETUP -> SIGNALING & MEDIA -> MEDIA -> MEDIA SECURITY.

[GENERAL]

Media Security: Enable

Media Security Behaviour: Preferable

Klik Apply dan Save.

Message Condition

Message Condition bisa digunakan untuk memperketat aturan untuk SIP yang masuk ke SBC. Setelan ini dapat ditambahkan di IP-to-IP Routing.

Pilih SETUP -> SIGNALING & MEDIA -> MESSAGE MANIPULATION -> Message Coniditions.

Klik +New dan isikan:

Name: Teams-Contact

Condition: Header.Contact.URL.Host contains ‘pstnhub.microsoft.com’ (gunakan Editor untuk memastikan subject ditulis dengan benar)

Klik Apply dan Save.

Classification

Kalo bahasa sederhananya di sini tempat kita membuat ACL (Whitelist dan Blacklist). Pilih menu SETUP -> SIGNALING & MEDIA -> SBC -> Classification lalu klik +New.

[MATCH]

Name: Teams

Source SIP Interface: #1 [Teams] (dipilih dari menu dropdown)

Source IP Address: 54.114.*.* (blok ip address SIP server MSTeams Phone System).

Source Transport Type: Any

Message Condition: #0 [Teams-Contact] (dipilih dari dropdown).

[ACTION]

Action Type: Allow

IP Group Selection: Source IP Group

Source IP Group: #0 [Teams] (dipilih dari menu dropdown).

IP Group Tag Name: default

Klik Apply dan Save.

Accounts

Karena tersambung ke hosted PBX, maka SIP di sini menggunakan autentikasi user dan password. Jika SIP trunk dengan IP auth (ACL), maka tidak perlu mengkonfigurasi ini.

Klik SETUP -> SIGNALING & MEDIA -> SIP DEFINITIONS -> Accounts lalu klik +New dan isikan akun Hosted PBX pertama:

[GENERAL]

Name: OFON PBX

Application Type:SBC

Served IP Group: #0 [Teams]

Serving IP Group: #1 [OFON PBX]

Host Name: f2ea30.pbx001.ofon.co.id (sama dengan sip server yang dipasang di Proxy Set).

Contact User: <isikan username>

Register: Regular

Register by Served IP Groups Status: Register Always

[CREDENTIALS]

User Name: <isikan username akun Hosted PBX>

Password: <isikan password akun Hosted PBX>

Klik Apply dan Save.

Tambahkan akun lain di sini juga. Sehingga keseluruhan tabel menjadi seperti berikut (di sini saya menambahkan ekstra satu akun tenant untuk contoh saja):

Pastikan semua akun teregistrasi ke hosted PBX melalui Monitor -> VOIP STATUS -> Registration Status.

IP-to-IP Routing

Setelah penyetelan yang panjang sekali, sampailah kita ke tahap utama dan terpenting dalam mengkonfigurasi SBC, yaitu IP-to-IP Routing. Di sini panggilan diarahkan dari originasi ke terminasi, dengan menerapkan berbagai aturan yang sudah kita buat di atas. Yang menarik adalah, karena memanfaatkan tagging, maka berapapun jumlah tenant yang ditambahkan, selama interface SIP tidak ada penambahan, maka routing di sini cukup membutuhkan 3 baris aturan saja.

Klik SETUP -> SIGNALING & MEDIA -> SBC -> Routing -> IP-to-IP Routing. Klik +New dan isikan:

[GENERAL]

Name: Terminate OPTIONS

[MATCH]

Source IP Group: Any

Request Type: OPTIONS

[ACTION]

Destination Type: Dest Address

Destination Address: internal (mengacu pada node SBC itu sendiri).

Klik Apply dan Save.

Klik +New

[GENERAL]

Name: Refer Termination

[MATCH]

Source IP Group: Any

Request Type: All

Call Trigger: REFER (dipilih dari menu dropdown)

ReRoute IP Group: #0 [Teams] (dikembalikan ke MSTeams)

[ACTION]

Destination Type: Request URI

Destination IP Group: #0 [Teams]

Klik Apply dan Save.

Klik +New dan isikan:

[GENERAL]

Name: Dest Tag Based Routing

[MATCH]

Source IP Group: Any

Request Type: All

Call Trigger: Any

ReRoute IP Group: Any

[ACTION]

Destination Type: Destination Tag

Klik Apply dan Save.

Lakukan test panggilan inbound dan outbound. Jika tidak ada kendala lain dan setelan sudah sesuai dengan langkah-langkah di atas, harusnya panggilan berjalan dengan baik.

Penambahan Tenant Baru

Seperti yang sudah disampaikan sebelumnya, untuk routing panggilan yang terdapat di IP-to-IP Routing tidak akan bertambah lagi karena sudah memanfaatkan tagging. Untuk penambahan tenant yang mengarah ke SIP trunk yang sama, hanya perlu dilakukan di IP Groups saja. Sedangkan jika tenant mengarah ke SIP trunk yang berbeda, maka selain penambahan di IP Group juga perlu ditambahkan di Proxy Sets.

Jika akun SIP trunk berupa akun dengan autentikasi auth digest (user dan password), maka tambahkan informasi user dan password di bagian Accounts di bawah SIP DEFINITIONS. Jika SIP trunk berupa IP Auth, tidak perlu menambahkan informasi apapun di Accounts.

Topology View

Beberapa kali dalam penyetelan, kita menemukan isian Topology Location yang diisi dengan Down atau Up. Maksudnya adalah penempatan dari entiti tersebut di dalam gambar topologi yang dapat dilihat dengan memilih SETUP -> SIGNALING MEDIA -> TOPOLOGY VIEW.

Jika memilih isian Up, maka entitas akan diletakkan di atas kotak utama SBC, begitu juga sebaliknya ketika memilih lokasi Down. Gambar ini memberikan perspektif mengenai entitas yang sudah kita konfigurasi.

Pranala Luar

Quoted Reply di MSTeams Desktop

Sebenarnya lucu sih ini, platform obrolan yang lain seperti Whatsapp dan Telegram sudah dari dulu menerapkan quoted reply, yaitu menyertakan kalimat di aplikasi obroal dalam sebuah balasan untuk menjaga konteks. Ini MSTeams yang merupakan aplikasi kolaborasi dari perusahaan besar, baru-baru ini saja menerapkan di aplikasi desktopnya. Sementara untuk di aplikasi gawai bergerak sudah ada sejak lama.

Walaupun sudah ada pemberitahuannya di public review pertengahan September 2021, saya baru lihat di Desktop Linux Ubuntu saya hari ini (iya… ketinggalan banget memang).

Tapi untuk quoted reply obrolan di channel masih belum bisa. Jadi ya mari kita tunggu lagi di pembaharuan berikutnya.