Tag Archives: howto

Install playSMS using Docker in DigitalOcean

So far I’m satisfied with what I get from docker-playsms project, in such a short time. From the project I have built the Docker image and push it to the registry so that people can use it right away. The project also intended for people who want to build the image them self, customize it, fix it, add or remove stuffs, re-package it and then push it under their own name, for their own purposes.

I might be too early to get satisfied, but I do, so be it 🙂

I realize that so much things can be improved, so much stuffs can be added and enhanced. But I leave that to us all, can’t do it my self for sure, for now.

Anyway.

This article is the tutorial on how to install playSMS, a Free and Open Source SMS portal or SMS gateway, using Docker in DigitalOcean. We will be using the Docker application image available on DigitalOcean and playSMS Docker image available in Docker hub.

The tutorial can be followed in about 30 minutes. Once you learnt then you can do this again faster, I’d say less than 15 minutes.

Let’ start.

Continue reading

Persistent paths for dynamic device file

This post is related to playSMS and Kannel, how to configure Kannel when you know that the device file names aren’t persistent.

Intro.

When USB GSM modem plugged to a server Linux kernel assigned dynamic device file /dev/ttyUSB*, such as /dev/ttyUSB0 or /dev/ttyUSB1. For example, USB GSM modem with 2 ports will then be assigned to /dev/ttyUSB0 for port 1 and /dev/ttyUSB1 for port 2.

Problem starts when we unplug the GSM modem and re-plug back afterwards. Linux kernel will then assign different device file to it, was /dev/ttyUSB0 now /dev/ttyUSB2 and was /dev/ttyUSB1 now /dev/ttyUSB3.

Continue reading

Serve GitHub Flavored Markdown

I do not want to forget how to do this, so I’m writing it down now. To me this is important as I wrote manuals and training materials in markdown format, like in GitHub wiki.

The article is about how to serve markdown formatted files just like you browse it in GitHub, locally or when offline. The markdown files are written in GitHub Flavored Markdown (GFM).

Here goes the manual.

First, prepare your server or desktop, install npm.

apt-get install npm
ln -s /usr/bin/nodejs /usr/bin/node

Continue reading

How I Install playSMS

With the very long period between official releases and the habit of playSMS developer (me!) to postpone the official release until it felt its time to, this is what I would do in my box to install playSMS:

mkdir -p /opt/git
cd /opt/git
git clone https://github.com/antonraharja/playSMS.git playsms
cd playsms
ls -l

Above commands will get you the master version of playSMS from Github and saved them in your git local repo that is /opt/git/playsms.

Whenever you have plan to update your playSMS installation and want to get the latest updates you can simply do this:

cd /opt/git/playsms
git pull

If that was my first time and I planned to install playSMS, I would follow manual in provided by playSMS from /opt/git/playSMS/INSTALL.md to install playSMS.

In many installation I’ve done so far, I went for the easiest way to keep sync with the latest. I symlink the git local repo to playSMS installation directory.

For example if my playSMS installation directory would be /var/www/html/playsms then I would do this symlink instead of copying files, like this:

ln -s /opt/git/playsms/web /var/www/html/playsms

So, basically this is how I install playSMS:

Mostly, I’ll use master version. I’ll get playSMS source codes from Github git repository instead of download it from sourceforge or tags.

I’ll install based on manual written in INSTALL.md and for web folder I will symlink my git local repo to playSMS installation directory.

That is all.

anton

Petunjuk Memulai Telepon Rakyat

Telepon Rakyat adalah penyedia layanan gratis untuk Voice over Internet Protocol atau VoIP, jaringan komunikasi berbasis IP. Pengguna dapat menggunakan aplikasi tertentu atau perangkat keras tertentu yang khusus untuk VoIP berbasis SIP untuk terdaftar dan kemudian dapat melakukan panggilan telepon antar sesama pengguna Telepon Rakyat dan layanan VoIP lainnya berbasis SIP.

Untuk saat ini panggilan telepon hanya dapat dilakukan antar sesama pengguna Telepon Rakyat dan layanan VoIP lainnya berbasis SIP. Keterbatasan ini karena penyedia layanan Telepon Rakyat memerlukan izin khusus agar dapat menghubungkan penggunanya dengan PSTN maupun jaringan GSM, dan saat ini kami belum memilikinya, bahkan sebenarnya belum ada niat untuk mengarah kesana.

Pengguna Telepon Rakyat dibedakan dalam 2 jenis akun, yaitu tipe Manager dan tipe User. Sekilas mengenai fungsi Manager dan User sebagai berikut :

  • Akun tipe Manager dapat mendaftarkan domain di Telepon Rakyat. Telepon Rakyat akan memilihkan prefix secara acak pada domain tersebut dan menghasilkan URL khusus untuk control panel
  • Akun tipe User dapat mendaftarkan diri mereka melalui URL khusus yang diberikan oleh Manager, setelah itu mereka dapat menambahkan nomor telepon VoIP pada akun mereka
  • Akun tipe Manager dirancang untuk dimiliki oleh sistem administrator sebuah komunitas, organisasi atau perusahaan, atau bahkan lembaga negara
  • Sedangkan akun tipe User lebih merupakan perorangan atau perangkat saja yang menjadi bagian dari komunitas tersebut

Kesimpulan singkat :

  • Manager mendaftarkan domain di Telepon Rakyat dan mendapatkan informasi URL khusus untuk pendaftaran akun tipe User
  • Anggota komunitas yang merupakan calon pengguna layanan VoIP dapat mendaftarkan diri mereka melalui URL khusus yang dimaksud untuk mendapatkan akun tipe User
  • Akun tipe User dapat menambahkan nomor telepon pada akun mereka dan kemudian menggunakan aplikasi khusus atau perangkat keras khusus untuk VoIP berbasis SIP untuk dapat menikmati layanan Telepon Rakyat dengan nama domain yang didaftarkan oleh Manager, yaitu nama domain komunitas mereka sendiri

Apabila asing dengan layanan VoIP maka anda dapat mencobanya dengan gratis di VoIP Rakyat, http://www.voiprakyat.or.id

Perbedaan utama dari Telepon Rakyat dengan VoIP Rakyat adalah pada fungsi pendaftarannya. VoIP Rakyat hanya mengizinkan satu komunitas yaitu komunitas VoIP Rakyat dan pengguna layanan wajib menggunakan domain voiprakyat.or.id untuk terhubung, sedangkan Telepon Rakyat dapat mengakomodasi lebih dari satu komunitas dan masing-masing komunitas dapat menggunakan domain mereka sendiri untuk terhubung.

Petunjuk memulai Telepon Rakyat selengkapnya dapat diperoleh dari link berikut:

http://s.id/memulaiteleponrakyat

Selamat mencoba.

Install darktable from source on Ubuntu 14.10

darktable is an amazing software to deal with raw files taken from various camera.

Here is the description I get from README.md file inside the source directory:

darktable is an open source photography workflow application and RAW developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them.

Certainly there is a simple way to install darktable that is by using apt-get once you added the PPA. More information about that can be read from here.

Currently the PPA will give you darktable 1.4.2 which I found to be OK but I simply need to test the latest, hoping for some fixes or UI changes and new feature. The version 1.4.2 was working fine with some hiccups here and there. The latest one seems faster with no hiccups, couldn’t notice any UI changes though. At the moment, compiling from source get me darktable 1.5.1+68~ge99de72.

Continue reading

Duh kok ga konek nih ?

Saya bicara soal Asterisk. Setelah sukses instalasi Asterisk (baik itu vanilla, Briker, Elastix, PIAF, Trixbox atau yang distribusi Linux yang lain), maka buru-buru kita add extensions beberapa buah, meregistrasikan minimal 2 SIP softphone (atau 2 IP phone) lalu mencoba dial untuk melihat apakah sesama extension dapat saling telepon.

Apabila anda melakukan uji coba diatas ini dalam lingkungan yang sederhana dan ideal yaitu dengan 1 server Asterisk dan 2 PC dalam 1 LAN, biasanya 2 softphone itu langsung bisa saling kring dan ngobrol. Sukses mudah diperoleh pada kondisi ini. Tentu lain soal bila anda tidak mengerti Asterisk atau distro VoIP yang saya sebutkan diatas, pada situasi ini biasanya hal kecil dan relatif mudah saja bisa menjadi hambatan besar untuk sukses.

Untuk memahami apa yang saya tulis pada artikel ini maka anda perlu minimal berada pada 3 situasi dibawah ini:

  1. Pernah melakukan instalasi Asterisk atau distro yang saya tulis diatas
  2. Pernah benar-benar menggunakannya, baik untuk iseng saja, untuk belajar atau serius
  3. Pernah terbentur suatu masalah dan tidak tahu harus periksa apa, yang mana dulu dan bagaimana. Bahkan bingung harus laporan apa.

Untuk poin 1, saya sarankan anda cari manual instalasi Asterisk. Sekarang sudah banyak yang menulisnya, dan dalam Bahasa Indonesia pula 🙂 Atau lebih cepat lagi anda dapat lakukan instalasi distro Asterisk seperti Briker (manuals) atau Elastix (manuals).

Untuk poin 2, cobalah menggunakan Briker pada kondisi ideal (1 server, 2 PC dalam 1 LAN). Pasti langsung sukses.

Untuk poin 3, setelah sukses di poin 2 maka gunakan instalasi Briker itu untuk telepon ke account VoIP Rakyat atau telepon nomor 901 di VoIP Rakyat. Anda bisa juga coba-coba dial nomor PSTN walaupun belum melakukan konfigurasi apa-apa. Dijamin menemui kegagalan bila anda tidak fasih konfigurasi Asterisk atau Briker/Elastix.

Duh kok ga konek nih ?

Kalo sudah pernah kepentok kalimat ini, mari lanjut baca 🙂

Continue reading

Permanent Redirect

Pindah domain. Blog lama di antonraharja.web.id sekarang niatnya menjadi antonraharja.com.

Keduanya sama-sama menggunakan WordPress. Bedanya yang blog lama .web.id install sendiri, sedangkan blog baru .com sewa tempat di WordPress.com.

Cara pindahnya cukup mudah.

Setelah blog baru ready maka saya export semua data-data saya melalui menu Tools->Export di blog lama, lalu import ke blog baru. Dengan demikian maka seluruh posts, comments, links yang ada di blog lama akan dapat diakses dari blog baru.

Berikutnya, lakukan setup via file .htaccess untuk permanent redirect di blog lama.

Saya backup file .htaccess lama di blog lama dengan memindahkannya ke lokasi lain, lalu saya buat file .htaccess baru dan saya isi dengan text berikut:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/(quran|tmp)
RewriteRule ^(.*)$ http://antonraharja.com/$1 [R=301,L]

Sesuai teori yang cukup mudah diperoleh dengan googling maka sekarang setiap ada yang akses ke antonraharja.web.id akan otomatis ditampilkan blog antonraharja.com. Sebagai tambahan coba perhatikan RewriteCond, aturan RewriteRule mendapat dua pengecualian yaitu untuk antonraharja.web.id/quran dan antonraharja.web.id/tmp, keduanya tetap ditampilkan di blog lama.

Demikian info lama ini ditulis kembali agar tidak lupa 🙂

G.723 and G.729 for Asterisk 11

You should compile Asterisk 11, so prepare your PC/server for it. Install development packages, get Asterisk 11 source, compile and install it.

Suppose you don’t want to install Asterisk 11 in your PC/server. You can configure and compile Asterisk 11, but don’t need to install it. After that you can continue compile the codec.

Now, assumed you have compiled Asterisk 11 and install it in /opt/asterisk on your PC/server.

Please note that by the time this manual written the g72x source code version is 1.1 and Asterisk 11 version is 11.4.0.

Follow below steps to compile codec g723 and g729:

wget -c http://asterisk.hosting.lv/src/asterisk-g72x-1.1.tar.bz2
tar -jxf asterisk-g72x-1.1.tar.bz2
cd asterisk-g72x-1.1/
./configure --with-asterisk-includes=/opt/asterisk/include --with-asterisk100 --enable-pentium4 --with-itu
make
cd .libs
ls -l *.so

Copy codec_g723.so and codec_g729.so to your Asterisk 11 modules directory.

Should you use not a Pentium 4 compatible just replace –enable-pentium4 with your PC/server architecture. Get options by running ./configure –help in the codec source directory asterisk-g72x-1.1.

These are complete steps when you don’t want to install Asterisk 11 but need to compile the codec.

apt-get install build-essential
wget -c http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
tar -zxf asterisk-11-current.tar.gz
cd asterisk-11.4.0
./configure --disable-xmldoc
make
cd ../
wget -c http://asterisk.hosting.lv/src/asterisk-g72x-1.1.tar.bz2
tar -jxf asterisk-g72x-1.1.tar.bz2
cd asterisk-g72x-1.1/
./configure --with-asterisk-includes=../asterisk-11.4.0/include --with-asterisk100 --enable-pentium4 --with-itu
make
cd .libs
ls -l *.so

Comments.

OpenSIPS 101

Sudah lama ingin menulis tentang OpenSIPS tapi ga pernah sempat. Malah ga sempat nulis apapun juga ^^

Akhirnya karena minggu lalu wajib memberikan pelatihan tentang OpenSIPS yang berfokus pada Secure Calling dengan TLS dan SRTP maka saya menulis materi ini.

Materi dapat diperoleh disini:
https://github.com/antonraharja/book-opensips-101

Dalam materi pelatihan dijelaskan bagaimana compile dan install OpenSIPS. Konfigurasi dari dasar, implementasi TLS, NAT traversal, accounting sampai dialplan.

Untuk GUI dijelaskan sedikit tentang SerMyAdmin dan OpenSIPS Control Panel (OCP atau opensips-cp).

Tujuan materi ajar ini adalah agar pembaca mulai dapat memanfaatkan OpenSIPS untuk membangun SIP server yang mampu menangani jumlah user yang besar dan concurrent call yang tinggi. Bagaimana mengoperasikan OpenSIPS dalam keseharian dan mengembangkannya.

Semoga bermanfaat.

Catatan:

  • Materi ditulis bukan dalam Bahasa Indonesia. Maafkan 🙂
  • Dan masih dalam pengembangan, jd selama perjalanan barangkali akan ada penambahan dan perubahan