{"id":421,"date":"2016-11-08T07:02:39","date_gmt":"2016-11-08T00:02:39","guid":{"rendered":"http:\/\/www.otakudang.org\/?p=421"},"modified":"2016-11-17T15:18:39","modified_gmt":"2016-11-17T08:18:39","slug":"menyambungkan-panggilan-dengan-cmd-originate","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=421","title":{"rendered":"Menyambungkan Panggilan Dengan cmd Originate()"},"content":{"rendered":"<p>Jadi intinya ada request begini:<\/p>\n<p>Operator diminta menyambungkan sebuah ekstensi ke nomer PSTN\/GSM. Hanya saja, pada saat penyambungan panggilan, si operator tidak perlu harus menunggu sampe panggilan ke PSTN\/GSM tersambung dulu lalu transfer call ke ekstensi. Maunya dial, nomer PSTN\/GSM, lalu dial ekstensi yang melakukan request, setelah itu operator mengerjakan yang lain lagi.<\/p>\n<p>Saya ngebayangin akan ada dua input, yaitu nomer PSTN\/GSM, lalu nomer ekstensi, yang didial sekaligus. Untuk membedakan mana yang nomer PSTN\/GSM dan mana nomer ekstensi, perlu dibuat delimiter, dalam hal ini saya memilih dua buah tanda pagar. Jadi jika ingin melakukan dial dengan hasil di atas, cukup dengan (misal):\u00a0<strong>08123456789##2002<\/strong>.<\/p>\n<p>Karena kebetulan yang panjang digitnya tetap adalah nomer ekstensi (4 digit), ditambah delimiter dua tanda pagar, sementara nomer PSTN\/GSM panjangnya bisa berbeda-beda, maka perlu dibagi seperti di dialplan berikut, lalu masing-masing nomer PSTN\/GSM dan nomer ekstensi dimasukkan ke variabel terpisah, untuk bisa dijadikan input perintah <a href=\"http:\/\/www.voip-info.org\/wiki\/view\/Asterisk+cmd+Originate\">Originate()<\/a>.<\/p>\n<p>[stextbox id=&#8221;grey&#8221; mode=&#8221;css&#8221; shadow=&#8221;false&#8221; color=&#8221;FFFFFF&#8221; bgcolor=&#8221;000000&#8243;]exten =&gt;_XXXXX.##ZXXX,1,NoOp()<br \/>\nsame =&gt; n,Set(Tujuan=${EXTEN::-6})<br \/>\nsame =&gt; n,Set(Ekstensi=${EXTEN:-4:4})<br \/>\nsame =&gt; n,Originate(DAHDI\/g0\/${Tujuan},exten,from-internal,${Ekstensi},1)<br \/>\nsame =&gt; n,Hangup()[\/stextbox]<\/p>\n<p>di baris\u00a0<strong>Set(Tujuan=${EXTEN::-6})\u00a0<\/strong>jika diterapkan ke\u00a0<strong>08123456789##2002<\/strong>, akan menghilangkan 6 karakter terakhir, yang sisanya adalah nomer PSTN\/GSM\u00a0<strong>08123456789<\/strong> (karakter<strong> ##2002<\/strong>\u00a0dihilangkan), lalu dimasukkan ke variale\u00a0<strong>Tujuan<\/strong>.<\/p>\n<p><strong>Set(Ekstensi=${EXTEN:-4:4})\u00a0<\/strong>jika diterapkan ke\u00a0<strong>08123456789##2002<\/strong>,\u00a0akan menghitung 4 digit dari belakang, dan menghilangkan\u00a0selain 4 digit tersebut. Selanjutnya 4 digit ini dimasukkan ke variabel\u00a0<strong>Extensi.<\/strong><\/p>\n<p>Setelah mendapatkan dua variable\u00a0<strong>Tujuan\u00a0<\/strong>dan\u00a0<strong>Ekstensi<\/strong>, kita bisa menjalankan perintah\u00a0<strong>Originate()\u00a0<\/strong>di baris:<\/p>\n<blockquote><p><strong>same =&gt;n,Originate(DAHDI\/g0\/${Tujuan},exten,from-internal,${Ekstensi},1)<\/strong><\/p><\/blockquote>\n<p>perintah tersebut jika dinterpolasi akan seperti:<\/p>\n<blockquote><p><strong>same =&gt;n,Originate(DAHDI\/g0\/08123456789,exten,from-internal,2002,1)<\/strong><\/p><\/blockquote>\n<p>Untuk contoh manipulasi variable bisa dibaca di:<\/p>\n<p><a href=\"https:\/\/wiki.asterisk.org\/wiki\/display\/AST\/Manipulating+Variables+Basics\">https:\/\/wiki.asterisk.org\/wiki\/display\/AST\/Manipulating+Variables+Basics<\/a><\/p>\n<h3><\/h3>\n<h3>Tips<\/h3>\n<p>Untuk membuat dialplan seperti di atas, ada baiknya jika dibuat context khusus, karena dialplan tersebut\u00a0sangat rentan\u00a0fraud jika kita tidak berhati-hati. Misal, kita bisa memasukkan dialplan tersebut ke dalam\u00a0context yang hanya bisa diakses oleh ekstensi khusus operator, atau bisa dengan menambahkan auth password dialplan.<\/p>\n<p>Berikut ini cuplikan dari buku\u00a0<strong>Asterisk<\/strong>\u2122 :\u00a0<strong>The Definitive Guide<\/strong> mengenai contoh digit manipulation:<\/p>\n<blockquote><p><em><strong>More Advanced Digit Manipulation<\/strong><\/em><br \/>\n<em>The ${EXTEN} variable properly has the syntax ${EXTEN:x:y}, where x is the starting<\/em><br \/>\n<em>position and y is the number of digits to return. Given the following dial string:<\/em><br \/>\n<em>94169671111<\/em><br \/>\n<em>we can extract the following digit strings using the ${EXTEN:x:y} construct:<\/em><br \/>\n<em>\u2022 ${EXTEN:1:3} would contain 416<\/em><br \/>\n<em>\u2022 ${EXTEN:4:7} would contain 9671111<\/em><br \/>\n<em>\u2022 ${EXTEN:-4:4} would start four digits from the end and return four digits, giving<\/em><br \/>\n<em>us 1111<\/em><br \/>\n<em>\u2022 ${EXTEN:2:-4} would start two digits in and exclude the last four digits, giving us<\/em><br \/>\n<em>16967<\/em><br \/>\n<em>\u2022 ${EXTEN:-6:-4} would start six digits from the end and exclude the last four digits,<\/em><br \/>\n<em>giving us 67<\/em><br \/>\n<em>\u2022 ${EXTEN:1} would give us everything after the first digit, or 4169671111 (if the<\/em><br \/>\n<em>number of digits to return is left blank, it will return the entire remaining string)<\/em><\/p>\n<p><em>This is a very powerful construct, but most of these variations are not very common in<\/em><br \/>\n<em>normal use. For the most part, you will be using ${EXTEN} (or perhaps ${EXTEN:1} if<\/em><br \/>\n<em>you need to strip off an external access code, such as a prepended 9).<\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Jadi intinya ada request begini: Operator diminta menyambungkan sebuah ekstensi ke nomer PSTN\/GSM. Hanya saja, pada saat penyambungan panggilan, si operator tidak perlu harus menunggu sampe panggilan ke PSTN\/GSM tersambung dulu lalu transfer call ke ekstensi. Maunya dial, nomer PSTN\/GSM, lalu dial ekstensi yang melakukan request, setelah itu operator mengerjakan yang lain lagi. Saya ngebayangin &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=421\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Menyambungkan Panggilan Dengan cmd Originate()&#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-421","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\/421","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=421"}],"version-history":[{"count":7,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/421\/revisions"}],"predecessor-version":[{"id":439,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/421\/revisions\/439"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=421"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=421"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=421"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}