Setelah melihat http://voip.ictcentre.net/stats yang menunjukkan banyaknya status FAILED, gw jadi khawatir..ni bener2 FAILED atau ANSWERED tetapi tercatat sebagai FAILED. Untuk menjawab keragu2an tersebut, maka dilakukanlah serangkaian test dengan cara calling ke nomor 20242 (me) dari 20001 (my self). Jawabannya tersedia ga lama setelah percobaan berakhir, rupanya itu mo gagal mo berhasil status nya tetap sama, FAILED.
So..gotta find a way to solve this..
Ketemu, gw lakukan sedikit tweak di /etc/asterisk/extension.conf (yang mungkin seharusnya gw lakukan sejak awal), disini tweak nya:
[macro-stdexten]
exten => s,1,Dial(SIP/${ARG1},20)
exten => s,2,Goto(s-${DIALSTATUS},1)
exten => s-CHANUNAVAIL,1,Dial(IAX2/${ARG1},20)
exten => s-CHANUNAVAIL,2,Goto(SaveMessage,1)
exten => SaveMessage,1,Voicemail(u${ARG1})
exten => SaveMessage,2,Goto(default,s,1)
exten => s-BUSY,1,Voicemail(b${ARG1})
exten => s-BUSY,2,Goto(default,s,1)
exten => _s-.,1,Goto(SaveMessage,1)
exten => a,1,VoicemailMain(${ARG1})
dan sedikit dibawah nya:
; local call
exten => _2X.,1,Ringing
exten => _2X.,2,Wait,2
exten => _2X.,3,Macro(stdexten,${EXTEN})
exten => _2X.,4,Hangup
Konfigurasi diatas bekerja sbb:
Apabila ada call ke nomor yang awalannya 2 (seperti 20242 atau 20001) maka macro stdexten akan dipanggil, dengan passing variable $ARG1 yang berisi ${EXTEN} atau nomor yang dipanggil (yang di-pencet sama caller nya). Kemudian macro stdexten akan mencoba calling channel SIP, bila tidak tersedia alias ga konek via SIP, Asterisk akan coba call via channel IAX2. Setelah mencoba IAX2, apabila gagal maka akan di-redirect ke voicemail handler. Begitu pula apabila pada saat mencoba channel SIP sudah nyambung tapi ga di-angkat maka panggilan akan di-redirect ke voicemail handler.
Sebelum tweak ini, panggilan dilakukan simultan ke channel SIP dan IAX2, sehingga apabila SIP nya berhasil dan di IAX2 nya gagal (pasti gagal), maka status keseluruhan calling menjadi FAILED.