[Elastix] Akses CDR dan Call Recording Untuk User Tertentu

Untuk keperluan monitoring penggunaan telepon dan rekaman panggilan, sebuah perusahaan memerlukan menambah user tertentu untuk login di WebGUI Elastix. Tapi karena user ini tidak masuk ke group administrator, maka CDR (Call Detail Record) dan call recording yang bisa diakses adalah untuk nomer ekstensi yang terkait dengan user tersebut. Agar supaya user tersebut tetap bisa melihat seluruh CDR dan call recording, yang perlu dilakukan adalah mengedit file /var/www/html/libs/paloSantoACL.class.php, terutama di blok:

[stextbox id=”grey” shadow=”false” image=”null”]function isUserAdministratorGroup($username)
{
$is=false;
$idUser = $this->getIdUser($username);
if($idUser){
$arrGroup = $this->getMembership($idUser);
//$is = array_key_exists(‘administrator’,$arrGroup);
$is = array_search(‘1’, $arrGroup);
}
return $is;
}[/stextbox]

Misalkan user yang kita tambahkan adalah user HRD, maka, tambahkan pada blok tersebut menjadi seperti:

[stextbox id=”grey” shadow=”false” image=”null”]function isUserAdministratorGroup($username)
{
$is=false;
$idUser = $this->getIdUser($username);
if($idUser){
$arrGroup = $this->getMembership($idUser);
//$is = array_key_exists(‘administrator’,$arrGroup);
$is = array_search(‘1’, $arrGroup);

     if(isset($arrGroup[‘HRD’]))
     $is=true;

}
return $is;
}[/stextbox]

Save file dan restart HTTPD untuk memastikan perubahan. Setelah itu login sebagai HRD (dengan asumsi, user HRD sudah disetup memiliki akses ke halaman CDR dan call recording – untuk cara setup tidak akan dibahas di sini), dan seluruh CDR dan call recording sudah bisa dilihat dari user tersebut.

[Elastix] Problem PIN Sets Ditanyakan 2 Kali

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.

“Empty configuration — no spans”

Biasanya, kalau kita menginstall Elastix dengan card analog terpasang sejak awal, secara otomatis system akan mendeteksi keberadaan card dan sekaligus menginstall driver yang diperlukan. Tapi ada kalanya (entah kenapa) card analog tidak terdeteksi. Biasanya, ketika kita menjalankan perintah dahdi_genconf -v akan menunjukkan seperti ini:

[root@ippbx ~]# dahdi_genconf -v
Default parameters from /etc/dahdi/genconf_parameters
Empty configuration — no spans
Generating /etc/dahdi/assigned-spans.conf
Empty configuration — no spans
Generating /etc/dahdi/system.conf
Empty configuration — no spans
Generating /etc/asterisk/dahdi-channels.conf
Empty configuration — no spans
Generating /etc/asterisk/extra-channels.conf
Empty configuration — no spans
Generating /etc/asterisk/allogsm-channels.conf

Problem di atas biasanya terjadi karena kita belum memiliki module opvxa1200.ko (untuk card analog) atau opvxg4xx.ko (untuk card gsm). Untuk mengatasi problem tersebut, yang perlu dilakukan adalah sebagai berikut (pada contoh ini, saya mengalami problem loading driver untuk kartu OpenVox A400p 2 FXS & 2 FXO) :

1. Jalankan perintah lspci -v dan pastikan memiliki output seperti:

03:00.0 Communication controller: Tiger Jet Network Inc. Tiger3XX Modem/ISDN interface
Subsystem: OpenVox Communication Co. Ltd. OpenVox A400P 4-port analog card
Flags: bus master, medium devsel, latency 32, IRQ 58
I/O ports at d000 [size=256]
Memory at e2100000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [40] Power Management version 2
Kernel driver in use: wctdm
Kernel modules: wctdm, wcopenpci, hisax

2. Jalankan perintah : dahdi_hardware  yang harusnya memiliki output:

pci:0000:03:00.0 wctdm+ e159:0001 Wildcard TDM400P REV E/F

Jika setelah kata wctdmi memiliki tanda minus (‘”-“) misal seperti:

pci:0000:03:00.0 wctdm- e159:0001 Wildcard TDM400P REV E/F

hal tersebut disebabkan mod wctdm belum diload. Jalankan perintah: modprobe wctdm dan kembali lihat output dahdi_hardware. 

3. Jalankan perintah modprobe opvxa1200 debug=1, lalu generate config dengan perintah: dahdi_genconf -v. Jika berhasil seharusnya akan muncul output seperti :

[root@ippbx ~]# dahdi_cfg -v
DAHDI Tools Version – 2.9.2

DAHDI Version: 2.9.2
Echo Canceller(s):
Configuration
======================
4 channels to configure.

Setting echocan for channel 1 to oslec
Setting echocan for channel 2 to oslec
Setting echocan for channel 3 to oslec
Setting echocan for channel 4 to oslec

Sampai di sini, kita siap melakukan konfigurasi card analog selanjutnya.