{"id":648,"date":"2018-04-06T19:39:46","date_gmt":"2018-04-06T12:39:46","guid":{"rendered":"http:\/\/www.otakudang.org\/?p=648"},"modified":"2018-04-09T17:51:43","modified_gmt":"2018-04-09T10:51:43","slug":"transcoding-g711-ke-opus-di-kazoo","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=648","title":{"rendered":"Transcoding G711 ke Opus di Kazoo"},"content":{"rendered":"<p>Tempo hari kantor kedatangan tamu dari <a href=\"https:\/\/www.aarenet.com\/home\/\">Aarenet<\/a>. Mereka memperesentasikan layanan UC yang bisa mereka sediakan untuk level provider. Platform yang mereka gunakan buatan sendiri yang didevelop dari tahun 2004 &#8211; 2009, tanpa jualan dulu. Hasilnya juga ndak main-main. Menarik lah pokoknya. Kelak kalo punya ITSP sendiri mungkin kepikiran pakai produk mereka, terutama kalo sudah males ngoprek. Hehehe.<\/p>\n<p>Ada beberapa hal yang bisa dipelajari dari presentasi mereka, yang juga bisa diterapkan di network yang lagi saya bangun. Dari sekian banyak hal, saya jadi ngeh kalau ingin layanan UC bisa diakses dari jaringan 3G\/4G (untuk saat ini), yang dipake adalah codec <a href=\"http:\/\/opus-codec.org\/\">Opus<\/a>. Hal lain yang saya pelajari dari mereka mungkin nanti saja diceritakan dalam postingan berikutnya (kalo sempet dan inget). Sekarang ini sudah banyak aplikasi softphone yang sudah menggunakan Opus. Salah satu yang saya pakai di PC\/laptop yang cukup ringan adalah\u00a0<a href=\"https:\/\/www.microsip.org\/\">Microsip<\/a>. Sedangkan di smartphone, saya memanfaatkan <a href=\"https:\/\/play.google.com\/store\/apps\/details?id=org.linphone\">Linphone<\/a>. Jadi di media server Kazoo yang menghadap ke user akan selalu dipaksa menggunakan Opus (kecuali jika user hendak menggunakan fax di mana harus menggunakan codec G711 ulaw\/alaw), sedangkan di sisi menghadap OLO (Other Local Operator) akan tetap menggunakan G711 untuk menjamin kualitas. Karena media server melakukan transcoding, maka di FreeSWITCH ditambahkan konfigurasi seperti berikut:<\/p>\n<ul>\n<li>Di sip profile (kebetulan dalam topologi Kazoo hanya punya satu profile), tambahkan baris:\n<ul>\n<li><strong>disable-transcoding\u00a0= false\u00a0<\/strong>(tujuannya untuk mengaktifkan transcoding).<\/li>\n<li><strong>inbound-late-negotiation\u00a0= true\u00a0<\/strong>(tujuannya supaya media server tidak memilih codec hingga RTP lewat).<\/li>\n<li><strong>inherit_codec = true\u00a0<\/strong>(tujuannya adalah agar media server mencoba codec yang pertama digunakan oleh call leg satunya. Hal ini berhubungan dengan penghematan resource server).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre>\r\n<param name=\"inbound-late-negotiation\" value=\"true\"\/>\r\n<param name=\"inherit_codec\" value=\"true\"\/>\r\n<param name=\"disable-transcoding\" value=\"false\"\/>\r\n<\/pre>\n<ul>\n<li>di dalam\u00a0<strong>freeswitch.xml\u00a0<\/strong>(di FS Kazoo tidak ada\u00a0<strong>vars.xml<\/strong>) tambahkan baris:<\/li>\n<\/ul>\n<pre>\r\n<X-PRE-PROCESS cmd=\"set\" data=\"media_mix_inbound_outbound_codecs=true\"\/>\r\n<\/pre>\n<ul>\n<li>Dan terakhir, paksa\u00a0<strong>Device\u00a0<\/strong>yang teregister ke Kazoo untuk selalu menggunakan Opus dengan cara hanya mengaktifkan codec Opus di setting Device dan di masing-masing software SIP client:<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-649\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-01.jpg\" alt=\"\" width=\"373\" height=\"457\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-01.jpg 489w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-01-245x300.jpg 245w\" sizes=\"auto, (max-width: 373px) 100vw, 373px\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-650\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-02.jpg\" alt=\"\" width=\"351\" height=\"583\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-02.jpg 482w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2018\/04\/Opus-02-181x300.jpg 181w\" sizes=\"auto, (max-width: 351px) 100vw, 351px\" \/><\/a><\/p>\n<p>Ketika kita coba melakukan panggilan, maka SDP\u00a0akan tampak seperti:<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>INVITE<\/strong><\/span><\/p>\n<pre>v=0\r\no=FreeSWITCH 1522990346 1522990347 IN IP4 116.68.171.76\r\ns=FreeSWITCH\r\nc=IN IP4 1.2.3.4\r\nt=0 0\r\nm=audio 25278 RTP\/AVP 102 101 13\r\na=rtpmap:102 opus\/48000\/22\r\na=fmtp:102 useinbandfec=1; maxaveragebitrate=30000; maxplaybackrate=48000; ptime=20; minptime=10; maxptime=40\r\na=rtpmap:101 telephone-event\/48000\r\na=fmtp:101 0-16\r\na=rtpmap:13 CN\/48000\r\na=ptime:20\r\n<\/pre>\n<p>Selamat mencoba!<\/p>\n<h3><\/h3>\n<h3>Ref:<\/h3>\n<ul>\n<li><a href=\"http:\/\/inside-out.xyz\/technology\/enabling-the-transcoding-in-freeswitch-1-6-and-fusionpbx.html\">http:\/\/inside-out.xyz\/technology\/enabling-the-transcoding-in-freeswitch-1-6-and-fusionpbx.html<\/a><\/li>\n<li><a href=\"https:\/\/freeswitch.org\/confluence\/display\/FREESWITCH\/Codec+Negotiation\">https:\/\/freeswitch.org\/confluence\/display\/FREESWITCH\/Codec+Negotiation<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Tempo hari kantor kedatangan tamu dari Aarenet. Mereka memperesentasikan layanan UC yang bisa mereka sediakan untuk level provider. Platform yang mereka gunakan buatan sendiri yang didevelop dari tahun 2004 &#8211; 2009, tanpa jualan dulu. Hasilnya juga ndak main-main. Menarik lah pokoknya. Kelak kalo punya ITSP sendiri mungkin kepikiran pakai produk mereka, terutama kalo sudah males &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=648\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Transcoding G711 ke Opus di Kazoo&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,11],"tags":[],"class_list":["post-648","post","type-post","status-publish","format-standard","hentry","category-freeswitch","category-kazoo","entry"],"_links":{"self":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=648"}],"version-history":[{"count":8,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/648\/revisions"}],"predecessor-version":[{"id":1095,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/648\/revisions\/1095"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}