ได้แล้วครับ
บริการลักษณะนี้เรียกว่า Ringback tone ครับ เป็นบริการที่คล้ายกับโทรศัพท์มือถือ เวลาเราโทรเข้าแทนที่จะเป็นเสียง ring (DTMF) tone ตามปกติ ก็เป็นเสียงเพลง เสียงดารา เป็นต้น
ผมใช้ MusicOnHold เล่นเพลงขณะรอสายปลายทางรับ
ดูจาก
http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Musiconhold เค้าใช้แบบนี้ครับ
exten => 6000,1,Answer
exten => 6000,2,MusicOnHold()
Add a new class to musiconhold.conf
[none]
mode=files
directory=/dev/null
Create a macro in extensions.conf to turn off MOH
[macro-nomusic]
exten => s,1,NoOp(Turn off MOH for this channel)
exten => s,2,SetMusicOnHold(none)
Now call this macro when you dial an extension
exten => 7020,1,NoOp(Dial -> IAX2/outbound/${EXTEN})
exten => 7020,n,Dial(IAX2/outbound/${EXTEN},,M(nomusic))
exten => 7020,n,Hangup
ก็คือ เวลามีการโทรเข้า ก็ให้รับสาย และเ่ล่นเสียงด้วยคำสั่ง
MusicOnHold() ซึ่งหากไม่ได้ใส่ parameter จะเล่นเสียง default ซึ่งจะถูกกำหนดใน
musiconhold.conf อีกทีหนึ่ง
จากนั้นทำการเชื่อมต่อเบอร์ปลายทางด้วยคำสั่ง
Dial() Dial(type1/identifier1[&type2/identifier2[&type3/identifier3... ] ], timeout, options, URL) จะสังเกตุได้ว่า จะมีการใช้ option M(nomusic) ด้วย ซึ่งเป็นการเรียกใช้ Macro [macro-nomusic] เมื่อปลายทางรับสาย หรือพูดง่ายๆ ก็คือ เมือปลายทางรับสายแล้ว ก็ให้หยุดเสียงเพลงด้วยการเรียกใช้ [macro-nomusic] นั่นเอง
อันนี้เป็น idea แต่ว่าคำสั่ง
Dial() ก็มี feature นี้แล้ว ไม่รู้ว่ามีทีหลังหรือเปล่า?? นั่นก็คือมี option m (m หมายถึง musiconhold, M หมายถึง Macro)
Dial(IAX2/outbound/${EXTEN},60,m(default))ลองดูนะครับ
