Problem ini muncul dalam instalasi Elastix 2.5 dengan Asterisk versi 11.14.1. Jika ditelusuri, maka problem ini berawal dari generate otomatis [macro-pinsets] oleh file /var/www/html/admin/modules/pinsets/functions.inc.php, terutama di baris:
[code language=”bash”]// write out a macro that handles the authenticate
$ext->add(‘macro-pinsets’, ‘s’, ”, new ext_gotoif(‘${ARG2} = 1′,’cdr,1’));
$ext->add(‘macro-pinsets’, ‘s’, ”, new ext_execif(‘$["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]’, ‘Authenticate’,$asterisk_conf[‘astetcdir’].’/pinset_${ARG1}’));
$ext->add(‘macro-pinsets’, ‘s’, ”, new ext_execif(‘$["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]’, ‘ResetCDR’));
// authenticate with the CDR option (a)
$ext->add(‘macro-pinsets’, ‘cdr’, ”, new ext_execif(‘$["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]’, ‘Authenticate’,$asterisk_conf[‘astetcdir’].’/pinset_${ARG1},a’));
$ext->add(‘macro-pinsets’, ‘cdr’, ”, new ext_execif(‘$["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]’, ‘ResetCDR’));
[/code]
Entah kenapa, baris di atas akan menambahkan rule PIN Set dua kali ke dalam extensions_additional.conf. Sehingga yang perlu dilakukan adalah meremark di semua baris tersebut (dengan //). Setelah itu edit file extensions_custom.conf, tambahkan baris berikut (edit dari menu file editor Elastix GUI):
[code language=”bash”][macro-pinsets]
exten => s,1,GotoIf(${ARG2} = 1?cdr,1)
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]?Authenticate(/etc/asterisk/pinset_${ARG1}))
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]?ResetCDR())
exten => cdr,1,ExecIf($["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]?Authenticate(/etc/asterisk/pinset_${ARG1},a))
exten => cdr,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]?ResetCDR())
[/code]
setelah itu klik Save dan Reload Asterisk. Dan terakhir, aktifkan module PIN Sets di call route (tidak akan dibahas di sini, bisa search di internet untuk langkah-langkahnya). Lakukan test, maka IP PBX hanya akan menanyakan PIN satu kali.
Solusi di atas bukan solusi permanen. Hanya sekedar workaround supaya “nampak” normal. Untuk selanjutnya, Elastix perlu diupdate dengan versi FreePBX atau Asterisk yang sudah memperbaiki bug ini. Sudah beberapa orang yang submit bug tersebut. Tapi sampai dengan penulisan ini, bug tersebut belum hilang. Kita tunggu saja patch dari mereka.