ปกติผมเบอร์ 101 โทรหา 102 หัวเครื่องก็จะโชว์ว่าผมโทรจากเบอร์ 101 หรือถ้าใช้ออปชั่น CID Num Alias และ/หรือ SIP Alias ในหน้าที่เราเซ็ต Extension ก็จะแสดงได้แต่ตัวเลข แสดงตัวอักษรไม่ได้ เช่น สามารถสั่งให้แสดง 100 แทน 101 ได้ อะไรแบบนี้ครับ แต่ไม่สามารถแสดง Private Call แทน 101 ได้
เทคนิคต่อไปนี้จะแสดง Private Call แทน 101 ได้นะครับ
แก้ไขไฟล์ /etc/asterisk/extensions_custom.conf ครับ เพิ่มบรรทัดต่อไปนี้ไว้ภายใต้ [from-internal-custom]
- โค้ด: เลือกทั้งหมด
;Hide CallerID
exten => _*67X.,1,Set(CALLERID(all)=Private Call)
exten => _*67X.,n,Goto(ext-local,${EXTEN:3},1)
โดยที่
*67 คือ Code ที่ผมตั้งขึ้นมาเอง ใช้ Code อื่นก็ได้นะครับที่มันไม่ซ้ำ
Private Call คือข้อความที่ต้องการใช้โชว์ที่เครื่องปลายทาง แก้ไขได้ตามใจชอบครับ
เลข 3 ตรง ${EXTEN:3} นั่นคือให้ตัดหลักข้างหน้าออก 3 หลัก ในที่นี้ก็คือ *67 ครับ เหลือเฉพาะหลักที่เหลือซึ่งก็คือเบอร์ Extension ที่เราต้องการโทรไปนั่นเอง
ตัวอย่างนะครับ
- โค้ด: เลือกทั้งหมด
[from-internal-custom]
exten => 1234,1,Playback(demo-congrats) ; extensions can dial 1234
exten => 1234,2,Hangup()
exten => h,1,Hangup()
include => custom-recordme ; extensions can also dial 5678
include => weather-wakeup
include => calendar-event
include => conferences
include => agentlogin
;Hide CallerID
exten => _*67X.,1,Set(CALLERID(all)=Private Call)
exten => _*67X.,n,Goto(ext-local,${EXTEN:3},1)
บรรทัดอื่นๆไม่ต้องไปลบออกนะครับ เดี๋ยวระบบเดิมจะใช้งานไม่ได้
เซฟไฟล์แล้วรีโหลด
- โค้ด: เลือกทั้งหมด
asterisk -rx "dialplan reload"
เท่านี้ก็ทดลองใช้งานได้เลยครับ ดังนี้
ต้องการซ่อนเบอร์ ให้โทร *67 ตามด้วยเบอร์ปลายทาง เช่น *67101
ต้องการโชว์เบอร์ปกติ ให้กดเบอร์ปลายทาง เช่น 101