AsteriskThailand
February 08, 2012, 01:18:34 AM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: เล่นเสียงขณะรอสายปลายทางรับ  (Read 1478 times)
Patrickz
Global Moderator
Sr. Member
*****
Posts: 274


View Profile WWW
« on: November 12, 2007, 10:45:46 AM »

สวัสดีครับ
  ผมต้องการให้ เบอร์ต้นทางเล่นเสียง ขณะโทรไปยังเบอร์ปลายทาง  เมื่อเบอร์ปลายทางรับให้หยุดเล่นเสียง เข้าสู่การสนทนาตามปกติ
จะทำได้อย่างไรครับ? 

ขอบคุณครับ
Logged

Patrickz
Global Moderator
Sr. Member
*****
Posts: 274


View Profile WWW
« Reply #1 on: November 13, 2007, 10:54:27 AM »

ได้แล้วครับ

บริการลักษณะนี้เรียกว่า Ringback tone ครับ เป็นบริการที่คล้ายกับโทรศัพท์มือถือ เวลาเราโทรเข้าแทนที่จะเป็นเสียง ring (DTMF) tone ตามปกติ  ก็เป็นเสียงเพลง เสียงดารา เป็นต้น

ผมใช้ MusicOnHold เล่นเพลงขณะรอสายปลายทางรับ
ดูจาก http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Musiconhold เค้าใช้แบบนี้ครับ

Code:
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))

ลองดูนะครับ Smiley




Logged

Patrickz
Global Moderator
Sr. Member
*****
Posts: 274


View Profile WWW
« Reply #2 on: November 29, 2007, 11:38:09 AM »

ถ้ามีปัญหาว่าเสียงเบา ลองแก้ที่นี่ครับ
แก้ไฟล์ musiconhold.conf (หรือไฟล์ที่เกี่ยวข้อง) แก้ context ที่ต้องการ เช่น

Quote
[default]
mode=mp3
directory=/var/lib/asterisk/mohmp3

ค่าที่เป็นไปได้มีดังนี้
Quote
; quietmp3    -- default
; mp3       -- loud
; mp3nb      -- unbuffered
; quietmp3nb   -- quiet unbuffered
; custom   -- run a custom application
; files      -- read files from a directory in any Asterisk supported format
Logged

Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
SEM | Asterisk | สถานที่ท่องเที่ยว | สัมมนา SEM