การใช้งานคำสั่ง Voicemail และ VoicemailMain

Asterisk Opensource IP Pbx

การใช้งานคำสั่ง Voicemail และ VoicemailMain

โพสต์โดย voip4share » 30 ม.ค. 2010 13:27

คำสั่ง VoiceMail
หน้าที่ ฝากข้อความไว้ใน Mailbox การฝากครั้งหนึ่งสามารถเก็บได้มากกว่า 1 Mailbox นะครับ
รูปแบบคำสั่ง
โค้ด: เลือกทั้งหมด
VoiceMail([flags]boxnumber[@context][&boxnumber2[@context]][&boxnumber3])

หรือ
โค้ด: เลือกทั้งหมด
VoiceMail(boxnumber[@context][&boxnumber2[@context]][&boxnumber3],[flags])


สำหรับ Asterisk 1.4
โค้ด: เลือกทั้งหมด
VoiceMail(boxnumber[@context][&boxnumber2[@context]][&boxnumber3]|[flags])


สำหรับ Asterisk 1.6
ต้องใส่ flags หลัง box number คั่นด้วยเครื่องหมายคอมม่า , ไม่ได้ใช้เครื่องหมาย | อีกแล้ว ตั้งแต่เวอร์ชั่น 1.6 ขึ้นไปให้ใช้ฟอร์แม็ตนี้
โค้ด: เลือกทั้งหมด
VoiceMail(boxnumber[@context][&boxnumber2[@context]][&boxnumber3],[flags])

บันทึกไฟล์เสียงไว้ในไดเร็คตอรี่ Mailbox ตามที่คอนฟิกไว้ในไฟล์ voicemail.conf โดยที่หมายเลข Mailbox จะต้องอยู่ก่อน flags

ตัวอักษร s จะไม่เล่นข้อความ "Please leave your message after the tone. When done, hang up, or press the pound key"
ตัวอักษร u จะเล่น unavailable message ข้อความดีฟอลท์คือ "The person at extension ....1234.... is unavailable" แต่เวลาใช้งานจริงเจ้าของ Mailbox อาจจะบันทึกเป็นข้อความของเขาเอง ซึ่งอัดเสียงโดยใช้คำสั่ง VoicemailMain
ตัวอักษร b จะเล่นข้อความ busy message เสียงดีฟอลท์คือ "The person at extension ... 1234 ... is busy"
g(#) (เฉพาะเมื่อระบุ flags เป็น second argument) ไว้ปรับเกณฑ์ของการบันทึก # เป็นจำนวนเต็มแทนจำนวนเกณฑ์ในหน่วนเดซิเบล การเซ็ตที่แท้จริงใน channel option เป็นการเพิ่ม Rx gain ออปชั่นนี้รองรับเฉพาะ Zap เท่านั้น ดูค่า volgain ในไฟล์ voicemail.conf ซึ่ง Asterisk จะเรียกโปรแกรม sox มาเพื่อปรับเกณฑ์ของ Voicemail ที่ส่งแนบไปกับอีเมล์

เราอาจไม่ระบุทั้ง b และ u flags อย่างไรก็ตามอาจจะเอา s มาผสมด้วย ซึ่งมีทางเป็นไปได้ 6 ทาง

s: ไม่เล่นเสียงอะไรเลย
(no flags): เสียงคำสั่ง
su: เล่นเสียงแจ้งว่า Unavailable
u: เล่นเสียงแจ้งว่า Unavailable ตามด้วยเสียงคำสั่ง
sb: เล่นเสียงแจ้ง Play
b: เล่นเสียงแจ้ง Play ตามด้วยเสียงคำสั่ง
ทุกกรณีจะมีไฟล์ beep.gsm ถูกเล่นด้วยก่อนเริ่มต้นบันทึกเสียง

และมีการเซ็ตค่าตัวแปรเมื่อสิ้นสุดการฝากข้อความ ตัวแปรนี้มีชื่อว่า VMSTATUS แสดงสถานะของการทำงานของคำสั่ง VoiceMail ซึ่งมีสถานะที่เป็นไปได้ 3 สถานะคือ SUCCESS, USEREXIT และ FAILED

ข้อความเสียงจะถูกบันทึกไว้ในไดเร็คตอรี่ของ Mailbox คือ /var/spool/asterisk/voicemail/context_name/mailbox_number/INBOX

ถ้ายูสเซอร์กด 0 ในระหว่างที่ได้ยินเสียงประกาศและในไฟล์ voicemail.conf เซ็ต operator=yes โดยอาจจะเซ็ตไว้ใน [general] หรือไม่ในบรรทัดเดียวกับสร้าง Mailbox จะทำให้ยูสเซอร์ถูกส่งไปยัง Extension 'o' (หมายถึง "Out") ในคอนเท็คของวอยส์เมล์ปัจจุบัน นี้สามารถใช้เพื่อไม่ต้องให้มีโอเปอเรเตอร์คอยรับสาย ถ้าไม่ต้องการให้มีคนคอยรับสายก็แค่คอนฟิกเบอร์ Extension ให้กลับสู่ Voicemail หรือคอนฟิก operator=no ไม่อย่างนั้นสายจะถูกตัดเนื่องจากว่า Extension 'o' ไม่มีอยู่จริง

นอกจากนั้นระหว่างพร้อมท์ถ้ายูสเซอร์กด
* คอลจะกระโดดไปที่ extension 'a' ใน current voicemail context
เช่น
exten => a, 1, VoicemailMain(@default)
exten => a, 2, Hangup

# หยุดข้อความต้อนรับและ/หรือคำสั่ง แล้วเริ่มต้นบันทึกเสียงทันที

ถ้าหาเมล์บ๊อกที่ต้องการไม่พบ และที่นั่นเกิดขึ้นบนลำดับที่ n+101 จากนั้นลำดับจะถูกทำต่อไป

ถ้าในระหว่างที่กำลังบันทึกเสียง ผู้ใช้กด
# หรือหมดเวลา silence limit การบันทึกเสียงจะสิ้นสุดและคอลจะไปลำดับที่ n+1

และควรจะบอกอะไรสักอย่างกับยูสเซอร์หลังจากที่เขากลับมาจากฟังก์ชั่น Voicemail() เช่นอย่างน้อยที่สุดก็ควรกล่าวขอบคุณที่เขาใช้บริการ
...
exten => somewhere,5,Playback(Goodbye)
exten => somewhere,6,Hangup

ตัวอย่าง

Voicemail(1)
Voicemail(b1234@default)
Voicemail(b1234&1704@home)
Voicemail(su${EXTEN})


คำสั่ง VoicemailMain
ใช้ฟังข้อความใน Mailbox รูปแบบคำสั่ง
โค้ด: เลือกทั้งหมด
VoicemailMain(@voicemail_context)


ตัวอย่างการใช้งาน

[from-internal]
exten => *99, 1, VoicemailMain(@voip4share)
voip4share
Administrator
 
โพสต์: 656
ลงทะเบียนเมื่อ: 18 พ.ย. 2009 11:26
ที่อยู่: รามคำแหง กรุงเทพฯ

ย้อนกลับไปยัง Asterisk SIP Server

ผู้ใช้งานขณะนี้

่กำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และ บุคคลทั่วไป 1 ท่าน