Home
FreePBX-17 - ตอนที่ 5 - setup FreePBX สำหรับ office (ต่อ)
- Details
- Written by Super User
- Category: FreePBX
- Hits: 24
ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/
ในตอนนี้เราจะมาคอนฟิก inbound routes กัน ให้กลับไปดู requirements ในบทความตอนนที่ 3 อีกครั้ง ว่าโทรเข้ามาแล้ว
ระบบจะ route calls อย่างไร และ เสียงตอบรับที่จะใช้งานมีอะไรบ้าง
1. สร้างเสียงตอบรับ
เสียงตอบรับในระบบมี ดังนี้
1.1 แอดเวนเทค สวัสดีค่ะ ติดต่อแผนกขาย กด 1 ติดต่อแผนกซัพพอร์ท กด 2 ติดต่อแผนกธุรการ กด 3 หรือ
กดเบอร์ภายในที่ท่านทราบ
1.2 ขณะนี้เป็นเวลาปิดทำการ กรุณาโทรมาใหม่ในเวลาทำการ วันจันทร์ถึงวันศุกร์ ตั้งแต่เก้านาฬิกา
ถึงสิบแปดนาฬิกา
1.3 ท่านกดผิด กรุณากดใหม่
สามารถบันทึกเสียงด้วย smart phone แล้วแปลงไฟล์ให้เป็น .wav, 16-bit resolution, 8000-Hz sampling rate, mono
หรือ ให้ generate เสียงจาก text ก็ได้ ลองใช้บริการของ botnoi คลิกไปที่ https://voice.botnoi.ai เสียงที่ได้มาต้องแปลงเป็น
format ที่ต้องการ คือ .wav, 16-bit resolution, 8000-Hz sampling rate, mono เสียก่อนแล้วค่อย upload ขึ้น server
FreePBX-17 ในบทความนี้เราจะไม่แสดงวิธีอัดเสียง generate เสียง และแปลงเสียง แต่จะแสดงการ upload ขึ้น server
FreePBX-17 โดยไฟล์ในหัวข้อ 1.1 ชื่อ open, หัวข้อ 1.2 ชื่อ closed และ หัวข้อ 1.3 ชื่อ invalid
คลิกไปที่ Admin -> System Recordings -> Add Recording
Name, Description ใส่ตามต้องการ
คลิก Browse เพื่อเลือกไฟล์จาก PC จะได้ File List = custom/open ดังรูป (open คือ ไฟล์ที่เลือกจาก PC)
แล้วคลิก Submit, Apply Config
ทำอีกสองไฟล์ คือ closed และ invalid ตามรูปข้างล่าง
ไฟล์ closed
ไฟล์ invalid
2. สร้าง queues หรือ ring groups
จาก requirements จะเห็นการกด 1 ขณะเล่นเสียงตอบรับระบบจะส่ง calls ไปฝ่ายขาย (exten 201 - 210)
กด 2 ระบบจะส่ง calls ไปฝ่าย support (exten 301 - 305) และ กด 3 ระบบจะส่ง calls ไปฝ่าย admin
เราอาจจะสร้าง queue หรือ ring group ให้แต่ละฝ่ายก็ได้ และ กำหนด ring strategy ตามต้องการ เช่น
ring ตามลำดับ, ring พร้อมกัน, หรือ ring แบบสุ่ม queue จะมี options ให้เลือกมากกว่า ring group
เราจะเลือกใช้ queue ดังนี้
queue 1000 สำหรับฝ่ายขาย
queue 2000 สำหรับฝ่าย support
queue 3000 สำหรับฝ่าย admin
คลิกไปที่ Applications -> Queues -> Add Queue
Queue Number = 1000
Queue Name = Sales
Agent Restrictions = Entensions Only
Ring Strategy = fewestcalls (เลือกได้ตามต้องการ)
Autofill = yes
Skip Busy Agents = Yes
Fail Over Destination = Terminate Call -> Hangup
Options อื่นปล่อยเป็นค่า defaults
เลือก Static Agents = 201 - 210
Max Wait Time = 3 minutes (ตั้งค่าตามต้องการ)
Options อื่นปล่อยเป็นค่า defaults
ทำจนครบทั้ง 3 queues
3. สร้าง IVR
เรามี IVR สองตัว คือ IVR open (ในเวลางาน) และ IVR closed (นอกเวลางาน)
คลิกไปที่ Applications -> IVR -> Add IVR
IVR Name = open
IVR Description = open hours
Announcement = open
Enable Direct Dial = Enabled (สามารถกด extension ขณะฟังเสียง IVR)
Timeout = 3 (วินาที)
Invalid Retries = 2
Invalid Retry Recording = invalid
Append Announcement to invalid = Yes
Invalid Recording = None
Invalid Destination = Queues -> 1000 (Sales)
Timeout Retry = 0
Timeout Recording = None
Timeout Destination = Terminate Call -> Hangup
IVR Entries
1 -> Queues -> 1000 (Sales)
2 -> Queues -> 2000 (Support)
3 -> Queues -> 3000 (Admin)
Options อื่นปล่อยเป็นค่า defaults
สร้าง IVR closed อีกตัว
IVR Name = closed
IVR Description = closed hours
Announcement = closed
Timeout = 3 (วินาที)
Invalid Retries = 0
Invalid Recording = None
Invalid Destination = Terminate Call - Hangup
คลิก Submit, Apply Config
Timeout Retries = 0
Timeout Recording = None
Timeout Destination = Terminate Call -> Hangup
Options อื่นปล่อยเป็นค่า defaults
คลิก Submit, Apply Config
4. สร้าง Time Groups, Time Conditions
คลิกไปที่ Applications -> Time Groups -> Add Time Group
Description = open hours
Time to Start = 09:00
Time to Stop = 18:00
Week Day Start = Monday
Week day Stop = Friday
คลิกไปที่ Applications -> Time Conditions -> Add Time condition
Time Condition name = open hours
Time Group = open hours
Destination matches = IVR open
Destination non-matches = IVR closed
คลิก Submit, Apply Config
5. สร้าง Inbound Routes
คลิกไปที่ Connectivity -> Inbound Routes -> Add Inbound Route
Description = From-TOT (ตั้งชื่อตามต้องการ)
DID Number = 02XXXXXXX (หมายเลขที่ได้จาก TOT(NT)
Set Destimation = Time Conditions -> open hours
Options อื่นปล่อยเป็นค่า defaults
คลิก Submit, Apply Config
เป็นอันว่าเสร็จขั้นตอนการคอนฟิกระบบ
6. Test ก่อนใช้งานจริง
พยามทดสอบทุกๆ scenarios ก่อนใช้งานจริง :)
FreePBX-17 - ตอนที่ 4 - setup FreePBX สำหรับ office (ต่อ)
- Details
- Written by Super User
- Category: FreePBX
- Hits: 31
ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/
ในตอนที่แล้วเราสร้าง extensions แล้ว register IP phones เข้ากับ IP-PBX (FreePBX-17) โทรภายในหากันได้แล้ว
ในตอนนี้จะสร้าง SIP trunks และ outbound routes เพื่อโทรออกไปหา โทรศัพท์มือถือและโทรศัพท์บ้าน
1. สร้าง SIP trunks
คลิกไปที่ Connectivity -> Trunks -> Add Trunk -> Add SIP (chan_pjsip) Trunk
Trunk Name = ตั้งชื่อ trunk ตามต้องการ
Outbound CallerID คือ เบอร์ 02XXXXXXX ที่ได้จาก TOT (NT)
Username / Auth username = 02XXXXXX ที่ได้จาก TOT (NT)
Secret = xxxxxxxxx ที่ได้จาก TOT (NT)
SIP Server = 172.30.21.92 ที่ได้จาก TOT (NT)
คลิก Submit แล้ว Apply Config
คลิกไปที่ Reports -> Asterisk Info -> Registries จะแสดง ดังรูปข้างล่าง
จะเห็นว่า SIP trunks status = registered พร้อมใช้งานแล้ว
2. สร้าง Outbound Routes
คลิกไปที่ Connectivity -> Outbound Routes -> Add Outbound Route
Route Name = TOT = ตั้งชื่อตามต้องการ
Add routes tot-1, tot-2 (สร้างในหัวข้อ 1)
ใน TAB Dial Patterns
บรรทัดแรก สำหรับโทรออกเบอร์บ้าน (กทม. ตจว.)
บรรทัดที่สอง สำหรับโทรออกเบอร์มือถือ
TAB Additional Settings คลิก Force Call Recording (บันทึกเสียงโทรออก)
3. ทดสอบ
จาก IP phones กด 902XXXXXXX เพื่อโทรออกเบอร์บ้าน และ กด 908XXXXXXXX เพื่อโทรออกมือถือ
ถ้าโทรออกได้ คุยกับปลายทางได้ คลิกไปที่ Reports -> CDR Reports เพื่อดูว่ามีการบันทึกเสียงตามที่
คอนฟิกไว้หรือไม่
FreePBX-17 - ตอนที่ 2 - setup เบื้องต้น
- Details
- Written by Super User
- Category: FreePBX
- Hits: 181
ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/
1. หลังจาก reboot server ในตอนที่แล้ว ใช้ web browser เชื่อมต่อไปที่ http://server-ip จะได้หน้าเว็บ ดังนี้
กำหนด Username, Password, Email address, System identifier ตามต้องการ แล้วคลิกเพื่อทำขั้นต่อไป จะได้หน้า login ดังนี้
คลิก FreePBX Administration เพื่อ login
login ด้วย Username, Password ที่กำหนดก่อนหน้านี้
เลือก Sound Prompts Language และ System Language คลิก Submit, Apply Config ระบบจะเข้าหน้า dashboard ตามรูปข้างล่าง
เป็นอันว่าเสร็จสิ้นการ setup เบื้องต้น
FreePBX-17 - ตอนที่ 3 - setup FreePBX สำหรับ office
- Details
- Written by Super User
- Category: FreePBX
- Hits: 79
ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/
1. ขั้นตอนแรกต้องศึกษาความต้องการ เช่น สายใน (extensions) จำนวนเท่าไร เป็นแบบไหน เช่น IP phones หรือ soft phones
หรือ analog phones ผ่าน ATAs สายในจะเพิ่มขึ้นเท่าไรในปีที่ 2, ปีที่ 3 สายนอก (trunk) จำนวนเท่าไร เป็นแบบไหน
สายทองแดงธรรมดา หรือ SIP trunk และ จะเพิ่มขึ้นเท่าไรในปีที่ 2, ปีที่ 3 LAN สำหรับโทรศัพท์ต้องแยกจาก LAN data หรือไม่
PC/server ที่จะนำมาใช้เป็น IP-PBX จะต้องมี specification อย่างไร ต้องมีระบบสำรองไฟฟ้าสำหรับ IP-PBX หรือไม่
2. ความต้องการอื่นๆ เช่น extension ใช้กี่ digits มีการบันทึกเสียงหรือไม่ มีระบบตอบรับหรือไม่ มี voicemail หรือไม่ call flow
อย่างไร โทรออกต้องตัด 9 หรือไม่ หรือ กดเบอร์โทรศัพท์ปลายทางได้เลย
3. เมื่อรวบรวมความต้องการทั้งหมดแล้ว เราก็สามารถเริ่มออกแบบระบบได้ (ในตอนต่อๆ ไปเราจะลองทำ load test IP-PBX เพื่อดูว่า
PC/server spec ต่างๆ จะรองรับ load (concurrent call, call per second) ได้มากน้อยแค่ไหน) ในบทความนี้เราจะลองกำหนด
ความต้องการ ดังนี้
- 20 extensions ใช้ IP phones ทั้งหมด (IP phones set เป็น static IP address)
- SIP trunk (02-xxx-xxxx) ของ NT ทั้งหมด
- ใช้ LAN ที่มีอยู่แล้ว (ใช้ร่วมกับ data)
- บันทึกเสียงขณะคุยกับสายนอก่เท่านั้น
- ใช้ 3 digits extensions, แผนกขาย 201 - 210, technical support 301 - 305, admin 401 - 405
- โทรออกสายนอก กด 9+number เช่น 9025255134, 90818052617
- ไม่ใช้ voicemail
- เวลาทำการ จันทร์ - ศุกร์ 09:00 - 18:00
- เสียงตอบรับในเวลาทำการ -> แอดเวนเทค สวัสดีค่ะ ติดต่อแผนกขาย กด 1 ติดต่อแผนกซัพพอร์ท กด 2 แผนกธุรการ กด 3 หรือ
กดเบอร์ภายในที่ท่านทราบ
- เสียงตอบรับนอกเวลาทำการ -> ขณะนี้เป็นเวลาปิดทำการ กรุณาโทรมาใหม่ในเวลาทำการ วันจันทร์ถึงวันศุกร์ ตั้งแต่เก้านาฬิกา
ถึงสิบแปดนาฬิกา
4. ลงมือทำ
4.1 กำหนด static IP address ให้ IP-PBX = 192.168.100.17 (ขึ้นอยู่กับแต่ละ site, กำหนดได้ตามต้องการ)
4.2 กำหนด static IP address ให้ IP phones = 192.168.100.21 - 192.168.100.40 (ขึ้นอยู่กับแต่ละ site, กำหนดได้ตาม
ต้องการ, อาจจะใช้ dynamic IP address ก็ได้ ขึ้นอยู่กับการออกแบบ network) network diagram ตามรูปข้างล่าง
4.2 สร้าง extension login เข้า IP-PBX คลิกไปที่ Connectivity -> Extensions -> Add Extension -> Add New SIP
[chan_pjsip] Extension
ใส่ User Extension = 201
ใส่ Display Name = 201 หรือ จะเป็นชื่อผู้ใช้งานก็ได้ โดยใส่เป็นภาษาอังกฤษ เช่น Somchai ชื่อนี้จะไปแสดงที่ IP phone
ปลายทาง เมื่อเบอร์นี้โทรไปหา IP phone ปลายทาง
Secret จะกำหนดเอง หรือ ใช้ตัวที่ระบบกำหนดม่ให้ก็ได้
คลิกไปที่ Advanced -> Recording Options เพื่อกำหนดเงื่อนไขการบันทึกเสียงตาม requirements ในข้อ 3 แล้วคลิก Submit
และ Apply Config
ก็จะได้ extension 201 ดังรูป
สร้างเบอร์อื่นๆ แบบเดียวกัน จนครบ 20 เบอร์
คลิกไปที่ Settings -> Asterisk SIP Settings -> NAT Settings
ใส่ Local Networks ตามรูป (สามารถใส่ local network ได้หลายชุด ตามต้องการ) ลองคอนฟิก IP phone 2 ตัว extension 201
และ extension 202
Account Name = SIP User ID = Authenticate ID = User Extension (ใน IP-PBX)
SIP Server = IP address ของ IP-PBX
Authenticate Password = Secret (ใน IP-PBX)
Extension 202 ก็คอนฟิกเช่นเดียวกัน
ลองโทรหากัน ถ้าทุกอย่าง OK เราก็คอนฟิก ติดตั้ง IP phones ที่เหลือทั้งหมด ถึงตอนนี้เราก็โทรภายในกันได้แล้ว ตอนหน้าเราจะ
สร้าง SIP trunks และ Outbound Routes เพื่อโทรออกข้างนอกได้
FreePBX-17 - ตอนที่ 1 - ติดตั้ง (Debian-12/Asterisk-20/FreePBX-17)
- Details
- Written by Super User
- Category: FreePBX
- Hits: 183
ซื้อสินค้า VoIP คลิกไปที่ https://www.lazada.co.th/shop/adventek/
ในบทความนี้ เราจะติดตั้ง FreePBX-17 และ Asterisk-20 บน Debian-12 ขั้นตอนแรกให้ติดตั้ง Debian-12 Minimal
ตาม link นี้ครับ ติดตั้ง Debian-12 Minimal แล้วกำหนด fixed IP address ตาม link Set fixed IP address on debian-12
จากนั้น login ผ่าน secure shell (putty บน Windows) โดยใช้ user / password ที่กำหนดตอนติดตั้ง เมื่อ login แล้ว
จะได้ prompt ดังนี้
david@debian:~$
user = david, hostname = debian
เปลี่ยน user จาก david เป็น root เพื่อติดตั้ง program
david@debian:~$ su -
ติดตั้งโปรแกรมที่จำเป็น
root@debian:~# apt -y install locales sngrep build-essential net-tools aptitude openssh-server apache2 mariadb-server mariadb-client odbc-mariadb bison doxygen flex curl sox libncurses5-dev libssl-dev libmariadb-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool-bin autoconf git subversion uuid uuid-dev libiksemel-dev postfix mailutils nano libspandsp-dev libcurl4-openssl-dev libical-dev libneon27-dev libasound2-dev libogg-dev libvorbis-dev libicu-dev libsrtp*-dev unixodbc unixodbc-dev xinetd e2fsprogs dbus sudo xmlstarlet lame ffmpeg dirmngr linux-headers-`uname -r` gnupg2 nodejs npm ipset fail2ban redis-server chrony incron software-properties-common python3-mysqldb default-libmysqlclient-dev
root@debian:~# apt -y install php8.2 php8.2-curl php8.2-cli php8.2-mysql php8.2-mbstring php8.2-gd php8.2-xml php8.2-intl php8.2-redis php8.2-bz2 php8.2-ldap php8.2-bcmath php8.2-sqlite3 php-pear libapache2-mod-php
คอนฟิก odbc
แก้ไขไฟล์ /etc/odbcinst.ini ดังนี้
[MySQL]
Description = ODBC for MariaDB
Driver = libmaodbc.so
FileUsage = 1
แก้ไขไฟล์ /etc/odbc.ini ดังนี้
[MySQL-asteriskcdrdb]
Description = MariaDB connection to 'asteriskcdrdb' database
driver = MySQL
server = localhost
database = asteriskcdrdb
Port = 3306
Socket = /var/run/mysqld/mysqld.sock
option = 3
ติดตั้ง Asterisk จาก Source Code
ไปที่ folder /usr/src
root@debian:~# cd /usr/src
ดาวน์โหลด Asterisk-20
root@debian:~# wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
แตกไฟล์
root@debian:~# tar zxvf asterisk-20-current.tar.gz
root@debian:~# cd /usr/src/asterisk-20*/
root@debian:~# ./contrib/scripts/get_mp3_source.sh
root@debian:~# ./contrib/scripts/install_prereq install
root@debian:~# make distclean
root@debian:~# ./configure --with-jansson-bundled
root@debian:~# cd /usr/src/asterisk-20*/
root@debian:~# make menuselect
เลือก options ตามต้องการ หรือ ใช้ค่า default ก็ได้
เพิ่ม user asterisk
root@debian:~# adduser asterisk --disabled-password --gecos "Asterisk User"
compile โปรแกรม
root@debian:~# make && make install && chown -R asterisk:asterisk /var/lib/asterisk
ติดตั้งคอนฟิกตัวอย่าง
root@debian:~# make samples
ติดตั้ง FreePBX
root@debian:~# cd /usr/src
root@debian:~# git clone -b release/17.0 --single-branch https://github.com/freepbx/framework.git freepbx
root@debian:~# cd /usr/src/freepbx
root@debian:~# ./start_asterisk start
root@debian:~# ./install -n
root@debian:~# fwconsole ma installall
root@debian:~# fwconsole chown
root@debian:~# fwconsole restart
edit file /etc/systemd/system/freepbx.service ดังนี้
[Unit]
Description=Freepbx
After=mariadb.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/sbin/fwconsole start -q
ExecStop=/usr/sbin/fwconsole stop -q
[Install]
WantedBy=multi-user.target
กำหนดให้ run freepbx service ตอน boot server
root@debian:~# systemctl enable freepbx
คอนฟิก web server (apache2)
run apache2 ด้วย user asterisk, group asterisk
root@debian:~# sed -i 's/\(APACHE_RUN_USER=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars
root@debian:~# sed -i 's/\(APACHE_RUN_GROUP=\)\(.*\)/\1asterisk/g' /etc/apache2/envvars
root@debian:~# chown asterisk: /run/lock/apache2
root@debian:~# mv /var/www/html/index.html /var/www/html/index.html.disable
root@debian:~# a2enmod rewrite
root@debian:~# a2enmod ssl
reboot server
root@debian:~# reboot
บทความตอนที่ 2 จะใช้ web interface เพื่อคอนฟิกระบบ
Page 1 of 2