Call forwarding มีอยู่ 3 ชนิด คือ
- Blind call forwarding หรือ Forward all ทุก calls ที่ติดต่อเข้ามาจะถูก forward ไปปลายทางที่กำหนดไว้
- Forward on busy ในกรณีที่ใช้งานโทรศัพท์อยู่ ถ้ามีอีก call เข้ามา call ที่เข้ามาจะถูก forward ไปปลายทางที่กำหนดไว้
- Forward on no answer ในกรณีที่ไม่รับสายภายในเวลาที่กำหนด call ที่เข้ามาจะถูก forward ไปปลายทางที่กำหนดไว้
1. Load module เพิ่มเติมในไฟล์ /etc/opensips/opensips.cfg ดังนี้
=====================================
#### AVPOPS module
loadmodule "avpops.so"
modparam("avpops", "db_url", "mysql://opensips:opensipsrw@localhost/opensips")
modparam ("avpops", "avp_table", "usr_preferences")
=====================================
2. ใส่ข้อมูลตัวอย่างใน table usr_preferences ในฐานข้อมูล opensips ในการใช้งานจริงจะต้องมี web interface หรือ phone interface ให้ users สามารถเปลี่ยนแปลงข้อมูลตามต้องการได้
3. สำหรับ Forward all แทรก code ในไฟล์ /etc/opensips/opensips.cfg หลังจาก alias_db_lookup ("dbaliases") ดังนี้
=====================================
if (avp_db_laod("$ru", "$avp(callfwd)")) {
$ru = $avp(callfwd);
{
=====================================
แล้ว restart opensips
#systemctl restart opensips
ลองทดสอบ forward all ได้เลยว่าทำงานหรือไม่
4. สำหรับ Forward on busy และ Forward on no answer จะนำเสนอในตอนถัดไป