{"id":180,"date":"2016-01-23T04:01:02","date_gmt":"2016-01-22T21:01:02","guid":{"rendered":"http:\/\/www.otakudang.org\/?p=180"},"modified":"2016-02-28T17:04:50","modified_gmt":"2016-02-28T10:04:50","slug":"mencoba-enum-dari-e164-id-di-elastix","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=180","title":{"rendered":"Mencoba ENUM dari E164.ID Di Elastix"},"content":{"rendered":"<p>Bagi yang belum paham betul apa itu ENUM (E164 Number Mapping), bisa mencari informasinya di link berikut ini:<\/p>\n<ul>\n<li><a href=\"https:\/\/e164.id\/\">E164.ID<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Telephone_number_mapping\">Telephone Number Mapping<\/a><\/li>\n<\/ul>\n<p>Intinya E164.ID ini menjadi direktori nomer telepon dan bisa menjadi penghubung \u00a0semua pengelola VoIP server yang ingin bergabung membentuk komunitas VoIP. Untuk mendapatkan blok nomer telepon ini, bisa didapatkan dengan mendaftar di\u00a0<a href=\"https:\/\/teleponrakyat.id\/\">TELEPONRAKYAT.ID<\/a>. Di web tersebut kita bisa mendaftar sebagai Gateway (jika kita memiliki VoIP server sendiri), atau cukup mendaftarkan domain\/realm saja (jika kita tidak memiliki\/mengelola VoIP server sendiri). Sedangkan untuk diskusi lebih lanjut mengenai E164.ID ini bisa bergabung di forum <a href=\"https:\/\/asterisk.id\/\">ASTERISK.ID<\/a>\u00a0.<\/p>\n<p>Oh ya, sebelum kita berpikir bahwa blok nomer yang kita dapatkan dengan mendaftar di TELEPONRAKYAT.ID bisa berkomunikasi dengan nomer telepon regular, perlu disampaikan\u00a0bahwa E164.ID belum melakukan interkoneksi ke jaringan telepon <a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_switched_telephone_network\">PSTN<\/a> maupun <a href=\"https:\/\/en.wikipedia.org\/wiki\/Public_land_mobile_network\">PLMN<\/a>.\u00a0Untuk pengguna <a href=\"http:\/\/voiprakyat.or.id\/members\/\">VoIPRakyat<\/a>\u00a0sudah bisa menikmati panggilan dengan menggunakan nomer E164.ID. Bagi yang mau coba, bisa kontak nomer demo +62520291901 (time announcement), +62520291902 (monkey), atau di +62520291903 (echo test).<\/p>\n<h2>Mendaftar di TELEPONRAKYAT.ID<\/h2>\n<p>Sebelum melanjutkan setup, kita terlebih dahulu harus mendaftar ke TELEPONRAKYAT.ID untuk mendapatkan nomer telpon\/prefix dari E164.ID. Untuk cara mendaftar silahkan baca dengan mendownload file .pdf di <a href=\"http:\/\/s.id\/memulaiteleponrakyat\">sini<\/a>. Dengan asumsi bahwa kita sudah memiliki server Elastix, maka daftar di bagian <a href=\"https:\/\/teleponrakyat.id\/gateway\">Manage Gateway<\/a>. Di sini kita akan mendapatkan alokasi prefix nomer, contoh, prefix nomer yang saya dapatkan adalah\u00a0+62520-364. Setelah mendaftar, tunggu sekitar 15 menit untuk bisa melakukan lookup di E164.ID. Caranya adalah dengan menjalankan perintah berikut di shell \u00a0prompt linux:<\/p>\n<pre>$ dig +short *.4.6.3.0.2.5.2.6.e164.id NAPTR<\/pre>\n<p>jika semua berjalan lancar maka outputnya seperti :<\/p>\n<pre>10 1 \"u\" \"E2U+sip\" \"!^\\\\+?(.*)$!sip:\\\\1@sip.domain.tld!\" .<\/pre>\n<p>Argument untuk\u00a0<em>dig\u00a0<\/em>di atas diambil dari digit prefix yang kita dapat, lalu hilangkan tanda &#8216;+&#8217;, setelah itu urutan dibalik dari depan ke belakang, dengan masing-masing digit dipisah tanda titik. Pada ujung sebelah kiri\u00a0adalah wildcard (asterisk), artinya berapapun nomer berikutnya, asalkan prefixnya adalah alokasi prefix tersebut. Untuk keterangan hasil\u00a0<em>dig,\u00a0<\/em>digit pertama (10) adalah priority, lalu digit berikutnya adalah weight (1), baris berikutnya adalah protokol yang digunakan yaitu UDP (untuk U), dan SIP. Sedangkan yang terkakhir adalah format URI yang didapatkan dengan regular expression.<\/p>\n<h2>Elastix Setup<\/h2>\n<p>Berhubung saya setiap hari menggunakan <a href=\"http:\/\/www.elastix.com\/en\/\">Elastix <\/a>maka contoh setup \u00a0berikut ini menggunakan distro tersebut. Karena distro tersebut pada dasarnya menggunakan FreePBX, maka setupnya tidak banyak \u00a0berbeda bila menggunakan distro <a href=\"https:\/\/www.freepbx.org\/\">FreePBX<\/a>, <a href=\"http:\/\/www.asterisk.org\/downloads\/asterisknow\">AsteriskNow<\/a>, <a href=\"http:\/\/www.fonality.com\/trixbox\">trixbox<\/a>, <a href=\"http:\/\/www.briker.org\/\">Briker<\/a>, dkk. Stepnya adalah sebagai berikut:<\/p>\n<ul>\n<li>Dari baris Tab di menu utama, pilih tanda panah paling kanan untuk memunculkan menu dropdown, lalu pilih\u00a0<strong>Security<\/strong> -&gt;\u00a0<strong>Advanced Settings<\/strong> lalu aktifkan slide button untuk\u00a0<b>Enable anonymous SIP calls.\u00a0<a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/001.png\" rel=\"attachment wp-att-197\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-197\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/001.png\" alt=\"001\" width=\"532\" height=\"350\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/001.png 532w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/001-300x197.png 300w\" sizes=\"auto, (max-width: 532px) 100vw, 532px\" \/><\/a><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002.png\" rel=\"attachment wp-att-198\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-198\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002.png\" alt=\"002\" width=\"1275\" height=\"325\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002.png 1275w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002-300x76.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002-768x196.png 768w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/002-1024x261.png 1024w\" sizes=\"auto, (max-width: 1275px) 100vw, 1275px\" \/><\/a><\/b><\/li>\n<li>Selanjut pilih menu\u00a0<strong>PBX -&gt; PBX Configuration -&gt; Trunks<\/strong> -&gt;\u00a0<strong>Add ENUM Trunk<\/strong>. Beri nama Trunk di bagian\u00a0<strong>Trunk Name<\/strong>, misal <strong>E164.ID,\u00a0<\/strong>\u00a0lalu klik\u00a0<strong>Submit Change<\/strong>.<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-199\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/003.png\" alt=\"003\" width=\"584\" height=\"633\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/003.png 584w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/003-277x300.png 277w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/li>\n<li>Pilih menu\u00a0<strong>PBX -&gt; PBX Configuration -&gt; Outbound Routes -&gt; Add Route<\/strong>. Di bagian\u00a0<strong>Route Name,\u00a0<\/strong>isikan nama untuk route ini, misal\u00a0<strong>Outbound_ENUM<\/strong>, lalu isikan dial patterns seperti berikut:<a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/004.png\" rel=\"attachment wp-att-187\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-187\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/004.png\" alt=\"004\" width=\"555\" height=\"538\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/004.png 555w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/004-300x291.png 300w\" sizes=\"auto, (max-width: 555px) 100vw, 555px\" \/><\/a><\/li>\n<li>jangan lupa di bagian\u00a0<strong>Trunk Sequence for Matched Routes\u00a0<\/strong>pilih\u00a0<strong>E164.ID\u00a0<\/strong>(sesuai nama trunk yang sudah kita buat\u00a0sebelumnya), dan klik\u00a0<strong>Submit Changes<\/strong>.<\/li>\n<li>Sebelum melanjutkan menambahkan\u00a0<strong>Inbound Routes<\/strong>, ada baiknya kita melakukan edit file\u00a0<strong>\/etc\/enum.conf<\/strong>. Saya lebih suka menghapus semua isi file tersebut dan cukup diisi dengan \u00a0:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\">search => e164.id<\/pre>\n<ul>\n<li>Lalu edit file\u00a0<strong>\/var\/lib\/asterisk\/agi-bin\/enumlookup.agi<\/strong>\u00a0:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\">$ sudo chmod a+w \/var\/lib\/asterisk\/agi-bin\/enumlookup.agi\r\n$ sudo vi \/var\/lib\/asterisk\/agi-bin\/enumlookup.agi<\/pre>\n<p style=\"padding-left: 30px;\">di bagian baris:<\/p>\n<pre style=\"padding-left: 30px;\">$enums = Array('e164.org','e164.arpa','e164.info');<\/pre>\n<p style=\"padding-left: 30px;\">menjadi:<\/p>\n<pre style=\"padding-left: 30px;\">$enums = Array('e164.id');<\/pre>\n<p style=\"text-align: left; padding-left: 30px;\">setelah menyimpan perubahan, jangan lupa mengembalikan mode file supaya tidak ditimpa ulang oleh system:<\/p>\n<pre style=\"padding-left: 30px;\">$ sudo chmod a-w \/var\/lib\/asterisk\/agi-bin\/enumlookup.agi<\/pre>\n<ul>\n<li>Selanjutnya kita perlu menambahkan realm ke Elastix. Realm adalah nama domain gateway yang kita daftarkan ke TELEPONRAKYAT.ID. Sebagai awalan, ada baiknya jika nama realm sesuai dengan FQDN (contoh <strong>sip.domain.tld<\/strong>) server Elastix. Karena jika realm tidak sama dengan FQDN server, misal <strong>domain.tld<\/strong>, maka kita perlu menambahkan entry SRV ke DNS. Secara default, realm Elastix adalah &#8220;<strong>asterisk&#8221;<\/strong>. Untuk menggantinya, masuk ke menu\u00a0<strong>PBX -&gt; Tools -&gt; Asterisk File Editor<\/strong>, lalu edit file\u00a0<strong>sip_general_custom.conf<\/strong> dan tambahkan baris:<\/li>\n<\/ul>\n<pre style=\"padding-left: 30px;\">realm=sip.domain.tld<\/pre>\n<p style=\"padding-left: 30px;\">Klik\u00a0<strong>Save<\/strong> lalu klik\u00a0<strong>Reload Asterisk<\/strong>.<\/p>\n<ul>\n<li>Buat satu extensi (misal\u00a0<strong>1001<\/strong>). Lalu registrasi melalui SIP phone (cara menambahkan extensi tidak akan dibahas di sini). Di bagian <strong>SIP Alias<\/strong> (masih di halaman pembuatan extensi), tambahkan alokasi nomer dari <a href=\"https:\/\/teleponrakyat.id\">teleponrakyat.id<\/a>, misal <strong>6252036411001<\/strong>.\u00a0 Setelah itu klik\u00a0<strong>Submit<\/strong>. \u00a0 \u00a0 \u00a0 <a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/SIP-alias.png\" rel=\"attachment wp-att-247\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-247 alignnone\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/SIP-alias.png\" alt=\"SIP alias\" width=\"446\" height=\"27\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/SIP-alias.png 446w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/SIP-alias-300x18.png 300w\" sizes=\"auto, (max-width: 446px) 100vw, 446px\" \/><\/a><\/li>\n<li>Optional, tambahkan juga pada <strong>Outbound CID<\/strong> dengan nomer alokasi di atas lengkap dengan tanda +, menjadi: <strong>+6252036411001<\/strong>. Tujuannya supaya ketika kita melakukan panggilan ke gateway lain, nomer telpon yang muncul adalah nomert telpon Outbound CID tersebut, bukan nomer ekstensi.<\/li>\n<li>Edit file <strong>\/etc\/asterisk\/extensions.conf <\/strong>melalui web (karena jika tidak akan di<em>override<\/em> ketika system reload), dan edit bagian context <strong>from-sip-external<\/strong>. Default dari context tersebut seperti berikut:<code><\/code><\/li>\n<\/ul>\n<pre>[from-sip-external]\r\nexten => _.,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})\r\nexten => _.,n,Set(DID=${IF($[\"${EXTEN:1:2}\"=\"\"]?s:${EXTEN})})\r\nexten => _.,n,Goto(s,1)\r\n...\r\n...<\/pre>\n<p style=\"padding-left: 30px;\">edit menjadi:<\/p>\n<pre>[from-sip-external]\r\nexten => _.520364XXXXX,1,NoOp(Received incoming SIP connection from unknown peer to ${EXTEN})\r\nexten => _.520364XXXXX,n,Set(DID=${IF($[\"${EXTEN}\"=\"\"]?s:${EXTEN})})\r\nexten => _.520364XXXXX,n,Goto(s,1)\r\n...\r\n...<\/pre>\n<p style=\"padding-left: 30px;\">Pola <strong>_.520364XXXXX <\/strong>menyesuaikan prefix yang dialokasikan ke getway kita. Tujuan dari editing ini adalah untuk mengurangi panggilan dari source-source yang tidak dikenal karena kita memperbolehkan anonymous SIP call. Jika tidak kita ubah demkian, maka ekstensi kita akan mendapatkan banyak sekali telepon masuk dari nomer-nomer acak. Karena file <strong>extensions.conf <\/strong>ini tidak begitu banyak berubah\/diedit oleh system (seperti <strong>extensions_additional.conf<\/strong> misalnya), maka lebih baik jika kita non aktifkan akses write ke file tersebut dengan perintah:<\/p>\n<p style=\"padding-left: 30px;\">\n<pre>root# chmod a-w \/etc\/asterisk\/extensions.conf<\/pre>\n<\/p>\n<p style=\"padding-left: 30px;\">Dengan demikian file tersebut tidak akan bisa ditimpa secara tidak sengaja dan menyebabkan panggilan masuk dari URI tak dikenal (selain yang terdaftar di E164.ID) bisa lewat lagi.<\/p>\n<ul>\n<li>Test call (di contoh ini saya coba test call dari nomer VoIP Rakyat) misal tidak ada kendala akan seperti ini:<a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/005.png\" rel=\"attachment wp-att-195\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-195\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/005.png\" alt=\"005\" width=\"267\" height=\"461\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/005.png 267w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/005-174x300.png 174w\" sizes=\"auto, (max-width: 267px) 100vw, 267px\" \/><\/a><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/Screenshot_2016-01-23-03-40-04.jpg\" rel=\"attachment wp-att-196\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-196 alignright\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/Screenshot_2016-01-23-03-40-04.jpg\" alt=\"Screenshot_2016-01-23-03-40-04\" width=\"247\" height=\"439\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/Screenshot_2016-01-23-03-40-04.jpg 720w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/Screenshot_2016-01-23-03-40-04-169x300.jpg 169w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/Screenshot_2016-01-23-03-40-04-576x1024.jpg 576w\" sizes=\"auto, (max-width: 247px) 100vw, 247px\" \/><\/a><\/li>\n<li>Setup firewall supaya server VoIP\/IP PBX tetap aman. Contoh setup firewall bias dibaca di\u00a0<a href=\"http:\/\/www.otakudang.org\/?p=208\">sini<\/a>\u00a0.<\/li>\n<li>Aktifkan fail2ban (biasanya secara default sudah ada di instalasi Elastix), tinggal mengedit <strong>logpath<\/strong> diarahkan ke <strong>\/var\/log\/asterisk\/full <\/strong>(defaultnya ke \/var\/log\/asterisk\/messages) di dalam file <strong>jail.conf<\/strong>, lalu ubah alamat penerima dan pengirim email notifikasi. Hal ini untuk menambahkan layer keamanan di Asterisk.<\/li>\n<\/ul>\n<h2><\/h2>\n<h2>Tambahan<\/h2>\n<p>Jika melihat CDR dari menu <strong>Reports<\/strong>, kita masih akan melihat banyak sekali log percobaan panggilan yang dilewatkan ke Elastix dari source-source tidak dikenal seperti ini:<\/p>\n<p><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007.png\" rel=\"attachment wp-att-276\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-276\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007.png\" alt=\"007\" width=\"1318\" height=\"559\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007.png 1318w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007-300x127.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007-768x326.png 768w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2016\/01\/007-1024x434.png 1024w\" sizes=\"auto, (max-width: 1318px) 100vw, 1318px\" \/><\/a><\/p>\n<p>walaupun sebenarnya tidak ada panggilan yang berhasil dilakukan, tapi log seperti ini akan tetap memenuhi CDR kita. Untuk menghindari hal ini bisa ditambahkan custom context di <strong>extensions_custom.conf<\/strong> seperti berikut:<\/p>\n<pre>[from-pstn-custom]\r\ninclude => ext-did-catchall-custom\r\nexten => s,1,Noop(No DID or CID Match)\r\nexten => s,n,Hangup\r\n\r\n[ext-did-catchall-custom]\r\nexten => s,1,Noop(No DID or CID Match)\r\nexten => s,n,Hangup<\/pre>\n<p>Klik <strong>Save <\/strong>dan <strong>Reload Asterisk<\/strong>.<\/p>\n<p>Selamat mencoba!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bagi yang belum paham betul apa itu ENUM (E164 Number Mapping), bisa mencari informasinya di link berikut ini: E164.ID Telephone Number Mapping Intinya E164.ID ini menjadi direktori nomer telepon dan bisa menjadi penghubung \u00a0semua pengelola VoIP server yang ingin bergabung membentuk komunitas VoIP. Untuk mendapatkan blok nomer telepon ini, bisa didapatkan dengan mendaftar di\u00a0TELEPONRAKYAT.ID. Di &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=180\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Mencoba ENUM dari E164.ID Di Elastix&#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":[5,2],"tags":[],"class_list":["post-180","post","type-post","status-publish","format-standard","hentry","category-asterisk","category-telephony","entry"],"_links":{"self":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/180","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=180"}],"version-history":[{"count":37,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions"}],"predecessor-version":[{"id":283,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions\/283"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}