{"id":558,"date":"2017-11-12T02:54:32","date_gmt":"2017-11-11T19:54:32","guid":{"rendered":"http:\/\/www.otakudang.org\/?p=558"},"modified":"2017-11-12T03:13:25","modified_gmt":"2017-11-11T20:13:25","slug":"homer-untuk-sip-dan-rtp-monitoringtroubleshoot","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=558","title":{"rendered":"Homer Untuk SIP dan RTP Monitoring\/Troubleshoot"},"content":{"rendered":"<p>Membaca log pada saat troubleshoot VoIP berbasis SIP itu penting, tapi masih juga banyak yang malas melakukan hal tersebut. Bisa dimaklumi karena memang membaca log SIP itu beneran ribet, walaupun sebenarnya cukup dengan merunut\u00a0<em>Call-ID<\/em> problem langsung bisa ketahuan. Jika di sebuah lingkungan dengan jumlah panggilan sedikit, hal ini tidak menjadi masalah, karena jumlah log SIP tidak begitu banyak dan bisa langsung teridentifikasi permasalahannya. Tapi jika dalam lingkungan call yang berjumlah banyak, misal di sebuah VoIP provider, membaca log akan menjadi sangat merepotkan. Sering kali kita harus meminta pelanggan untuk melakukan test call lagi hanya demi mendapatkan log. Sedangkan sebagai pelanggan, ogah banget kan disuruh ini itu hanya karena si provider tidak punya catatan log pada saat problem terjadi.<\/p>\n<p>Log SIP itu benar-benar\u00a0<em>chatty<\/em>. Banyak banget. Dalam satu kali sesi bisa sampai dengan ratusan baris. Jadi kalo ada problem 1 jam sebelumnya, pada saat kita check log, sudah terdapat ribuan baris log menumpuk dari panggilan yang lain. Untuk mempermudah melakukan troubleshoot ini, kita bisa memanfaatkan tool lain seperti Homer SIP Capture.<\/p>\n<h2><\/h2>\n<h2>Cara Kerja<\/h2>\n<p>Homer terdiri dari Capture Server dan Capture agent. Capture server merupakan server sipcapture berbasis Kamailo \/ OpenSIPS yang menerima kiriman HEP, IPIP ataupun raw packet dari HEP agent\/Capture agent. Beberapa software telephony sudah memiliki implementasi capture agent seperti FreeSWITCH (versi 1.6.8 ke atas), Asterisk (versi 13 ke atas), Kamailio dan OpenSIPS. Lalu untuk perangkat lain yang tidak memiliki implementasi capture agent, tetap bisa memanfaatkannya dengan cara memasang sebuah server (berbasis Linux) dengan capture agent, lalu salah satu interface nya tersambung ke\u00a0 port mirror perangkat SIP lain. Semua paket SIP yangt tertangkap capture agent akan dikirimkan ke Capture Server untuk kemudian disimpan dan dianalisa jika terjadi problem.<\/p>\n<p>Berikut ini gambaran topologi dari yang saya embat dari\u00a0https:\/\/github.com\/sipcapture\/homer :<\/p>\n<p><strong>Capture Server:<\/strong><\/p>\n<p><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f307169576c7a692e706e67.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-561\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f307169576c7a692e706e67.png\" alt=\"\" width=\"947\" height=\"568\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f307169576c7a692e706e67.png 947w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f307169576c7a692e706e67-300x180.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f307169576c7a692e706e67-768x461.png 768w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Capture agent:<\/strong><\/p>\n<p><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f70397756396b682e706e67.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-562\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f70397756396b682e706e67.png\" alt=\"\" width=\"856\" height=\"688\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f70397756396b682e706e67.png 856w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f70397756396b682e706e67-300x241.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/687474703a2f2f692e696d6775722e636f6d2f70397756396b682e706e67-768x617.png 768w\" sizes=\"auto, (max-width: 856px) 100vw, 856px\" \/><\/a><\/p>\n<h2>Instalasi\/Setup<\/h2>\n<p>Lalu berikutnya mari kita setup Capture Server terlebih dahulu:<\/p>\n<ul>\n<li>Paling enak menurut saya kalau Capture Server jalan di Debian 8 Jessie 64 bit. Jadi silahkan disiapkan. Server distro lain harusnya tidak masalah, tapi pas saya install di Centos 7, saya stuck di MySQL. Walaupun problemnya sebenarnya jelas, tapi sayanya yang malas troubleshoot karena dikejar waktu.<\/li>\n<li>Ada 4 cara install Homer 5, ini yang bisa dilihat di <a href=\"https:\/\/github.com\/sipcapture\/homer\/wiki\/Quick-Install\">sini<\/a>, tapi cara yang paling saya sukai adalah cara pertama, yaitu menggunakan install script. Jalankan step di bawah ini:<\/li>\n<\/ul>\n<pre>root~# cd \/usr\/src\r\nroot~# wget https:\/\/cdn.rawgit.com\/sipcapture\/homer-installer\/master\/homer_installer.sh\r\nroot~# chmod +x homer_installer.sh\r\nroot~# .\/homer_installer.sh<\/pre>\n<ul>\n<li>Pada saat proses instalasi, kita akan ditanyakan nama database, user dan password user database untuk akses database Homer. Nama database saya pilih default, yaitu homer, dan passwordnya tentu saja saya isikan berbeda. Script di atas akan menginstall Kamailio dengan module\u00a0<em>sipcapture.so<\/em>, jika penasaran bagaimana cara penggunaannya silahkan lihat di\u00a0<em>kamailio.cfg<\/em>. Selain itu script ini juga akan menambahkan direktori web di\u00a0<em>\/var\/www\/html\/homer<\/em>. Web tersebut langsung bisa diakses dengan username\u00a0<strong>admin<\/strong> dan password :\u00a0<strong>test1234<\/strong>. Sangat disarankan untuk segera mengganti password ini begitu login. Jika instalasi berhasil secara keseluruhan, akan nampak informasi seperti berikut:<\/li>\n<\/ul>\n<pre>*************************************************************\r\n    ,;;;;,\r\n   ;;;;;;;;.  Congratulations! HOMER has been installed!\r\n ;;;;;;;;;;;;\r\n ;;;; ;; ;;;; <--------------- INVITE --------------- \r\n ;;;; ;; ;;;; --------------- 200 OK --------------->\r\n ;;;; .. ;;;;\r\n ;;;;    ;;;; Your system should be now ready to rock!\r\n ;;;; ;; ;;;; Please verify\/complete the configuration\r\n ,;;; ;; ;;;; files generated by the installer below.\r\n ;;;;;;;;;;;;\r\n  :;;;;;;;;;  THIS SCRIPT IS PROVIDED AS-IS, USE AT\r\n   ;;;;;;;;   YOUR *OWN* RISK, REVIEW LICENSE &amp; DOCS\r\n\r\n*************************************************************\r\n\r\n* Verify configuration for HOMER-API:\r\n '\/var\/www\/html\/homer\/api\/configuration.php'\r\n '\/var\/www\/html\/homer\/api\/preferences.php'\r\n\r\n* Verify capture settings for Homer\/Kamailio:\r\n '\/etc\/kamailio\/kamailio.cfg'\r\n\r\n* Start\/stop Homer SIP Capture:\r\n '\/sbin\/kamctl start|stop'\r\n\r\n* Access HOMER UI:\r\n http:\/\/1.2.3.4\r\n [default: admin\/test1234]\r\n\r\n* Send HEP\/EEP Encapsulated Packets:\r\n hep:\/\/1.2.3.4:9060\r\n\r\n**************************************************************\r\n\r\nIMPORTANT: Do not forget to send Homer node some traffic! ;)\r\n For our capture agents, visit http:\/\/github.com\/sipcapture\r\n For more help and information visit: http:\/\/sipcapture.org\r\n\r\n**************************************************************\r\n Installer Log saved to: \/tmp\/homer_installer.sh.6095.log\r\n<\/pre>\n<p>Selanjutnya adalah bagaimana setup Capture agent. Kebetulan yang akan dimonitor adalah server FreeSWITCH v1.6.19. Ada dua cara untuk melakukannya, yang pertama dengan mengaktifkan capture agent bawaan dari FreeSWITCH. Caranya:<\/p>\n<ul>\n<li>Tambahkan ip address Homer di\u00a0<em>sofia.conf.xml\u00a0<\/em>(misal: 1.2.3.4 port 9060) dengan menambahkan baris berikut di\u00a0<em>global_settings<\/em>:<\/li>\n<\/ul>\n<pre><param name=\"capture-server\" value=\"udp:1.2.3.4:9060\"\/><\/pre>\n<ul>\n<li>Lalu buka sip profiles yang hendak dimonitor. Dalam instalasi FreeSWITCH biasanya sudah ada default sip profile, misal,\u00a0<em>internal.xml<\/em>, tambahkan baris berikut<\/li>\n<\/ul>\n<pre><param name=\"sip-capture\" value=\"no\"\/><\/pre>\n<ul>\n<li>Setelah perubahan di atas disimpan, reload\u00a0sip profile dari <em>fs_cli\u00a0<\/em>dengan perintah:<\/li>\n<\/ul>\n<pre>freeswitch@localhost> sofia profile internal restart<\/pre>\n<ul>\n<li>Aktifkan HEP agent melalui\u00a0<em>fs_cli\u00a0<\/em>dengan perintah:<\/li>\n<\/ul>\n<pre>freeswitch@localhost> sofia profile internal capture on<\/pre>\n<p>&nbsp;<\/p>\n<p>Cara kedua adalah dengan menginstall Captagent di server yang sama dengan FreeSWITCH. Langkahnya adalah sebagai berikut:<\/p>\n<ul>\n<li>Karena FreeSWITCH saya berjalan di atas Centos 7, maka perlu ditambahkan package berikut:<\/li>\n<\/ul>\n<p>yum -y install json-c-devel expat-devel libpcap-devel flex-devel automake libtool bison libuv-devel flex<\/p>\n<ul>\n<li>Clone captagent\u00a0 dan install:<\/li>\n<\/ul>\n<pre>cd \/usr\/src\r\ngit clone https:\/\/github.com\/sipcapture\/captagent.git captagent\r\ncd captagent\r\n.\/build.sh\r\n.\/configure\r\nmake && make install\r\n<\/pre>\n<ul>\n<li>Setelah selesai menjalankan script di atas, lokasi default konfigurasi berada di <strong>\/usr\/local\/captagent\/etc\/captagent<\/strong>. File pertama yang perlu diedit adalah file\u00a0<strong>protocol_sip.xml<\/strong>. Edit bagian\u00a0<em>enable=&#8221;false&#8221;\u00a0<\/em>menjadi\u00a0<em>enable=&#8221;true&#8221;<\/em><\/li>\n<\/ul>\n<pre><profile name=\"proto_sip\" description=\"PROTO SIP\" enable=\"true\" serial=\"2014010402\"><\/pre>\n<ul>\n<li>Kemudian edit file\u00a0<strong>transport_hep.xml<\/strong>\u00a0untuk diaktifkan dan dicantumkan alamat ip server Homer\/Capture Server seperti berikut:<\/li>\n<\/ul>\n<pre><profile name=\"hepsocket\" description=\"Transport HEP\" enable=\"true\" serial=\"2014010402\">\r\n            <settings>\r\n                <param name=\"version\" value=\"3\"\/>\r\n                <param name=\"capture-host\" value=\"1.2.3.4\"\/>\r\n                <param name=\"capture-port\" value=\"9060\"\/>\r\n<\/pre>\n<ul>\n<li>Untuk memudahkan startup captagent di Centos 7, salin file startup dan jalakan perintah berikut ini :<\/li>\n<\/ul>\n<pre>root~# cp\u00a0\/usr\/src\/captagent\/init\/el\/7\/captagent.service\u00a0\/usr\/lib\/systemd\/system\/captagent.service\r\nroot~# cp \/usr\/src\/captagent\/init\/el\/captagent.sysconfig \/etc\/sysconfig\/captagent\r\nroot~# systemctl enable captagent\r\nroot~# systemctl start captagent<\/pre>\n<ul>\n<li>Login ke web Homer dan lakukan test call melalui server FreeSWITCH tersebut, tunggu beberapa saat, maka kita bisa mendapatkan log sepert berikut:<\/li>\n<\/ul>\n<p style=\"padding-left: 60px;\"><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-564\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled.png\" alt=\"\" width=\"1912\" height=\"868\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled.png 1912w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled-300x136.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled-768x349.png 768w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/Untitled-1024x465.png 1024w\" sizes=\"auto, (max-width: 1912px) 100vw, 1912px\" \/><\/a><\/p>\n<p>Banyak sekali yang bisa diexplore dari hasil log ini yang tidak bisa dibahas semua dalam satu postingan. Nanti kapan-kapan saya posting lagi cara memanfaatkan Homer lebih jauh. Setidaknya dari hasil log di atas saya bisa melakukan troubleshoot dengan merunut\u00a0<em>Call-id\u00a0<\/em>tanpa harus melototin file log dalam mode text:<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-id.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-565\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-id.png\" alt=\"\" width=\"326\" height=\"668\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-id.png 326w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-id-146x300.png 146w\" sizes=\"auto, (max-width: 326px) 100vw, 326px\" \/><\/a><\/p>\n<p>Jika hendak mencari sebuah panggilan gagal, saya tinggal click reply code panggilan dari Leg A ke Leg B di jam yang disebutkan pada saat terjadi problem, misal, pada tanggal 11 November 2017 pukul 8.45 &#8211; 8.50 pelanggan anu mengalami gagal ke nomer tertentu. Saya bisa mengisi kolom search :<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-search.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-566\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-search.jpg\" alt=\"\" width=\"618\" height=\"355\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-search.jpg 618w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-search-300x172.jpg 300w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><\/a><\/p>\n<p>Lalu hasilnya ternyata ada log seperti ini:<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-568\" src=\"http:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1.png\" alt=\"\" width=\"1314\" height=\"212\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1.png 1314w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1-300x48.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1-768x124.png 768w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2017\/11\/call-01-1-1024x165.png 1024w\" sizes=\"auto, (max-width: 1314px) 100vw, 1314px\" \/><\/a><\/p>\n<p>Hanya perlu click pada kolom\u00a0<strong>CallID<\/strong>\u00a0di atas saya mendapatkan detail sesi.<\/p>\n<p>Banyak sekali yang bisa dieksplore di sini, dan saya masih belom mendapatkan semuanya. Untuk lebih detail bagaimana memanfaatkan<\/p>\n<h2>Kelebihan Setup CaptAgent Server Tersendiri<\/h2>\n<p>Seperti yang telah dibahas di atas, agent bisa diaktifkan di aplikasi SIP yang sudah support seperti FreeSWITCH ver 1.6.8 ke atas, Asterisk versi 13 ke atas, Kamailio dan OpenSIPS.<\/p>\n<p><em>Lalu bagaimana jika perangkat SIP yang tidak support sipcapture\/Captagent seperti AudiCode, Sonus, atau bahkan Asterisk versi 11 ke bawah?<\/em><\/p>\n<p>Gampang. Install Captagent di server tersendiri dengan minimal dua interface. Satu interface tanpa ip address dengan mode\u00a0<em>promiscuous <\/em>\u00a0digunakan untuk menerima raw packet dari port mirror perangkat SIP yang sedang dimonitoring. Switch tentunya harus manageable. Lalu interface satunya lagi digunakan untuk mengirim paket HEP\/EEP ke server Homer. Topologi nya kira-kira seperti ini (gambar saya ambil dari\u00a0<a href=\"https:\/\/github.com\/sipcapture\/captagent\">https:\/\/github.com\/sipcapture\/captagent<\/a>):<\/p>\n<p style=\"padding-left: 30px;\"><img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/5f49e58fa940aaadfcde22f37c6d2755212a2012\/687474703a2f2f692e696d6775722e636f6d2f55375542492e706e67\" alt=\"HomerFlow\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Links<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/sipcapture\/homer\/wiki\/Using-Homer-5\">https:\/\/github.com\/sipcapture\/homer\/wiki\/Using-Homer-5<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/sipcapture\/homer\/wiki\/Examples%3A-FreeSwitch\">https:\/\/github.com\/sipcapture\/homer\/wiki\/Examples%3A-FreeSwitch<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/sipcapture\/hep\">https:\/\/github.com\/sipcapture\/hep<\/a><\/li>\n<li><a href=\"http:\/\/qxip.net\/\">http:\/\/qxip.net\/<\/a><\/li>\n<li><a href=\"http:\/\/sipcapture.org\/\">http:\/\/sipcapture.org\/<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p style=\"padding-left: 30px;\">\n","protected":false},"excerpt":{"rendered":"<p>Membaca log pada saat troubleshoot VoIP berbasis SIP itu penting, tapi masih juga banyak yang malas melakukan hal tersebut. Bisa dimaklumi karena memang membaca log SIP itu beneran ribet, walaupun sebenarnya cukup dengan merunut\u00a0Call-ID problem langsung bisa ketahuan. Jika di sebuah lingkungan dengan jumlah panggilan sedikit, hal ini tidak menjadi masalah, karena jumlah log SIP &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=558\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Homer Untuk SIP dan RTP Monitoring\/Troubleshoot&#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,2],"tags":[],"class_list":["post-558","post","type-post","status-publish","format-standard","hentry","category-freeswitch","category-telephony","entry"],"_links":{"self":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/558","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=558"}],"version-history":[{"count":12,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/558\/revisions"}],"predecessor-version":[{"id":577,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/558\/revisions\/577"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}