Pengertian
SIP Dan Instalasi Softswitch Berbasis SIP
1. Pengertian SIP
Apa itu SIP
? SIP adalah singkatan dari Session Initiation
Protocol suatu signalling protocol pada layer aplikasi yang berfungsi untuk
membangun, memodifikasi, dan mengakhiri suatu sesi multimedia yang melibatkan
satu user atau lebih. Sesi ini adalah pertukaran data antar user yang meliputi
suara,video,dan text.
SIP tidak menyediakan layanan secara
langsung tapi menyediakan layanan yang dapat digunakan oleh protokol aplikasi
lainnya untuk memberikan layanan yang lebih lengkap bagi pengguna, misalnya
dengan RTP (Real Time Transport Protocol) untuk transfer data secara realtime,
dengan SDP (Session Description Protocol) untuk mendiskripsikan sesi multimedia
, dengan MEGACO (Media Gateway Control Protocol) untuk komunikasi dengan PSTN
(Public Switch Telephone Network). Dengan demikian, fungsi dan operasi dasar
SIP tidak tergantung pada protocol tersebut. SIP juga tidak tergantung pada
protokol layer transport yang digunakan.
Pembangunan suatu komunikasi multimedia dengan SIP dilakukan
melalui beberapa tahap :
User
location : menentukan lokasi pengguna yang akan berkomunikasi.
User
availability : menentukan tingkat keinginan pihak yang dipanggil untuk terlibat
dalam komunikasi.
dalam komunikasi.
User
capability : menentukan media maupun parameter yang berhubungan dengan media
yang
akan digunakan untuk komunikasi.
akan digunakan untuk komunikasi.
Session
setup : “ringing”, pembentukan hubungan antara pihak pemanggil dan pihak
yang dipanggil.
yang dipanggil.
Session
management : meliputi transfer, modifikasi, dan pemutusan sesi.
2.
Komunikasi dengan SIP
Komunikasi pada SIP dilakukan dengan mengirimkan message yang
berbasis HTTP.
Setiap pengguna mempunyai alamat yang dinyatakan dengan SIP-URI
(Uniform Resource Identification).
Setiap pengguna mempunyai alamat yang dinyatakan dengan SIP-URI
(Uniform Resource Identification).
Contoh
SIP URI : sip: mona@palembang.com
Selain
itu, alamat juga dapat dituliskan dalam tel-URL yang kemudian
dikonversikan
menja di SIP -URI dengan parameter‘user’ diisi ‘phone’.
menja di SIP -URI dengan parameter‘user’ diisi ‘phone’.
Contoh
: tel: +62-21-2567011
ekivalen
dengan
sip:
+62-21-2567011@palembang.com ; user=phone
Isi
pesan di dalam SIP didefinisikan dalam 2 format (RFC 3261)[14], seperti :
1. Request (dikirim dari client to server), berisi operasi yang diminta oleh client.
2. Response (dikirim dari server ke client), berisi informasi tentang permintaan status dari client.
1. Request (dikirim dari client to server), berisi operasi yang diminta oleh client.
2. Response (dikirim dari server ke client), berisi informasi tentang permintaan status dari client.
Ada 6 tipe utama pesan permintaan seperti di bawah ini[14] :
1) INVITE : mengindikasikan jika user atau layanan sedang diundang untuk bergabung dengan sesi.
2) ACK : mengkonfirmasi jika client sudah menerima respon terakhir untuk permintaan INVITE, dan hanya digunakan di permintaan REQUEST.
3) OPTION : digunakan untuk mempertanyakan server tentang kemampuannya
4) BYE : dikirim oleh client user agent untuk mengindikasikan server jika percakapan akan segera dimatikan.
5) CANCEL : untuk membatalkan permintaan yang sedang menunggu keputusan
6) REGISTER : digunakan oleh client untuk mendaftarkan informasi kontak Respon pesan berisi kode status dan informasi tentang kondisi permintaan.
Dan kode ini dibagi menjadi 6 macam:
1)1xx : Provisional, permintaan sudah diterima dan sedang diproses
2)2xx : Success, permintaan sudah diterima, dimengerti dan disetujui.
3)3xx : Redirection, butuh tindakan lebih lanjut untuk memproses permintaan
4)4xx : Client Error, permintaan salah syntax dan tidak bisa diidentifikasi jadi server tidak bisa memprosesnya.
5)5xx : Server Error, server gagal untuk memproses permintaan.
6) 6xx : Global Failure, permintaan sama sekali tidak bisa diproses di server manapun
1)1xx : Provisional, permintaan sudah diterima dan sedang diproses
2)2xx : Success, permintaan sudah diterima, dimengerti dan disetujui.
3)3xx : Redirection, butuh tindakan lebih lanjut untuk memproses permintaan
4)4xx : Client Error, permintaan salah syntax dan tidak bisa diidentifikasi jadi server tidak bisa memprosesnya.
5)5xx : Server Error, server gagal untuk memproses permintaan.
6) 6xx : Global Failure, permintaan sama sekali tidak bisa diproses di server manapun
Arsitektur dari SIP terdiri dari dua komponen yaitu user agent dan
servers. User agent merupakan end point dari sistem dan memuat dua sub sistem
yaitu user agent client (UAC) yang membangkitkan request, dan user agent server
(UAS) yang merespon request. SIP server adalah kesatuan fungsi logic, dimana
tidak perlu memisahkan alat secara fisik. Fungsi dari empat server tersebut
yaitu:
1.
Proxy Server : merupakan host
jaringan yang berperan sebagai perantara yang bertujuan untuk meminta request
atas nama client yang lain. Proxy harus bertindak sebagai server dan client,
dia harus mengarahkan SIP request pada user agent server, dan mengarahkan SIP
respons pada user agent client . Proxy server juga berfungsi untuk melakukan
routing, memastikan request disampaikan pada yang berhak menerima, dan juga
membuat kebijakan seperti menyakinkan bahwa pemakai tertentu diijinkan untuk
melakukan panggilan.
2.
Redirect Server: merupakan
kesatuan logika yang mengarahkan satu klien pada perangkat pengganti dari
Uniform Resorce indicators (URIs) untuk menyelesaikan tugas request.
3.
Registrar Server : menerima dan
memproses pesan pendaftaran yang mengijinkan lokasi dari suatu endpoint dapat
diketahui keberadaannya. Registrar Server ini kerjanya berhubungan dengan
Location Server.
4.
Location Server : menyediakan
service untuk database abstrak yang berfungsi mentranslasikan alamat dengan kata
/ keterangan yang ada pada domain jaringan.
Protokol
SIP didukung oleh beberapa protokol, diantara lain:
·
IETF Session Description
Protokol (SDP), merupakan protokol yang mendeskripsikan media dalam suatu
komunikasi. Tujuan protokol SDP adalah untuk memberikan informasi aliran media
dalam satu sesi komunikasi agar penerima yang menerima informasi tersebut dapat
berkomunikasi.
·
IETF Session Annoucement
Protocol (SAP), merupakan suatu protocol yang setiap periode waktu tertentu
mengumumkan parameter dari suatu sesi konferensi.
·
IETF Real-Time transport
protocol (RTP), menyediakan transfer media secara real time.
·
Real-Time Control Protokol
(RTCP), mengatur sesi secara periodik mentrasmit paket yang berisi feedback
atas kualitas dari distribusi data.
·
ITU_T Codec merupakan algoritma
pengkodean yang direkomendasikan, seperti G.723.1, G711, G.728, dan G.729 untuk
audio, atau H.261 untuk video.
2.
Aplikasi dan Kelebihan SIP
Aplikasi
- Voice over Internet Protocol (VoIP)
-
Konferensi multimedia
-
Text – messaging
-
Event - notification -> voicemail notification, callback notification
-
Unified Messaging - > voicemail2email
Kelebihan
1) General – purpose
SIP dapat diintegrasikan dengan protokol stadar IETF lainnya untuk membuat
suatu aplikasi yang berbasis SIP.
2) Arsitektur yang terdistribusi dan scalable
-> Proxy – server
-> Redirect – server
-> Registrar – server
-> Location – server
3) Sederhana
Pengiriman message berbasis HTTP (text-based), bukan binary - based.
Hal ini menyebabkan SIP mudah diimplementasikan.
4) Mobility
-> Seorang pengguna dapat menerima message/call yang ditujukan kepadanya.
meskipun berpindah dari satu lokasike lokasi lainnya. Proxy - server akan
meneruskan call ke lokasi pengguna pada saat ini.
-> Device yang digunakan dapat berupa PC, baik di rumah maupun di kantor,
wireless phone, IP - phone, ataupun telepon biasa.
5) Layanan dapat dibuat dengan Call Processing Language
(CPL) dan Common Gateway Interface (CGI), antara lain :
-> call waiting, call forwarding, call blocking (basic feature)
-> call - forking (melakukan call kepada beberapa endpoint)
-> Instant - messaging
-> Find - me / follow-me
3. Instalasi server
Softswitch berbasis SIP
Sebetulnya tidak banyak yang harus di instalasi untuk menjalankan Asterisk
secara minimal sekali, yang hanya mempunyai fungsi untuk
l Authentikasi user dengan nomor telepon & password.
l Dial plan, untuk mengatur apa yang harus dilakukan untuk call ke
sebuah nomor tertentu.
l ENUM, agar Asterisk nantinya mengenali nomor +62XXX
Peralatan
yang dibutuhkan adalah
l Sebuah PC Linux, saya sendiri menggunakan Fedora Core 6.
l Sambungan LAN
l Sambungan InternetN
Teknik Instalasi yang perlu dikerjakan adalah
l Ambil software asterisk & asterisk sound dari
http://www.asterisk.org. Pada saat tulisan ini ditulis ada dua (2) jenis /
versi asterisk, yaitu,
asterisk-1.4.0.tar.gz
asterisk-1.2.15.tar.gz
Anda harus memilih versi asterisk mana yang ingin di install.
Mungkin yang agak aman pada hari ini adalah versi 1.2, kecuali nanti pada saat
1.4 sudah mulaistabil. Semetara suara operator wanita yang dibutuhkan adalah
asterisk-sounds-1.2.1.tar.gz
l Saya biasanya akan mengcopykan semua file yang saya butuhkan
tersebut ke folder /usr/local/src, melalui perintah
#
cp asterisk-1.4.0.tar.gz /usr/local/src/
#
cp asterisk-1.2.15.tar.gz /usr/local/src/
#
cp asterisk-sounds-1.2.1.tar.gz /usr/local/src/
l Menginstalasi asterisk tidak sukar, cara yang perlu dilakukan
untuk asterisk-1.4 agak berbeda dengan asterisk-1.2 sebelumnya dengan
menambahkan ./configure, yaitu
#
cd /usr/local/src
#
tar zxvf asterisk-1.4.0.tar.gz
#
cd asterisk-1.4.0
#
./configure
#
make
#
make install
#
make samples
l Asterisk-1.2.15 merupakan versi terakhir dari asterisk-1.2 pada
saat naskah ini ditulis, perintah yang perlu dijalankan untuk menginstalasi
adalah
#
cd /usr/local/src
#
tar zxvf asterisk-1.2.15.tar.gz
#
cd asterisk-1.2.15
#
make
#
make install
#
make samples
l Selanjutnya install suara operator asterisk, melalui perintah
#
cd /usr/local/src
#
tar zxvf asterisk-sounds-1.2.1.tar.gz
#
cd asterisk-sounds-1.2.1
#
make install
Seleai sudah proses instalasi asterisk. Langsung selanjutnya yang
perlu dilakukan adalah mengkonfigurasi agar sesuai dengan apa yang kita
inginkan.
Konfigurasi Asterisk Minimal Sekali
Konfigurasi Asterisk Minimal Sekali
Konfigurasi Asterisk yang aman sangat minimal dengan misi untuk
meng-authentikasi user, mengkonfigurasi dial-plan dan mengenalkan ENUM tidak
banyak yang harus dilakukan. Seluruh proses konfigurasi merupakan proses
editing file-file yang ada di folder
/etc/asterisk
File yang perlu diperhatikan tidak banyak, hanya,
sip.conf -
untuk authentikasi user dengan nomor telepon dan password.
extensions.conf -
untuk mengatur dialplan.
enum.conf -
untuk memperkenalkan nomor +62XX.
Masih banyak file-file konfigurasi lainnya, sangat di sarankan
bagi anda yang ingin secara serius mempelajari asterisk untuk membaca-baca
file-file konfigurasi yang ada di /etc/asterisk/
Konfigurasi ENUM.CONF
Tidak banyak yang harus di ubah di /etc/asterisk/enum.conf, hanya
pastikan bahwa ada entry
search
=> e164.arpa
search
=> e164.org
search
=> e164.id
Dengan cara itu, kita dapat pastikan bahwa informasi ENUM yang ada
di e164.arpa, e164.org dan e164.id akan dapat di ketahui dengan baik oleh
asterisk kita.
Konfigurasi SIP.CONF
Pada file /etc/asterisk/sip.conf, untuk sebuah account dengan
nomor telepon 2099, password 123456, IP address dinamis menggunakan DHCP maka
entry yang digunakan adalah,
[2099]
context=default
type=friend
username=2099
secret=123456
host=dynamic
dtmfmode=rfc2833
mailbox=2099@default
Untuk asterisk-1.4, agar dial tone dapat di handel dengan baik
maka perlu ditambahkan di tambahan entry berikut
rfc2833compensate=yes
Masukan entry di atas untuk masing-masing user.
Sampai titik ini maka masing-masing user dapat meregistrasikan
diri ke asterisk dan dapat menelepon satu sama lain dengan mereka yang
terdaftar di asterisk server yang kita operasikan.
Agar asterisk server kita dapat berbicara dengan user lain di XL.
Indosat, VoIP Rakyat, di Pulver atau di SIP Proxy yang banyak bertebaran di
Internet, kita perlu meregistrasikan diri ke SIP Proxy server tersebut.
Perintah yang digunakan adalah
register
=> 2345:password@sip_proxy/1234
yang artinya, user 1234 di asterisk server yang kita operasikan
merupakan user 2345 di sip_proxy yang login ke sana menggunakan password
"password". Misalnya seseorang user 2000 mempunyai account 20345 di
server voiprakyat.or,id dengan password "rahasia" maka format yang
digunakan adalah
register
=> 20345:rahasia@voiprakyat.or,id/2000
Dengan cara ini, maka ada panggilan di VoIP Rakyat ke nomor 20345
akan langsung di forward ke nomor 2000 di SIP server yang kita gunakan.
Konfigurasi EXTENSIONS.CONF
Pada file /etc/asterisk/extensions.conf kita dapat mengatur apa
yang harus dilakukan oleh asterisk jika menerima sebuah panggilan ke nomor
extension tertentu, yang sering digunakan adalah
exten
=> _20XX,1,Dial(SIP/${EXTEN},20,rt)
exten
=> _20XX,2,HangUp
Cara membaca perintah di atas adalah sebagai berikut,
Jika ada orang yang menelepon ke extension 20XX maka langkah 1
yang harus di kerjakan adalah DIAL EXTENsiontersebut mengunakan teknologi SIP,
tunggu 20 detik, jika tidak di angkat maka time out (rt). Langkah ke 2 yang
harus dilakukan adalah HangUp. Tentunya anda perlu mengatur sedikit-sedikit
perintah ini agar sesuai dengan kondisi yang anda gunakan di SIP Server anda.
Beberapa perintah berbahaya yang sering dicari orang adalah
sebagai berikut
exten
=> _0711X.,1,Dial(SIP/${EXTEN:4}@2031,20.rt)
Cara membaca-nya adalah,
Jika ada orang yang menelepon ke 0711X. Perhatikan titik sesudah
X, berarti berapapun dibelakang X tidak di perdulikan. DIAL menggunakan
teknologi SIP ke nomor 2031. Perhatikan baik-baik kode {EXTEN:4} ini harus di
baca - buang empat (4) digit di depan nomor EXTENsion sebelum dimasukan ke 2031
- jadi 07115551234 menjadi 5551234.
Jika kita menggunakan PABX antara ATA dengan Telkom, maka perintah
yang digunakan menjadi
exten
=> _021X.,1,Dial(SIP/9${EXTEN:3}@2031,20.rt)
Cara membaca-nya adalah,
Jika ada orang yang menelepon ke 021X. Perhatikan titik sesudah X,
berarti berapapun dibelakang X tidak di perdulikan. DIAL menggunakan teknologi
SIP ke nomor 2031. Perhatikan baik-baik kode 9{EXTEN:3} ini harus di baca buang
tiga (3) digit di depan nomor EXTENsion yang di dial kemudian tambahkan 9 -
jadi 0215551234 menjadi 95551234.
Artinya jika nomor 2031 merupakan sebuah Analog Telepon Adapter
(ATA) seperti SPA3000 yang berada di jakarta dan sambungkan ke PABX di Jakarta.
Maka siapapun yang berada di jaringan VoIP Tersebut akan dapat menelepon
Jakarta tanpa perlu membayar SLJII maupun SLI. Orang yang mempunyai ATA tetap
harus membayar pulsa lokal untuk menelelpon ke nomor ang di tuju.
Cara yang sama dapat di kembangkan untuk menelepon selular dengan
cara menyambungkan ATA yang kita gunakan ke telkom. Perintah yang digunakan
adalah sebagai berikut
exten
=> _08X.,1,Dial(SIP/${EXTEN}@2031,20.rt)
Tentunya
untuk sebuah kantor yang tersambung ke jaringan VoIP Publik tidak akan mau
membuka akses agar semua orang dapat menelepon semua nomor selular atau Telkom,
oleh karenanya biasanya kita tidak menggunakan kode-kode 021X., atau 08X. Tapi
kita akan memasukan satu per satu nomor-nomor yang di ijinkan di telepon
melalui VoIP, misalnya,
exten
=> _0811567854,1,Dial(SIP/${EXTEN}@2031,20.rt)
exten
=> _0216575675,1,Dial(SIP/${EXTEN}@2031,20.rt)
exten
=> _0216755675,1,Dial(SIP/${EXTEN}@2031,20.rt)
Artinya hanya nomor 0811567854, 0216575675 dan
0216755675 yang dapat dihubungi melalui VoIP nomor selain nomor-nomor ini tidak
dapat dihubungi.
Untuk mengadopsi nomor telepon
+62XXX maupun nomor telepon lainnya kita dapat memasukan ENUMLOOKUP menggunakan
perintah
exten
=> _62X.,1,ENUMLOOKUP(${EXTEN},sip,,1,e164.id)
exten
=> _62X.,2,Dial(${ENUM})
exten
=> _62X.,102,Playback(im-sorry)
atau
exten
=> _+X.,1,ENUMLOOKUP(${EXTEN},sip,,1,e164.id)
exten
=> _+X.,2,Dial(${ENUM})
exten
=> _+X.,102,Playback(im-sorry)
0 Comments:
Posting Komentar