อันดับแรกตามที่คุณหนุ่ยบอกนะครับ Bug แน่ๆ ผมลองหาข้อมูลจากเมื่อนอกมาเป็นแนวทางแก้ปัญหา แล้วลองมาปรับใช้ดูวิธีแก้ตามนี้ครับ
1. ทำการ backup file "functions.inc.php" ตาม part นี้ครับ /var/www/html/admin/modules/pinsets
2 .แก้ไขไฟล์ functions.inc.php
จาก ....
- โค้ด: เลือกทั้งหมด
// 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'));
}
ไปเป็น.....
- โค้ด: เลือกทั้งหมด
// write out a macro that handles the authenticate
$ext->add('macro-pinsets', 's', '', new ext_noop('Follow My Lead'));
// $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'));
}
3. จากนั้น save ไฟล์ functions.inc.php
4. ไปทำการแก้ไขไฟล์ extensions_override_freepbx.conf ไปทำการเพิ่มต่อท้ายบรรทัด #include extensions_override_elastix.conf
- โค้ด: เลือกทั้งหมด
[macro-pinsets]
include => macro-pinsets-custom
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())
;--== end of [macro-pinsets] ==--;
5.ทำการ save file extensions_override_freepbx.conf แล้วเข้าหน้า WebLogin ของ Elastix ใน menu PBX ไปทำการ save อะไรก็ได้เปล่าๆซักเมนู ตัว system จะได้ไป reload config ของ Asterisk แล้วก็ในส่วนของการ update ค่า Mysql
6.ทดสอบดูครับ