Difference between revisions of "VoIP: Detail Konfigurasi Asterisk untuk Panggilan Keluar dan Masuk"

From OnnoWiki
Jump to navigation Jump to search
(New page: Konfigurasi Asterisk untuk Panggilan Keluar dan Masuk Mendefinsikan SIP Channel di sip.conf Setiap SIP client dan server di identifikasi dengan sebuah blok text yang kira-kira seperti ...)
 
 
Line 1: Line 1:
Konfigurasi Asterisk untuk Panggilan Keluar dan Masuk
+
==Mendefinsikan SIP Channel di /etc/asterisk/sip.conf==
  
Mendefinsikan SIP Channel di sip.conf
+
Setiap [[SIP]] client dan server di identifikasi dengan sebuah blok text yang kira-kira seperti
  
Setiap SIP client dan server di identifikasi dengan sebuah blok text yang kira-kira seperti
+
[xxx]
 +
type=yyy
 +
parameter1=nilai
 +
parameter2=nilai
  
[xxx]  
+
Dimana xxx adalah nama yang diasosiasikan dengan [[SIP client]], atau nama sembarang yang digunakan oleh file konfigurasi lain untuk mereferensikan pada sebuah peralatan [[SIP]]. Biasanya, sebuah [[SIP phone]] dengan nomor extension 123, biasanya akan mempunyai entry yang dimulai dengan [123]. Perlu dicatat bahwa anda tetap perlu mengaktifkan extension 123 di file /etc/asterisk/extensions.conf agar orang dapat menelepon ke extension 123. Type harus berisi "user", "peer" atau "friend".
type=yyy
 
parameter1=nilai
 
parameter2=nilai
 
  
Dimana xxx adalah nama yang diasosiasikan dengan SIP client, atau nama sembarang yang digunakan oleh file konfigurasi lain untuk mereferensikan pada sebuah peralatan SIP. Biasanya, sebuah SIP phone dengan nomor extension 123, biasanya akan mempunyai entry yang dimulai dengan [123]. Perlu dicatat bahwa anda tetap perlu mengaktifkan extension 123 di file extensions.conf agar orang dapat menelepon ke extension 123. Type harus berisi "user", "peer" atau "friend".
+
Asterisk akan mencocokan call yang masuk dengan nama dari device dengan type=user dari percakapan protokol [[SIP]] di kolom From: user name (dengan tidak mengindahkan SIP domain). Cara lain yang juga digunakan adalah membandingkan permohonan [[SIP]] yang cocok dengan [xxx] pada file sip.conf, akan dilihat [[IP address]] pemohon yang masuk, dan melihat informasi peer dari bagian [xxx] yang cocok dengan host=nilai. Jika host=dynamic, pencocokan tidak mungkin dilakukan sampai [[SIP client]] mendaftarkan diri.
  
Asterisk akan mencocokan call yang masuk dengan nama dari device dengan type=user dari percakapan protokol SIP di kolom From: user name (dengan tidak mengindahkan SIP domain). Cara lain yang juga digunakan adalah membandingkan permohonan SIP yang cocok dengan [xxx} pada file sip.conf, akan dilihat IP address pemohon yang masuk, dan melihat informasi peer dari bagian [xxx] yang cocok dengan host=nilai. Jika host=dynamic, pencocokan tidak mungkin dilakukan sampai SIP client mendaftarkan diri.
 
  
 
+
==Asterisk Sebagai SIP Client==
Asterisk Sebagai SIP Client
 
 
   
 
   
Asterisk dapat mendaftarkan diri ke SIP server lain dan menjadi client, perintah yang digunakandi sip.conf di bawah [general] agar mendaftarkan diri ke SIP server lain adalah
+
[[Asterisk]] dapat mendaftarkan diri ke [[SIP server]] lain dan menjadi client, perintah yang digunakan di /etc/asterisk/sip.conf di bawah [general] agar mendaftarkan diri ke [[SIP server]] lain adalah
 
   
 
   
register => user[:secret[:authuser]]@host[:port][/extension]  
+
register => user[:secret[:authuser]]@host[:port][/extension]  
  
Jika anda mempunyai masalah dengan jaringan komputer anda, misalnya sambungan yang tidak stabil, sering putus, dan anda kehilangan registerasi ke SIP server anda, anda dapat menambahkan parameter registerattempts dan registertimeout di bagian general sebelum definisi register. Menset registerattempts=0 akan memaksa Asterisk untuk terus berusaha mendaftarkan diri sampai berhasil (nilai default adalah 10 kali mencoba). Nilai registertimeout mengatur lama waktu dalam detik antara usaha untuk mendaftarkan diri (nilai default adalah 20 detik).
+
Jika anda mempunyai masalah dengan [[jaringan komputer]] anda, misalnya sambungan yang tidak stabil, sering putus, dan anda kehilangan registerasi ke [[SIP server]] anda, anda dapat menambahkan parameter registerattempts dan registertimeout di bagian general sebelum definisi register. Menset registerattempts=0 akan memaksa [[Asterisk]] untuk terus berusaha mendaftarkan diri sampai berhasil (nilai default adalah 10 kali mencoba). Nilai registertimeout mengatur lama waktu dalam detik antara usaha untuk mendaftarkan diri (nilai default adalah 20 detik).
  
 
Contoh:  
 
Contoh:  
register => 2345:password@mysipprovider.com/1234
+
 
 +
register => 2345:password@mysipprovider.com/1234
  
 
Perintah di atas akan mendaftarkan nomor 2345 ke mysipprovider.com dan akan di kenali sebagai extension 1234 di Asterisk yang kita operasikan. Dalam contoh di atas maka parameter yang digunakan adalah,
 
Perintah di atas akan mendaftarkan nomor 2345 ke mysipprovider.com dan akan di kenali sebagai extension 1234 di Asterisk yang kita operasikan. Dalam contoh di atas maka parameter yang digunakan adalah,
  
user - user id untuk SIP server (contoh 2345)
+
user - user id untuk [[SIP server]] (contoh 2345)
authuser - authorization user (optional) untuk SIP server
+
authuser - authorization user (optional) untuk [[SIP server]]
secret - user password.
+
secret - user password.
host - nama server (contoh mysipprovider.com).
+
host - nama server (contoh mysipprovider.com).
port - port SIP di Server. Default 5060.
+
port - port SIP di Server. Default 5060.
extension - nomor extension lokal di Asterisk (contoh 1234).
+
extension - nomor extension lokal di Asterisk (contoh 1234).
 
 
Nomor extension digunakan untuk menghubungi extension lokal Asterisk dari SIP Server tempat kita mendaftarkan diri. Jika tidak ada extension maka secara automatis Asterisk akan masuk ke extension "s".
 
  
Untuk melihat apakah Asterisk telah berhasil mendaftarkan diri dengan baik ke SIP Server, dapat menggunakan Command Line Interface Asterisk yang diakses melalui perintah asterisk -r di shell. Status registrasi dapat dilihat melalui perintah
+
Nomor extension digunakan untuk menghubungi extension lokal Asterisk dari [[SIP Server]] tempat kita mendaftarkan diri. Jika tidak ada extension maka secara automatis Asterisk akan masuk ke extension "s".
  
sip show registry
+
Untuk melihat apakah [[Asterisk]] telah berhasil mendaftarkan diri dengan baik ke [[SIP Server]], dapat menggunakan [[Command Line Interface]] ([[CLI]]) [[Asterisk]] yang diakses melalui perintah asterisk -r di shell.
  
tampaknya perintah ini akan di tiadakan di Asterisk versi 1.4, akan diganti menjadi
+
asterisk -r
  
sip list registry
+
Status registrasi dapat dilihat melalui perintah
  
Untuk melihat pesawat telepon / extension yang terdaftar di Asterisk yang kita operasikan, dapat dilihat menggunakan perintah
+
sip show registry
  
sip show peers
+
Untuk melihat pesawat telepon / extension yang terdaftar di [[Asterisk]] yang kita operasikan, dapat dilihat menggunakan perintah
  
untuk Asterisk 1.4 tampaknya akan diganti menggunakan
+
sip show peers
  
sip list peers
+
Untuk melakukan panggilan ke [[SIP Server]] diluar [[Asterisk]], kita perlu mendefinsikan di /etc/asterisk/sip.conf seperti contoh berikut
  
Untuk melakukan panggilan ke SIP Server diluar Asterisk, kita perlu mendefinsikan di sip.conf seperti contoh berikut
+
[mysipprovider-out]
 +
type=peer
 +
secret=password
 +
username=2345
 +
host=sipserver.mysipprovider.com
 +
fromuser=2345
 +
fromdomain=voiprakyat.or.id
 +
nat=yes
 +
context=from-mysipprovider ; di definsikan lebih lanjut di /etc/asterisk/extensions.conf  
  
[mysipprovider-out]
+
Di /etc/asterisk/extensions.conf, kita perlu menambahkan perintah seperti
type=peer
 
secret=password
 
username=2345
 
host=sipserver.mysipprovider.com
 
fromuser=2345
 
fromdomain=fwd.pulver.com
 
nat=yes
 
context=from-mysipprovider ; di definsikan lebih lanjut di extensions.conf  
 
  
Di extensions.conf, kita perlu menambahkan perintah seperti
+
exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r)  
 
 
exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r)  
 
  
 
Mohon di catat bahwa variabel ${EXTEN:1} disini akan mengambil semua karakter / huruf dari extension yang masuk kecuali satu karakter yang paling depan, dalam hal ini angka 9.
 
Mohon di catat bahwa variabel ${EXTEN:1} disini akan mengambil semua karakter / huruf dari extension yang masuk kecuali satu karakter yang paling depan, dalam hal ini angka 9.
  
Sedang konfigurasi extensKonfigurasi SIP - generalions.conf untuk menerima call yang masuk dari SIP Server dapat juga di kembangkan dengan menambahkan perintah sebagai berikut
+
Sedang konfigurasi /etc/asterisk/extensions.conf untuk menerima call yang masuk dari [[SIP Server]] dapat juga di kembangkan dengan menambahkan perintah sebagai berikut
  
[from-mysipprovider]  
+
[from-mysipprovider]  
exten => 1234,1,Answer
+
exten => 1234,1,Answer
; 1234 adalah contect extension, default contact extension adalah "s"  
+
        ; 1234 adalah contect extension, default contact extension adalah "s"  
exten => 1234,2,Dial(SIP/111,25,Ttr)
+
exten => 1234,2,Dial(SIP/111,25,Ttr)
; incoming call di redirect ke SIP telepon nomor 111         
+
        ; incoming call di redirect ke SIP telepon nomor 111         
exten => 1234,3,Hangup  
+
exten => 1234,3,Hangup  
  
Konfigurasi SIP - general
 
  
Pada bagian [general] di sip.conf ada beberapa variabel yang dapat kita konfigurasi, beberapa diantaranya adalah
+
==Konfigurasi SIP - general==
  
allow = <codec>
+
Pada bagian [general] di /etc/asterisk/sip.conf ada beberapa variabel yang dapat kita konfigurasi, beberapa diantaranya adalah
; codec yang di ijinkan berurut berdasarkan preferensi. Gunakan disallow=all terlebih dulu sebelum allow codec.
 
  
disallow = all
+
'''allow = <codec>'''
; Tidak mengijinkan semua codec untuk digunakan.
+
      ; [[codec]] yang di ijinkan berurut berdasarkan preferensi. Gunakan disallow=all terlebih dulu sebelum allow [[codec]].
 +
 +
'''disallow = all'''
 +
      ; Tidak mengijinkan semua codec untuk digunakan.
 +
 +
'''allowexternalinvites = yes|no'''
 +
      ; Enable / Disable INVITE &  REFER ke non-local domain. Default yes.
 +
 +
'''allowguest = yes|no'''
 +
      ; Allow atau reject panggilan dari guest (Default yes).
 +
 +
'''allguest = yes|no'''
 +
      ; Allow / deny panggilan dari guest. Default yes.
 +
 +
'''autocreatepeer = yes|no'''
 +
      ; Jika di set yes, semua orang dapat dengan mudah login sebagai peer tanpa password, biasanya bermanfaat untuk beroperasi dengan SER. Default no.
 +
 +
'''autodomain = yes|no'''
 +
      ; Enable / disable kemampuan Asterisk untuk menambahkan local [[hostname]] dan local [[IP address]] ke domain list. Default no.
 +
 +
'''bindaddr = IP_Address'''
 +
      ; [[IP Address]] yang di bind (di ikat) tempat mendengarkan sambungan. Default 0.0.0.0 (semua interface).
 +
 +
'''bindport = Number'''
 +
      ; [[UDP Port]] yang di bind (di ikat) untuk mendengarkan sambungan yang masuk. Default 5060.
 +
 +
'''callerid = <string>'''
 +
      ; Informasi [[Caller ID]] yang akan digunakan jika tidak ada informasi lain. Default asterisk.
 +
 +
'''canreinvite = update|yes|no'''
 +
      ; Hati-hati default yes.
 +
 +
'''checkmwi = Number'''
 +
      ; Interval dalam detik untuk mencek mailbox. Default 10 detik.
 +
 +
'''compactheaders = yes|no'''
 +
      ;  Apakah Asterisk akan mengirim header [[SIP]] dalam bentuk kompak (singkatan) atau lengkap. Default no.
 +
 +
'''context = <contextname>'''
 +
      ; Ini adalah default context yang akan digunakan bagi pesawat telepon yang tidak memiliki context. isi context  dapat di set di /etc/asterisk/extensions.conf.
 +
 +
'''defaultexpirey = Number'''
 +
      ; Default lama waktu (dalam detik) dari registrasi incoming / outgoing. Default 120 detik.
 +
 +
'''dtmfmode = inband|info|rfc2833 (global setting).'''
 +
      ; Default rfc2833.
 +
 +
'''domain = domains'''
 +
      ; daftar domain dengan dibatasi oleh koma dimana asterisk bertanggung jawab.
 +
 +
'''dumphistory = yes|no'''
 +
      ; Mengaktifkan dukungan untuk mendumping transaksi [[SIP]] ke LOG_DEBUG. Default no.
 +
 +
'''externip = IP_Address atau [[hostname]]'''
 +
      ; Alamat yang akan kita letakan di [[SIP]] messages jika kita berada di belakang [[NAT]]. Jika [[hostname]] digunakan, maka [[IP address]] yang terkait dengan hostname tersebut akan dibaca sekali pada saat membaca sip.conf. Jika kita ingin menggunakan hostname dari [[dynamic IP]], gunakan parameter externhost.
 +
 +
'''externhost = hostname.tld'''
 +
 +
'''externrefresh = Number'''
 +
      ; Menentukan berapa sering (dalam detik) pen-cek-an [[DNS]] dilakukan untuk 'externhost'. Default 10 detik.
 +
 +
'''ignoreregexpire = yes|no'''
 +
      ; Mengatur apakah tetap menggunakan Contact information dari sebuah peer walaupun informasi tersebut telah kadaluarsa. Default no.
 +
 
 +
'''language = <string>'''
 +
      ; Default bahasa yang digunakan oleh Playback()/Background().
 +
 +
'''localnet = NetAddress/Netmask'''
 +
      ; local network dan mask.
 +
 +
'''fromdomain= <domain>'''
 +
      ; Menset default From: domain di [[SIP]] message pada saat beroperasi sebagai [[SIP]] ua (client)
 +
 +
'''insecure = very|yes|no|invite|port'''
 +
      ; Menset cara menangani sambungan dengan peers. Default no (authenticate semua sambungan ).
 +
 +
'''maxexpirey= Number'''
 +
      ; Lama durasi (dalam detik) dari registrasi incoming. Default 3600 detik.
 +
 +
'''musicclass =''' salah satu kelas yang digunakan di musiconhold.conf
 +
 +
'''musdiconhold =''' sama dengan musicclass
 +
 +
'''nat= yes|no|never|route'''
 +
      ; Default no yang berarti menggunakan teknik rfc3581.
 +
 +
'''notifymimetype= mediatype/subtype'''
 +
      ; Mengijinkan untuk mengoveride tipe mime di MWI NOTIFY yang digunakan di [[voicemail]] online message. Default application/simple-message-summary.
 +
 +
'''notifyringing = yes|no'''
 +
      ; Memberitahukan masuk ke tahapan RINGING. Default yes.
 +
 +
''outboundproxy =''' IP_address / DNS SRV name (tidak termasuk _sip._udp prefix)
 +
      ; SRV name, hostname, atau IP address dari outbound SIP Proxy.
 +
 +
'''outboundproxyport = Number'''
 +
      ; Nomor UDP port untuk Outbound SIP Proxy.
 +
 +
'''pedantic = yes|no'''
 +
      ; Akan mengaktifkan sebuah proses yang lambat untuk mencek [[Call-ID]], [[SIP header]] dengan banyak line, dan URI-encoded header. Default no.
 +
 +
'''port = <portno>'''
 +
      ; Default [[SIP port]] untuk peer. Port ini bukan port dari [[Asterisk]] untuk mendengarkan sambungan yang masuk (lihat bindport).
 +
 +
'''progressinband = never|no|yes'''
 +
      ; Jika kita harus membangkitkan in-band ringing. Default never.
 +
 +
'''promiscredir= yes|no'''
 +
      ; Mengijinkan dukungan untuk 302 Redirects; (Catatan: akan meredirect semua ke local extension yang ada di Contact tidak ke extension di tujuan akhir). Default no.  
  
allowexternalinvites = yes|no
+
'''qualify = yes|no|milliseconds'''
; Enable / Disable INVITE & REFER ke non-local domain. Default yes.
+
      ; Cek apakah client dapat dihubungi. Jika yes, maka cek akan dilakukan setiap 2000 milidetik (2 detik). Default no.
 
+
allowguest = yes|no
+
'''realm = my realm'''
; Allow atau reject panggilan dari guest (Default yes).
+
      ; Mengubah authentikasi realm untuk asterisk (default) ke yang kita inginkan.
 
+
allguest = yes|no
+
'''recordhistory = yes|no.'''
; Allow / deny panggilan dari guest. Default yes.  
+
      ; Mengaktifkan logging dari transaksi SIP. Default no.
 +
 +
'''regcontext = context'''
 +
      ; Default context yang digunakan untuk membalas SIP REGISTER dari SIP Registrar.
 +
 +
'''register => <username>:<password>:[authid]@<sip client/peer id di sip.conf>/<contact>'''
 +
      ; Register ke SIP provider
 +
   
 +
'''registerattempts = Number'''
 +
      ; Jumlah message SIP REGISTER yang dikirimkan ke SIP Registrar sebelum menyerah. Default 0 (tanpa limit).
 +
 +
'''registertimeout = Number'''
 +
      ; Berapa detik yang dialokasikan untuk menunggu responds dari SIP Registrar sebelum memutuskan bahwa SIP REGISTER time out. Default 20 detik.
 +
 +
'''relaxdtmf = yes|no''
 +
      ; Default no.
 +
 +
'''rtautoclear = yes|no|number'''
 +
      ; Auto-Expire friends yang dilakukan sambil beroperasi. Jika yes autoexpire akan terjadi dalam 120 detik. Default yes.  
 +
 +
'''rtcachefriends = yes|no'''
 +
      ; Cache realtime friends dengan cara menambahkan mereka ke daftar internal seperti friends yang ditambahkan ke file config. Default no.
 +
 +
'''rtpholdtimeout = Number'''
 +
      ; Lama waktu tidak ada aktifitas dalam detik sebelum memutuskan call on hold. Default 0 (tidak ada limit).
 +
 +
'''rtpkeepalive = Number'''
 +
      ; Jumlah detik selang untuk RTP Keepalive packet jika tidak ada ttraffic yang lewat. Default 0 (tidak ada RTP Keepalive).
 +
 +
'''rtptimeout = Number'''
 +
      ; Jumlah detik, untuk menunggu RTP traffic sebelum kita memutuskan sambungan. Default 0 (tidak ada RTP timeout).
 +
 +
'''rtupdate = yes|no'''
 +
      ; Kirim update registry ke database pada saat menggunakan dukungan Realtime. Default yes.
 +
 +
'''sendrpid = yes|no'''
 +
      ; Jika SIP header Remote-Party-ID [[SIP]] harus dikirim. Default no.
 +
 +
'''sipdebug = yes|no'''
 +
      ; Setting Default yang menentukan apakah SIP debug di aktifkan pada saat loading sip.conf. Default no.
 +
 +
'''srvlookup = yes|no'''
 +
      ; Mengaktifkan pengecekan DNS SRV pada saat dipanggil. Default no.
 +
 +
'''tos = <value>'''
 +
      ; Set parameter [[IP]] [[QoS]] untuk outgoing media streams (nilai numerik yang dapat di terima, seperti tos=184 )  
 +
 +
'''trustrpid = yes|no'''
 +
      ; Jika SIP header Remote-Party-ID [[SIP]] dapat di percaya. Default no.  
 +
 +
'''useclientcode = yes|no'''
 +
 +
'''usereqphone = yes|no'''
 +
      ; Mengindikasikan apakah kita perlu menambahkan ";user=phone" ke URI. Default no.
 +
 +
'''useragent = <string>'''
 +
      ; Mengubah SIP header "User-Agent". Default asterisk.
 +
 +
'''videosupport=yes|no'''
 +
      ; Mengaktifkan dukungan untuk SIP video. Default no.
 +
 +
'''vmexten = <string>'''
 +
      ; Dialplan extension untuk menelepon mailbox. Default asterisk.  
  
Autocreatepeer = yes|no
+
==Konfigurasi SIP - peer dan client==
; Jika di set yes, semua orang dapat dengan mudah login sebagai peer tanpa password, biasanya bermanfaat untuk beroperasi dengan SER. Default no.
 
 
 
autodomain = yes|no
 
; Enable / disable kemampuan Asterisk untuk menambahkan local hostname dan local IP address ke domain list. Default no.
 
 
 
bindaddr = IP_Address
 
; IP Address yang di bind (di ikat) tempat mendengarkan sambungan. Default 0.0.0.0 (semua interface).
 
 
 
bindport = Number
 
; UDP Port yang di bind (di ikat) untuk mendengarkan sambungan yang masuk. Default 5060.
 
 
 
callerid = <string>
 
; Informasi Caller ID yang akan digunakan jika tidak ada informasi lain. Default asterisk.
 
 
 
canreinvite = update|yes|no
 
; Hati-hati default yes.
 
 
 
checkmwi = Number
 
; Interval dalam detik untuk mencek mailbox. Default 10 detik.
 
 
 
compactheaders = yes|no
 
;  Apakah Asterisk akan mengirim header SIP dalam bentuk kompak (singkatan) atau lengkap. Default no.
 
 
 
context = <contextname>
 
; Ini adalah default context yang akan digunakan bagi pesawat telepon yangtidak memiliki context. isi context  dapat di set di extensions.conf.
 
 
 
defaultexpirey= Number
 
; Default lama waktu (dalam detik) dari registrasi incoming / outgoing. Default 120 detik.
 
 
 
dtmfmode = inband|info|rfc2833 (global setting).
 
; Default rfc2833.
 
 
 
domain = domains
 
; daftar domain dengan dibatasi oleh koma dimana asterisk bertanggung jawab.
 
 
 
dumphistory = yes|no
 
; Mengaktifkan dukungan untuk mendumping transaksi SIP ke LOG_DEBUG. Default no.
 
 
 
externip = IP_Address atau hostname
 
; Alamat yang akan kita letakan di SIP messages jika kita berada di belakang NAT. Jika hostname digunakan, maka IP address yang terkait dengan hostname tersebut akan dibaca sekali pada saat membaca sip.conf. Jika kita ingin menggunakan hostname dari dynamic IP, gunakan parameter externhost.
 
 
 
externhost = hostname.tld
 
 
externrefresh = Number
 
; Menentukan berapa sering (dalam detik) pencek-an DNS dilakukan untuk 'externhost'. Default 10 detik.
 
 
 
ignoreregexpire = yes|no
 
; Mengatur apakah tetap menggunakan Contact information dari sebuah peer walaupun informasi tersebut telah kadaluarsa. Default no.
 
 
 
language = <string>
 
; Default bahasa yang digunakan oleh Playback()/Background().
 
 
 
localnet = NetAddress/Netmask
 
; local network dan mask.
 
 
 
fromdomain= <domain>
 
; Menset default From: domain di SIP message pada saat beroperasi sebagai SIP ua (client)
 
 
 
insecure = very|yes|no|invite|port
 
; Menset cara menangani sambungan dengan peers. Default no (authenticate semua sambungan ).
 
 
 
maxexpirey= Number
 
: Lama durasi (dalam detik) dari registrasi incoming. Default 3600 detik.
 
 
 
musicclass = salah satu kelas yang digunakan di musiconhold.conf
 
 
 
musdiconhold = sama dengan musicclass
 
 
 
nat= yes|no|never|route
 
; Default no yang berarti menggunakan teknik rfc3581.
 
 
 
 
 
notifymimetype= mediatype/subtype
 
; Mengijinkan untuk mengoveride tipe mime di MWI NOTIFY yang digunakan di voicemail online message. Default application/simple-message-summary.
 
 
 
notifyringing = yes|no
 
; Memberitahukan masuk ke tahapan RINGING. Default yes.
 
 
 
outboundproxy = IP_address / DNS SRV name (tidak termasuk _sip._udp prefix)
 
; SRV name, hostname, atau IP address dari outbound SIP Proxy.
 
 
 
outboundproxyport = Number
 
; Nomor UDP port untuk Outbound SIP Proxy.
 
 
 
pedantic = yes|no
 
; Akan mengaktifkan sebuah proses yanglambat untuk mencek Call-ID, SIP header dengan banyak line, dan URI-encoded header. Default no.
 
 
 
port = <portno>
 
; Default SIP port untuk peer. Port ini bukan port dari Asterisk untuk mendengarkan sambungan yang masuk (lihat bindport).
 
 
 
progressinband = never|no|yes
 
; Jika kita harus membangkitkan in-band ringing. Default never.
 
 
 
promiscredir= yes|no
 
; Mengijinkan dukungan untuk 302 Redirects; (Catatan: akan meredirect semua ke local extension yang ada di Contact tidak ke extension di tujuan akhir). Default no.
 
 
 
qualify = yes|no|milliseconds
 
; Cek apakah client dapat dihubungi. Jika yes, maka cek akan dilakukan setiap 2000 milidetik (2 detik). Default no.
 
 
 
realm = my realm
 
; Mengubah authentikasi realm untuk asterisk (default) ke yang kita inginkan.
 
 
 
recordhistory = yes|no.
 
; Mengaktifkan logging dari transaksi SIP. Default no.
 
 
 
regcontext = context
 
; Default context yang digunakan untuk membalas SIP REGISTER dari SIP Registrar.
 
 
 
register => <username>:<password>:[authid]@<sip client/peer id di sip.conf>/<contact>
 
; Register ke SIP provider
 
 
 
registerattempts = Number
 
; Jumlah message SIP REGISTER yang dikirimkan ke SIP Registrar sebelum menyerah. Default 0 (tanpa limit).
 
 
 
registertimeout = Number
 
; Berapa detik yang dialokasikan untuk menunggu responds dari SIP Registrar sebelum memutiskan bahwa SIP REGISTER time out. Default 20 detik.
 
 
 
relaxdtmf = yes|no
 
; Default no.
 
 
 
rtautoclear = yes|no|number
 
; Auto-Expire friends yang dilakukan sambil beroperasi. Jika yes autoexpire akan terjadi dalam 120 detik. Default yes.
 
 
 
rtcachefriends = yes|no
 
; Cache realtime friends dengan cara menambahkan mereka ke daftar internal seperti friends yang ditambahkan ke file config. Default no.
 
 
 
rtpholdtimeout = Number
 
; Lama waktu tidak ada aktifitas dalam detik sebelum memutuskan call on hold. Default 0 (tidak ada limit).
 
 
 
rtpkeepalive = Number
 
; Jumlah detik selang untuk RTP Keepalive packet jika tidak ada ttraffic yang lewat. Default 0 (tidak ada RTP Keepalive).
 
 
 
rtptimeout = Number
 
; Jumlah detik, untuk menunggu RTP traffic sebelum kita memutuskan sambungan. Default 0 (tidak ada RTP timeout).
 
 
 
rtupdate = yes|no
 
; Kirim update registry ke database pada saat menggunakan dukungan Realtime. Default yes.
 
 
 
sendrpid = yes|no
 
; Jika SIP header Remote-Party-ID SIP harus dikirim. Default no.
 
 
 
sipdebug = yes|no.
 
Setting Default yang menentukan apakah SIP debug di aktifkan pada saat loading sip.conf. Default no.
 
 
 
srvlookup = yes|no
 
; Mengaktifkan pengecekan DNS SRV pada saat dipanggil. Default no.
 
 
 
tos = <value>
 
; Set parameter IP QoS untuk outgoing media streams (nilai numerik dpat di terima, seperti tos=184 )
 
 
 
trustrpid = yes|no
 
; Jika SIP header Remote-Party-ID SIP dapat di percaya. Default no.
 
 
 
useclientcode = yes|no :
 
 
 
usereqphone = yes|no
 
; Mengindikasikan apakah kita perlu menambahkan ";user=phone" ke URI. Default no.
 
 
 
useragent = <string>
 
; Mengubah SIP header "User-Agent". Default asterisk.
 
 
 
videosupport=yes|no
 
; Mengaktifkan dukungan untuk SIP video. Default no.
 
 
 
vmexten = <string>
 
; Dialplan extension untuk menelepon mailbox. Default asterisk.
 
Konfigurasi SIP - peer dan client
 
  
 
Variabel berikut dapat digunakan pada setiap definisi peer
 
Variabel berikut dapat digunakan pada setiap definisi peer
  
accountcode = <string>
+
'''accountcode = <string>'''
; Users dapat diasosiasikan ke accountcode. Ada baiknya membaca konsep tentang Asterisk billing  
+
      ; Users dapat diasosiasikan ke accountcode. Ada baiknya membaca konsep tentang Asterisk billing  
 +
 +
'''allow = <codec>'''
 +
      ; [[CODEC]] yang diijinkan berdasarkan urutan preferensi. Gunakan terlebih dulu DISALLOW=ALL sebelum mengijinkan [[CODEC]].
 +
 +
'''disallow = all'''
 +
      ; Disallow semua [[CODEC]] untuk peer tersebut atau definisi user.
 +
 +
'''allowguest = yes|no'''
 +
      ; Allow atau reject panggilan dari orang yang tidak di kenal. Default yes. Dapat juga diset 'osp' jika [[Asterisk]] di compile untuk mendukung OSP.
 +
 +
'''auth = <authname>'''
 +
      ; Isi dari Digest username= pada header SIP.
 +
 +
'''callerid = <string>'''
 +
      ; [[Caller ID]] yang digunakan jika tidak ada informasi yang tersedia. Default asterisk.
 +
 +
'''call-limit = number'''
 +
      ; Banyaknya sambung telepon simultan yang dapat dilakukan ke user / peer tertentu.
 +
 +
'''callgroup = num1,num2-num3'''
 +
      ; Mendefinisikan call group yang dapat mengelepon ke alat ini.
 +
 +
'''callingpres = number|descriptive_text'''
 +
      ; Set penampilan Caller-ID terhadap sebuah sambungan / call. Nilai text deskriptive yang dapat di isi adalah allowed_not_screened, allowed_passed_screen, allowed_failed_screen, allowed, prohib_not_screened, prohib_passed_screen, prohib_failed_screen, prohib, dan unavailable. Default allowed_not_screened.
 +
 +
'''canreinvite = update|yes|no'''
 +
      ; Jika client mampu mendukung SIP re-invites. Default yes.
 +
 +
'''context = <context_name>'''
 +
      ; Jika type=user, Context adalah untuk panggilan yang masuk ke definisi user [[SIP]].
 +
      ; Jika type=peer, Context di dialplan untuk panggilan keluar / outbound dari definisi peer [[SIP]].
 +
      ; Jika type=friend maka Context digunakan untuk semua hubungan inbound dan outbound ke definisi entitas [[SIP]].
 +
 +
'''defaultip = ip.add.res.s'''
 +
      ; Default [[IP address]] untuk client host= jika tidak dispesifikasi sebagai DYNAMIC. Digunakan jika client belum pernah terdaftar menggunakan [[IP address]] yang lain. Hanya valid jika type=peer.
 +
 +
'''dtmfmode = inband|info|rfc2833'''
 +
      ; Bagaimana client menangani signal [[DTMF]]. Default rfc2833.
 +
 +
'''fromuser = <from_ID>'''
 +
      ; Menentukan user yang di letakan di "from" selain callerid (mengoverride callerid) pada saat melakukan calls _to_ peer (ke SIP proxy lain). Valid hanya untuk type=peer.
 +
 +
'''fromdomain = <domain>'''
 +
      ; Set default From: domain di message SIP pada saat melakukan calls _to_ peer. Valid hanya di bagian [general] atau type=peer.
 +
 +
'''fullcontact = <sip:uri_contact>'''
 +
      ; SIP URI kontak untuk realtime peer. Valid hanya untuk realtime peers.
 +
 +
'''host = dynamic|hostname|IPAddr'''
 +
      ; Client - [[IP address]] atau [[hostname]]. Jika anda menginginkan agar telepon mendaftarkan sendiri, gunakan keyword dynamic jangan menggunakan host IP.
 +
 +
'''incominglimit dan outgoinglimit = Number'''
 +
      ; Batasan dari jumlah panggilan aktif simultan yang dapat dilakukan oleh sebuah SIP client. Valid hanya untuk type=peer.
 +
 +
'''insecure = very|yes|no|invite|port'''
 +
      ; Menentukan bagaimana cara menangani sambungan dengan peer. Default no (authentikasi bagi semua sambungan).
 +
 +
'''ipaddr = ip.addr.dari.peer'''
 +
      ; Valid hanya untuk realtime peer.
 +
 +
'''language =''' Kode bahasa seperti di definisikan di indications.conf
 +
      ; Mendefinisikan bahasa untuk menyapa
 +
 +
'''mailbox = mailbox'''
 +
      ; extension untuk Voicemail. Valid hanya untuk type=peer.
 +
 +
'''md5secret =''' MD5-Hash dari "<user>:asterisk:<secret>"
 +
      ; dapat digunakan sebagai pengganti secret.
 +
 +
'''musicclass = '''menentukan salah satu kelas yang di tulis di musiconhold.conf
 +
 +
'''name = <name>'''
 +
      ; Nama dari realtime peer. Valid hanya untuk realtime peer saja.
 +
 +
'''nat = yes|no'''
 +
      ; Variabel ini menentukan pola aksi Asterisk untuk client dibelakang [[NAT]]. Tapi masih belum menyelesaikan masalah jika Asterisk dibelakang [[NAT]]. Default no, yang artinya menggunakan teknik RFC3581.
 +
 +
'''outboundproxy =''' IP_address atau nama DNS SRV
 +
      ; SRV name, [[hostname]], atau [[IP address]] dari outbound [[SIP Proxy]]. Valid hanya di section [general] dan type=peer.
 +
 +
'''progressinband = never|no|yes'''
 +
      ; Apakah kita membangkitkan ring di in-band. Default never.
 +
 +
'''promiscredir= yes|no'''
 +
      ; Mengijinkan dukungan untuk 302 Redirects. Default no.
 +
 +
'''qualify = yes|no|milliseconds'''
 +
      ; cek apakah cluent dapat dihubungi. Jika yes, cek akan dilakukan setiap 2000 milliseconds (2 detik). Valid hanya di section [general] dan type=peer.
 +
 +
'''regseconds = seconds'''
 +
      ; Waktu dalam detik antara SIP REGISTER. Valid hanya untuk realtime peer saja.
 +
 +
'''rtpkeepalive = seconds'''
 +
      ; Waktu dalam detik, pengiriman paket RTP Keepalive jika tidak ada RTP traffic di sambungan. Default 0 (tidak ada RTP Keepalive). Valid hanya untuk section [general] dan type=peer.
 +
 +
'''rtptimeout = seconds'''
 +
      ; Putuskan hubungan jika dalam x detik tidak ada aktifitas [[RTP]] dan kita tidak dalam posissi on hold. Valid hanya di section [general] dan type=peer.
 +
 +
'''rtpholdtimeout = seconds'''
 +
      ; Putuskan hubungan jika dalam x detik tidak ada aktifitas [[RTP]] dan kita dalam posisi on hold. Valid hanya untuk section [general] dan type=peer.
 +
 +
'''secret = password'''
 +
      ; Jika Asterisk berfungsi sebagai [[SIP Server]], maka [[SIP client]] harus login menggunakan "password". Jika Asterisk berfungsi sebagai [[SIP client]] ke remote [[SIP server]], maka membutuhkan SIP INVITE authentication, maka isi secret digunakan untuk authentikasi SIP INVITE yang dikirim Asterisk ke remote server.
 +
 +
'''sendrpid = yes|no'''
 +
      ; Jika Remote-Party-ID SIP header harus dikirim. Default no.
 +
 +
'''setvar = variable=value'''
 +
      ; Channel variable yang harus di set untuk semua sambungan ke peer/user ini.
 +
 +
'''subscribecontext = <context_name>'''
 +
      ; Set context yang spesifik untuk permohonan SIP SUBSCRIBE
 +
 +
'''trustrpid = yes|no'''
 +
      ; Jika Remote-Party-ID SIP header perlu di percaya. Default no.
 +
 +
'''type = user|peer|friend'''
 +
      ; Hubungan antara client - outbound provider atau full client?
 +
 +
'''usereqphone = yes|no'''
 +
      ; Menunjukan apakah perlu menambahkan ";user=phone" ke URI. Default no. Valid hanya untuk section [general] dan type=peer.
 +
 +
'''username = <username[@realm]>'''
 +
      ; Jika berfungsi sebagai [[SIP client]] ke remote [[SIP server]] yang membutuhkan authentikasi SIP INVITE, maka parameter ini digunakan untuk authentikasi SIP INVITE yang akan dikirim Asterisk ke remote [[SIP server]]. Jika, untuk peers yang akan mendaftarkan diri ke Asterisk, username digunakan di INVITE sampai mereka terdaftar.
 +
 +
'''vmexten = <string>'''
 +
      ; Dialplan extension untuk menghubungi mailbox. Default asterisk. Valid hanya di section [general] atau type=peer.
  
allow = <codec>
+
==Beberapa contoh SIP Client==
; CODEC yang diijinkan berdasarkan urutan preferensi. Gunakan terlebih dulu DISALLOW=ALL sebelum mengijinkan CODEC.
 
  
disallow = all
+
Setiap [[SIP Client]] yang tersambung ke [[Asterisk]] membutuhkan definisi di /etc/asterisk/sip.conf, berikut adalah beberapa contoh
; Disallow semua CODEC untuk peer tersebut atau definisi user.  
 
  
allowguest = yes|no
+
[2000]
; Allow atau reject panggilan dari orang yang tidak di kenal. Default yes. Dapat juga diset 'osp' jika Asterisk di compile untuk mendukung OSP.
+
context=default
 
+
type=friend
auth = <authname>
+
username=2000
; Isi dari Digest username= pada header SIP.
+
secret=123456
 
+
host=dynamic
callerid = <string>
+
dtmfmode=rfc2833
; Caller ID yang digunakan jika tidak ada informasi yang tersedia. Default asterisk.
+
mailbox=2000@default
 
+
rfc2833compensate=yes
call-limit = number
+
; Banyaknya sambung telepon simultan yang dapat dilakukan ke user / peer tertentu.
+
[xlite1]
 
+
; Matikan silence suppression di X-Lite ("Transmit Silence"=YES)!
callgroup = num1,num2-num3
+
; Karena Xlite mengirim paket [[NAT]] keep-alive, qualify=yes tidak dibutuhkan
; Mendefinisikan call group yang dapat mengelepon ke alat ini.
+
type=friend
 
+
username=xlite1
callingpres = number|descriptive_text
+
callerid="Jane Smith" <5678>
; Set penampilan Caller-ID terhadap sebuah sambungan / call. Nilai text deskriptive yang dapat di isi adalah allowed_not_screened, allowed_passed_screen, allowed_failed_screen, allowed, prohib_not_screened, prohib_passed_screen, prohib_failed_screen, prohib, dan unavailable. Default allowed_not_screened.
+
host=dynamic
 
+
nat=yes        ; X-Lite di belakang [[NAT]] [[router]]
canreinvite = update|yes|no
+
canreinvite=no ; Umumnya di set NO jika di belakang [[NAT]]
; Jika client mampu mendukung SIP re-invites. Default yes.
+
disallow=all
 
+
allow=gsm ; [[GSM]] mengkonsumsi bandwidth lebih sedikit dari G.711-u (ulaw)
context = <context_name>
+
allow=ulaw
; Jika type=user, Context adalah untuk panggilan yang masuk ke definisi user SIP. Jika type=peer, Context di dialplan untuk panggilan keluar / outbound dari definisi peer SIP. Jika type=friend maka Context digunakan untuk semua hubungan inbound dan outbound ke definisi entitas SIP.
+
  allow=alaw 
  
defaultip = ip.add.res.s
+
Contoh lain, jika kita menyambungkan diri ke [[VoIP Rakyat]] tanpa [[NAT]]
; Default IP address untuk client host= jika tidak dispesifikasi sebagai DYNAMIC. Digunakan jika client belum pernah terdaftar menggunakan IP address yang lain. Hanya valid jika type=peer.
 
  
dtmfmode = inband|info|rfc2833
+
[general]  
; Bagaimana client menangani signal DTMF. Default rfc2833.
+
disallow=all
 
+
allow=gsm
fromuser = <from_ID>
+
allow=ulaw
; Menentukan user yang di letakan di "from" selain callerid (mengoverride callerid) pada saat melakukan calls _to_ peer (ke SIP proxy lain). Valid hanya untuk type=peer.
+
allow=alaw
 
+
context=from-sip
fromdomain = <domain>
+
maxexpirey=180
; Set default From: domain di message SIP pada saat melakukan calls _to_ peer. Valid hanya di bagian [general] atau type=peer.
+
defaultexpirey=160
 
+
tos=reliability
fullcontact = <sip:uri_contact>
+
register => <VR#>:<VR_PASSWORD>@voiprakyat.or.id/CONTACT
: SIP URI kontak untuk realtime peer. Valid hanya untuk realtime peers.
 
 
 
host = dynamic|hostname|IPAddr
 
; Client - IP address atau hostname. Jika anda menginginkan agar telepon mendaftarkan sendiri, gunakan keyword dynamic jangan menggunakan host IP.
 
 
 
incominglimit dan outgoinglimit = Number
 
; Batasan dari jumlah panggilan aktif simultan yang dapat dilakukan oleh sebuah SIP client. Valid hanya untuk type=peer.
 
 
 
insecure = very|yes|no|invite|port
 
; Menentukan bagaimana cara menangani sambungan dengan peer. Default no (authentikasi bagi semua sambungan).
 
 
 
ipaddr = ip.addr.dari.peer
 
; Valid hanya untuk realtime peer.
 
 
 
language = Kode bahasa seperti di definisikan di indications.conf
 
; Mendefinisikan bahasa untuk sapaan
 
 
 
mailbox = mailbox
 
; extension untuk Voicemail. Valid hanya untuk type=peer.
 
 
 
md5secret = MD5-Hash dari "<user>:asterisk:<secret>"
 
; dapat digunakan sebagai pengganti secret.
 
 
 
musicclass = menentukan salah satu kelas yang di tulis di musiconhold.conf
 
 
 
name = <name>
 
; Nama dari realtime peer. Valid hanya untuk realtime peer saja.
 
 
 
nat = yes|no
 
; Variabel ini menentukan pola aksi Asterisk untuk client dibelakang NAT. Tapi masih belum menyelesaikan masalah jika Asterisk dibelakang NAT. Default no, yang artinya menggunakan teknik RFC3581.
 
 
 
outboundproxy = IP_address atau nama DNS SRV
 
; SRV name, hostname, atau IP address dari outbound SIP Proxy. Valid hanya di section [general] dan type=peer.
 
 
 
progressinband = never|no|yes
 
; Apakah kita membangkitkan ring di in-band. Default never.
 
 
 
promiscredir= yes|no
 
; Mengijinkan dukungan untuk 302 Redirects. Default no.
 
 
 
qualify = yes|no|milliseconds
 
; cek apakah cluent dapat dihubungi. Jika yes, cek akan dilakukan setiap 2000 milliseconds (2 detik). Valid hanya di section [general] dan type=peer.
 
 
 
regseconds = seconds
 
; Waktu dalam detik antara SIP REGISTER. Valid hanya untuk realtime peer saja.
 
 
 
rtpkeepalive = seconds
 
; Waktu dalam detik, pengiriman paket RTP Keepalive jika tidak ada RTP traffic di sambungan. Default 0 (tidak ada RTP Keepalive). Valid hanya untuk section [general] dan type=peer.
 
 
 
rtptimeout = seconds
 
; Putuskan hubungan jika dalam x detik tidak ada aktifitas RTP dan kita tidak dalam posissi on hold. Valid hanya di section [general] dan type=peer.
 
 
 
rtpholdtimeout = seconds
 
; Putuskan hubungan jika dalam x detik tidak ada aktifitas RTP dan kita dalam posisi on hold. Valid hanya untuk section [general] dan type=peer.
 
 
 
secret = password
 
; Jika Asterisk berfungsi sebagai SIP Server, maka SIP client harus login menggunakan "password". Jika Asterisk berfungsi sebagai SIP client ke remote SIP server, maka membutuhkan SIP INVITE authentication, maka isi secret digunakan untuk authentikasi SIP INVITE yang dikirim Asterisk ke remote server.
 
 
 
sendrpid = yes|no
 
; Jika Remote-Party-ID SIP header harus dikirim. Default no.  
 
 
 
setvar = variable=value
 
; Channel variable yang harus di set untuk semua sambungan ke peer/user ini.
 
 
   
 
   
subscribecontext = <context_name>
+
[voiprakyat.or.id]
; Set context yang spesifik untuk permohonan SIP SUBSCRIBE
+
type=friend  
 
+
secret=<VR_PASSWORD>
trustrpid = yes|no
+
username=<VR#>  
; Jika Remote-Party-ID SIP header perlu di percaya. Default no.  
+
host=voiprakyat.or.id
 
+
insecure=very ; dibutuhkan untuk panggilan incoming dari [[VoIP Rakyat]]
type = user|peer|friend
 
; Hubungan antara client - outbound provider atau full client?
 
 
 
usereqphone = yes|no
 
; Menunjukan apakah perlu menambahkan ";user=phone" ke URI. Default no. Valid hanya untuk section [general] dan type=peer.
 
 
 
username = <username[@realm]>
 
; Jika berfungsi sebagai SIP client ke remote SIP server yang membutuhkan authentikasi SIP INVITE, maka parameter ini digunakan untuk authentikasi SIP INVITE yang akan dikirim Asterisk ke remote SIP server. Jika, untuk peers yang akan mendaftarkan diri ke Asterisk, username digunakan di INVITE sampai mereka terdaftar.  
 
 
 
vmexten = <string>
 
; Dialplan extension untuk menghubungi mailbox. Default asterisk. Valid hanya di section [general] atau type=peer.
 
 
 
 
 
Beberapa contoh SIP Client
 
 
 
Setiap SIP Client yang tersambung ke Asterisk membutuhkan definisi di sip.conf, berikut adalah beberapa contoh
 
 
 
[2000]
 
context=default
 
type=friend
 
username=2000
 
secret=123456
 
host=dynamic
 
dtmfmode=rfc2833
 
mailbox=2000@default
 
rfc2833compensate=yes
 
  
[xlite1]
+
Setelah [[SIP client]] account di definisikan di /etc/asterisk/sip.conf dan kita dapat login ke asterisk server, untuk menerima panggilan, kita perlu perlu mengkonfigurasi /etc/asterisk/extensions.conf. Contoh:
; Matikan silence suppression di X-Lite ("Transmit Silence"=YES)!
 
; Karena Xlite mengirim paket NAT keep-alive, qualify=yes tidak dibutuhkan
 
type=friend
 
username=xlite1
 
callerid="Jane Smith" <5678>
 
host=dynamic
 
nat=yes ; X-Lite di belakang NAT router
 
canreinvite=no ; Umumnya di set NO jika di belakang NAT
 
disallow=all
 
allow=gsm ; GSM mengkonsumsi bandwidth lebih sedikit dari G.711-u (ulaw)
 
allow=ulaw
 
allow=alaw
 
 
 
 
 
Contoh lain, jika kita menyambungkan diri ke Free World Dialup tanpa NAT
 
 
 
[general]  
 
disallow=all
 
allow=gsm
 
allow=ulaw
 
allow=alaw
 
context=from-sip
 
maxexpirey=180
 
defaultexpirey=160
 
tos=reliability
 
register => <FWD#>:<FWD_PASSWORD>@fwd.pulver.com/CONTACT
 
 
 
[fwd.pulver.com]  
 
type=friend
 
secret=<FWD_PASSWORD>
 
username=<FWD#>
 
host=fwd.pulver.com
 
insecure=very ; dibutuhkan untuk panggilan incoming dari FWD
 
 
 
 
 
Setelah SIP client account di definisikan di sip.conf dan kita dapat login ke asterisk server, untuk menerima panggilan, kita perlu perlu mengkonfigurasi extensions.conf. Contoh:
 
 
 
exten => 1010,1, Dial(SIP/user3_cisco,10,t)
 
 
 
Jika seseorang menelepon extension 1010, maka SIP clien yang login sebagai user3_cisco akan di hubungi untuk menerima call tersebut.
 
  
 +
exten => 1010,1, Dial(SIP/user3_cisco,10,t)
  
 +
Jika seseorang menelepon extension 1010, maka [[SIP client]] yang login sebagai user3_cisco akan di hubungi untuk menerima call tersebut.
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
 +
* [[Asterisk Softswitch]]
 
* [[VoIP: Softswitch / Server Internet Telepon]]
 
* [[VoIP: Softswitch / Server Internet Telepon]]
* [[Asterisk Softswitch]]
 
* [[Linux Howto]]
 
 
* [[VoIP]]
 
* [[VoIP]]
 +
* [[Internet Telepon]]

Latest revision as of 18:36, 30 December 2009

Mendefinsikan SIP Channel di /etc/asterisk/sip.conf

Setiap SIP client dan server di identifikasi dengan sebuah blok text yang kira-kira seperti

[xxx]
type=yyy 
parameter1=nilai 
parameter2=nilai 

Dimana xxx adalah nama yang diasosiasikan dengan SIP client, atau nama sembarang yang digunakan oleh file konfigurasi lain untuk mereferensikan pada sebuah peralatan SIP. Biasanya, sebuah SIP phone dengan nomor extension 123, biasanya akan mempunyai entry yang dimulai dengan [123]. Perlu dicatat bahwa anda tetap perlu mengaktifkan extension 123 di file /etc/asterisk/extensions.conf agar orang dapat menelepon ke extension 123. Type harus berisi "user", "peer" atau "friend".

Asterisk akan mencocokan call yang masuk dengan nama dari device dengan type=user dari percakapan protokol SIP di kolom From: user name (dengan tidak mengindahkan SIP domain). Cara lain yang juga digunakan adalah membandingkan permohonan SIP yang cocok dengan [xxx] pada file sip.conf, akan dilihat IP address pemohon yang masuk, dan melihat informasi peer dari bagian [xxx] yang cocok dengan host=nilai. Jika host=dynamic, pencocokan tidak mungkin dilakukan sampai SIP client mendaftarkan diri.


Asterisk Sebagai SIP Client

Asterisk dapat mendaftarkan diri ke SIP server lain dan menjadi client, perintah yang digunakan di /etc/asterisk/sip.conf di bawah [general] agar mendaftarkan diri ke SIP server lain adalah

register => user[:secret[:authuser]]@host[:port][/extension] 

Jika anda mempunyai masalah dengan jaringan komputer anda, misalnya sambungan yang tidak stabil, sering putus, dan anda kehilangan registerasi ke SIP server anda, anda dapat menambahkan parameter registerattempts dan registertimeout di bagian general sebelum definisi register. Menset registerattempts=0 akan memaksa Asterisk untuk terus berusaha mendaftarkan diri sampai berhasil (nilai default adalah 10 kali mencoba). Nilai registertimeout mengatur lama waktu dalam detik antara usaha untuk mendaftarkan diri (nilai default adalah 20 detik).

Contoh:

register => 2345:password@mysipprovider.com/1234

Perintah di atas akan mendaftarkan nomor 2345 ke mysipprovider.com dan akan di kenali sebagai extension 1234 di Asterisk yang kita operasikan. Dalam contoh di atas maka parameter yang digunakan adalah,

user		- user id untuk SIP server (contoh 2345)
authuser	- authorization user (optional) untuk SIP server
secret		- user password.
host		- nama server (contoh mysipprovider.com).
port		- port SIP di Server. Default 5060.
extension	- nomor extension lokal di Asterisk (contoh 1234).

Nomor extension digunakan untuk menghubungi extension lokal Asterisk dari SIP Server tempat kita mendaftarkan diri. Jika tidak ada extension maka secara automatis Asterisk akan masuk ke extension "s".

Untuk melihat apakah Asterisk telah berhasil mendaftarkan diri dengan baik ke SIP Server, dapat menggunakan Command Line Interface (CLI) Asterisk yang diakses melalui perintah asterisk -r di shell.

asterisk -r

Status registrasi dapat dilihat melalui perintah

sip show registry

Untuk melihat pesawat telepon / extension yang terdaftar di Asterisk yang kita operasikan, dapat dilihat menggunakan perintah

sip show peers

Untuk melakukan panggilan ke SIP Server diluar Asterisk, kita perlu mendefinsikan di /etc/asterisk/sip.conf seperti contoh berikut

[mysipprovider-out] 
type=peer 
secret=password 
username=2345 
host=sipserver.mysipprovider.com 
fromuser=2345 
fromdomain=voiprakyat.or.id
nat=yes 
context=from-mysipprovider ; di definsikan lebih lanjut di /etc/asterisk/extensions.conf 

Di /etc/asterisk/extensions.conf, kita perlu menambahkan perintah seperti

exten => _9.,1,Dial(SIP/${EXTEN:1}@mysipprovider-out,30,r) 

Mohon di catat bahwa variabel ${EXTEN:1} disini akan mengambil semua karakter / huruf dari extension yang masuk kecuali satu karakter yang paling depan, dalam hal ini angka 9.

Sedang konfigurasi /etc/asterisk/extensions.conf untuk menerima call yang masuk dari SIP Server dapat juga di kembangkan dengan menambahkan perintah sebagai berikut

[from-mysipprovider] 
exten => 1234,1,Answer
        ; 1234 adalah contect extension, default contact extension adalah "s" 
exten => 1234,2,Dial(SIP/111,25,Ttr)
        ; incoming call di redirect ke SIP telepon nomor 111        
exten => 1234,3,Hangup 


Konfigurasi SIP - general

Pada bagian [general] di /etc/asterisk/sip.conf ada beberapa variabel yang dapat kita konfigurasi, beberapa diantaranya adalah

allow = <codec>
      ; codec yang di ijinkan berurut berdasarkan preferensi. Gunakan disallow=all terlebih dulu sebelum allow codec.

disallow = all
      ; Tidak mengijinkan semua codec untuk digunakan.

allowexternalinvites = yes|no
      ; Enable / Disable INVITE &  REFER ke non-local domain. Default yes.

allowguest = yes|no
      ; Allow atau reject panggilan dari guest (Default yes).

allguest = yes|no
      ; Allow / deny panggilan dari guest. Default yes. 

autocreatepeer = yes|no
      ; Jika di set yes, semua orang dapat dengan mudah login sebagai peer tanpa password, biasanya bermanfaat untuk beroperasi dengan SER. Default no.

autodomain = yes|no
      ; Enable / disable kemampuan Asterisk untuk menambahkan local hostname dan local IP address ke domain list. Default no.

bindaddr = IP_Address
      ; IP Address yang di bind (di ikat) tempat mendengarkan sambungan. Default 0.0.0.0 (semua interface).

bindport = Number
      ; UDP Port yang di bind (di ikat) untuk mendengarkan sambungan yang masuk. Default 5060.

callerid = <string>
      ; Informasi Caller ID yang akan digunakan jika tidak ada informasi lain. Default asterisk.

canreinvite = update|yes|no
      ; Hati-hati default yes.

checkmwi = Number
      ; Interval dalam detik untuk mencek mailbox. Default 10 detik.

compactheaders = yes|no
      ;  Apakah Asterisk akan mengirim header SIP dalam bentuk kompak (singkatan) atau lengkap. Default no.

context = <contextname>
      ; Ini adalah default context yang akan digunakan bagi pesawat telepon yang tidak memiliki context. isi context  dapat di set di /etc/asterisk/extensions.conf. 

defaultexpirey = Number
      ; Default lama waktu (dalam detik) dari registrasi incoming / outgoing. Default 120 detik. 

dtmfmode = inband|info|rfc2833 (global setting).
      ; Default rfc2833.

domain = domains
      ; daftar domain dengan dibatasi oleh koma dimana asterisk bertanggung jawab. 

dumphistory = yes|no
      ; Mengaktifkan dukungan untuk mendumping transaksi SIP ke LOG_DEBUG. Default no. 

externip = IP_Address atau hostname
      ; Alamat yang akan kita letakan di SIP messages jika kita berada di belakang NAT. Jika hostname digunakan, maka IP address yang terkait dengan hostname tersebut akan dibaca sekali pada saat membaca sip.conf. Jika kita ingin menggunakan hostname dari dynamic IP, gunakan parameter externhost.

externhost = hostname.tld
		
externrefresh = Number
      ; Menentukan berapa sering (dalam detik) pen-cek-an DNS dilakukan untuk 'externhost'. Default 10 detik. 

ignoreregexpire = yes|no
      ; Mengatur apakah tetap menggunakan Contact information dari sebuah peer walaupun informasi tersebut telah kadaluarsa. Default no. 
 
language = <string>
      ; Default bahasa yang digunakan oleh Playback()/Background(). 

localnet = NetAddress/Netmask
      ; local network dan mask. 

fromdomain= <domain>
      ; Menset default From: domain di SIP message pada saat beroperasi sebagai SIP ua (client) 

insecure = very|yes|no|invite|port
      ; Menset cara menangani sambungan dengan peers. Default no (authenticate semua sambungan ). 

maxexpirey= Number
      ; Lama durasi (dalam detik) dari registrasi incoming. Default 3600 detik. 

musicclass = salah satu kelas yang digunakan di musiconhold.conf 

musdiconhold = sama dengan musicclass 

nat= yes|no|never|route
      ; Default no yang berarti menggunakan teknik rfc3581. 

notifymimetype= mediatype/subtype
      ; Mengijinkan untuk mengoveride tipe mime di MWI NOTIFY yang digunakan di voicemail online message. Default application/simple-message-summary. 

notifyringing = yes|no
      ; Memberitahukan masuk ke tahapan RINGING. Default yes. 

outboundproxy =' IP_address / DNS SRV name (tidak termasuk _sip._udp prefix)
      ; SRV name, hostname, atau IP address dari outbound SIP Proxy. 

outboundproxyport = Number
      ; Nomor UDP port untuk Outbound SIP Proxy. 

pedantic = yes|no
      ; Akan mengaktifkan sebuah proses yang lambat untuk mencek Call-ID, SIP header dengan banyak line, dan URI-encoded header. Default no. 

port = <portno>
      ; Default SIP port untuk peer. Port ini bukan port dari Asterisk untuk mendengarkan sambungan yang masuk (lihat bindport).

progressinband = never|no|yes
      ; Jika kita harus membangkitkan in-band ringing. Default never. 

promiscredir= yes|no
      ; Mengijinkan dukungan untuk 302 Redirects; (Catatan: akan meredirect semua ke local extension yang ada di Contact tidak ke extension di tujuan akhir). Default no. 
qualify = yes|no|milliseconds
      ; Cek apakah client dapat dihubungi. Jika yes, maka cek akan dilakukan setiap 2000 milidetik (2 detik). Default no. 

realm = my realm
      ; Mengubah authentikasi realm untuk asterisk (default) ke yang kita inginkan. 

recordhistory = yes|no.
      ; Mengaktifkan logging dari transaksi SIP. Default no. 

regcontext = context
      ; Default context yang digunakan untuk membalas SIP REGISTER dari SIP Registrar. 

register => <username>:<password>:[authid]@<sip client/peer id di sip.conf>/<contact>
      ; Register ke SIP provider 

registerattempts = Number
      ; Jumlah message SIP REGISTER yang dikirimkan ke SIP Registrar sebelum menyerah. Default 0 (tanpa limit). 

registertimeout = Number
      ; Berapa detik yang dialokasikan untuk menunggu responds dari SIP Registrar sebelum memutuskan bahwa SIP REGISTER time out. Default 20 detik. 

'relaxdtmf = yes|no
      ; Default no. 

rtautoclear = yes|no|number
      ; Auto-Expire friends yang dilakukan sambil beroperasi. Jika yes autoexpire akan terjadi dalam 120 detik. Default yes. 

rtcachefriends = yes|no
      ; Cache realtime friends dengan cara menambahkan mereka ke daftar internal seperti friends yang ditambahkan ke file config. Default no. 

rtpholdtimeout = Number
      ; Lama waktu tidak ada aktifitas dalam detik sebelum memutuskan call on hold. Default 0 (tidak ada limit). 

rtpkeepalive = Number
      ; Jumlah detik selang untuk RTP Keepalive packet jika tidak ada ttraffic yang lewat. Default 0 (tidak ada RTP Keepalive). 

rtptimeout = Number
      ; Jumlah detik, untuk menunggu RTP traffic sebelum kita memutuskan sambungan. Default 0 (tidak ada RTP timeout). 

rtupdate = yes|no
      ; Kirim update registry ke database pada saat menggunakan dukungan Realtime. Default yes. 

sendrpid = yes|no
      ; Jika SIP header Remote-Party-ID SIP harus dikirim. Default no. 

sipdebug = yes|no
      ; Setting Default yang menentukan apakah SIP debug di aktifkan pada saat loading sip.conf. Default no. 

srvlookup = yes|no
      ; Mengaktifkan pengecekan DNS SRV pada saat dipanggil. Default no. 

tos = <value>
      ; Set parameter IP QoS untuk outgoing media streams (nilai numerik yang dapat di terima, seperti tos=184 ) 

trustrpid = yes|no
      ; Jika SIP header Remote-Party-ID SIP dapat di percaya. Default no. 

useclientcode = yes|no

usereqphone = yes|no
      ; Mengindikasikan apakah kita perlu menambahkan ";user=phone" ke URI. Default no. 

useragent = <string>
      ; Mengubah SIP header "User-Agent". Default asterisk. 

videosupport=yes|no
      ; Mengaktifkan dukungan untuk SIP video. Default no. 

vmexten = <string>
      ; Dialplan extension untuk menelepon mailbox. Default asterisk. 

Konfigurasi SIP - peer dan client

Variabel berikut dapat digunakan pada setiap definisi peer

accountcode = <string>
      ; Users dapat diasosiasikan ke accountcode. Ada baiknya membaca konsep tentang Asterisk billing 

allow = <codec>
      ; CODEC yang diijinkan berdasarkan urutan preferensi. Gunakan terlebih dulu DISALLOW=ALL sebelum mengijinkan CODEC. 

disallow = all
      ; Disallow semua CODEC untuk peer tersebut atau definisi user. 

allowguest = yes|no
      ; Allow atau reject panggilan dari orang yang tidak di kenal. Default yes. Dapat juga diset 'osp' jika Asterisk di compile untuk mendukung OSP.

auth = <authname>
      ; Isi dari Digest username= pada header SIP. 

callerid = <string>
      ; Caller ID yang digunakan jika tidak ada informasi yang tersedia. Default asterisk. 

call-limit = number
      ; Banyaknya sambung telepon simultan yang dapat dilakukan ke user / peer tertentu. 

callgroup = num1,num2-num3
      ; Mendefinisikan call group yang dapat mengelepon ke alat ini. 

callingpres = number|descriptive_text
      ; Set penampilan Caller-ID terhadap sebuah sambungan / call. Nilai text deskriptive yang dapat di isi adalah allowed_not_screened, allowed_passed_screen, allowed_failed_screen, allowed, prohib_not_screened, prohib_passed_screen, prohib_failed_screen, prohib, dan unavailable. Default allowed_not_screened. 

canreinvite = update|yes|no
      ; Jika client mampu mendukung SIP re-invites. Default yes. 

context = <context_name>
      ; Jika type=user, Context adalah untuk panggilan yang masuk ke definisi user SIP.
      ; Jika type=peer, Context di dialplan untuk panggilan keluar / outbound dari definisi peer SIP.
      ; Jika type=friend maka Context digunakan untuk semua hubungan inbound dan outbound ke definisi entitas SIP.

defaultip = ip.add.res.s
      ; Default IP address untuk client host= jika tidak dispesifikasi sebagai DYNAMIC. Digunakan jika client belum pernah terdaftar menggunakan IP address yang lain. Hanya valid jika type=peer. 

dtmfmode = inband|info|rfc2833
      ; Bagaimana client menangani signal DTMF. Default rfc2833. 

fromuser = <from_ID>
      ; Menentukan user yang di letakan di "from" selain callerid (mengoverride callerid) pada saat melakukan calls _to_ peer (ke SIP proxy lain). Valid hanya untuk type=peer. 

fromdomain = <domain>
      ; Set default From: domain di message SIP pada saat melakukan calls _to_ peer. Valid hanya di bagian [general] atau type=peer. 

fullcontact = <sip:uri_contact>
      ; SIP URI kontak untuk realtime peer. Valid hanya untuk realtime peers. 

host = dynamic|hostname|IPAddr
      ; Client - IP address atau hostname. Jika anda menginginkan agar telepon mendaftarkan sendiri, gunakan keyword dynamic jangan menggunakan host IP. 

incominglimit dan outgoinglimit = Number
      ; Batasan dari jumlah panggilan aktif simultan yang dapat dilakukan oleh sebuah SIP client. Valid hanya untuk type=peer. 

insecure = very|yes|no|invite|port
      ; Menentukan bagaimana cara menangani sambungan dengan peer. Default no (authentikasi bagi semua sambungan). 

ipaddr = ip.addr.dari.peer
      ; Valid hanya untuk realtime peer. 

language = Kode bahasa seperti di definisikan di indications.conf
      ; Mendefinisikan bahasa untuk menyapa

mailbox = mailbox
      ; extension untuk Voicemail. Valid hanya untuk type=peer. 

md5secret = MD5-Hash dari "<user>:asterisk:<secret>"
     ; dapat digunakan sebagai pengganti secret. 

musicclass = menentukan salah satu kelas yang di tulis di musiconhold.conf 

name = <name>
     ; Nama dari realtime peer. Valid hanya untuk realtime peer saja. 

nat = yes|no
     ; Variabel ini menentukan pola aksi Asterisk untuk client dibelakang NAT. Tapi masih belum menyelesaikan masalah jika Asterisk dibelakang NAT. Default no, yang artinya menggunakan teknik RFC3581.

outboundproxy = IP_address atau nama DNS SRV
     ; SRV name, hostname, atau IP address dari outbound SIP Proxy. Valid hanya di section [general] dan type=peer. 

progressinband = never|no|yes
     ; Apakah kita membangkitkan ring di in-band. Default never. 

promiscredir= yes|no
     ; Mengijinkan dukungan untuk 302 Redirects. Default no. 

qualify = yes|no|milliseconds
     ; cek apakah cluent dapat dihubungi. Jika yes, cek akan dilakukan setiap 2000 milliseconds (2 detik). Valid hanya di section [general] dan type=peer. 

regseconds = seconds
     ; Waktu dalam detik antara SIP REGISTER. Valid hanya untuk realtime peer saja. 

rtpkeepalive = seconds
     ; Waktu dalam detik, pengiriman paket RTP Keepalive jika tidak ada RTP traffic di sambungan. Default 0 (tidak ada RTP Keepalive). Valid hanya untuk section [general] dan type=peer. 

rtptimeout = seconds
     ; Putuskan hubungan jika dalam x detik tidak ada aktifitas RTP dan kita tidak dalam posissi on hold. Valid hanya di section [general] dan type=peer. 

rtpholdtimeout = seconds
     ; Putuskan hubungan jika dalam x detik tidak ada aktifitas RTP dan kita dalam posisi on hold. Valid hanya untuk section [general] dan type=peer. 

secret = password
     ; Jika Asterisk berfungsi sebagai SIP Server, maka SIP client harus login menggunakan "password". Jika Asterisk berfungsi sebagai SIP client ke remote SIP server, maka membutuhkan SIP INVITE authentication, maka isi secret digunakan untuk authentikasi SIP INVITE yang dikirim Asterisk ke remote server.

sendrpid = yes|no
     ; Jika Remote-Party-ID SIP header harus dikirim. Default no. 

setvar = variable=value
     ; Channel variable yang harus di set untuk semua sambungan ke peer/user ini. 

subscribecontext = <context_name>
     ; Set context yang spesifik untuk permohonan SIP SUBSCRIBE 

trustrpid = yes|no
     ; Jika Remote-Party-ID SIP header perlu di percaya. Default no. 

type = user|peer|friend
     ; Hubungan antara client - outbound provider atau full client? 

usereqphone = yes|no
     ; Menunjukan apakah perlu menambahkan ";user=phone" ke URI. Default no. Valid hanya untuk section [general] dan type=peer. 

username = <username[@realm]>
     ; Jika berfungsi sebagai SIP client ke remote SIP server yang membutuhkan authentikasi SIP INVITE, maka parameter ini digunakan untuk authentikasi SIP INVITE yang akan dikirim Asterisk ke remote SIP server. Jika, untuk peers yang akan mendaftarkan diri ke Asterisk, username digunakan di INVITE sampai mereka terdaftar. 

vmexten = <string>
     ; Dialplan extension untuk menghubungi mailbox. Default asterisk. Valid hanya di section [general] atau type=peer.

Beberapa contoh SIP Client

Setiap SIP Client yang tersambung ke Asterisk membutuhkan definisi di /etc/asterisk/sip.conf, berikut adalah beberapa contoh

[2000]
context=default
type=friend
username=2000
secret=123456
host=dynamic
dtmfmode=rfc2833
mailbox=2000@default
rfc2833compensate=yes

[xlite1] 
; Matikan silence suppression di X-Lite ("Transmit Silence"=YES)! 
; Karena Xlite mengirim paket NAT keep-alive, qualify=yes tidak dibutuhkan
type=friend 
username=xlite1 
callerid="Jane Smith" <5678> 
host=dynamic 
nat=yes        ; X-Lite di belakang NAT router 
canreinvite=no ; Umumnya di set NO jika di belakang NAT 
disallow=all 
allow=gsm	; GSM mengkonsumsi bandwidth lebih sedikit dari G.711-u (ulaw) 
allow=ulaw 
allow=alaw  

Contoh lain, jika kita menyambungkan diri ke VoIP Rakyat tanpa NAT

[general] 
disallow=all 
allow=gsm 
allow=ulaw 
allow=alaw 
context=from-sip 
maxexpirey=180 
defaultexpirey=160 
tos=reliability 
register => <VR#>:<VR_PASSWORD>@voiprakyat.or.id/CONTACT 

[voiprakyat.or.id] 
type=friend 
secret=<VR_PASSWORD> 
username=<VR#> 
host=voiprakyat.or.id
insecure=very		; dibutuhkan untuk panggilan incoming dari VoIP Rakyat

Setelah SIP client account di definisikan di /etc/asterisk/sip.conf dan kita dapat login ke asterisk server, untuk menerima panggilan, kita perlu perlu mengkonfigurasi /etc/asterisk/extensions.conf. Contoh:

exten => 1010,1, Dial(SIP/user3_cisco,10,t) 

Jika seseorang menelepon extension 1010, maka SIP client yang login sebagai user3_cisco akan di hubungi untuk menerima call tersebut.

Pranala Menarik