เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

Elastix IP Pbx

Moderator: jubjang

เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย nuiz » 15 มี.ค. 2011 09:45

เครื่องที่เปิดอัดเสียงพูดระหว่างที่เบอร์ Extension โทรออกหรือรับสายเข้านั้นนะครับ ไฟล์เสียงจะเก็บไว้ที่โฟลเดอร์ /var/spool/asterisk/monitor ซึ่ง Asterisk จะเริ่มอัดเสียงเมื่อปลายทางรับสาย อัดไปเรื่อยๆจนกว่าจะวางสาย

พอดีมีท่านนึงบอกผมว่าเขามีสคริปต์ให้ย้ายไฟล์เสียงที่อัดไว้ทั้งหมดนี้ไปไว้ยังที่ๆหนึ่งเพื่อเป็นการแบ็คอัพ มีสคริปต์รันทุก 1 นาที ปัญหาก็คือสคริปต์ตัวนี้มันไม่สนใจว่าไฟล์เสียงนั้นจะจบหรือยัง ทำให้ไฟล์เสียงส่วนหนึ่งเปิดไม่ได้ (เพราะไฟล์ยังไม่สมบูรณ์)

เทคนิคที่ผมจะใช้แก้ปัญหานี้คือ ตอนยังคุยไม่จบก็ให้ Asterisk เก็บไฟล์ไว้ที่เดิมคือ /var/spool/asterisk/monitor แต่พอคุยสายจบแล้วให้ Asterisk ย้ายไฟล์ๆนั้นไปไว้อีกที่หนึ่ง เช่น /var/spool/asterisk/monitor/final

ผมเทสกับ Elastix 2.0+ และ FreePBX 2.7+ เวอร์คครับ (ถ้าท่านที่ลองทำตามแล้ว ไม่มีเมนูอย่างในรูป รบกวนโพสต์มาด้วยนะครับ เพราะเท่าที่ผมดู เวอร์ชั่นก่อนๆมันจะไม่ได้ใช้แบบนี้)

รูปภาพ

รูปภาพ

1. สร้างไดเร็คตอรี่ เซ็ต owner และ attribute
โค้ด: เลือกทั้งหมด
mkdir /var/spool/asterisk/monitor/final
chown -R asterisk:asterisk /var/spool/asterisk/monitor/final
chmod 775 /var/spool/asterisk/monitor/final


2. สำหรับ FreePBX
เข้า FreePBX
เมนู General Settings
บรรทัด Run after record ใส่
โค้ด: เลือกทั้งหมด
/bin/mv /var/spool/asterisk/monitor/^{CALLFILENAME}.* /var/spool/asterisk/monitor/final

กด Submit Changes
กดแถบสีส้ม "Apply Configuration Changes"
กด "Continue with reload"

3. สำหรับ Elastix
เข้า PBX -> General Settings
บรรทัด Run after record ใส่
โค้ด: เลือกทั้งหมด
/bin/mv /var/spool/asterisk/monitor/^{CALLFILENAME}.* /var/spool/asterisk/monitor/final

กด Submit Changes
กดแถบสีชมพู "Apply Configuration Changes Here"

หมายเหตุ
1. "Run after record" นี่มันอาศัยออปชั่นในการเรียกใช้คำสั่ง MixMonitor ครับ ซึ่งรูปแบบของคำสั่ง MixMonitor ก็คือ
MixMonitor(filename,options,comman)
ซึ่ง command เป็น linux command ที่ Asterisk จะเรียกใช้หลังจากที่สิ้นสุด MixMonitor (คือวางสาย) คนเขียน Elatix/FreePBX เขาก็เอาค่าที่เราใส่ใน Run after record ไปแทรกไว้ตรงที่เป็น command นั่นเองครับ ฉลาดจริงๆ ผมมีบทความการใช้งานคำสั่ง MixMonitor ด้วยนะครับ
2. ตรงบรรทัด Run asterisk record อาจจะให้เรียกสคริปต์เลยก็ได้ครับ แล้วเราก็เขียนคำสั่งของ Linux shell scripts ไว้ในไฟล์นั้น ประยุกต์ใช้งานได้ไม่สิ้นสุดครับ
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7058
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย smuchcha » 29 มิ.ย. 2011 00:05

เรียนคุณ Nuiz

ต้องขอรบกวนอีกแล้วครับ
เรื่อง file เสียงที่ บันทึกการสนทนาไว้ครับ
ตอนนี้ผมโทรเข้าโทรออกสามารถบันทึกและดู report ได้ที่ PBX--> Monitoring ครับ
ผมเห็นกระทู้นี้บอกวิธีย้าย File ไปเก็บที่ โฟลเดอร์อื่น
โค้ด: เลือกทั้งหมด
/bin/mv /var/spool/asterisk/monitor/^{CALLFILENAME}.* /var/spool/asterisk/monitor/final

ถ้าทำการย้ายไปไว้ที่อื่นแล้วก็จะมีปัญหากับ หน้าเว็บที่เป็น PBX--> Monitoring มันก็จะไม่สามารถกด download หรือ listen ได้ซิครับ
แล้วเวลาดู report คุณ Nuiz ดูผ่านหน้าเว็บยังไงครับ

ตอนนี้ผมใช้ version 1.6 อยู่ครับ
ผมใช้เทคนิดดังนี้คัรบ
1. copy file ขึ้นมาใหม่
2. ย้าย file ไปไว้ตามห้องที่กำหนด
#### GUI Web Elastix ####
#### menu general setting
Recording Location:
/var/spool/asterisk/monitor/

Run after record:
cp ^{MIXMON_DIR}/^{CALLFILENAME}.^{MIXMON_FORMAT} ^{MIXMON_DIR}/`/usr/bin/mysql -u root -peLaStIx.2oo7 -N -B -D asteriskcdrdb -e "SELECT calldate,'From:',src,'To:',dst,'' FROM cdr WHERE uniqueid = ^{UNIQUEID}"|sed -s s'/\s/_/ g'`.^{MIXMON_FORMAT}


#### script movecall.sh #########
#!/bin/bash

TODAY=`date +'%Y-%m-%d'`

mkdir /var/spool/asterisk/monitor/$TODAY
mv /var/spool/asterisk/monitor/$TODAY* /var/spool/asterisk/monitor/$TODAY

#### CMD Linux ###############################
chmod 775 /var/lib/asterisk/bin/movecall.sh
chown asterisk.asterisk /var/lib/asterisk/bin/movecall.sh

#### Crontab ###################################
crontab -e
*/5 * * * * /var/lib/asterisk/bin/movecall.sh
#############################################




สอบถามเรื่องการเปลี่ยนชื่อ file หนอ่ยครับ
เวลาบันทึก 1 call ผมจะได้ file มาดังนี้
[root@elastix ~]# ll -ht /var/spool/asterisk/monitor/
-rw------- 1 asterisk asterisk 24K Jun 28 23:48 2011-06-28_23:47:41_From:_1101_To:_90890965618_.gsm
-rw------- 1 asterisk asterisk 24K Jun 28 23:48 OUT1101-20110628-234741-1309279661.2.gsm

ตอนนี้ที่ผมต้องการคือ ให้หน้าเว็บ ตรง เมนู PBX --> Monitoring
ให้สามารถ link กับ file ที่ผมเปลี่ยนชื่อได้ครับ คือตอนนี้ตัวเว็บมัน link กับ file ชื่อ OUT1101-20110628-234741-1309279661.2.gsm
ผมต้องการให้มัน link กับ file ที่ผมได้เปลี่ยนชื่อ file ใหม่ให้ระบุได้ถึงต้นทางและปลายทางคัรบ คือ file 2011-06-28_23:47:41_From:_1101_To:_90890965618_.gsm
ไม่ทราบว่าเคยทำหรือไม่ครับ ให้มันสามารถ link ชื่อใหม่ได้นะครับ
smuchcha
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 27 ส.ค. 2010 10:36

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย nuiz » 29 มิ.ย. 2011 01:04

อ่อครับ
ผมทำบทความนี้ให้ จนท ของบริษัทหนึ่ง พอดีเขาถามมา เขาต้องการแค่ย้ายไฟไปแบ็คอัพไว้ แล้วจะมีโปรแกรมอีกตัวคอยเปิดฟังอีกที

ส่วนเรื่องการแก้ไขชื่อไฟล์ ผมเคยเขียนไว้ในหัวข้อ การบายพาสไฟล์ extensions_additional.conf ไว้หนนึงครับ แต่จำลิ้งไม่ได้

ชื่อไฟล์ที่บันทึกมันอยู่ในคอนเท็คนี้ ผมยกตัวอย่าง Elastix 2.0 ครับ

[macro-record-enable]
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMixMonitor()
exten => s,n(check),ExecIf($["${ARG1}"=""]?MacroExit())
exten => s,n,GotoIf($["${ARG2}"="Group"]?Group:OUT)
exten => s,n(Group),Set(LOOPCNT=${FIELDQTY(ARG1,-)})
exten => s,n,Set(ITER=1)
exten => s,n(begin),GotoIf($["${CUT(DB(AMPUSER/${CUT(ARG1,-,${ITER})}/recording),=,3)}" != "Always"]?continue)
exten => s,n,Set(TEXTEN=${CUT(ARG1,-,${ITER})})
exten => s,n,Noop(Recording enable for ${TEXTEN})
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(continue),Set(ITER=$[${ITER}+1])
exten => s,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)
exten => s,n(OUT),GotoIf($["${ARG2}"="IN"]?IN)
exten => s,n,ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),\\\|,1):4}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=OUT${ARG1}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(IN),ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),\\\|,2):3}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => s,n,MacroExit()

อยู่ในไฟล์ /etc/asterisk/extensions_additional.conf

อยากเปลี่ยนชื่อไฟล์ต้องบายพาสคอนเท็คนี้ โดยก๊อบคอนเท็คนี้ไปไว้ในไฟล์ /etc/asterisk/extensions_override_freepbx.conf
แล้วในไฟล์ extensions.conf ต้อง include ไฟล์ extensions_override... นี้ก่อนไฟล์ extensions_additional.conf
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7058
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย smuchcha » 29 มิ.ย. 2011 18:39

เรียนคุณ Nuiz

ตอนนี้ผมใช้ About Elastix 1.6.2-37
ได้ทำการ update elastix แล้วครับ
### after update elastix ###
[root@elastix yum.repos.d]# rpm -qa | grep kernel
kernel-xen-devel-2.6.18-164.el5
kernel-xen-2.6.18-194.3.1.el5
kernel-2.6.18-194.3.1.el5
kernel-module-dahdi-xen-2.3.0.1-3_2.6.18_194.3.1.el5
kernel-module-rhino-xen-0.99.2-1_2.6.18_194.3.1.el5
kernel-module-wanpipe-3.5.14-0_2.6.18_194.3.1.el5
kernel-xen-2.6.18-164.el5
kernel-2.6.18-164.el5
kernel-devel-2.6.18-164.el5
kernel-devel-2.6.18-194.3.1.el5
kernel-xen-devel-2.6.18-194.3.1.el5
kernel-module-dahdi-2.3.0.1-3_2.6.18_194.3.1.el5
kernel-module-wanpipe-xen-3.5.14-0_2.6.18_194.3.1.el5
kernel-module-rhino-0.99.2-1_2.6.18_194.3.1.el5
kernel-headers-2.6.18-194.3.1.el5

[root@elastix yum.repos.d]# uname -r
2.6.18-194.3.1.el5

[root@elastix yum.repos.d]# rpm -qa | grep elastix
elastix-asterisk-sounds-1.2.3-1
elastix-mysqldbdata-1.0-3
elastix-sugarcrm-4.5.0d-3
elastix-a2billing-1.3.0-3
elastix-vtigercrm-5.0.3-6
elastix-1.6.2-37
######################################################
เวลา boot มันจะมีให้เลือกครับว่าจะเข้าใช้ kernel version อะไรครับ ผมก็เลือกเป็น Centos 2.6.18-194.3.1.el5 ครับ



สอบถามเรื่อง Call Recording ครับ

ผมกำหนดที่ PBX --> General setting
ตรง Call Recording
ผมกำหนดดังนี้
Call Recording
Extension Recording Override: Enabled
Call recording format: gsm
Recording Location:
Run after record:

สอบถามสองเรื่องดังนี้ครับ
1. การเปลี่ยนชื่อ File ที่บันทึกเสียงครับ คือ ตอนนี้ผมรู้ว่าต้องเปลี่ยนที่ [macro-record-enable] ซึ่งอยู่ใน extensions_override_elastix.conf
หรือไม่ต้องก็ต้องเปลี่ยนที่ Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck ซึ่งเป็น AGI Script ที่เป็นตัว return ค่าของ ชื่อ file ออกมา
คุณ Nuiz แนะนำให้เปลี่ยนที่ extensions_override_elastix.conf คือผมแก้ไขไม่เป็นนะครับไม่รู้ว่าจะเปลี่ยนอย่างไรดีนะครับ
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
ผมต้องการให้มันเป็น 2011-06-29_12:02:41_From:_เบอร์ต้นทาง_To:_เบอร์ปลายทาง_.gsm
ตอนนี้ชื่อ file เป็นแบบนี้อยู่ครับ 20110629-175610-1309344970.16.gsm ขาดเบอร์ต้นทางและปลายทางครับ



2. ปัญหาการบันทึกเสียงแบบ on demand ครับ ให้บันทึกเสียงเมื่อกด *1 ครับ เมื่อกดบันทึกแล้วและวางสายไปกดที่เมนู PBX --> Monitoring
ก็พบว่ามี record บันทึการสนทนาอยู่ครับ จากนั้นก็กด download ครับ พบว่าขึ้น 404 File not found! ครับ ไม่พบ file ครับ ??????
ตอนใช้บันทึกเสียงแบบ Record Incoming : always และ Record Outgoing : always ก็สามารถกด download เสียงได้ครับ
ตอนผมใช้ elastix version 1.5.2 สามารถ download file เสียงได้ครับ
ไม่ทราบว่ามีวิธีแก้ไขหรือไม่ครับ และอยากเปลียนชื่อ file และชนิดของ file เป็น GSM ด้วยครับ

จาก debug asterisk
-- Executing [s@macro-dial:7] Dial("SIP/7003-00000012", "SIP/7004|15|trwW") in new stack
-- Called 7004
-- SIP/7004-00000013 is ringing
-- SIP/7004-00000013 answered SIP/7003-00000012
-- <SIP/7003-00000012> Playing 'beep' (language 'en')
-- User hit '*1' to record call. filename: wav|auto-1309346257-7003-7004|m
--> ไม่ทราบว่าสามารถเปลี่ยนนามสกุล file จาก wav เป็น gsm ได้หรือไม่ครับ
-- Executing [h@macro-dial:1] Macro("SIP/7003-00000012", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/7003-00000012", "1?endmixmoncheck") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] NoOp("SIP/7003-00000012", "End of MIXMON check") in new stack
-- Executing [s@macro-hangupcall:10] GotoIf("SIP/7003-00000012", "1?nomeetmemon") in new stack
-- Goto (macro-hangupcall,s,12)
-- Executing [s@macro-hangupcall:12] NoOp("SIP/7003-00000012", "MEETME_RECORDINGFILE=") in new stack
-- Executing [s@macro-hangupcall:13] GotoIf("SIP/7003-00000012", "0?noautomon") in new stack
-- Executing [s@macro-hangupcall:14] Set("SIP/7003-00000012", "CDR(userfield)=audio:auto-1309346257-7003-7004.gsm") in new stack
-- Executing [s@macro-hangupcall:15] NoOp("SIP/7003-00000012", "TOUCH_MONITOR_OUTPUT=auto-1309346257-7003-7004") in new stack
-- Executing [s@macro-hangupcall:16] GotoIf("SIP/7003-00000012", "1?noautomon2") in new stack
-- Goto (macro-hangupcall,s,18)
-- Executing [s@macro-hangupcall:18] NoOp("SIP/7003-00000012", "MONITOR_FILENAME=") in new stack

ตรงตัวแปร MEETME_RECORDINGFILE= และ MONITOR_FILENAME= ทำไมมันไม่มีชื่อ file ครับ ????????
-- Executing [s@macro-hangupcall:19] GotoIf("SIP/7003-00000012", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,22)
-- Executing [s@macro-hangupcall:22] GotoIf("SIP/7003-00000012", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,25)
-- Executing [s@macro-hangupcall:25] GotoIf("SIP/7003-00000012", "1?theend") in new stack
-- Goto (macro-hangupcall,s,27)
-- Executing [s@macro-hangupcall:27] Hangup("SIP/7003-00000012", "") in new stack
== Spawn extension (macro-hangupcall, s, 27) exited non-zero on 'SIP/7003-00000012' in macro 'hangupcall'
== Spawn h extension (macro-dial, h, 1) exited non-zero on 'SIP/7003-00000012'
== Spawn extension (macro-dial, s, 7) exited non-zero on 'SIP/7003-00000012' in macro 'dial'
== Spawn extension (macro-exten-vm, s, 9) exited non-zero on 'SIP/7003-00000012' in macro 'exten-vm'
== Spawn extension (from-internal, 7004, 1) exited non-zero on 'SIP/7003-00000012'
-- Remote UNIX connection
-- Remote UNIX connection disconnected
elastix*CLI>


ผมได้เช็คดูว่ามีการสร้าง file ที่สนทนาหรือไม่ก็พบว่ามีการสร้าง file คัรบ
[root@elastix ~]# ll -ht /var/spool/asterisk/monitor/ | grep 7003
-rw-r--r-- 1 asterisk asterisk 51K Jun 29 18:17 auto-1309346257-7003-7004.wav --> อยากจะเปลี่ยนชื่อให้กำหนดวัน เวลา ที่โทรด้วยนะครับ และเปลี่ยชนิด file เป็น GSM ด้วยครับ
-rw-r--r-- 1 asterisk asterisk 195K Jun 29 17:55 auto-1309344912-7003-7004.wav
-rw-r--r-- 1 asterisk asterisk 143K Jun 29 17:53 auto-1309344801-7003-7004.wav
-rw-r--r-- 1 asterisk asterisk 185K Jun 29 17:51 auto-1309344692-7003-7004.wav
-rw-r--r-- 1 asterisk asterisk 325K Jun 29 17:50 auto-1309344604-7003-7004.wav
smuchcha
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 27 ส.ค. 2010 10:36

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย smuchcha » 29 มิ.ย. 2011 21:03

เรียนคุณ Nuiz

ผมเอาไปใส่ใน file ที่ชื่อ extensions_override_elastix.conf ครับ
เนื่องจากผมเห็นว่ามันมี [macro-record-enable] นี้อยู๋แล้วครับ ผมเลย copy ของคุณ nuiz ไปใส่แทนและลบของเก่าทิ้งครับ
ปกติว่า error โทรออกไม่ได้ครับ แต่ไม่ได้จด error มาครับ
หรือว่าผมต้องเอาไปใส่ใน file /etc/asterisk/extensions_additional.conf ครับ
ไม่ทราบว่าให้แทนของเก่าเลยหรือว่าเอาไปใส่เพิ่มครับ
smuchcha
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 27 ส.ค. 2010 10:36

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย smuchcha » 30 มิ.ย. 2011 19:36

เรียนคุณ Nuiz
ผมแก้ไขชื่อ file ได้แล้วครับ ผมทำดังนี้คัรบ


######### Custome file name of call recording for internal call################################
#edit by pum
#File: extensions_override_freepbx.conf
#
[macro-record-enable]
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMixMonitor()
exten => s,n(check),ExecIf($["${ARG1}"=""]?MacroExit())
exten => s,n,GotoIf($["${ARG2}"="Group"]?Group:OUT)
exten => s,n(Group),Set(LOOPCNT=${FIELDQTY(ARG1,-)})
exten => s,n,Set(ITER=1)
exten => s,n(begin),GotoIf($["${CUT(DB(AMPUSER/${CUT(ARG1,-,${ITER})}/recording),=,3)}" != "Always"]?continue)
exten => s,n,Set(TEXTEN=${CUT(ARG1,-,${ITER})})
exten => s,n,Noop(Recording enable for ${TEXTEN})
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(continue),Set(ITER=$[${ITER}+1])
exten => s,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)
exten => s,n(OUT),GotoIf($["${ARG2}"="IN"]?IN)
exten => s,n,ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),|,1):4}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(IN),ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),|,2):3}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-From${AMPUSER}-To${ARG1}-${UNIQUEID})
exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => s,n,Set(CDR(userfield)=audio:${CALLFILENAME}.${MIXMON_FORMAT})
exten => s,n,MacroExit()




### Custome file name of call recording for out to pstn ####################################################################
#
#edit
nano /etc/asterisk/extensions_additional.conf

# edit in file #
# edit marcor of route outgoing #
[outrt-001-9_PSTN]
include => outrt-001-9_PSTN-custom
exten => _9X.,1,Macro(user-callerid,SKIPTTL,)
exten => _9X.,n,Set(_NODEST=)
;edit by pum
;exten => _9X.,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _9X.,n,Macro(record-enable,${AMPUSER},OUT,,${EXTEN:1})
exten => _9X.,n,Macro(dialout-trunk,2,${EXTEN:1},,)
exten => _9X.,n,Macro(dialout-trunk,1,${EXTEN:1},,)
exten => _9X.,n,Macro(outisbusy,)

; end of [outrt-001-9_PSTN]



#edit by pum
#File: extensions_override_freepbx.conf

#
[macro-record-enable]
include => macro-record-enable-custom
exten => s,1,GotoIf($["${BLINDTRANSFER}" = ""]?check)
exten => s,n,ResetCDR(w)
exten => s,n,StopMixMonitor()
exten => s,n(check),ExecIf($["${ARG1}"=""]?MacroExit())

exten => s,n,GotoIf($["${ARG2}"="Group"]?Group:OUT)
exten => s,n(Group),Set(LOOPCNT=${FIELDQTY(ARG1,-)})
exten => s,n,Set(ITER=1)
exten => s,n(begin),GotoIf($["${CUT(DB(AMPUSER/${CUT(ARG1,-,${ITER})}/recording),=,3)}" != "Always"]?continue)
exten => s,n,Set(TEXTEN=${CUT(ARG1,-,${ITER})})
exten => s,n,Noop(Recording enable for ${TEXTEN})
exten => s,n,Set(CALLFILENAME=g${TEXTEN}-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-${UNIQUEID})
exten => s,n,Goto(record)
exten => s,n(continue),Set(ITER=$[${ITER}+1])
exten => s,n,GotoIf($[${ITER}<=${LOOPCNT}]?begin)

exten => s,n(OUT),GotoIf($["${ARG2}"="IN"]?IN)
exten => s,n,ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),|,1):4}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-From${AMPUSER}-To${ARG4}-${UNIQUEID})
exten => s,n,Goto(record)

exten => s,n(IN),ExecIf($["${CUT(DB(AMPUSER/${ARG1}/recording),|,2):3}" != "Always"]?MacroExit())
exten => s,n,Noop(Recording enable for ${ARG1})
exten => s,n,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-From${AMPUSER}-To${ARG1}-${UNIQUEID})
exten => s,n(record),MixMonitor(${MIXMON_DIR}${CALLFILENAME}.${MIXMON_FORMAT},,${MIXMON_POST})
exten => s,n,Set(CDR(userfield)=audio:${CALLFILENAME}.${MIXMON_FORMAT})
exten => s,n,MacroExit()





### bug download file of record call when you use mode on deman #######
#edit by pum
#File: extensions_override_freepbx.conf
#
[macro-hangupcall]
include => macro-hangupcall-custom
exten => s,1,GotoIf($["${TOUCH_MONITOR_OUTPUT}" = ""]?noautomon)
;edit by pum
;exten => s,n,Set(CDR(userfield)=audio:${TOUCH_MONITOR_OUTPUT}.${MIXMON_FORMAT})
exten => s,n,Set(CDR(userfield)=audio:${TOUCH_MONITOR_OUTPUT}.wav)
exten => s,n(noautomon),Noop(TOUCH_MONITOR_OUTPUT=${TOUCH_MONITOR_OUTPUT})
exten => s,n(start),GotoIf($["${USE_CONFIRMATION}"="" | "${RINGGROUP_INDEX}"="" | "${CHANNEL}"!="${UNIQCHAN}"]?skiprg)
exten => s,n,Noop(Cleaning Up Confirmation Flag: RG/${RINGGROUP_INDEX}/${CHANNEL})
exten => s,n(delrgi),Noop(Deleting: RG/${RINGGROUP_INDEX}/${CHANNEL} ${DB_DELETE(RG/${RINGGROUP_INDEX}/${CHANNEL})})
exten => s,n(skiprg),GotoIf($["${BLKVM_BASE}"="" | "BLKVM/${BLKVM_BASE}/${CHANNEL}"!="${BLKVM_OVERRIDE}"]?skipblkvm)
exten => s,n,Noop(Cleaning Up Block VM Flag: ${BLKVM_OVERRIDE})
exten => s,n(delblkvm),Noop(Deleting: ${BLKVM_OVERRIDE} ${DB_DELETE(${BLKVM_OVERRIDE})})
exten => s,n(skipblkvm),GotoIf($["${FMGRP}"="" | "${FMUNIQUE}"="" | "${CHANNEL}"!="${FMUNIQUE}"]?theend)
exten => s,n(delfmrgp),Noop(Deleting: FM/DND/${FMGRP}/${CHANNEL} ${DB_DELETE(FM/DND/${FMGRP}/${CHANNEL})})
exten => s,n(theend),Hangup
smuchcha
Silver Member
 
โพสต์: 43
ลงทะเบียนเมื่อ: 27 ส.ค. 2010 10:36

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย junglaiman » 29 มี.ค. 2012 16:38

สวัสดีครับพี่หนุ่ย พอดีผมไม่สามารถย้ายไฟล์เสียงได้ครับ ผมได้ทำตามขั้นตอนหมดแล้ว

1. mkdir /var/spool/asterisk/monitor/final

2. chown -R asterisk:asterisk /var/spool/asterisk/monitor/final

3. chmod 775 /var/spool/asterisk/monitor/final

และเพิ่มคำสั่งที่หลัง after call record ของ elastix ==> pbx ==> general setting แล้ว

/bin/mv /var/spool/asterisk/monitor/^{CALLFILENAME}.* /var/spool/asterisk/monitor/final

แต่ file เสียงยังคงถูกเก็บอยู่ที่ /var/spool/asterisk/monitor เหมือนเดิมครับ ไม่ถูกย้ายไปที่ /var/spool/asterisk/monitor/final ทั้งๆที่ทำตามขั้นตอนแล้วแต่ยังทำไม่ได้ อยากขอคำแนะนำจากพี่หนุ่ยหน่อยครับ ขอบคุณมากครับ

ผมใช้ freePBX v.2.8.1 elastix 2.2 asterisk 1.8.7
junglaiman
Bronz Member
 
โพสต์: 13
ลงทะเบียนเมื่อ: 16 ม.ค. 2012 14:29

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย junglaiman » 29 มี.ค. 2012 18:07

เพิ่มเติม ถ้า call record ระหว่าง extension นี่ file ย้ายให้ครับ แต่ถ้าเป็น call record ของ queue มันไม่ย้ายไฟล์ให้ :? :?: :?: งง ครับ ขอคำแนะนำหน่อยครับ
junglaiman
Bronz Member
 
โพสต์: 13
ลงทะเบียนเมื่อ: 16 ม.ค. 2012 14:29

Re: เทคนิคการย้ายไฟล์เสียงที่บันทึกไว้ ไปไว้โฟลเดอร์อื่น

โพสต์โดย nuiz » 30 มี.ค. 2012 12:43

เดี๋ยวลองให้นะคับ ไม่มีเครื่อง elastix 2.2 หน่ะครับ หาก่อน
** หากมีปัญหากับอุปกรณ์ที่ซื้อมาเองหรือบริการที่ทำขึ้นมาเอง ให้โพสต์ถามในเว็บบอร์ดนี้นะครับ **
** งานเร่งด่วนติดต่อว่าจ้างที่เบอร์ 08-5161-9439 อีเมล์ iamaladin@gmail.com ไลน์ NuizVoip ครับ **
nuiz
Diamond Member
 
โพสต์: 7058
ลงทะเบียนเมื่อ: 24 มี.ค. 2010 09:33


ย้อนกลับไปยัง Elastix - Unified Communications Software

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

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