หน้า 1 จากทั้งหมด 2

การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 22 ม.ค. 2010 17:44
โดย voip4share
ดาวน์โหลดบทความ Asterisk Voicemail

บทความ Asterisk Voicemail ตอนที่ 1

การใช้งาน Asterisk Voicemail ตอนที่ 2

มาดูการใช้งาน Voicemail ใน Asterisk ตอนที่ 2 กันเลยครับ ซึ่งจะว่ากันด้วยการส่ง Voicemail เข้าอีเมล์ คอนฟิกหลักจะอยู่ที่ไฟล์ /etc/asterisk/voicemail.conf ครับ มาดูหลักการทำงานของมันก่อนนะครับ
"เมื่อมีคนฝากข้อความไว้ใน Mailbox เสร็จแล้ว Asterisk จะเช็คในไฟล์ voicemail.com ว่าหมายเลข Mailbox นั้นมีคอนฟิกว่าให้ส่งเข้าอีเมล์หรือไม่ ถ้ามีมันก็จะดำเนินการส่งไปยังอีเมล์ที่ระบุไว้ โดยอาจจะแค่ส่งข้อความไปแจ้งเฉยๆว่ามี Voicemail ฝากไว้แล้วผู้รับก็กดฟัง หรืออาจจะส่งข้อความเสียง Voicemail แนบไปกับอีเมล์ด้วยพร้อมๆกันเลย หรือส่งข้อความแนบไปกับอีเมล์แล้วให้ลบข้อความใน Mailbox ด้วย เป็นไปได้หมดครับ"

1 คอนฟิก voicemail.conf เพื่อให้ส่งอีเมล์
รายละเอียดทั้งหมดของไฟล์ voicemail.conf ครับ หากสนใจก็คลิ๊กเข้าไปดูได้เลย ในที่นี้ผมจะโฟกัสเฉพาะที่เกี่ยวข้องกับการส่ง Voicemail เข้าอีเมล์

[general]
format=wav49|gam
; ระบุผู้ส่ง (From)
serveremail=voicemail@voip4share.com
; แนบ Voicemail ไปกับอีเมล์หรือไม่
attach=yes
; รูปแบบไฟล์ที่จะแนบไป
attachfmt=wav49
; บอกว่าเบอร์ Extension ไหนเป็นคนฝาก Voicemail ไว้
saycid=yes
; บอกความยาวของ Voicemail
sayduration=yes
; ลบ Voicemail เมื่อส่งเข้าอีเมล์แล้ว
delete=yes
; เป็น Subject ของอีเมล์
emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
; เป็น Body ของอีเมล์
; \n หมายถึงขึ้นบรรทัดใหม่, \t หมายถึง Tab
emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--VoIP4Share Service\n

; รูปแบบวันที่ในอีเมล์ รูปแบบ 24 ชั่วโมง
emaildateformat=%A, %d %B %Y at %H:%M:%S

; คำสั่งที่จะใช้ตอนส่งอีเมล์ออก
mailcmd=/usr/sbin/sendmail -t
; เซ็ต Timezone
tz=Asia/Bangkok

ต่อไปเราจะสร้าง Mailbox ภายใต้คอนเท็ค voip4share นี้เป็นรายละเอียดพร้อมตัวอย่างการสร้างบรรทัด Mailbox ที่ผมยกมาให้ดูด้านล่างครับ (เผื่อจะสงสัยว่าเขียนกันยังไง)

[default]
; ผมไม่ได้สร้าง Mailbox ไว้ภายใต้คอนเท็ค default นะครับ เพราะว่าในไฟล์ sip.conf ผมเขียนเป็นแบบนี้ mailbox=Mailbox_Number@voip4share ซึ่งแสดงว่าผมต้องสร้าง Mailbox ไว้ภายใต้คอนเท็ค voip4share

[voip4share]
100 => 1234, Khun Nui, nuiz@voip4share.com
101 => 2532, Khun Kik, kikka@hotmail.com
102 => 1820, Khun Joiz, joyza@gmail.com
103 => 1234, Khun Aoo, aooz@voip4share.com,,delete=0|emailsubject=You have a new voicemail.|emailbody=Click on the attachment to listen|tz=european

เสร็จแล้วบันทึกไฟล์ แล้วเข้า Asterisk Console จากนั้นใช้คำสั่ง module reload app_voicemail.so เพื่อเริ่มการทำงานของ Voicemail ใหม่

2 ตัวอย่างอีเมล์
ตัวอย่าง Voicemail ที่ส่งเข้าอีเมล์ เป็นดังรูปครับ
voicemail-to-mail.jpg
Asterisk Voicemail To Email
voicemail-to-mail.jpg (86.65 KiB) เปิดดู 14192 ครั้ง

ข้อความที่อยู่ในอีเมล์ทั้ง From, Body และ Subject เราแก้ไขได้นะครับ โดยแก้ไขที่บรรทัด serveremail, emailbody และ emailsubject ในไฟล์ /etc/asterisk/voicemail.conf

บทความ Asterisk Voicemail ตอนที่ 3

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 08 มี.ค. 2010 05:33
โดย haeha
; คำสั่งที่จะใช้ตอนส่งอีเมล์ออก
mailcmd=/usr/sbin/sendmail -t

ถ้าติดตั้ง postfix แทน sendmail แล้วคำสั่งตอนส่งเมลล์ออกต้องใช้คำสั่งแบบไหนครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 08 มี.ค. 2010 10:06
โดย voip4share
คำสั่งนั้นแหล่ะครับ ไม่ต้องแก้ไขอะไร เพราะว่าตอนที่เราติดตั้ง Postfix มันจะยังมีไฟล์ /usr/sbin/sendmail อยู่ แต่จริงๆแล้วมันไม่ใช่ไฟล์หรอกครับ เป็น Symbolic Link ไปยังอีกไฟล์หนึ่งคือ /etc/alternatives/mta ตามข้อมูลด้านล่าง

ls -la /usr/sbin/sendmail
lrwxrwxrwx 1 root root 21 Jul 23 2009 /usr/sbin/sendmail -> /etc/alternatives/mta

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 08 มี.ค. 2010 22:42
โดย haeha
ขอบคุณครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 26 มิ.ย. 2010 15:16
โดย mr.bun_it13
เรียนถามพี่หนุ่ยคับ

คือผมก็เซตตามที่พี่หนุ่ยได้สอนในเวปนี้ แล้วทีนี้ มันไม่ส่งให้หนะครับ

อยากทราบว่าต้องไปเซต samrt host ในไฟล์ sendmail.mc หรือป่าวอะครับ

แล้วถ้าเกิดผมใช้เป็น email ของทางคณะ คือ

50216958@sit.kmutt.ac.th

ในไฟล์ sendmail.mc ผมเซต smarthost เป็น smtp.sit.kmutt.ac.th อะครับ แล้วมันไม่ส่งทำยังไงดีอะครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 26 มิ.ย. 2010 16:27
โดย nuiz
ปกติโปรแกรม sendmail เราไม่ต้องคอนฟิกอะไร แค่ให้มันรัน (พอร์ต 25 รันอยู่) มันก็ส่งออกได้แล้วครับ เครื่องเราจะเปรียบเป็น mail server อีกตัวหนึ่ง ว่าแต่ mail server ของมหาลัยเปิดรับ mail จาก server อื่นหรือเปล่าครับ อันนี้ต้องเช็คด้วย
ผมมีขั้นตอนในการตรวจสอบแบบนี้นะ
1. เช็คว่า sendmail หรือ mail server รันอยู่หรือเปล่า ปกติจะใช้พอร์ต tcp 25 ครับ
2. เข้า Asterisk Console ดูปฏิกริยาของ Asterisk เวลามี Voicemail มาฝากไว้ มีอะไรที่บ่งบอกว่ามันกำลังส่งเข้าอีเมล์อยู่หรือเปล่า
3. เปิดโปรแกรม ngrep (คำสั่ง ngrep -d eth0 port 25) ดูว่าโปรแกรม sendmail กำลังส่งเมล์ออกหรือเปล่า หรือมีข้อความอะไรที่บ่งบอกว่าส่งไม่ได้บ้างหรือเปล่า
ตอนเราส่งอีเมล์ออก โปรแกรม sendmail มันจะดูโฮสต์ที่อยู่หลังเครื่องหมาย @ อ่ะครับ เช็คด้วยก็ดีนะครับว่ามันรู้จักโฮสต์ sit.kmutt.ac.th หรือเปล่า

เท่านี้ก่อนครับพอเป็นไอเดีย

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 27 มิ.ย. 2010 11:23
โดย mr.bun_it13
พี่หนุ่ยคับ
พอผมใช้ ngrep -d eth0 port 25 อะครับ
มันก็ขึ้น


โค้ด: เลือกทั้งหมด
##exit
6 received, 0 dropped
[root@localhost /]# ngrep -d eth0 port 25
interface: eth0 (10.4.43.0/255.255.255.0)
filter: (ip) and ( port 25 )
#######################################################


ตลอดเรื่อยๆเลยอะครับ ผมไม่เข้าใจว่ามันผ่านหรือไม่ผ่านอะครับ

แล้วเมลล์อะครับ
ถ้าเกิดผมเซตให้เป็นพวก hotmail gmail เนี่ย จาได้หรือป่าวอะครับ แล้ว

ใน smart host ของ sendmail.mc ต้องแก้อะไรไม๊อะครับ

ขอบคุนครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 27 มิ.ย. 2010 11:55
โดย mr.bun_it13
พี่หนุ่ยครับ ผมเซตตามนี้อะครับ ตอนนี้รับฝาก voicemail ได้แล้ว เข้าไปฟังใน voicemailmain ได้แล้ว แต่ทีนี้มันยังไม่ยอมส่งเข้าไปยัง อีเมลล์ให้เลยอะครับ
รบกวนหน่อยนะครับ

ไฟล์ sip.conf ครับ
โค้ด: เลือกทั้งหมด
[general]
notifymimetype=application/simple-message-summary
vmexten=*99

[default]

[100]
username=100
secret=100
type=friend
host=dynamic
context=voip4share
mailbox=100@voip4share

[101]
username=101
secret=101
host=dynamic
type=friend
context=voip4share
mailbox=101@voip4share



ไฟล์ extension.conf ครับ
โค้ด: เลือกทั้งหมด
[voip4share]

exten => 100,1,Dial(SIP/100,10,tTr)
exten => 100,2,VoiceMail(100@voip4share,u)
exten => 100,102,VoiceMail(100@voip4share,b)

exten => 101,1,Dial(SIP/101,10,tTr)
exten => 101,2,VoiceMail(101@voip4share,u)
exten => 101,102,VoiceMail(101@voip4share,b)


; Dial *99 to Listen to Mailbox
exten => *99,1,VoiceMailMain(@voip4share)


ไฟล์ voicemail.conf ครับ
โค้ด: เลือกทั้งหมด
;!
;! Automatically generated configuration file
;! Filename: voicemail.conf (/etc/asterisk/voicemail.conf)
;! Generator: AppVoicemail
;! Creation Date: Tue Jun 22 19:16:52 2010
;!
[general]
format=wav49|gsm
serveremail=mr.bun_it13@hotmail.com
attach=yes
attachfmt=wav49|gsm
saycid=yes
sayduration=yes
emaildateformat=%A, %d %B %Y at %H:%M:%S
mailcmd=/usr/sbin/sendmail -t
tz=Asia/Bangkok



[voip4share]
100 =>100,Ban,mr.bun_it13@hotmail.com

101 =>101,May,tanyamas_may@hotmail.com
;



พอผมลองโทรก็จะให้ฝากข้อความเสียง แล้วพอฝากเสร็จ กด # มันก้ ดังเหมือนสัญญาณขาด แล้ว บน server ก็จะขึ้น message แบบนี้อะครับ
ไม่ทราบว่าผมเซตตรงไหนผิดหรือป่าวอะครับ
โค้ด: เลือกทั้งหมด
    -- Registered SIP '101' at 10.4.43.31 port 40182
  == Using SIP RTP CoS mark 5
    -- Executing [100@voip4share:1] Dial("SIP/101-00000000", "SIP/100,10,tTr") in new stack
  == Using SIP RTP CoS mark 5
[Jun 27 18:54:52] WARNING[3528]: app_dial.c:1745 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Unknown)
  == Everyone is busy/congested at this time (1:0/0/1)
    -- Executing [100@voip4share:2] VoiceMail("SIP/101-00000000", "100@voip4share,u") in new stack
    -- <SIP/101-00000000> Playing '/var/spool/asterisk/voicemail/voip4share/100/temp.gsm' (language 'en')
    -- <SIP/101-00000000> Playing 'vm-intro.slin' (language 'en')
    -- <SIP/101-00000000> Playing 'beep.slin' (language 'en')
    -- Recording the message
    -- x=0, open writing:  /var/spool/asterisk/voicemail/voip4share/100/tmp/rn0LzM format: wav49, 0x8dca360
    -- x=1, open writing:  /var/spool/asterisk/voicemail/voip4share/100/tmp/rn0LzM format: gsm, 0x8dc9c68
    -- User ended message by pressing #
    -- <SIP/101-00000000> Playing 'auth-thankyou.slin' (language 'en')
    -- Auto fallthrough, channel 'SIP/101-00000000' status is 'CHANUNAVAIL'
[Jun 27 18:55:11] ERROR[3528]: cdr_addon_mysql.c:200 mysql_log: Cannot connect to database server localhost: (1049) Unknown database 'astriskcdrdb'
localhost*CLI>



ขอบคุนครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 27 มิ.ย. 2010 19:08
โดย nuiz
mr.bun_it13 เขียน:พี่หนุ่ยคับ
พอผมใช้ ngrep -d eth0 port 25 อะครับ
มันก็ขึ้น


โค้ด: เลือกทั้งหมด
##exit
6 received, 0 dropped
[root@localhost /]# ngrep -d eth0 port 25
interface: eth0 (10.4.43.0/255.255.255.0)
filter: (ip) and ( port 25 )
#######################################################


ตลอดเรื่อยๆเลยอะครับ ผมไม่เข้าใจว่ามันผ่านหรือไม่ผ่านอะครับ

แล้วเมลล์อะครับ
ถ้าเกิดผมเซตให้เป็นพวก hotmail gmail เนี่ย จาได้หรือป่าวอะครับ แล้ว

ใน smart host ของ sendmail.mc ต้องแก้อะไรไม๊อะครับ

ขอบคุนครับ


ถ้าใช้ ngrep แล้ว เห็น # ยาวตลอด ลองใส่ออปชั่น and host 10.4.43.x ตามหลังอ่ะครับ ว่าแต่ใช้พอร์ต eth0 ป่าวครับ ถ้ามีอีเมล์มันจะโชว์บนหน้าจอเลยครับ

ใช้เป็น hotmail ได้ครับ ตอนส่งเมล์ออกไม่ต้องเซ็ตอะไรบน sendmail ครับ

Re: การใช้งาน Asterisk Voicemail ตอนที่ 2

โพสต์โพสต์แล้ว: 27 มิ.ย. 2010 22:14
โดย nuiz
ข้อความ Error นี้นะครับ
"[Jun 27 18:55:11] ERROR[3528]: cdr_addon_mysql.c:200 mysql_log: Cannot connect to database server localhost: (1049) Unknown database 'astriskcdrdb'"
ไม่ได้ให้ Asterisk เก็บ CDR ลงดาต้าเบส MySQL ใช่ป่าวครับ งั้นให้ปิด Error นี้โดย
ให้แก้ไขที่ไฟล์ /etc/asterisk/cdr_mysql.conf ใส่เครื่องหมาย ; ไว้ทุกๆบรรทัดครับ

ส่วนที่ว่าพอฝากข้อความเสร็จแล้วกดปุ่ม # มีเสียงตามมาแต่เสียงไม่ชัดเจน Astrisk มันเล่นไฟล์เสียงนี้หน่ะครับ vm-intro และ beep ทั้งสองไฟล์อยู่ในไดเร็คตอรี่ /var/lib/asterisk/sounds/en ลองเข้าไปดูในไดเร็คตอรี่นะครับว่าไฟล์นี้นามสกุลอะไร หาไฟล์มาแทนได้หรือเปล่า

โค้ด: เลือกทั้งหมด
wget http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-gsm-current.tar.gz


ดาวน์โหลดมาแล้ว แตกไฟล์เอาไปไว้ในไดเร็ตตอรี่ /var/lib/asterisk/sounds หรือ /var/lib/asterisk/sounds/en แล้วแต่ว่าอันไหนมีอยู่

อ่อตอนเทสใช้โปรแกรมอะไรเทสครับ หรือว่าใช้อุปกรณ์อะไรเทส ลองหาพารามิเตอร์ชื่อ VAD หรือ Voice Activity Detection หรือ Silence Suppression แล้วปิดมัน อาจช่วยเรื่องเสียงไม่สมูทได้