Friday, 02 November 2007
Sejarah VoIP Rakyat
VoIP atau Voice over Internet Protocol sudah masuk ke Indonesia sejak lama, sekitar 10 tahun yang lalu. Penggunaannya semakin meluas ketika sekitar tahun 2000-2001, Onno W. Purbo dan rekan-rekan seperjuangan saat itu membangun node-node gatekeeper VoIP yang saling terhubung dalam jaringan bernama VoIP Merdeka. Jumlah node semakin bertambah dan jaringan VoIP Merdeka pun semakin luas. Sejak saat itu antusiasme masyarakat terhadap teknologi VoIP kian besar.
Mengikuti jejak VoIP Merdeka, pada tahun 2004 penulis dan rekan-rekan ICT Centre membangun server VoIP yang kemudian diberi nama VoIP Rakyat dengan nama domain voiprakyat.net. Berbeda dengan VoIP Merdeka yang merupakan gabungan node-node gatekeeper VoIP, arsitektur VoIP Rakyat dirancang dengan hanya menggunakan satu server saja. VoIP Merdeka berbasis protokol H.323, sedangkan VoIP Rakyat berbasis protokol SIP.
Domain voiprakyat.net hanya bertahan selama satu tahun. Karena keterbatasan dana, domain ini akhirnya expired dan sulit diperbaharui kembali. Akhir tahun 2005, VoIP Rakyat berganti domain menjadi voiprakyat.or.id.
Pembaharuan domain dibarengi dengan berbagai pembaharuan dalam tubuh VoIP Rakyat. Antara lain penambahan pendukung utama dari hanya penulis dan rekan-rekan ICT Centre, menjadi tambah Onno W. Purbo, rekan-rekan IDC Indonesia, Acer, dan beberapa rekan lain. Infrastruktur pun jauh lebih baik karena menggunakan komputer server Acer Altos G530 dan terhubung ke jaringan IIX langsung dari lokasi data center IDC Indonesia.
Dengan jumlah tim pengembang yang seadanya, VoIP Rakyat berupaya mencapai tujuan utama dibangunnya jaringan ini, yaitu memberikan alternatif telekomunikasi murah melalui implementasi teknologi VoIP. Kini VoIP Rakyat melengkapi dirinya dengan forum diskusi tempat berdiskusi masalah VoIP, website yang penuh informasi; manual berbagai aplikasi; dan perangkat keras VoIP; serta VoIP Rakyat Communicator, yaitu aplikasi desktop dengan feature Instant Messaging dan VoIP.
Friday, 02 November 2007
Struktur file extensions.conf adalah sebagai berikut:
[general]
…
[globals]
…
[aplikasiivr1]
…
[aplikasiivr2]
…
[default]
…
Blok general seperti pada sip.conf berisi option yang bersifat umum. Blok globals berisi variabel-variabel yang dibutuhkan dalam aplikasi IVR dan call routing. Pada contoh di atas, blok aplikasiivr1 dan aplikasivr2 adalah contoh lokasi IVR jika Anda ingin menambahkannya. Terakhir, adalah blok default. Di sini disimpan dial plan yang akan dimanfaatkan oleh penggunapengguna yang login ke IP PBX ini.
Format penulisan dalam IVR dan blok default adalah sebagai berikut.
exten => <extension>,<priority>,<applications
>,<application’s parameters>
Contoh penulisan dial plan sederhana sebagai berikut.
exten => 101,1,Dial(SIP/101)
exten => 101,2,Hangup
exten => 102,1,Dial(SIP/102)
exten => 102,2,Hangup
Dial plan di atas menjelaskan bahwa apabila nomor 101 di-dial oleh pengguna, prioritas 1 adalah Dial(SIP/101) yang artinya hubungi nomor 101 pada sip.conf. Jika sudah selesai, jalankan prioritas kedua, yaitu Hangup line. Demikian juga apabila nomor 102 yang di-dial oleh pengguna.
Selanjutnya, perhatikan bagian <extension> pada format penulisan dial plan di atas. <extension> dapat dibentuk dari serangkaian mask. Untuk menandai <extension> yang menggunakan masking, tambahkan karakter (underscore) diawal <extension>. Contoh dial plan:
exten => _1X.,1,Dial(SIP/${EXTEN})
exten => _1X.,2,Hangup
Dial plan di atas menjelaskan bahwa apabila nomor 1 diikuti dengan angka berapa saja, misal pengguna dial 101, 102 atau 15227424, prioritas 1 adalah Dial(SIP/${EXTEN}) yang artinya hubungi nomor berapa pun yang di-dial tersebut pada sip.conf. Apabila sudah selesai, jalankan prioritas kedua, yaitu Hangup line. Variabel bawaan ${EXTEN} akan selalu berisi nomor berapa pun yang saat itu di-dial oleh pengguna.
Cukup jelas rasanya bahwa untuk membuat aturan agar nomor 101, 102, 103, dan seterusnya dapat dihubungi, Anda tidak perlu lagi membuat dial plan untuk masing-masing nomor, cukup dengan masking saja.
Contoh lain menggunakan masking untuk mengatur dial plan.
exten => _0062X.,1,Ringing
exten => _0062X.,2,Wait,2
exten => _0062X.,3,Dial(SIP/tovoiprakyat/
+${EXTEN:2})
exten => _0062X.,4,Hangup
Contoh di atas lebih rumit daripada contoh sebelumnya. Harap perhatikan penjelasan singkat berikut. Apabila pengguna men-dial sebuah nomor, katakanlah 0062218613027, yang terjadi selanjutnya adalah Asterisk akan menerimanya karena cocok dengan masking di atas. Kemudian Asterisk menjalankan perintah Ringing sebagai prioritas 1, dilanjutkan dengan perintah Wait selama 2 detik. Kedua perintah tersebut, prioritas 1 dan 2, menyebabkan pengguna mendengar nada tunggu selama 2 detik. Selanjutnya prioritas 3, yaitu Dial trunk tovoiprakyat dan forward nomor +62218613027 melalui protokol SIP. Setelah selesai, jalankan prioritas 4, yaitu Hangup line. Sebagai catatan trunk tovoiprakyat sudah dijelaskan pada pembahasan mengenai sip.conf.

Ujicoba : Extension 101 berhasil login ke IP PBX. Pada komputer yang lain, extension 102 berhasil login ke IP PBX yang sama.
Jangan terburu-buru, perhatikan baik-baik penjelasan di atas. Perhatikan bahwa 0062218613027 ketika di-forward ke trunk tovoiprakyat berubah menjadi +62218613027. Hal itu terjadi karena pada perintah Dial, isi variabel ${EXTEN} memang dipotong dua digit di awalnya dan ditambahkan di awal dengan sebuah karakter + (plus), melalui masking berikut ini.
+${EXTEN:2}
Dengan prinsip yang sama, maka Asterisk dapat dikembangkan untuk membangun IVR. Informasi perintah-perintah yang dapat dijalankan selain Ringing, Wait, Dial dan Hangup, serta untuk membangun IVR yang lengkap dengan greetings dan menu bertingkat dapat didiskusikan di forum VoIP Rakyat, http://www.voiprakyat.or.id/ forum. Atau untuk melihat referensi perintah-perintah Asterisk kunjungi website AsteriskGuru, http://www.asteriskguru.com.

Berhasil : Komunikasi berhasil dilangsungkan antara extension 101 dengan 102
Pengujian dengan X-Lite 3.0
Sebenarnya account extension yang sudah dibuat di sip.conf dapat saja dihubungkan ke perangkat keras seperti penjelasan sebelumnya (ATA, IP Phone atau ITG). Namun untuk memudahkan, pada tahap pengujian ini, gunakanlah softphone yang tersedia.
Pada gambar di atas, bisa dilihat keberhasilan X-Lite 3.0 dalam melakukan login dan panggilan dari extension 101 ke extension 102 yang login ke IP PBX yang sama dari komputer lain.
Friday, 02 November 2007
Contoh struktur file sip.conf adalah sebagai berikut:
# [general]
…
… ; option pada bagian general disini
…
[101]
…
[102]
…
[trunk1]
…
Blok general yang diawali dengan tag [general] adalah bagian option yang mempengaruhi seluruh modul SIP pada Asterisk. Yang terdapat pada bagian ini antara lain context, bindport, bindaddr, domain, dan lain-lain, termasuk konfigurasi untuk video support. Pengurutan prioritas codec dapat dilihat dalam sip.conf Anda. Pada umumnya, kita tidak perlu mengubah apa pun disini.
Isi file sip.conf selanjutnya adalah blok extension. Dalam contoh di atas, CHIP menulis dengan tag [101] dan tag [102]. Tag [101] menandakan bahwa label untuk extension tersebut adalah 101. Hal ini erat kaitannya dengan username yang digunakan oleh pengguna ketika login ke server, IP PBX Asterisk ini. Bila ada lima orang di kantor Anda dan Anda ingin semuanya terhubung ke server ini maka buatlah lima account extension dengan menambahkan lima buah tag. Tiap blok tag memiliki option yang hanya berpengaruh pada extension tersebut, bukan pada keseluruhan modul SIP. Blok trunk tidak jauh berbeda. Tag [trunk1] pada contoh di atas merupakan label untuk sebuah trunk yang dihubungi melalui SIP dari IP PBX ini.
Dalam contoh berikut akan ditunjukkan dua buah blok extension secara lengkap. Perhatikan option minimal yang perlu ada pada setiap blok extension.
[101]
type=friend
context=default
host=dynamic
username=101
secret=passwordPilihanAnda
[102]
type=friend
context=default
host=dynamic
username=102
secret=passwordDapatBerupaApaSaja
Untuk membentuk sebuah extension, minimal diperlukan option seperti di atas, yaitu type=friend, context=default, host=dynamic, username sesuai dengan label dalam tag, dan secret sesuai pilihan Anda. Penjelasan lebih detail tentang type, context, dan host dapat Anda peroleh di http://www.asteriskguru.com.
Selanjutnya adalah contoh untuk menambahkan sebuah trunk. Misal trunk dari IP PBX ini ke VoIP Rakyat.
[tovoiprakyat]
type=friend
context=default
host=voiprakyat.or.id
bisa juga menggunakan IP trunk yang akan dihubungi
username=20241
secret=rahasiadong
Setelah membuat blok di atas, perlu menyisipkan baris register di blok general. Dengan menyisipkan baris register, maka IP PBX ini terdaftar di trunk, dalam hal ini terdaftar di VoIP Rakyat. Baris register tersebut adalah:
register => 20241:rahasiadong@tovoiprakyat ;
perhatikan username dan secret
Option lain yang biasanya diperlukan adalah untuk pengaturan prioritas codec, pengaturan videosupport, dan pengaturan NAT. Untuk codec dan videosupport, biasanya ditulis di blok general, sedangkan pengaturan NAT biasa ditulis per extension dan trunk.

Konfigurasi : X-Lite login dengan extension 101 pada sip.conf IP PBX yang berada di IP 192.168.1.10
Contoh pengaturan prioritas codec.
disallow=all ; awalnya seluruh codec
dilarang
allow=gsm ; selanjutnya diurutkan
dari atas ke bawah
allow=ilbc
allow=ulaw
allow=alaw
allow=h261 ; codec berawalan h ini
adalah codec untuk video support
allow=h263
allow=h263p
Pengaktifan video call dan conference dapat ditambahkan juga pada blok general.
videosupport=yes
Sedangkan pengaturan NAT biasanya ditulis per extension, bukan pada blok general. Simak perintah berikut:
nat=yes ; extension atau trunk
berada dibelakang NAT
canreinvite=no ; seluruh komunikasi
diatur melalui proxy tidak peer 2 peer
qualify=yes ; kirim SIP
NOTIFY dengan tempo tertentu agar NAT
tetap aktif
Jangan lupa untuk reload Asterisk setelah melakukan perubahan pada file sip.conf.
extensions.conf
File ini menyimpan dial plan atau call routing untuk IP PBX ini. IVR atau Interactive Voice Response, terminasi dengan PSTN (jika ada), dan setiap aplikasi yang berhubungan dengan dial plan seluruhnya diatur dalam 1 file ini, extensions.conf.
Friday, 02 November 2007
Instalasi Asterisk
Tidak seperti kebanyakan aplikasi di Linux, Asterisk lebih sering di-install dengan melakukan kompilasi terhadap kode programnya terlebih dahulu. Berikut langkah-langkahnya.
Agar berjalan sempurna, ada beberapa hal yang perlu dipersiapkan terlebih dulu, yaitu:
1. Gunakan Linux dengan kernel 2.6.xx distribusi apa saja pilihan Anda. Penulis menggunakan SuSE 9.3.
2. Lakukan instalasi untuk aplikasi dan library seperti berikut:
C compiler (gcc)
make
bison
ncurses-devel
openssl-devel
zlib-devel
wget, links, lynx, w3c atau browser console
pilihan Anda
mc, vi, nano atau editor console pilihan Anda

Koneksi : Diagram dari komponen IP PBX yang terdiri dari tiga bagian, yaitu extension, trunk, dan dial plan.
Berikut adalah langkah-langkah yang perlu ditempuh setelah persiapan di atas dipenuhi.
1. Download kode program
# cd /usr/local/src
# wget –c http://ftp.digium.com/pub/asterisk/
releases/asterisk-1.2.13.tar.gz
# wget –c http://ftp.digium.com/pub/asterisk/
releases/asterisk-sounds-1.2.1.tar.gz
2. Ekstrak paket kode program
# cd /usr/local/src
# tar –zxf asterisk-1.2.13.tar.gz
# tar –zxf asterisk-sounds-1.2.1.tar.gz
3. Kompilasi dan instalasi
# cd /usr/local/src
# cd asterisk-1.2.13
# make
# make install
# make samples
# cd /usr/local/src
# cd asterisk-sounds-1.2.1
# make install
Perhatikan baik-baik console Linux Anda ketika menjalankan perintah-perintah di atas. Pastikan Anda mengetahui bila terjadi error dan tidak melanjutkan ke perintah selanjutnya sebelum error tersebut diperbaiki.
Konfigurasi Asterisk
Setelah melakukan instalasi, beberapa file dan direktori tercipta dalam Linux Anda. Berikut adalah daftar direktori penting yang digunakan oleh Asterisk untuk bekerja:
Untuk memulai konfigurasi, fokuskan pada dua file konfigurasi yang berada di direktori /etc/asterisk, yaitu file sip.conf dan extensions.conf. Apabila Anda ingin menggunakan protokol IAX2, bukan SIP maka gunakanlah file iax.conf, bukan sip.conf.

Awal : X-Lite baru saja di-install, belum terkonfigurasi account SIP apapun.
Administrasi Asterisk
Asterisk dijalankan dari console Linux dengan menjalankan perintah sebagai berikut:
# asterisk
Apabila ada perubahan pada file-file konfigurasi, Asterisk perlu di-reload dengan menjalankan perintah sebagai berikut:
# asterisk –rx “reload”
Untuk menghentikan Asterisk, terdapat beberapa cara, antara lain sebagai berikut:
# asterisk –rx “stop now”
# asterisk –rx “stop gracefully”
# asterisk –rx “stop when convenient”
# killall asterisk
# killall -9 asterisk
sip.conf
File ini menyimpan data account untuk setiap extension dan trunk. Semakin banyak pengguna yang harus diatur, semakin besar pula isi file ini. Demikian juga semakin banyak trunk yang Anda miliki, semakin panjang pula baris pada file ini.
Friday, 02 November 2007
Codec dengan bandwidth terboros adalah G.711, menghabiskan bandwidth sekitar 87 kbps. Sebaliknya, codec yang paling hemat dan umum digunakan adalah G.723.1, menghabiskan bandwidth sekitar 22 kbps. Codec lain yang umum digunakan karena suaranya yang lebih jernih dari pada G.723.1, tetapi bandwidth-nya jauh lebih kecil dibanding G.711 adalah G.729. Codec ini menghabiskan bandwidth sekitar 24 kbps. Adapun yang codec lain yang umum dan gratis adalah GSM dan iLBC yang menghabiskan bandwidth sekitar 29 – 31 kbps.
Solusi VoIP Murah
Faktor utama yang menjadi penghambat membangun layanan VoIP murah dan andal adalah belum stabilnya aplikasi proxy atau aplikasi server VoIP yang tersedia, terutama yang Open Source. Tetapi kini tidak lagi, saat ini Asterisk pada versi 1.2.13 sudah sangat stabil dan layak untuk diimplementasikan dengan status produksi. Kendati demikian, upgrade dan patch masih tetap diperlukan guna menambal lubang keamanan dan feature yang kurang berjalan baik.
Demikian halnya dengan User Agent, baik yang tersedia gratis maupun Open Source, saat ini dapat dibilang stabil dan pantas diimplementasikan dengan status produksi. Jumlahnya pun cukup banyak, beragam, dan unik. Misalnya X-Lite 3.0 berbasis SIP yang dilengkapi dengan VoIP, Video call, dan conference serta Instant Messaging. Contoh lainnya, iaxLite dan Idefisk yang lebih ringan dan berbasis protokol IAX2 yang lebih anti-firewall.
Untuk pemilihan protokol dan codec, Anda tidak perlu terlalu memilih-milih karena Asterisk mempunyai kemampuan untuk translasi antarprotokol dan antarcodec secara otomatis dan real-time. Jadi bagi Anda yang menggunakan softphone berbasis SIP, Anda tetap dapat berhubungan dengan mereka yang menggunakan softphone berbasis IAX2. Begitu pula pengguna dengan Codec G.711, Anda dapat tetap berkomunikasi dengan pengguna dengan Codec GSM atau iLBC.
Protokol yang didukung oleh Asterisk antara lain adalah H.323, IAX, IAX2, MGCP, SCCP, dan SIP. Codec yang didukung oleh Asterisk antara lain G.711, G.723.1, GSM, iLBC. Namun, codec G.729 baru dapat digunakan setelah membeli lisensi khusus dari Digium (perusahaan pembuat Asterisk) atau menggunakan implementasi G.729 yang Open Source. Asterisk dapat diperoleh dari websitenya, http://www.asterisk.org.
Kesimpulan dari seluruh penjelasan di atas: untuk membangun layanan atau jaringan VoIP yang murah, mudah, dan andal, Anda harus menyiapkan sebuah komputer yang terhubung jaringan IP yang di-install dengan Linux dan Asterisk versi terbaru. Sedangkan dari sisi user: sediakan softphone yang mencakup kebutuhan user secara umum atau sediakan saja beberapa softphone dan biarkan user yang memilih.
Asterisk IP PBX
Dalam website resminya disebutkan bahwa Asterisk adalah PBX atau Private Branch eXchange dalam bentuk software. Ia dapat dijalankan di berbagai sistem operasi dan menyediakan feature-feature yang tersedia di PBX pada umumnya. Asterisk juga dapat melakukan VoIP melalui berbagai protokol dan dapat berinteraksi dengan berbagai perangkat telephony yang harganya relatif murah.

Interface : Softphone VoIP Rakyat Communicator, Sjphone, dan Xlite-3.0
Bagi Anda yang belum mengenal PBX, PBX adalah alat dimana sebuah kantor dapat memiliki sebuah sentral Telkom kecil. Indikator bahwa kantor Anda telah mempunyai PBX, dapat terlihat dari tersedianya telepon di kantor Anda dengan nomor yang singkat, umumnya 2-5 digit. Nomor singkat ini merupakan nomor yang telah diatur di PBX dan tidak dapat dihubungi langsung dari jaringan PSTN atau jaringan GSM/CDMA.
Dengan melakukan instalasi Linux dan Asterisk pada komputer Anda, maka komputer Anda berubah menjadi sebuah PBX dengan kemampuan untuk berkomunikasi dengan jaringan IP. PBX yang mempunyai kemampuan tersebut dikenal dengan istilah IP PBX.
Seperti halnya PBX, dalam IP PBX pun dikenal tiga komponen penting yang membentuk fungsi PBX, yaitu extension, trunk, dan dial plan.
Namun, Asterisk mempunyai cara sendiri untuk mendefinisikan extension, trunk, dan dial plan tersebut.
Friday, 02 November 2007
Contoh user agent yang termasuk dalam Solusi Komunikasi Murah november 2006 | CHIP | 157 kategori softphone adalah iaxLite, Idefisk, Ekiga, Kphone, Linphone, Netmeeting, Sjphone, dan X-Lite. Sedangkan user agent dalam bentuk perangkat keras antara lain ATA (Analog Telephone Adaptor), IP Phone/Ethernet Phone, USB Phone, dan ITG (Internet Telephony Gateway).
Proxy
Proxy atau bisa juga disebut dengan server, gatekeeper, registrar adalah komponen yang menerima registrasi User Agent dan bertugas mengatur penomoran dan call routing. Aplikasi proxy yang mendapatkan reputasi sebagai aplikasi andal adalah Asterisk dan SER (SIP Express Router). Sedangkan proxy yang masih seumur jagung antara lain OpenSER, FreeSwitch, dan Yate.
Perlu dicatat dan diingat bahwa proxy yang dimaksud disini bukanlah proxy server Internet, melainkan aplikasi server yang mengatur jaringan VoIP.
Protokol
Protokol adalah komponen berupa seperangkat aturan komunikasi antarUser Agent, antarProxy atau User Agent dengan Proxy dan sebaliknya. Yang paling tua, stabil, dan andal adalah protokol H.323. Ia merupakan koleksi dari beberapa protokol lain yang mengatur session dan media transfer. Namun, H.323 memiliki kekurangan yang cukup fatal yaitu tidak dapat dengan mudah menembus NAT atau Network Address Translation. Dengan demikian diperlukan gatekeeper yang harus dioperasikan di setiap node jaringan LAN yang menggunakan fasilitas NAT. Gatekeeper tersebut berfungsi sebagai jembatan antara pengguna di dalam jaringan dengan NAT tersebut dan dengan mereka yang berada di luar jaringan LAN.
Selanjutnya, adalah protokol SIP atau Session Initiation Protocol. Ia tugasnya hanya menciptakan, menghapus, dan memodifikasi session atau sesi komunikasi. Tidak seperti H.323, SIP bukanlah protokol koleksi. SIP hanya mengatur session saja, sedangkan data voice disalurkan melalui protokol lain yang bukan bagian dari SIP.

Informatif : Untuk mendapatkan informasi lengkap tentang VoIp Rakyat kunjungi websitenya di http://www.voiprakyat.or.id
SIP dapat dengan mudah menembus NAT sehingga implementasinya dapat terpusat pada satu server saja. Bagi Anda yang berada dalam jaringan dengan NAT tidak perlu khawatir tidak dapat terhubung dengan server. Beda halnya jika pada jaringan Anda tersebut tidak hanya NAT saja yang terpasang tetapi juga Firewall yang terkonfigurasi menutup komunikasi protokol SIP.
Protokol lain yang mulai sering digunakan adalah IAX2 atau Inter Asterisk eXchange versi 2. Protokol ini sangat andal. Ia dapat menembus NAT dengan mudah dan hanya menggunakan satu port saja untuk membentuk session dan media transfer. Protokol ini juga mempunyai feature-feature yang dapat mengurangi konsumsi bandwidth, seperti IAX-trunking dan menjernihkan suara seperti jitter buffer.
Namun, tidak seperti dua protokol lainnya, SIP dan H.323 yang Open Standard, IAX2 masih dalam draft menuju Open Standard. Oleh karena itu dukungan vendor perangkat keras yang menerapkannya dalam perangkat-perangkat mereka masih sangat minim dibandingkan dengan SIP, apalagi H.323. Kendati demikian, kode program untuk implementasi IAX2 merupakan Open Source, sehingga bisa dipastikan lambat laun akan banyak tersedia pula softphone dan perangkat keras berbasis protokol IAX2.
Codec
Codec adalah teknologi yang memaketkan data voice ke dalam format data lain dengan perhitungan matematis tertentu, sehingga menjadi lebih teratur dan mudah dipaketkan. Dengan menggunakan Codec tertentu bandwidth dapat dihemat. Namun risikonya, suara dapat menjadi kurang jernih atau berubah warna suaranya. Apabila mengejar kualitas suara yang baik, jernih, dan tidak berubah warna suaranya, dibutuhkan codec dengan perhitungan matematis yang minim. Konsekuensinya kebutuhan bandwidth meningkat.
Friday, 02 November 2007
Solusi Komunikasi Murah
Kemajuan Internet di Indonesia perlu dibarengi dengan penyajian local content yang tepat bagi para penggunanya. VoIP merupakan salah satu local content yang perlu dipertimbangkan.

Kini membangun jaringan VoIP relatif lebih mudah dibandingkan dengan sebelumnya. Hal ini karena kemajuan dalam pengembangan aplikasi Open Source untuk VoIP. Kemajuan tersebut begitu pesat hingga taraf aplikasi Open Source yang tersedia dinilai pantas untuk diterapkan dengan status produksi bukan lagi percobaan dalam lab saja.
Asterisk dan SER merupakan dua di antara beberapa aplikasi Open Source yang siap digunakan untuk membangun jaringan VoIP. Jaringan VoIP berbasis kedua aplikasi tersebut baik terpisah maupun digabungkan dengan konfigurasi tertentu, sudah dapat dimanfaatkan untuk mendukung kegiatan bisnis. Apalagi untuk keperluan rumahan.
Inti Teknologi VoIP adalah bagaimana data voice dapat disalurkan melalui jaringan berbasis protokol IP. Tidak seperti pada jaringan non-VoIP, PSTN misalnya, voice yang berupa sinyal analog tidak mengalami perubahan terlebih dahulu sebelum disalurkan. Pada VoIP, voice ini diubah menjadi data digital, diberi nomor dan header, kemudian dikirimkan dalam bentuk paket-paket. Bagi penerima, paketpaket tersebut dibongkar dan diurutkan kembali. Setelah terurut, data voice tadi diubah kembali menjadi sinyal analog.
Serangkaian peristiwa perubahan dari analog ke digital, memaketkan, mengirimkan, menerima, mengurutkan, dan mengubah kembali dari digital ke analog inilah yang disebut dengan VoIP.
Memahami prinsip VoIP seperti memahami bahwa untuk mengirim panggung musik dari satu daerah ke daerah lain, panggung tersebut perlu dibongkar dahulu, dipaket, dan dikirimkan. Kemudian setelah sampai ditempat tujuan paket tersebut diurutkan kembali dan dibangun menjadi panggung musik yang sama.
Untuk dapat mengimplentasikan VoIP diperlukan beberapa komponen utama VoIP yang harus bekerja sama, yaitu:
User Agent
User Agent merupakan komponen yang digunakan oleh pengguna untuk memulai dan menerima sesi komunikasi. Dalam VoIP, user agent berupa komponen yang melakukan dial nomor telepon VoIP dan atau menerimanya. Komponen ini dapat berupa aplikasi perangkat lunak (atau biasa disebut dengan softphone) atau dapat pula dalam bentuk perangkat keras.