การตั้งค่าเครื่องหมายดอกจันระบบโทรศัพท์ IP การติดตั้งและกำหนดค่าระบบโทรศัพท์ Asterisk บน Linux Ubuntu

บทความนี้เป็นหมายเหตุในกรณีที่ฉันต้องจำวิธีกำหนดค่าเครื่องหมายดอกจันเพื่อรับและส่งสาย หมายเหตุนี้ควรจะเพียงพอที่จะกำหนดค่าสถานีสำนักงานบน IP pbx เครื่องหมายดอกจัน- จนถึงตอนนี้ ฉันยังไม่มีความคิดหรือประสบการณ์ที่ชัดเจนในการกำหนดค่า Asterisk ให้ทำงานโดยไม่ต้องใช้ FreePbx นั่นคือการใช้เฉพาะไฟล์การกำหนดค่าและคอนโซล และตอนนี้ฉันแค่เรียนรู้สิ่งนี้ บนอินเทอร์เน็ต การตั้งค่าทั้งหมดมีไว้เพื่อแก้ไขปัญหาใดปัญหาหนึ่ง แต่ฉันไม่เห็นบทความที่สามารถให้พื้นฐานอย่างน้อยที่สุดสำหรับการกำหนดค่าขั้นต่ำของสถานี IP บางทีฉันอาจค้นหาได้ไม่ดีนัก

ดังนั้นฉันจึงรวบรวมและติดตั้งเครื่องหมายดอกจันในโฟลเดอร์ /etc/asterisk ซึ่งมีไฟล์การกำหนดค่าจำนวนมาก อะไรต่อไป?

1. ความสามารถของสมาชิกภายในในการโทรหากัน

2. การจัดตั้งสายภายนอกเพื่อให้สถานีสามารถรับบริการการเข้าถึงเส้นทางสายเมือง ตัวเลขทางไกลและรับสายเรียกเข้า

3. การตั้งค่าความสามารถในการโทรไปยังสมาชิกในเมืองและหมายเลขทางไกล และรับสายจากในเมือง

ต่อไปนี้เป็นงานหลักสามประการที่ต้องแก้ไข โดยธรรมชาติแล้วโครงการอาจแตกต่างกัน นั่นคือสมาชิกสามารถรวมเป็นกลุ่มได้อาจมีผู้ให้บริการโทรคมนาคมภายนอกหลายรายสายเรียกเข้าสามารถส่งไปยังเครื่องตอบรับอัตโนมัติคิวหรือทั้งสองอย่าง รูปแบบการบริการอาจแตกต่างกันและซับซ้อนมากขึ้น แต่จะต้องเป็นไปตามเงื่อนไขสามข้อแรกไม่ว่าในกรณีใด

ดังนั้นสิ่งแรกที่เราทำคือสร้างสมาชิกภายใน (เพียร์) ในไฟล์ sip.conf

สมาชิก A จะมีการตั้งค่าดังต่อไปนี้:

ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
ประเภท=เพื่อน
ชื่อผู้ใช้=101
ความลับ=รหัสผ่าน
มีคุณสมบัติ=ใช่
บริบท=101
หมายเลขผู้โทร=101
โฮสต์ = ไดนามิก
ขีดจำกัดการโทร=1
สามารถเชิญใหม่ได้=ใช่
รหัสบัญชี=101
amaflags=การเรียกเก็บเงิน
ปฏิเสธ=0.0.0.0/0
ใบอนุญาต=192.168.0.66

ที่ไหน:
disallow=all ห้ามใช้ตัวแปลงสัญญาณทั้งหมดยกเว้น G.711
อนุญาต=ulaw
อนุญาต = อนุญาต

type=friend พารามิเตอร์นี้สามารถรับค่าได้สามค่า:

- เพื่อนประเภทนี้ใช้สำหรับโทรเข้าและโทรออก สำหรับสายเรียกเข้า ชื่อผู้ใช้และรหัสผ่านจะไม่ถูกตรวจสอบ แต่จะตรวจสอบเฉพาะที่อยู่ IP และหมายเลขพอร์ตของต้นทางการโทร

- ผู้ใช้รายการที่สามารถโทรออกได้เท่านั้น

- เพื่อนรายการที่เป็นทั้งเพียร์และผู้ใช้
ชื่อผู้ใช้=101
ความลับ=รหัสผ่าน
เข้าสู่ระบบและรหัสผ่านตามลำดับ

ส่งข้อความ SIP ประเภท Options เป็นระยะเพื่อตรวจสอบความพร้อมของอุปกรณ์สำหรับการลงทะเบียนซึ่งมีประโยชน์เมื่อทำงานผ่าน NAT เพื่อบันทึกค่าในตารางการแปล

ชื่อบริบท พร้อมด้วยกฎการกำหนดเส้นทาง

ID ผู้โทรของหมายเลขของเรา

โฮสต์ = ไดนามิก
IP โฮสต์ที่จะลงทะเบียน

ขีดจำกัดการโทร=1
(เคาน์เตอร์รับสาย)
จำกัดการโทรพร้อมกัน คุณสามารถกำหนดจำนวนช่องได้ที่นี่

สามารถเชิญใหม่ได้=ใช่
(ไดเร็กมีเดีย)

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

รหัสบัญชี=101
amaflags=การเรียกเก็บเงิน

บันทึก CDR สำหรับฟิลด์รหัสบัญชีจะมีค่า 101
ค่าของฟิลด์แฟล็ก AMA สำหรับการโทรออกจากผู้ใช้ SIP รายนี้

ปฏิเสธ=0.0.0.0/0
ใบอนุญาต=192.168.0.66
ACL ip ซึ่งเราจะอนุญาตให้ลงทะเบียน

ในทำนองเดียวกันสำหรับผู้สมัครสมาชิก B:

ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
ประเภท=เพื่อน
ชื่อผู้ใช้=102
ความลับ=รหัสผ่าน
มีคุณสมบัติ=ใช่
บริบท=102
หมายเลขผู้โทร=102
โฮสต์ = ไดนามิก
ขีดจำกัดการโทร=1
สามารถเชิญใหม่ได้=ใช่
รหัสบัญชี=102
amaflags=การเรียกเก็บเงิน
ปฏิเสธ=0.0.0.0/0
ใบอนุญาต=192.168.0.67

ตัวเลือกเพิ่มเติมในงานฉลองที่อาจมีประโยชน์:

ขนส่ง=tcp,udp
ฉันสามารถทำงานได้ไม่เพียงแค่ใช้ udp เท่านั้น แต่ต้องตั้งค่า tcpenable=yes โดยทั่วไปด้วย
rtptimeout=180
rtpholdtimeout=420

มีประโยชน์สำหรับไคลเอนต์ SIP ที่ไม่วางสายเมื่อปิดหรือยกเลิกการเชื่อมต่อ ใน ในกรณีนี้เซสชัน RTP จะสามารถรีเซ็ตตัวเองได้โดยการหมดเวลา rtpholdtimeout - หากสายถูกพักสาย

nat=force_rport,ตลก

หากอุปกรณ์อยู่หลัง NAT เราจะแก้ไขงานผ่าน rport ส่งแพ็กเก็ต RTP กลับไปยังที่อยู่ IP และพอร์ตที่ได้รับโดยไม่สนใจข้อมูลจาก SDP

ค่าเริ่มต้นหมดอายุ=60
เวลาหมดอายุของการลงทะเบียนเป็นวินาทีสำหรับการลงทะเบียนขาเข้าและขาออก

dtmfmode=rfc2833

เราจะทำงานร่วมกับสัญญาณ DTMF อย่างไร

1. ดังนั้นงานแรก การตั้งค่าการกำหนดเส้นทางระหว่างไคลเอนต์ sip 101 และ 102 ในเวอร์ชันที่ง่ายที่สุดสามารถแก้ไขได้ด้วยหนึ่งบรรทัดในไฟล์ sip.conf และรวมการกำหนดค่า


ขยาย => _XXX,1,Dial(SIP/$(EXTEN),20,T)

สะดวกในการใช้งาน sip.conf ดังนี้:

รวม => in_out_peer_local

ตอนนี้ผู้สมัครสมาชิก 101 จะสามารถสื่อสารกับผู้สมัครสมาชิก 102 และในทางกลับกัน 102 จะสามารถโทร 101 ได้

2. เพื่อสร้างเงื่อนไขที่สมาชิกภายในจะสามารถเข้าถึงสายภายนอกได้ เราจะเชื่อมต่อสถานีกับผู้ให้บริการโทรคมนาคมโดยใช้จิบเดียวกัน

นั่นคือเราจะสร้างลำตัว
ประเภท = เพื่อน
โฮสต์=XX.XXX.XXX.XX
พอร์ต=5060
fromdomain=ip ของสถานีของเรา
แนท=ไม่
ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
อนุญาต=gsm
สามารถเชิญใหม่ได้=ไม่
;อนุญาต=g722
trustpid=ใช่
sendrpid=ใช่
dtmfmode=rfc2833
มีคุณสมบัติ=ใช่
ไม่ปลอดภัย = เชิญพอร์ต
ปฏิเสธ=0.0.0.0/0.0.0.0
ใบอนุญาต=XX.XXX.XXX.XX/255.255.255.255
บริบท=ให้

การตั้งค่า Trunk นั้นคล้ายคลึงกับการตั้งค่าเพียร์มาก โดยหลักการแล้วนี่คือเพียร์ ซึ่งเป็นตัวเลือกที่สำคัญ
fromdomain – ตั้งค่า fromdomain ในแพ็กเก็ต sip เพื่อให้คุณสามารถเข้าใจว่าจะส่งแพ็กเก็ต sip กลับไปที่สถานีของเราได้ที่ไหน
trustpid=ใช่
sendrpid=ใช่

จะเชื่อถือหรือไม่ได้รับ Remote-Party-ID

ไม่ปลอดภัย = เชิญพอร์ต

เราไม่ต้องการการรับรองความถูกต้องของข้อความเชิญที่เข้ามา เราไม่ตรวจสอบหมายเลขพอร์ตเพียงเพื่อให้สอดคล้องกับที่อยู่ IP

3. มันเป็นเรื่องเล็ก ๆ น้อย ๆ ทันทีที่เปิดใช้งาน trunk คุณจะต้องลงทะเบียนเส้นทางขาออกเพื่อโทรไปยังสมาชิก A และ B
ดูเหมือนว่ามาตรฐานโดยพฤตินัยจะบอกว่าให้ตั้งค่าการสื่อสารขาออกก่อนเสมอ

การสร้างบริบทสำหรับการโทรออก

สำหรับการโทรออกไปยังเมือง


exten => _XXXXXX,1,Dial(SIP/ ผู้ให้บริการ /$(EXTEN))
ขยาย => _XXXXXX,n,วางสาย

สำหรับการโทรออกไปยังจุดหมายปลายทางทางไกล


exten => _8.,1,Dial(SIP/ ผู้ให้บริการ /$(EXTEN))
ขยาย => _8.,n,วางสาย

หลังจากที่การเชื่อมต่อขาออกใช้งานได้ เราจะตั้งค่าการเชื่อมต่อขาเข้า

ในกรณีง่ายๆ ที่ไม่มีตัวแจ้งอัตโนมัติ กลุ่มและคิว จะมีหน้าตาเช่นนี้


ขยาย => 2466754,1,Dial(SIP/$(EXTEN))
ขยาย => 2466754,n,วางสาย

สถานีใดๆ ก็ตามสามารถกำหนดค่าได้ในลักษณะเดียวกันตามหลักการที่กล่าวไว้ข้างต้น

Asterisk เป็นโซลูชันระบบโทรศัพท์คอมพิวเตอร์แบบโอเพ่นซอร์สที่รองรับโปรโตคอล VoIP, SIP และ PJSIP สำหรับระบบปฏิบัติการ Linux หากคุณเชื่อมต่ออุปกรณ์ที่เหมาะสมเข้ากับคอมพิวเตอร์ของคุณโดยใช้เครื่องหมายดอกจันคุณสามารถสร้างสถานี ATC เต็มรูปแบบได้ คุณสมบัติหลักของโปรแกรม ได้แก่ ข้อความเสียง การประชุม เมนูเสียงแบบโต้ตอบ และการกระจายสาย

ในบทความนี้เราจะดูวิธีการติดตั้ง Asterisk 13 บน Ubuntu 16.04 ที่สุด เวอร์ชันใหม่โปรแกรมไม่ได้อยู่ในที่เก็บอย่างเป็นทางการเนื่องจากผู้ใช้ทั่วไปไม่ได้ใช้งานบ่อยนัก ดังนั้นเราจะต้องรวบรวมจากแหล่งที่มา

การติดตั้งเครื่องหมายดอกจันบน Ubuntu 16.04

หากต้องการสร้างจากแหล่งที่มา เราจะต้องดำเนินการส่วนใหญ่ในนามของ superuser ดังนั้นเราจะได้รับทันที สิทธิ์เต็มในระบบ:

โปรดทราบว่าหากคุณเข้าสู่ระบบเซิร์ฟเวอร์ผ่าน ssh ในฐานะรูท คุณจะยังคงต้องเชื่อมต่อในฐานะผู้ใช้ทั่วไป จากนั้นจึงเปลี่ยนไปใช้คอนโซลรูทเท่านั้น ถัดไปคุณต้องติดตั้งการพึ่งพาเพื่อให้โปรแกรมทำงาน:

apt-get ติดตั้ง build-essential wget libssl-dev libncurses5-dev libnewt-dev libxml2-dev linux-headers-$ (uname -r) libsqlite3-dev uuid-dev การโค่นล้ม git

ซีดี /usr/src
$ wget downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

หากต้องการคลายแพ็กซอร์ส ให้พิมพ์:

tar zxvf เครื่องหมายดอกจัน-13-current.tar.gz

ก่อนที่จะคอมไพล์โปรแกรม เราจำเป็นต้องสร้างและติดตั้ง pjproject ก่อน ขั้นแรก ให้ดาวน์โหลดแหล่งที่มา:

โคลนคอมไพล์ git://github.com/asterisk/pjproject pjproject
$ ซีดี pjproject
$ ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr CFLAGS = "-O2 -DDEBUG"
$ make dep make && ทำการติดตั้ง
$ldconfig
$ ldconfig -p|grep pj

ในที่สุด เราก็พร้อมที่จะสร้างและติดตั้ง Asterisk บน Ubuntu 16.04 แล้ว:

ซีดี .. contrib/scripts/get_mp3_source.sh
$ contrib/scripts/install_prereq ติดตั้ง

คำสั่งเหล่านี้จะช่วยให้คุณสามารถติดตั้งการอ้างอิงบางอย่างสำหรับการเล่น MP3 อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ และคุณจะต้องป้อนรหัสประเทศด้วย ต่อไปเราจะเริ่มการชุมนุม:

./configure && ทำเมนูเลือก && ทำ && ทำการติดตั้ง

เมื่อการติดตั้งเสร็จสมบูรณ์ ให้รันคำสั่งต่อไปนี้เพื่อหลีกเลี่ยงการสร้างไฟล์การกำหนดค่าหลายร้อยไฟล์ด้วยตนเอง:

หากต้องการติดตั้งสคริปต์เริ่มต้นที่จะอนุญาตให้เครื่องหมายดอกจันเริ่มทำงานโดยอัตโนมัติ ให้รัน:

ทำการกำหนดค่า ldconfig

ตอนนี้คุณสามารถเริ่มเซิร์ฟเวอร์เครื่องหมายดอกจันและตรวจสอบให้แน่ใจว่าทุกอย่างใช้งานได้จริง:

เครื่องหมายดอกจันบริการเริ่มต้น

และดูข้อมูลเกี่ยวกับยูทิลิตี้ผ่านเทอร์มินัล:

หากทุกอย่างถูกต้องและการติดตั้ง Asterisk บน Ubuntu 16.04 สำเร็จ ทุกอย่างก็จะทำงานได้

การตั้งค่าเครื่องหมายดอกจันบน Ubuntu 16.04

โปรแกรมทำงานในฐานะ superuser แต่เราต้องการให้สามารถทำงานได้ในฐานะผู้ใช้เครื่องหมายดอกจัน ดังนั้นเราจึงต้องทำการตั้งค่าเพิ่มเติมอีกเล็กน้อย ดังนั้นระบบของคุณจะเข้า ความปลอดภัยมากขึ้น- ก่อนอื่นคุณต้องหยุดบริการที่ทำงานอยู่:

กลุ่มเพิ่มเครื่องหมายดอกจัน
$ useradd -d /var/lib/asterisk -g เครื่องหมายดอกจัน

ต่อไปเราต้องเปลี่ยนสคริปต์การเริ่มต้นเพื่อให้โปรแกรมเปิดตัวเป็นผู้ใช้ที่ต้องการ เราสามารถแก้ไขไฟล์ /etc/default/asterisk ด้วยตนเองได้ แต่จะง่ายกว่าในการใช้คำสั่งต่อไปนี้:

sed -i "s/#AST_USER="เครื่องหมายดอกจัน"/AST_USER="เครื่องหมายดอกจัน"/g" /etc/default/asterisk
$ sed -i "s/#AST_GROUP="เครื่องหมายดอกจัน"/AST_GROUP="เครื่องหมายดอกจัน"/g" /etc/default/asterisk

เพื่อให้ทุกอย่างทำงานได้อย่างถูกต้อง ผู้ใช้เครื่องหมายดอกจันจะต้องได้รับสิทธิ์ในการเข้าถึงไดเร็กทอรีโปรแกรมทั้งหมด:

chown -R เครื่องหมายดอกจัน:เครื่องหมายดอกจัน /var/spool/asterisk /var/run/asterisk /etc/asterisk /var/(lib,log,spool)/asterisk /usr/lib/asterisk

นอกจากนี้เรายังจะระบุการตั้งค่าผู้ใช้ที่ถูกต้องสำหรับฟิลด์ runuser และ rungroup ในไฟล์ asterisk.conf:

sed -i "s/;runuser = เครื่องหมายดอกจัน/runuser = เครื่องหมายดอกจัน/g" /etc/asterisk/asterisk.conf

$ sed -i "s/;rungroup = เครื่องหมายดอกจัน/rungroup = เครื่องหมายดอกจัน/g" /etc/asterisk/asterisk.conf

เมื่อทุกอย่างพร้อมแล้ว ให้เริ่มบริการที่หยุดไว้ก่อนหน้านี้หรือรีบูตหากคุณยังไม่ได้หยุด:

เครื่องหมายดอกจันบริการ sudo เริ่มต้น

จากนั้นเราจะตรวจสอบ:

หากผู้ใช้และกลุ่มมีเครื่องหมายดอกจัน แสดงว่าเราทำทุกอย่างถูกต้องแล้ว

ข้อสรุป

แค่นั้นแหละ. การติดตั้ง Asterisk 13 บน Ubuntu 16.04 เสร็จสมบูรณ์ ตอนนี้คุณสามารถไปยังการตั้งค่าเครือข่ายเพิ่มเติมเพื่อโทรระหว่างสมาชิกของคุณโดยตรงผ่านทางอินเทอร์เน็ต ในฐานะลูกค้า ซอฟต์แวร์คุณสามารถใช้โปรแกรมใดก็ได้ที่รองรับ โปรโตคอลที่จำเป็นเช่น จิ้ดสิ หรือ ลินโฟน

เกี่ยวกับผู้เขียน

ผู้ก่อตั้งและผู้ดูแลไซต์ ฉันหลงใหลเกี่ยวกับซอฟต์แวร์โอเพ่นซอร์สและระบบปฏิบัติการ Linux ปัจจุบันฉันใช้ Ubuntu เป็นระบบปฏิบัติการหลักของฉัน นอกจาก Linux แล้ว ฉันยังสนใจทุกสิ่งที่เกี่ยวข้องด้วย เทคโนโลยีสารสนเทศและวิทยาศาสตร์สมัยใหม่

ไฟล์กำหนดค่าช่องต่างๆ ใน ​​ทั้งสายเข้าและโทรออก

ไคลเอ็นต์หรือเซิร์ฟเวอร์ SIP แต่ละรายการถูกกำหนดไว้ในไฟล์นี้เป็นบล็อกข้อความ คล้ายกับบล็อกข้อความด้านล่าง:


ประเภท=ปปป
พารามิเตอร์1=ค่า
พารามิเตอร์2=ค่า

โดยที่ xxx คือชื่อที่เชื่อมโยงกับไคลเอ็นต์ SIP หรืออาจเป็นชื่ออุปกรณ์ SIP ที่กำหนดเองซึ่งสามารถอ้างอิงได้จากไฟล์คอนฟิกูเรชันอื่น โดยทั่วไป หากโทรศัพท์ SIP มีหมายเลขต่อ 123 การตั้งค่าที่เกี่ยวข้องในไฟล์นี้จะเริ่มต้นด้วยบรรทัด โปรดทราบว่าเพื่อให้สามารถโทรไปยังหมายเลขต่อ 123 ได้ คุณต้องอธิบายไว้ในแผนการโทรของคุณ อาจเป็น: "ผู้ใช้", "เพื่อน" หรือ "เพื่อน"

เซิร์ฟเวอร์เครื่องหมายดอกจันจะกำหนดว่าสายเรียกเข้าตรงกับชื่ออุปกรณ์หรือไม่ สำหรับไคลเอ็นต์ที่มี type=user โดยยึดตามส่วนหัวจาก: ชื่อผู้ใช้ (โดยไม่สนใจโดเมน SIP) อีกวิธีหนึ่งในการประมวลผลคำขอ SIP ขาเข้าคือการพิจารณาว่าตรงกับส่วนในไฟล์นี้หรือไม่ โดยใช้ที่อยู่ IP ของคำขอขาเข้าเพื่อพิจารณาว่าใครเป็นผู้ร้องขอ และค้นหาค่าพารามิเตอร์ Host= ที่เหมาะสมในส่วนผู้ใช้ หากพารามิเตอร์นี้ถูกตั้งค่าเป็น Host=dynamic จะไม่มีการจับคู่ที่ตรงกันจนกว่าไคลเอ็นต์ SIP จะลงทะเบียนกับเซิร์ฟเวอร์

เครื่องหมายดอกจันเป็นไคลเอ็นต์ SIP ในไฟล์การกำหนดค่าในส่วน ให้เพิ่มข้อกำหนดการลงทะเบียน:

รูปแบบ:
ลงทะเบียน => ผู้ใช้ [:ความลับ[:authuser]] @host [:พอร์ต]

ตัวอย่าง:
- ลงทะเบียน 2345 กับผู้ให้บริการ sip เช่นหมายเลข 1234 ฝั่งเรา
ลงทะเบียน => 2345: [ป้องกันอีเมล]/1234

ผู้ใช้ - ID ผู้ใช้ที่ใช้สำหรับเซิร์ฟเวอร์ SIP (เช่น 2345) ผู้ใช้รับรองความถูกต้อง - ชื่อผู้ใช้ทางเลือกสำหรับการอนุญาตบนความลับเซิร์ฟเวอร์ SIP - โฮสต์รหัสผ่านผู้ใช้ - โดเมนหรือชื่อโฮสต์ของเซิร์ฟเวอร์ SIP เซิร์ฟเวอร์ SIP นี้ต้องถูกกำหนดไว้ในส่วนของไฟล์ sip.conf โดยจะต้องระบุพารามิเตอร์ (mysipprovider.com) พอร์ต - หมายเลขพอร์ตใดที่จะส่งคำขอลงทะเบียนบนโฮสต์เซิร์ฟเวอร์ ตามค่าเริ่มต้น - 5060 /1234 - หมายเลขต่อสำหรับรับสายในเครื่องหมายดอกจันของคุณ 1234 - แทรกลงในผู้ติดต่อส่วนหัว SIP, คำขอลงทะเบียน SIP ส่วนขยายนี้ถูกใช้โดยเซิร์ฟเวอร์ SIP ระยะไกลเมื่อจำเป็นต้องโทรไปยังเครื่องหมายดอกจันของคุณ ดูตัวอย่างด้านล่าง ตามค่าเริ่มต้น จะใช้ "s" ตามบริบท
แน่นอนว่าทั้งหมดนี้เป็นสิ่งที่ดี แต่ต้องใช้รหัสผ่านที่ไม่ได้เข้ารหัส ไฟล์ข้อความ- ไม่ใช่ความคิดที่ดีที่สุด แต่จะทำอะไรได้อีกในตอนนี้
คุณจะต้องลงทะเบียนหาก: a) ต้องสามารถโทรหาคุณได้ และ b) ฝ่ายใดฝ่ายหนึ่งมีที่อยู่ IP แบบไดนามิก คุณสามารถตรวจสอบว่าเซิร์ฟเวอร์ของคุณลงทะเบียนสำเร็จหรือไม่โดยใช้คำสั่ง CLI: "SIP SHOW REGISTRY" ในทำนองเดียวกัน คุณสามารถรับรายชื่อไคลเอนต์ที่ลงทะเบียนบนเซิร์ฟเวอร์ของคุณโดยใช้คำสั่ง: "SIP SHOW PEERS" คุณสามารถดูข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับไคลเอนต์ที่ลงทะเบียนได้โดยใช้คำสั่ง: "SIP SHOW PEER" เรียกใช้คำสั่ง "HELP SIP" ในคอนโซล CLI เพื่อรับรายการคำสั่งเพิ่มเติม

คำจำกัดความของเซิร์ฟเวอร์สำหรับการโทรออกควรมีลักษณะดังนี้:


ประเภท = เพื่อน
ความลับ=รหัสผ่าน
ชื่อผู้ใช้=2345
โฮสต์=sipserver.mysipprovider.com
จากผู้ใช้=2345
จากโดเมน=fwd.pulver.com
แนท=ใช่
บริบท=จาก-mysipprovider ; การประกวดนี้จะต้องกำหนดไว้ใน extensions.conf

ในไฟล์ extensions.conf หากต้องการโทรออก คุณต้องมีกฎการโทรที่มีลักษณะดังนี้:

ขยาย => _9.,1,Dial(SIP/$(EXTEN:1)@mysipprovider-out,30,r)

โปรดทราบว่าโครงสร้าง $(EXTEN:1) ดึงเนื้อหาทั้งหมดของตัวแปรที่มีส่วนขยายที่ถูกเรียก (ตรงกับรูปแบบ) ยกเว้นตัวเลขตัวแรก ในกรณีนี้: 9 + ชุดตัวเลข ดูส่วนการทำงานกับสตริงย่อยในคำอธิบายสำหรับรายละเอียดเพิ่มเติม


ขยาย => 1234,1,ตอบ; 1234 - ส่วนขยายจากข้อมูลติดต่อ ค่าเริ่มต้น - "s"
ขยาย => 1234,2,กด(SIP/111,25,Ttr) ; สายเรียกเข้าจะถูกเปลี่ยนเส้นทางไปยังหมายเลขโทรศัพท์ SIP 111
ขยาย => 1234.3,วางสาย

การกำหนดค่า SIP - ส่วนทั่วไป ส่วนของไฟล์ sip.conf มีตัวแปรต่อไปนี้:

= : ตัวแปลงสัญญาณที่อนุญาต ลำดับในการเลือกตัวแปลงสัญญาณจะถูกกำหนดตามลำดับที่อธิบายไว้ในคำสั่งนี้ (ใช้ครั้งแรก: DISALLOW=ALL ก่อนที่จะอนุญาตตัวแปลงสัญญาณเฉพาะใดๆ) Allowtransfer= yes | ไม่: ปรากฏตั้งแต่เวอร์ชัน 1.4.0 เมื่อตั้งค่าเป็น "ไม่" - ห้ามโอนสายทุกประเภท (ยกเว้นที่ได้รับอนุญาตในคำอธิบายการตั้งค่าผู้ใช้) =ทั้งหมด:ปิดใช้งานการใช้ตัวแปลงสัญญาณทั้งหมด (การตั้งค่าส่วนกลาง) Allowguest = ใช่ (ค่าเริ่มต้น) | ไม่: อนุญาตหรือปิดใช้งานการโทรของแขก (ค่าเริ่มต้น - ใช่ คุณสามารถระบุพารามิเตอร์ "osp" เป็นค่าได้ หากสร้างเครื่องหมายดอกจันด้วยการรองรับ OSP) = ใช่ | ไม่: หากเปิดใช้งาน ทุกคนจะสามารถใช้เซิร์ฟเวอร์เป็นเพียร์ได้ (โดยไม่ต้องตรวจสอบการเข้าถึง ซึ่งสะดวกเมื่อทำงานกับพร็อกซี SER SIP) bindaddr = 0.0.0.0:ที่อยู่ IP ที่เครื่องหมายดอกจันจะได้รับแพ็กเก็ต IP ของการโทร SIP bindport=5060:หมายเลขพอร์ตที่เครื่องหมายดอกจันจะได้รับแพ็กเก็ต IP ของการโทร SIP callerid = : ข้อมูลสำหรับผู้โทร*Id ใช้เมื่อไม่มีข้อมูลเหล่านั้น ซึ่งสามารถใช้เป็นค่านี้ได้ ค่าเริ่มต้นคือ "เครื่องหมายดอกจัน" (ความสามารถในการแทนที่ค่าเริ่มต้นมีอยู่ใน Asterisk 1.0.9 ฉันไม่แน่ใจเกี่ยวกับเวอร์ชันอื่นทั้งหมด) = update | ใช่ | ไม่ (การตั้งค่าส่วนกลาง) ด้วยเหตุผลบางประการ ค่าเริ่มต้นคือ "ใช่" โปรดใช้ความระมัดระวัง... context = : นี่คือค่าเริ่มต้น ซึ่งใช้เมื่อไคลเอ็นต์ไม่ได้กำหนดไว้เอง เฉพาะไคลเอนต์นี้ใช้เพื่อกำหนดเส้นทางการโทรจากไคลเอนต์นั้นไป สถานที่ที่เหมาะสมการนัดหมาย เนื้อหาอธิบายไว้ในไฟล์แผนการโทร - extensions.conf defaultexpirey=120: ระยะเวลาของระยะเวลาการลงทะเบียนขาเข้าหรือขาออก : อินแบนด์ | ข้อมูล | rfc2833 (การตั้งค่าส่วนกลาง) = โดเมน: รายการโดเมนที่คั่นด้วยเครื่องหมายจุลภาคซึ่งเซิร์ฟเวอร์เครื่องหมายดอกจันรับผิดชอบ (แนะนำในเครื่องหมายดอกจัน 1.2.x) = 200.201.202.203: ที่อยู่ IP ที่จะใช้ในข้อความ SIP หากเซิร์ฟเวอร์ของเราอยู่หลัง NAT externhost = ชื่อโฮสต์.tld: ( พารามิเตอร์ใหม่ในเครื่องหมายดอกจัน 1.2.x) externrefresh = xxx: ด้วยพารามิเตอร์นี้ เราจะกำหนดว่ารายการ DNS จะถูกค้นหาบ่อยแค่ไหนสำหรับชื่อโฮสต์ที่กำหนดไว้ในพารามิเตอร์ "externhost" (พารามิเตอร์ใหม่ในเครื่องหมายดอกจัน 1.2.x) = 192.168.1.0/255.255 255.0: คำจำกัดความ เครือข่ายท้องถิ่นและหน้ากากของเธอ fromdomain= : การตั้งค่าโดเมนเริ่มต้นในฟิลด์จาก: ของข้อความ SIP เมื่อทำงานเป็น SIP ua (ไคลเอนต์) maxexpirey=3600: ระยะเวลาการลงทะเบียนสูงสุดที่อนุญาต mineexpiry=60: (ตัวแปรที่แนะนำตั้งแต่เครื่องหมายดอกจัน 1.4.0) ระยะเวลาการลงทะเบียนขั้นต่ำที่อนุญาต = ใช่ | ไม่ (การตั้งค่าสำหรับการเชื่อมต่อแบบเพียร์) โปรดทราบว่าใน Asterisk 1.0.x พารามิเตอร์แนทสามารถรับค่าต่อไปนี้: no | ไม่เคย | เส้นทาง | ใช่. notifymimetype=text/plain:อนุญาตให้คุณแทนที่ประเภท mime ในข้อความ MWI NOTIFY ที่ใช้ในข้อความที่ส่งโดยระบบ pedantic = ใช่|ไม่ใช่: เปิดใช้งานการตรวจสอบฟิลด์ Call-ID และบรรทัดทั้งหมดในส่วนหัวข้อความ SIP แบบหลายบรรทัดและพอร์ตส่วนหัวที่เข้ารหัส URI อย่างช้าๆ = : พอร์ต SIP เริ่มต้น (นี่ไม่ใช่พอร์ตที่เครื่องหมายดอกจันของคุณฟังสำหรับแพ็กเก็ต IP ดูพารามิเตอร์: bindport) Promiscredir=yes | ไม่: เปิดใช้งานการสนับสนุนข้อความการเปลี่ยนเส้นทาง 302; (ไม่ - จะส่งต่อทุกอย่างไปยังส่วนขยายท้องถิ่นที่ได้รับในช่องผู้ติดต่อ และจะไม่ส่งต่อไปยังส่วนขยายที่ระบุในช่องปลายทางการโทร) realm = realm (การตั้งค่านี้สามารถเปลี่ยนขอบเขตสำหรับการอนุญาตจากค่าเริ่มต้นได้ - เครื่องหมายดอกจันที่คุณเลือก ใช้งานได้ตั้งแต่ Asterisk เวอร์ชัน 1.x) ลงทะเบียน => @ / : ลงทะเบียนบนเซิร์ฟเวอร์ ผู้ให้บริการ SIP- = ใช่|ไม่: เปิดใช้งานการค้นหาการโทร tos= : ตัวเลือกนี้ถูกลบออกตั้งแต่เครื่องหมายดอกจัน 1.4.0 การตั้งค่าพารามิเตอร์ IP QoS สำหรับสตรีมสื่อขาออก t1min= : (ตัวแปรเริ่มตั้งแต่เครื่องหมายดอกจัน 1.4.0) ความล่าช้าขั้นต่ำสำหรับข้อความที่จะเดินทางไปและกลับจากโฮสต์ (เวลาไปกลับ) ที่สถานะถูกตรวจสอบ (โฮสต์ที่ตรวจสอบ) ค่าเริ่มต้นคือ 100 ms = : (ตัวแปรปรากฏโดยเริ่มจากเครื่องหมายดอกจันเวอร์ชัน 1.4.0) การตั้งค่าพารามิเตอร์ IP QoS สำหรับแพ็กเก็ต SIP = : (ตัวแปรเริ่มตั้งแต่เครื่องหมายดอกจัน 1.4.0) การตั้งค่าพารามิเตอร์ IP QoS สำหรับแพ็กเก็ตที่ส่งข้อมูลเสียงผ่าน โปรโตคอล RTP- = : (ตัวแปรปรากฏโดยเริ่มจากเครื่องหมายดอกจันเวอร์ชัน 1.4.0) การตั้งค่าพารามิเตอร์ IP QoS สำหรับแพ็กเก็ตที่ส่งข้อมูลวิดีโอผ่านโปรโตคอล RTP
videosupport=yes|no: เปิดใช้งานการสนับสนุนวิดีโอ SIP: พารามิเตอร์อนุญาตให้คุณเปลี่ยนค่าของส่วนหัว SIP "User-Agent" = ใช่|ไม่ใช่: หากเปิดใช้งาน ค่า Remote-Party-ID ที่เป็นผลลัพธ์จะสามารถเชื่อถือได้

การกำหนดค่า SIP - ไคลเอนต์และเพียร์ ตัวแปรต่อไปนี้สามารถตั้งค่าได้ในคำอธิบายของไคลเอนต์ SIP แต่ละตัว:

: ผู้ใช้สามารถเชื่อมโยงกับรหัสการเข้าถึงบางอย่าง (รหัสบัญชี) ใช้สำหรับ. : ตัวแปลงสัญญาณที่อนุญาตและต้องห้าม : หมวดหมู่สำหรับ บันทึก CDR- คุณสามารถเลือก: ค่าเริ่มต้น, ละเว้น, การเรียกเก็บเงิน, เอกสารประกอบ ดู: .allowoverlap: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ใช่ การตั้งค่าเป็น "ไม่" จะปิดใช้งานการสนับสนุน "การโทรแบบซ้อนทับ" อนุญาตการสมัคร: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ การตั้งค่าเป็น "ไม่" จะห้ามการติดตามสถานะ (การสมัครสมาชิก) ของลูกค้ารายนี้ อนุญาตการโอน: เริ่มต้นจากเวอร์ชัน 1.4.x อนุญาต (ใช่) หรือปฏิเสธ (ไม่) การโอนสายสำหรับ user.auth นี้: ตั้งแต่เวอร์ชัน 1.4.x ลิงก์ไปยังรายการจากส่วน (ประเภทเพียร์เท่านั้น) การทำเฟรมอัตโนมัติ: ตั้งแต่เวอร์ชัน 1.4.x เปิดใช้งาน (ใช่) หรือปิดใช้งาน (ไม่ใช่) การวางกรอบอัตโนมัติ"a.buggymwi: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ เฟิร์มแวร์ Cisco SIP ไม่รองรับ RFC อย่างสมบูรณ์เพื่อบ่งชี้ว่ามีเฟิร์มแวร์ใหม่อยู่ ข้อความเสียง(สวทช.) ตั้งค่าพารามิเตอร์นี้เป็น "ใช่" เพื่อหลีกเลี่ยงการรับข้อความแสดงข้อผิดพลาดเมื่อส่ง MWI ไปยังโทรศัพท์ที่มีปัญหานี้ : กำหนดกลุ่มการโทรสำหรับการโทรผ่านอุปกรณ์นี้callingpres: ตั้งแต่เวอร์ชัน 1.4.x โหมดการเผยแพร่ CallerId ดูค่าในไฟล์ doc/callingpres.txt จากการกระจาย asterisk.call-limit: เริ่มต้นจากเวอร์ชัน 1.4.x__ จำกัดจำนวนการโทรสำหรับผู้ใช้ สำหรับประเภท "เพียร์" - สำหรับขาออก สำหรับ "ผู้ใช้" - สำหรับขาเข้า : เปิดใช้งานเฉพาะในกรณีที่ไคลเอนต์รองรับฟังก์ชัน: .cid_number: ตั้งแต่เวอร์ชัน 1.4.x ส่วนหมายเลขของฟิลด์ CallerID.context: บริบทแผนการโทรซึ่งมีสายที่มาจากไคลเอ็นต์นี้ตกอยู่ : ที่อยู่ IP ไคลเอ็นต์เริ่มต้นเมื่อโฮสต์= ถูกตั้งค่าเป็น DYNAMIC ใช้หากลูกค้ายังไม่ได้ลงทะเบียน หากจำเป็นต้องโทรหาเขา : วิธีที่ไคลเอ็นต์จัดการกับการส่งสัญญาณ DMTF : ระบุชื่อผู้ใช้สำหรับฟิลด์ "จาก" เมื่อมีการโทรโดยใช้รายการนี้ = : ตั้งค่าโดเมนเริ่มต้นในฟิลด์ จาก: ของข้อความ SIP เมื่อมีการโทรโดยใช้รายการนี้ ชื่อเต็ม: ตั้งแต่เวอร์ชัน 1.4.x ส่วนของชื่อ ฟิลด์ CallerID.g726nonstandard: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ หากไคลเอนต์จะ “ตกลง” ที่จะใช้ตัวแปลงสัญญาณเสียง G726-32 สำหรับเซสชันการสื่อสาร โดยใช้การบีบอัด AAL2 แทน RFC3551 (ซึ่งจำเป็นสำหรับอุปกรณ์จาก Sipura และเกตเวย์จาก Grandstream และอาจมีอย่างอื่น) สิ่งนี้ตรงกันข้ามกับข้อกำหนด RFC3551 ลูกค้า _must_ "ตกลง" เพื่อใช้ AAL2-G726-32 แทน:-(โฮสต์: เราจะค้นหาไคลเอนต์ของเราได้อย่างไร - ที่อยู่ IP หรือชื่อโฮสต์ หากคุณต้องการให้โทรศัพท์ลงทะเบียนเอง ให้ใช้ ค่าไดนามิกแทนที่อยู่ IP หรือชื่อโฮสต์: จำกัด จำนวน การเชื่อมต่อพร้อมกันกับลูกค้า SIP ของเรา พารามิเตอร์เหล่านี้ล้าสมัยและไม่ได้ใช้ในเวอร์ชัน 1.4.x : มาก|ใช่|ไม่|เชิญ|พอร์ต: กำหนดวิธีจัดการการเชื่อมต่อกับเพื่อน ค่าเริ่มต้นคือ "ไม่" (เปิดใช้งานการรับรองความถูกต้องสำหรับการเชื่อมต่อทั้งหมด) (คำเชิญและเพิ่มพอร์ตในเวอร์ชัน 1.2.x) : รหัสภาษา ซึ่งกำหนดไว้ในไฟล์ indicators.conf - ซึ่งกำหนดภาษาทักทายและการตั้งค่าเสียงโทรศัพท์เฉพาะประเทศ : ส่วนขยายกล่องจดหมายเสียง (สำหรับตัวบ่งชี้ข้อความใหม่) อัตราบิตการโทรสูงสุด: เริ่มต้นจากเวอร์ชัน 1.4.x บิตเรตสูงสุดสำหรับวิดีโอในหน่วย kbit/s ค่าเริ่มต้น: 384 kbit/s.mohsuggest: ตั้งแต่เวอร์ชัน 1.4.x ดูsip.confเพื่อจุดประสงค์ : MD5-สตริงแฮช: " :asterisk: " (สามารถใช้แทนพารามิเตอร์ลับได้)musiconhold: ตั้งค่าคลาส musiconhold สำหรับการโทรจากโทรศัพท์ SIP นี้ สำหรับสายที่โทรมาโดยการระบุคลาสนี้จะต้องทำด้วยคำสั่งที่มีลำดับความสำคัญสูงกว่า (ลำดับความสำคัญต่ำกว่าในแผนการโทร) มากกว่าคำสั่ง Dial ในแผนการโทร พารามิเตอร์ MusicOnHold ได้รับการตั้งค่าสำหรับการโทร ไม่ใช่สำหรับโทรศัพท์ และหากใช้คำสั่งเพื่อจัดการการโทรสำหรับส่วนขยาย คำสั่งจะแทนที่ค่าที่ระบุโดยพารามิเตอร์นี้สำหรับการโทรนั้น : ตัวแปรนี้จะเปลี่ยนวิธีการทำงานของเซิร์ฟเวอร์ Asterisk กับไคลเอนต์ที่อยู่หลังไฟร์วอลล์ NAT แต่พารามิเตอร์นี้ไม่สามารถแก้ปัญหาได้หากเครื่องหมายดอกจันอยู่หลังไฟร์วอลล์ดังกล่าวและไคลเอนต์อยู่ภายนอก (บนอินเทอร์เน็ตที่มีที่อยู่ IP ปกติ) พร็อกซีขาออก: ที่อยู่พร็อกซีเซิร์ฟเวอร์สำหรับการโทรออก (ประเภทเพียร์เท่านั้น ปฏิเสธ) : ที่อยู่ข้อ จำกัด IP และเครือข่าย IP สำหรับไคลเอนต์ หมายเหตุ: ในเวอร์ชัน 1.4.x พารามิเตอร์มาสก์จะไม่ถูกใช้อีกต่อไป : จัดกลุ่มสำหรับการโทร “รับ” ถึงเพื่อนร่วมงานของคุณโดยใช้ชุดค่าผสม “*8” และแอปพลิเคชัน Pickup() เพื่อทำงานกับส่วนขยาย *8.port: พอร์ต SIP ของ client.progressinband: เริ่มต้นจากเวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่/ไม่เคย ค่าเริ่มต้น: ไม่เคย เครื่องหมายดอกจันควรสร้างเสียงเรียกเข้าสำหรับผู้โทรอย่างอิสระ (เสียงเรียกเข้าในวงดนตรี) ใช้ค่า "ไม่" เพื่อไม่สร้างสัญญาณนี้ แม้ว่าอุปกรณ์แปลก ๆ บางตัวไม่สามารถสร้างสัญญาณได้เองก็ตาม: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ หากตั้งค่าเป็น "ใช่" เราจะอนุญาตให้ส่งข้อความ SIP ที่มีรหัส 302 หรือข้อความโอนสายไปยังไคลเอนต์ SIP ที่มีที่อยู่ IP ที่ไม่ใช่ในเครื่อง เป็นที่น่าสังเกตว่าพฤติกรรมของผู้สัญญาเมื่อโอนสายที่โทรเข้ามาสามารถนำไปสู่การวนสายได้เพราะ เครื่องหมายดอกจันไม่สามารถรับสายแบบกิ๊บติดผมได้ : ตรวจสอบความพร้อมของลูกค้าเป็นระยะ จำกัด: (ใช่/ไม่ใช่) ตัวเลือกนี้ไม่ได้ใช้ ให้ใช้callingpresแทน rfc2833compensate: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ เปิดใช้งานการชดเชยสำหรับการส่งสัญญาณ DTMF จากเซิร์ฟเวอร์เครื่องหมายดอกจันอื่น ๆ เวอร์ชันสูงสุด 1.4.* ในกรณีเหล่านี้ คุณต้องเปิดใช้งานคุณสมบัตินี้ มิฉะนั้นการรับสัญญาณ DTMF จะทำงานไม่ถูกต้อง : ยุติการโทรหากไม่มีกิจกรรมสตรีมสื่อ RTP เป็นเวลานานกว่า x วินาที และหากสายไม่อยู่ในโหมดพักสาย : ยกเลิกการโทรหากไม่มีกิจกรรมสตรีมสื่อ RTP เป็นเวลานานกว่า x วินาที ในโหมดพักสาย (ค่าต้องมากกว่า rtptimeout) ความลับ: หากเครื่องหมายดอกจันทำหน้าที่เป็นเซิร์ฟเวอร์ SIP ไคลเอ็นต์ SIP นี้จะต้องได้รับอนุญาตด้วยรหัสผ่านนี้ (ความลับร่วมกัน) หากเครื่องหมายดอกจันทำหน้าที่เป็นไคลเอนต์ SIP ที่ทำงานกับเซิร์ฟเวอร์ SIP ระยะไกลที่ต้องการการอนุญาตสำหรับคำขอ "SIP INVITE" ดังนั้นฟิลด์นี้จะถูกนำมาใช้เพื่อการอนุญาตในข้อความ "SIP INVITE" ที่เครื่องหมายดอกจันของเราจะส่งไปยังระยะไกล เซิร์ฟเวอร์จิบ.sendrpid: จะส่งส่วนหัว Remote-Party-Id ไปยังไคลเอ็นต์ SIP นี้หรือไม่ ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: yes.setvar: ตั้งแต่เวอร์ชัน 1.4.x ค่าระบุคู่ "variable=value" สำหรับตัวแปรช่องสัญญาณเมื่อโทรจากอุปกรณ์นี้ subscribecontext: เริ่มต้นจากเวอร์ชัน 1.4.x ระบุชื่อของบริบทที่คำขอ SIP จะถูกประมวลผล SUBSCRIBE.subscribemwi: เริ่มต้นจากเวอร์ชัน 1.4.x ค่าคือ "ใช่" และ "ไม่" วัตถุประสงค์ โปรดดู sip.conf.t38pt_udptl: เริ่มต้นจากเวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ เปิด/ปิดการสนับสนุน T.38 สำหรับไคลเอ็นต์นี้ : ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ ตั้งค่าเป็น "ใช่" หากคุณสามารถเชื่อถือ Remote-Party-ID ที่ได้รับจากไคลเอ็นต์ SIP ได้ : ประเภทไคลเอ็นต์ - โทรออกเท่านั้น สายเรียกเข้าเท่านั้น หรือทั้งสองอย่าง ใช้รหัสลูกค้า: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: no.usereqphone: ตั้งแต่เวอร์ชัน 1.4.x ค่าคือ "ใช่" และ "ไม่" จะเพิ่ม ";user=phone" ลงใน URI ที่มีหมายเลขโทรศัพท์ปกติหรือไม่ : หากเครื่องหมายดอกจันทำหน้าที่เป็นไคลเอนต์ SIP ที่ทำงานกับเซิร์ฟเวอร์ SIP ระยะไกลที่ต้องมีการอนุญาตสำหรับคำขอ "SIP INVITE" ฟิลด์นี้จะถูกนำมาใช้เพื่อการอนุญาตในข้อความ "SIP INVITE" ที่เครื่องหมายดอกจันของเราจะส่งไปยังเซิร์ฟเวอร์ SIP ระยะไกล . และสำหรับเพื่อนที่ลงทะเบียนบนเซิร์ฟเวอร์ Asterisk ของเรา หากชื่อผู้ใช้นี้ถูกใช้ในข้อความเชิญ ตราบใดที่ลงทะเบียนบนเซิร์ฟเวอร์ videosupport: ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ใช่ ตัวเลือกในการเปิดใช้งานการสนับสนุนวิดีโอ SIP คุณอาจต้องเปิดใช้งานการสนับสนุนวิดีโอสำหรับไคลเอนต์ SIP ที่ระบุ ตัวอย่างเช่น ถูกปิดใช้งานในส่วนส่วนกลางของการกำหนดค่า และคุณต้องการเปิดใช้งานแบบเลือกสำหรับผู้ใช้ที่ระบุเท่านั้น vmexten: เริ่มต้นจากเวอร์ชัน 1.4.x เพื่อจุดประสงค์ โปรดดู sip.conf (ประเภทเพียร์เท่านั้น)

โปรดทราบว่าเครื่องหมายดอกจันยังไม่ (ยัง) รองรับ SIP ผ่านการขนส่ง TCP รองรับผ่านโปรโตคอล UDP เท่านั้น สำหรับโทรศัพท์ Grandstream: ตั้งค่าพารามิเตอร์ dtmfmode=info และสำหรับ GXP2000 dtmfmode=inband เครื่องหมายดอกจันจะใช้สตรีมขาเข้าเป็นแหล่งกำหนดเวลาสำหรับการส่งสตรีมขาออก หากสตรีมที่เข้ามาถูกขัดจังหวะเนื่องจากฟังก์ชันระงับความเงียบ คุณภาพการระงับเสียงเพลงจะต่ำมาก ด้วยเหตุนี้ คุณจึงไม่สามารถใช้ฟังก์ชันลดความเงียบได้ ตรวจสอบให้แน่ใจว่าโทรศัพท์ SIP ทั้งหมดปิดใช้งานการระงับความเงียบ ตัวอย่าง ไคลเอ็นต์ SIP แต่ละรายการที่ต้องทำงานกับเครื่องหมายดอกจันจะต้องถูกกำหนดไว้ในไฟล์ SIP.CONF ด้านล่างนี้เป็นตัวอย่างบางส่วน:


ประเภท=เพื่อน ; อาจเป็น: "เพื่อน" (นี่คือ: เพียร์+ผู้ใช้), "เพียร์" หรือ "ผู้ใช้"
บริบท=จาก-จิบ
ชื่อผู้ใช้=grandstream1 ; โดยปกติแล้ว พารามิเตอร์นี้จะตรงกับชื่อส่วน -
จากผู้ใช้=grandstream1 ; กำหนดหมายเลขผู้โทรใหม่ เช่น
- อาจจำเป็นสำหรับการโอนสาย - FWD
callerid=จอห์น โด
โฮสต์=192.168.0.23 ; เราใช้ที่อยู่ IP แบบคงที่ แต่เป็นอินทราเน็ต
แนท=ไม่ ; ไม่มีการแปลที่อยู่ IP (NAT) ระหว่างโทรศัพท์ของเรากับเครื่องหมายดอกจัน
สามารถเชิญใหม่ได้=ใช่ ; บังคับให้การรับส่งข้อมูลเสียง RTP ทั้งหมดผ่านเครื่องหมายดอกจัน
dtmfmode=ข้อมูล ; สามารถเป็นได้ทั้ง INBAND และ INFO เช่น สำหรับโทรศัพท์ BudgeTone
กล่องจดหมาย=1234@default ; ลูกค้ามีกล่องเสียง 1234 ในบริบทกล่องเสียง: "ค่าเริ่มต้น"
ไม่อนุญาต=ทั้งหมด ; คุณต้องตั้งค่า disallow=al ก่อนใช้พารามิเตอร์ Allow=
อนุญาต=อูลอว์ ; โปรดทราบ: ในส่วนไคลเอนต์ ลำดับในการเลือกตัวแปลงสัญญาณ
- อธิบายไว้ในพารามิเตอร์ Allow= ไม่มีความหมาย!
;อนุญาต=อนุญาต
;อนุญาต=g723.1 ; เครื่องหมายดอกจันรองรับตัวแปลงสัญญาณ g723.1 ในโหมดส่งผ่านเท่านั้น!
;อนุญาต=g729 ; เฉพาะในโหมด Pass-thru เท่านั้น หากคุณไม่มีใบอนุญาตให้ใช้ตัวแปลงสัญญาณ g729


ปิดฟังก์ชันระงับความเงียบในไคลเอนต์ X-Lite ("ส่งเสียงเงียบ"=ใช่)!
;โปรดทราบว่า Xlite เองจะส่งแพ็กเก็ต Keep-alive ของ NAT ดังนั้นจึงไม่จำเป็นต้องมีคุณสมบัติ=ใช่
ประเภท=เพื่อน
ชื่อผู้ใช้=xlite1
ผู้โทร = "เจน สมิธ"
โฮสต์ = ไดนามิก
แนท=ใช่ ; ไคลเอนต์ X-Lite ตั้งอยู่ด้านหลังเราเตอร์ที่มีการแปลที่อยู่ IP (NAT)
สามารถเชิญใหม่ได้=ไม่ ; โดยทั่วไปจะตั้งค่าเป็น "NO" หากไคลเอ็นต์อยู่หลัง NAT
ไม่อนุญาต=ทั้งหมด
อนุญาต=แกรม ; ตัวแปลงสัญญาณ GSM ต้องการแบนด์วิธน้อยกว่ามาก
อนุญาต=ulaw
อนุญาต = อนุญาต


ประเภท=เพื่อน
ความลับ=บลา
โฮสต์ = ไดนามิก
dtmfmode=อินแบนด์ ; คุณสามารถเลือกจาก: inband, rfc2833 หรือข้อมูล
ค่าเริ่มต้น = 192.168.0.59
ตู้ไปรษณีย์=1234,2345 ; กล่องเสียงเพื่อให้ตัวบ่งชี้ "ได้รับข้อความใหม่" ทำงานได้
ไม่อนุญาต=ทั้งหมด
อนุญาต=อูลอว์ ; หากตั้งค่าโหมดสำหรับ dtmf เป็น "inband"
อนุญาต=อลาจ ; ถ้าอย่างนั้นเราก็ควรใช้ตัวแปลงสัญญาณ g.711 เท่านั้น


ประเภท=เพื่อน
ชื่อผู้ใช้=user2_pingtel
ความลับ=บลา
โฮสต์ = ไดนามิก
มีคุณสมบัติ=1,000 ; เราถือว่าลูกค้าไม่ทำงาน
- หากการตอบสนองจากเขาใช้เวลานานกว่า 1 วินาที
กลุ่มการโทร=1,3-4 ; ลูกค้าเป็นสมาชิกของกลุ่มการโทร: 1, 3 และ 4
กลุ่มรถกระบะ=1,3-4 ; เราสามารถ "รับสาย" โทรออกได้โดยการกด *8
- สำหรับการโทรจากกลุ่ม 1, 3 และ 4
ค่าเริ่มต้น = 192.168.0.60
ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
อนุญาต=g729

ประเภท=เพื่อน
ชื่อผู้ใช้=user3_cisco
ความลับ=บลา
แนท=ใช่ ; โทรศัพท์เครื่องนี้อยู่หลังเราเตอร์ที่มี NAT
โฮสต์ = ไดนามิก
สามารถเชิญใหม่ได้=ไม่ ; บางครั้งอุปกรณ์ Cisco ค้าง
- หลังจากมีการร้องขอคำเชิญซ้ำจำนวนหนึ่งแล้ว
มีคุณสมบัติ=200 ; เราถือว่างานฉลองนั้นไม่ทำงาน
- หากการตอบกลับมานานกว่า 200ms
ค่าเริ่มต้น = 192.168.0.4
ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
อนุญาต=g729


ประเภท=เพื่อน

ชื่อผู้ใช้=user4_cisco
จากผู้ใช้=มาร์กสเตอร์ ; กำหนดชื่อผู้ใช้ที่จะวางไว้ในช่อง "จาก" แทนหมายเลขผู้โทร
ความลับ=บลา
ค่าเริ่มต้น=192.168.0.4 ; ใช้อย่างใดอย่างหนึ่ง host=dynamic หรือ defaultip=...
amaflags=ค่าเริ่มต้น ; อาจเป็น: ค่าเริ่มต้น, ละเว้น, การเรียกเก็บเงิน, เอกสารประกอบ
รหัสบัญชี=มาร์กสเตอร์ ; ผู้ใช้เชื่อมโยงกับรหัสบัญชีเพื่อทำให้การเรียกเก็บเงินง่ายขึ้น
ไม่อนุญาต=ทั้งหมด
อนุญาต=ulaw
อนุญาต = อนุญาต
อนุญาต=g729
อนุญาต=g723.1

คำอธิบายด้านล่างนำมาจากคู่มือ Digium Asterisk

หลังจากที่คุณกำหนดบัญชี SIP เหล่านี้สำหรับลูกค้าของคุณในไฟล์ SIP.conf แล้ว ไคลเอนต์เหล่านี้จะมีโอกาสลงทะเบียนบนเซิร์ฟเวอร์เครื่องหมายดอกจันและโทรออกได้ เพื่อให้สามารถรับสายได้ คุณต้องอธิบายนามสกุลในไฟล์แผนการโทรของคุณ ตัวอย่าง:

ขยาย => 1010,1, กด (SIP/user3_cisco,10,t)

หากมีคนโทรไปที่ 1010 ระบบจะพยายามโทรหาไคลเอ็นต์ SIP ที่ลงทะเบียนเป็น user3_cisco

หมายเหตุ ตัวแปร $(VXML_URL) สามารถใช้เพื่อเพิ่มองค์ประกอบเพิ่มเติมในส่วนหัวของข้อความ SIP "ถึง:" ค่าของตัวแปรนี้จะถูกเพิ่มโดยคั่นด้วยเครื่องหมายอัฒภาคที่ส่วนท้ายของส่วนหัว "ถึง:" ของข้อความ SIP โปรดทราบว่าคำอธิบายการใช้ฟีเจอร์นี้ก่อนหน้านี้ไม่ถูกต้อง การใช้ตัวแปรนี้ไม่มีผลเมื่อดาวน์โหลดข้อความไปยังโทรศัพท์ Cisco 7960 (ปัจจุบันมีบางสิ่งที่ปิดใช้งานในเฟิร์มแวร์ SIP โทรศัพท์ซิสโก้- ปัญหานี้อธิบายไว้ใน: อีเมลของผู้เขียนตัวแปร $(ALERT_INFO) สามารถใช้เพื่อสร้างส่วนหัวใหม่ที่เรียกว่า "Alert-Info:" ซึ่งสามารถใช้เพื่อตั้งค่า บางประเภทโทรบนโทรศัพท์ Cisco ที่ทำงานด้วยโปรโตคอล SIP ซึ่งติดตั้งเฟิร์มแวร์เวอร์ชัน 6.0 ขึ้นไป สำหรับโทรศัพท์ ตัวแปร ALERT_INFO สามารถใช้ค่าต่อไปนี้เพื่อตั้งค่าเสียงเรียกเข้าในตัวเฉพาะ: - Bellcore-BusyVerify
- Bellcore-พูดติดอ่าง
- Bellcore-MsgWaiting
- Bellcore-dr1
- เบลคอร์-dr2
- Bellcore-dr3
- เบลคอร์-dr4
- Bellcore-dr5
ในขณะนี้ ยังไม่มีวิธีกำหนดการโทรอื่น คุณสามารถเลือกได้เฉพาะตัวเลือกสำหรับการเล่นสายเท่านั้น คุณต้องตั้งใจฟังให้ดีเพื่อบอกว่าเสียงเรียกเข้าต่างกันมากจริงๆ แต่อย่างใด มีรายงานข้อผิดพลาดไปยัง Cisco: รหัสข้อบกพร่องของ Cisco CSCec42938ซึ่งเสนอให้สามารถเลือกสัญญาณการโทรได้อย่างสมบูรณ์ ตัวอย่างที่ 1 John Todd, loligo.com: http://www.loligo.com/asterisk/current/sip.confการเชื่อมต่อกับ Free World Dialup (โดยไม่ต้องใช้ NAT) [ทั่วไป]
ไม่อนุญาต=ทั้งหมด
อนุญาต=gsm
อนุญาต=ulaw
อนุญาต = อนุญาต
บริบท=จาก-จิบ
หมดอายุสูงสุด=180
ค่าเริ่มต้นหมดอายุ=160
tos = ความน่าเชื่อถือ
ลงทะเบียน => : @fwd.pulver.com/CONTACT

[fwd.pulver.com]
ประเภท=เพื่อน
ความลับ=
ชื่อผู้ใช้=
โฮสต์=fwd.pulver.com
ไม่ปลอดภัย = มาก ; จำเป็นเพื่อรองรับการโทร FWD ที่เข้ามา

ตอนนี้เรามาดูคำอธิบายไฟล์และดูว่าเราสามารถกำหนดค่าบริบทในแง่ของการโทรได้อย่างไร

ตัวอย่างที่ 2 การใช้เครื่องหมายดอกจันร่วมกับ SIP proxy SER [ทั่วไป]
บริบท=ขาออก
autocreatepeer=ใช่

[ผู้ให้บริการ]
ประเภท=เพื่อน
ชื่อผู้ใช้=XXXX
ความลับ=XXXXXX
โฮสต์=xxxxx.FakeProvider.com

ดังนั้นเมื่อเครื่องหมายดอกจันรับสายด้วย SER จะดำเนินการ "autocreatepeer" และอนุญาตให้ประมวลผลการโทรในบริบทขาออก

การจัดการ sip.conf จากแหล่งภายนอก: การใช้กลไกเรียลไทม์สำหรับช่อง SIP เช่นเดียวกับไฟล์ .conf อื่นๆ สามารถใช้คำสั่ง #include เพื่อรวมไฟล์อื่นในการกำหนดค่า sip.conf ได้ รุ่นที่แตกต่างกัน: เพิ่มคุณสมบัติเพิ่มเติมโดยเริ่มตั้งแต่เวอร์ชัน 0.7.2 23-01-2547: เพิ่มคำสั่ง CLI "sip reload" เพื่อรีบูตช่อง sip เพื่อให้การเปลี่ยนแปลงที่ทำกับไฟล์ sip.conf มีผล โดยไม่ต้องรีบูตเซิร์ฟเวอร์ Asterisk 25-01-2547: รองรับการจัดเก็บคำจำกัดความเพียร์ SIP ในฐานข้อมูล การจัดเก็บการกำหนดค่าในฐานข้อมูลยังไม่ถูกนำมาใช้อย่างสมบูรณ์ในขณะนี้ แต่ก็ใช้งานได้ ดู: 2004-06: รองรับการจัดเก็บคำจำกัดความผู้ใช้ SIP ในฐานข้อมูล

เครื่องหมายดอกจันซึ่งจะกล่าวถึงการติดตั้ง วัสดุนี้เป็นซอฟต์แวร์สำหรับจัดระเบียบการแลกเปลี่ยนโทรศัพท์ในสำนักงานหรือ IP-PBX (Private Branch eXchange, PBX) โดยจะรวมโทรศัพท์ทั้งหมดในสำนักงานให้เป็นเครือข่ายข้อมูลเดียว โดยให้บริการต่างๆ ดำเนินการ การสื่อสารด้วยเสียง- เครื่องหมายดอกจันทำงานบน Linux, BSD, OS X และ Windows โดยใช้โปรแกรมจำลอง

เครื่องหมายดอกจันสามารถนำเสียงผ่านโปรโตคอล VoIP ที่แตกต่างกันสี่แบบและเชื่อมต่อกับอุปกรณ์โทรศัพท์มาตรฐานเกือบทั้งหมด (รวมถึงโทรศัพท์มือถือ) โดยใช้อุปกรณ์ที่ค่อนข้างราคาไม่แพง เครื่องหมายดอกจันใช้ความสามารถวอยซ์เมลที่หลากหลาย รวมถึงไดเร็กทอรี การประชุม การตอบกลับด้วยเสียงแบบโต้ตอบ และคิวการโทร

ในเนื้อหานี้ เราจะดูกระบวนการติดตั้งเครื่องหมายดอกจันบน Linux โดยเฉพาะบน CentOS และ Debian ยอดนิยม รวมถึงขั้นตอนพื้นฐานสำหรับการตั้งค่าเซิร์ฟเวอร์ข้อความเสียง

การติดตั้งเซิร์ฟเวอร์ Asterisk จากแหล่งที่มา

ขั้นแรกเรามาดูอัลกอริทึมสำหรับการติดตั้งเซิร์ฟเวอร์โทรศัพท์ IP ซึ่งมีอยู่ในการกระจาย Linux ใด ๆ เช่นการประกอบและติดตั้งซอฟต์แวร์จากซอร์สโค้ด วิธีนี้ช่วยให้คุณติดตั้งเครื่องหมายดอกจันได้ตั้งแต่เริ่มต้น

ก่อนติดตั้งเซิร์ฟเวอร์โทรศัพท์ IP ในระบบ ต้องปฏิบัติตามเงื่อนไขหลายประการ ต้องติดตั้งเครื่องหมายดอกจันบนระบบที่ใช้เคอร์เนลเวอร์ชันอย่างน้อย 2.6 และระบบจะต้องมีไฟล์ส่วนหัวเพื่อให้โปรแกรมคอมไพล์ได้สำเร็จ เครื่องหมายดอกจันเขียนด้วยภาษา C ดังนั้นในการสร้าง จะต้องติดตั้งคอมไพลเลอร์ gcc บนระบบพร้อมกับไลบรารีที่มาพร้อมกัน เช่น termcap และ openssl การสร้างส่วนเสริมเครื่องหมายดอกจันยังต้องมีไลบรารีที่ติดตั้งไว้ล่วงหน้าและไคลเอนต์ mysql รวมถึงไฟล์ส่วนหัวที่เกี่ยวข้องด้วย

เมื่อระบบพร้อมสำหรับการติดตั้ง คุณจะต้องไปที่ส่วนดาวน์โหลดบนเว็บไซต์อย่างเป็นทางการและดาวน์โหลดไฟล์เก็บถาวรต่อไปนี้:

  • เครื่องหมายดอกจัน
  • เครื่องหมายดอกจันเสียง
  • เครื่องหมายดอกจัน-addons
  • แซปเทล
  • ลิพปรี
  • ไฟล์จะต้องถูกคัดลอกไปยังเซิร์ฟเวอร์ที่จะทำหน้าที่ ตู้สาขาสำนักงาน- วางไว้ในโฟลเดอร์ /usr/src/.

    หลังจากนั้นให้รันไปที่ Go to the directory พร้อมไฟล์เก็บถาวรและแตกไฟล์แต่ละอันด้วยคำสั่ง:

    tar-xzftar.gz

    ไฟล์เก็บถาวรจะถูกแตกออกเป็นโฟลเดอร์ที่มีชื่อตรงกับชื่อของไฟล์เก็บถาวร ไปที่แต่ละโฟลเดอร์ตามลำดับด้วยคำสั่ง:

    ซีดี

    และรันคำสั่งต่อไปนี้ในแต่ละโฟลเดอร์

    1. การเตรียมการประกอบ:

    2. การประกอบ:

    3. การติดตั้ง:

    หากคำสั่งข้างต้นเสร็จสมบูรณ์ คุณจะต้องสร้างและติดตั้งเครื่องหมายดอกจันบนเซิร์ฟเวอร์ของคุณ

    ขั้นตอนการติดตั้งจากแหล่งที่มาจะเหมือนกันสำหรับลีนุกซ์รุ่นต่างๆ แต่ไม่ใช่ทุกคนที่คุ้นเคย ตามกฎแล้ว ผู้ใช้ส่วนใหญ่ชอบวิธีการติดตั้งที่นำเสนอโดยการกระจายเฉพาะ

    ในเรื่องนี้ เราจะพิจารณาขั้นตอนการติดตั้งสำหรับเครื่องหมายดอกจันบนสองแพลตฟอร์มยอดนิยมสำหรับการสร้าง office PBX: CentOS และ Debian GNU/Linux

    การติดตั้งเครื่องหมายดอกจันบน CentOS

    เพื่อวัตถุประสงค์ของตัวอย่างนี้ เราจะติดตั้ง Asterisk 13 เราจะติดตั้ง Asterisk บน CentOS 7

    สันนิษฐานว่าการติดตั้งจะดำเนินการในโหมดคอนโซลข้อความในฐานะผู้ใช้ระดับสูง (รูท)

    ขั้นแรกคุณต้องติดตั้งข้อกำหนดเบื้องต้นที่จำเป็นทั้งหมด ตรวจสอบให้แน่ใจว่าแพ็คเกจทั้งหมดที่แสดงด้านล่างนี้มีอยู่ในระบบของคุณ มีค่อนข้างมาก:

    เป็นผลให้ระบบจะมีการขึ้นต่อกันทั้งหมดที่จำเป็นในการสร้างเซิร์ฟเวอร์ระบบโทรศัพท์ Asterisk ให้สำเร็จ

    ขั้นตอนต่อไปควรปิดการใช้งาน SELinux ระบบรักษาความปลอดภัย Linux ที่ปรับปรุงความปลอดภัยใน CentOS ถูกเปิดใช้งานตามค่าเริ่มต้น และมักจะรบกวนการทำงานปกติของเครื่องหมายดอกจัน ดังนั้นเพื่อให้การตั้งค่าและการทำงานของเซิร์ฟเวอร์สำเร็จ จะต้องปิดการใช้งาน

    มาตรวจสอบสถานะกิจกรรมของระบบ SELinux ด้วยคำสั่งต่อไปนี้:

    หากระบบรายงานว่าเปิดใช้งาน SELinux เราจะดำเนินการตามขั้นตอนการปิดใช้งาน ในการดำเนินการนี้ คุณต้องทำการเปลี่ยนแปลงไฟล์การกำหนดค่าในโฟลเดอร์ /etc/selinux,โดยกำหนดธงให้เหมาะสม

    sed -i "s/\(^SELINUX=\).*/\SELINUX=DISABLED/" กำหนดค่า

    timedatectl กำหนดเขตเวลา (เช่น อเมริกา/Los_Angeles)

    หากต้องการตรวจสอบว่าตั้งค่าโซนเวลาแล้วหรือไม่ คุณสามารถใช้คำสั่งต่อไปนี้:

    สถานะ timedatectl

    จากนั้นคุณจะต้องรีบูทระบบของคุณเพื่อให้การเปลี่ยนแปลงมีผล เมื่อต้องการทำเช่นนี้ ให้ใช้คำสั่งรีบูต

    ตอนนี้เรามาดูการติดตั้ง Asterisk กันดีกว่า

    ที่จริงแล้ว การติดตั้งเครื่องหมายดอกจันบน CentOS นั้นมาจากแอสเซมบลีเดียวกันจากแหล่งที่มาที่เราพบในส่วนที่แล้ว ที่นี่เราจะดูกระบวนการประกอบโดยคำนึงถึงลักษณะของผลิตภัณฑ์นั้นๆ การกระจายลินุกซ์คือ CentOS 7

    ขั้นแรก ให้ดาวน์โหลดและติดตั้งเซิร์ฟเวอร์โทรศัพท์ IP กันก่อน

    ดาวน์โหลดไฟล์เก็บถาวรด้วยเครื่องหมายดอกจัน 13 จากส่วนดาวน์โหลดบนเว็บไซต์อย่างเป็นทางการของผลิตภัณฑ์และ มาบันทึกลงในโฟลเดอร์ /usr/src มาแกะกล่องกันเก็บถาวรด้วยคำสั่ง:

    ทาร์ zxvf

    ไปที่โฟลเดอร์ที่มีไฟล์เก็บถาวรที่คลายการแพคแล้วดำเนินการคำสั่งที่ระบุด้านล่าง

    ./configure --libdir=/usr/lib64 --with-pjproject-bundled

    ลำดับคำสั่งนี้จะเตรียมแหล่งสำหรับการประกอบ

    ทำให้ menuselect.makeopts

    หลังจากตั้งค่าตัวเลือกการคอมไพล์แล้ว ให้รัน ลำดับต่อไปนี้การกระทำ:

    1. สร้างบัญชีผู้ใช้แยกต่างหากสำหรับเซิร์ฟเวอร์โทรศัพท์ IP

    adduser เครื่องหมายดอกจัน -s /sbin/nologin -c "ผู้ใช้เครื่องหมายดอกจัน"

    2. สร้างและติดตั้งเซิร์ฟเวอร์

    ทำ && ทำการติดตั้ง

    3. ตั้งค่าสิทธิ์การเข้าถึงเครื่องหมายดอกจันสำหรับผู้ใช้ที่สร้างขึ้นใหม่

    chown -R เครื่องหมายดอกจัน /var/lib/asterisk

    ส่งผลให้ เซิร์ฟเวอร์พื้นฐานเครื่องหมายดอกจันจะถูกสร้างขึ้นและติดตั้ง

    นอกจากเครื่องหมายดอกจันแล้ว คุณยังสามารถติดตั้งส่วนเพิ่มเติมที่มีประโยชน์ให้กับเซิร์ฟเวอร์ได้ในลักษณะเดียวกันบน CentOS อ่านเกี่ยวกับเรื่องนี้ด้านล่าง

    ฟรีPBX

    FreePBX เป็นเว็บอินเตอร์เฟสแบบกราฟิกที่มีคุณสมบัติครบถ้วนซึ่งออกแบบมาสำหรับการตั้งค่าและการจัดการ PBX ในสำนักงาน การติดตั้งเครื่องหมายดอกจันด้วย FreePBX ดำเนินการตามลำดับต่อไปนี้

    มาเริ่มฐานข้อมูลกัน:

    systemctl เริ่ม mariadb

    ดาวน์โหลดซอร์สโค้ด FreePBX จาก GitHub ไปยังโฟลเดอร์ /usr/src:

    git clone -b release/13.0 https://github.com/FreePBX/framework.git freepbx

    ./start_asterisk เริ่มต้น

    และคำสั่งต่าง ๆ สำหรับการตั้งค่า FreePBX:

    ดาดี

    DAHDI เป็นไดรเวอร์ที่ช่วยให้เครื่องหมายดอกจันโต้ตอบกับอุปกรณ์โทรศัพท์ต่างๆ รับผิดชอบการทำงานของการ์ดอินเทอร์เฟซระบบโทรศัพท์ที่ติดตั้งโดยตรงในเซิร์ฟเวอร์ที่ใช้เครื่องหมายดอกจัน ขั้นตอนการติดตั้งสำหรับ DAHDI มีอธิบายไว้ด้านล่าง

    ดาวน์โหลดไฟล์เก็บถาวรพร้อมไดรเวอร์ไปยังไดเร็กทอรี /usr/src แตกไฟล์แล้วไปที่โฟลเดอร์ที่คลายซิป รันคำสั่งในนั้น:

    พีเจเอสไอพี

    PJSIP เป็นไลบรารีที่เขียนด้วยภาษา C ซึ่งรับผิดชอบในการรองรับโปรโตคอลโทรศัพท์ IP ต่างๆ จาก Asterisk เวอร์ชัน 13.8 สามารถติดตั้งไลบรารี PJSIP แยกต่างหากได้ แต่ถ้าคอมไพล์ด้วยเครื่องหมายดอกจัน --with-pjproject-มัดรวม(ซึ่งเป็นสิ่งที่เราทำในส่วนที่แล้ว) ไลบรารี PJSIP จะถูกติดตั้งโดยตรงเมื่อเซิร์ฟเวอร์ถูกคอมไพล์

    ในการติดตั้ง PJSIP แยกต่างหาก จำเป็นต้องมีขั้นตอนต่อไปนี้

    ดาวน์โหลดไฟล์เก็บถาวรพร้อมไดรเวอร์จาก pjsip.org ไปยังไดเร็กทอรี /usr/src แตกไฟล์แล้วไปที่โฟลเดอร์ที่คลายซิป รันคำสั่งในนั้น:

    ขั้นตอนหลังการติดตั้ง

    เมื่อการติดตั้งเครื่องหมายดอกจันเสร็จสมบูรณ์แล้ว ยังมีขั้นตอนเพิ่มเติมจำนวนหนึ่งที่คุณต้องดำเนินการให้เสร็จสิ้น ขั้นตอนเหล่านี้มีผลบังคับใช้

    1. ตั้งค่าการป้องกันสำหรับเซิร์ฟเวอร์ฐานข้อมูล:

    mysql_secure_installation

    เพื่อดำเนินการตามขั้นตอนให้เสร็จสิ้น เพียงตอบ Y ทุกคำถาม

    2. เปลี่ยนการตั้งค่าเว็บเซิร์ฟเวอร์:

    3. เปิดการเข้าถึงบริการและพอร์ตที่จำเป็นสำหรับเครื่องหมายดอกจันในการทำงาน:

    ไฟร์วอลล์-cmd --ถาวร --zone=public --add-service=(http,https) --add-port=5060-5061/tcp --add-port=5060-5061/udp --add-port= 10,000-20,000/udp

    4. กำหนดค่าการโหลดฐานข้อมูลอัตโนมัติ:

    systemctl เปิดใช้งาน mariadb

    5. กำหนดค่าเว็บเซิร์ฟเวอร์ให้โหลดเมื่อเริ่มต้นระบบ:

    systemctl เปิดใช้งาน httpd

    6. กำหนดค่า FreePBX autostart เมื่อระบบบู๊ต:

    นาโน /etc/systemd/system/freepbx.service

    systemctl เปิดใช้งาน freepbx

    7. ตั้งค่าการเชื่อมต่อกับฐานข้อมูลผ่าน ODBC หากมีการติดตั้งโมดูลที่ล้าสมัย cdr_mysql.so,รายการนี้เป็นทางเลือก แต่ยังคงแนะนำ:

    นาโน /etc/odbc.ini

    เมื่อต้องการทดสอบการเชื่อมต่อ ODBC ให้ใช้คำสั่งต่อไปนี้:

    isql -v เครื่องหมายดอกจันcdrdb

    8. รีบูตระบบเพื่อใช้การเปลี่ยนแปลงที่ทำ:

    การติดตั้งเครื่องหมายดอกจัน 13 บน Debian

    ใน ส่วนนี้เราจะดูขั้นตอนการติดตั้งบนแพลตฟอร์มยอดนิยมอื่น - Debian ข่าวดีสำหรับผู้ใช้ก็คือว่ามันค่อนข้างง่าย ถึงแม้ว่ามันจะรวมการสร้างจากแหล่งที่มาด้วยก็ตาม ตามตัวอย่าง เราจะติดตั้ง Asterisk บน Debian 8

    การติดตั้งจะดำเนินการในฐานะผู้ใช้ระดับสูง (รูท) เปิดเทอร์มินัลรับสิทธิ์ที่เหมาะสมหลังจากนั้นคุณสามารถดำเนินการติดตั้งต่อได้

    ขั้นแรก ดาวน์โหลด Asterisk 13 จากเว็บไซต์อย่างเป็นทางการ และแตกไฟล์ที่ดาวน์โหลดมา ไปที่โฟลเดอร์ที่มีแหล่งที่คลายการแพ็ก

    ตอนนี้เรามาติดตั้งการพึ่งพาที่จำเป็นกัน สิ่งที่สำคัญที่สุด - คอมไพเลอร์ gcc - มีอยู่แล้วใน Debian ดังนั้นเรามาดาวน์โหลดอันที่เหลือกันดีกว่า:

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

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

    ก่อนที่จะคอมไพล์เครื่องหมายดอกจัน คุณสามารถเปิดหรือปิดใช้งานแต่ละโมดูลได้:

    แอปพลิเคชันคอนโซลจะเปิดขึ้นพร้อมรายการโมดูล ด้วยการเลื่อนปุ่มขึ้นและลงผ่านรายการ คุณสามารถเปิดและปิดปุ่มเหล่านั้นได้ โมดูลเพิ่มเติมบางโมดูลจำเป็นต้องมีการติดตั้งการขึ้นต่อกัน ซึ่งสามารถทำได้โดยใช้ ฉลาดรับ

    ตอนนี้เรามาเริ่มรวบรวมเครื่องหมายดอกจันกันดีกว่า ป้อนคำสั่งที่คุ้นเคยลงในคอนโซล:

    1. สร้างซอร์สโค้ด:

    2. การติดตั้งในไดเร็กทอรีระบบ:

    เมื่อการคอมไพล์เสร็จสิ้นโดยไม่มีข้อผิดพลาด คุณต้องรันคำสั่ง:

    เป็นอันเสร็จสิ้นการติดตั้ง ติดตั้งเครื่องหมายดอกจันบนเซิร์ฟเวอร์ของคุณสำเร็จแล้ว คำสั่งต่อไปนี้จะแสดงคอนโซลการจัดการเครื่องหมายดอกจัน:

    เครื่องหมายดอกจัน -vvvvvvgc

    การตั้งค่าเครื่องหมายดอกจัน

    ตอนนี้เรามาดูขั้นตอนพื้นฐานสำหรับการตั้งค่าเซิร์ฟเวอร์โทรศัพท์ Asterisk โดยพื้นฐานแล้วจะเหมือนกันสำหรับลีนุกซ์ทุกรุ่น

    ก่อนอื่นคุณต้องเพิ่มข้อความต่อไปนี้ลงในไฟล์ จิบ.conf:

    สิ่งนี้จะสร้างบัญชีห้าบัญชีที่ไคลเอนต์ SIP ใด ๆ สามารถใช้งานได้ (Cisco SIP Phone, xlite, ATA และอื่น ๆ ที่คล้ายกัน) ผู้ใช้ทุกคนจะถูกลงทะเบียนด้วยเครื่องหมายดอกจัน ถ้า การกำหนดค่านี้ไม่ทำงาน ให้ลองปิดการใช้งานไฟร์วอลล์ก่อนที่จะตั้งค่าซอฟต์แวร์ให้เสร็จสิ้น

    สร้างแผนการโทรครั้งแรกของคุณ

    แผนหมายเลข (dialplan) ให้คำอธิบายอย่างเป็นทางการของกระบวนการประมวลผลการโทร Dialplan จะบอกระบบโดยละเอียดว่าต้องทำอย่างไรกับสายโทรออกและสายเรียกเข้า ตัวอย่างเช่น เครื่องหมายดอกจันสามารถส่งต่อ ตอบกลับด้วยระบบตอบรับอัตโนมัติ และอื่นๆ

    เปิดไฟล์ extension.confในโฟลเดอร์ /etc/เครื่องหมายดอกจันและเพิ่มบรรทัดเข้าไป:

    ขยาย=> _XXXX,1,กด(SIP/$(EXTEN))

    ขณะนี้ไคลเอ็นต์ SIP ที่กำหนดค่าไว้ทั้งหมดจะสามารถรับและส่งสายได้ เนื่องจากความง่ายในการตั้งค่า dialplan ทำให้ Asterisk เป็นหนึ่งในแพลตฟอร์มโทรศัพท์ IP ที่เป็นมิตรที่สุด การติดตั้ง PBX ในสำนักงานไม่จำเป็นต้องใช้ทักษะมากนัก

    กำลังสร้าง SIP Trunk แรก

    เครื่องหมายดอกจันสามารถโทรออกและรับสายได้ สำหรับการโทรออก เรากำหนดให้ผู้ให้บริการโอนสายไปยังระบบของเรา รวมถึงที่อยู่ IP สาธารณะ

    ในการดำเนินการนี้ คุณจะต้องกำหนดค่าช่อง SIP Trunk การสื่อสารเสมือนจริงระหว่างอุปกรณ์ไคลเอนต์และ ผู้ให้บริการโทรศัพท์- หากเซิร์ฟเวอร์ของเราที่มีเครื่องหมายดอกจันจะทำหน้าที่เป็นอุปกรณ์ของลูกค้า การตั้งค่า trunk จะช่วยให้คุณสามารถเชื่อมต่อหมายเลขโทรศัพท์ในเมืองจำนวนเท่าใดก็ได้โดยใช้โปรโตคอล SIP

    หากต้องการสร้าง Trunk ให้เพิ่มโค้ดต่อไปนี้ลงในไฟล์ จิบ.conf:

    หลังจากนี้คุณจะต้องเข้า extension.confอีกหนึ่งบรรทัด:

    ขยาย => _XXXXXXX.,1,Dial(SIP/trunk1/$(EXTEN))

    สิ่งนี้จะทำให้คุณสามารถสร้างการเชื่อมต่อกับผู้ให้บริการของคุณเพื่อโทรออกได้

    บทสรุป

    การตั้งค่าสำนักงาน PBX เต็มรูปแบบโดยใช้เครื่องหมายดอกจันการติดตั้งที่กล่าวถึงในบทความนี้มีขั้นตอนมากกว่าที่อธิบายไว้ข้างต้น ข้อมูลโดยละเอียดเกี่ยวกับเซิร์ฟเวอร์ระบบโทรศัพท์และความสามารถของเซิร์ฟเวอร์แสดงอยู่ใน เอกสารอย่างเป็นทางการโดยเครื่องหมายดอกจัน

    23.02.2012 15:56

    บทความที่ช่วยให้โปรแกรมเมอร์มือใหม่สามารถตั้งค่าเครื่องหมายดอกจันขั้นพื้นฐานได้

    เครื่องหมายดอกจันเป็นหนึ่งในเซิร์ฟเวอร์โทรศัพท์ IP ที่พบบ่อยที่สุด พร้อมด้วยระบบต่างๆ เช่น Switchwox และ 3CX ระบบนี้ได้รับความนิยมอย่างมากจากการแพร่กระจายของอินเทอร์เน็ตคุณภาพสูงในประเทศของเรา เช่นเดียวกับผู้ให้บริการโทรศัพท์หลายรายที่ให้หมายเลขโทรศัพท์ในรูปแบบ SIP หรือที่เรียกว่าหมายเลข SIP หนึ่งในบริษัทดังกล่าวคือ Datagroup ซึ่งก่อตั้งตัวเองขึ้นเป็นหนึ่งในผู้นำในตลาดบริการการสื่อสาร เมื่อหมายเลข SIP มีราคาถูกลง จึงสมเหตุสมผลที่จะใช้สมัยใหม่ ระบบโทรศัพท์ระบบโทรศัพท์ IP แทน mini-PBX แบบอะนาล็อกแบบเก่า นี่เป็นเพราะฟังก์ชันการทำงานที่หลากหลายของศูนย์บริการที่ใช้เครื่องหมายดอกจัน ในเวลาเดียวกันต้นทุนของอุปกรณ์และการตั้งค่าเครื่องหมายดอกจันนั้นเกือบจะเหมือนกับต้นทุนทางการเงิน

    การติดตั้งเครื่องหมายดอกจันผลิตโดยการดาวน์โหลดและรวบรวมซอร์สโค้ดที่แจกฟรีที่พัฒนาโดย Digium เพิ่มเติม แหล่งที่มาของเครื่องหมายดอกจันมีอยู่เฉพาะสำหรับระบบปฏิบัติการยูนิกซ์เท่านั้น ระบบปฏิบัติการซึ่งที่พบบ่อยที่สุดคือ Linux และ FreeBSD การติดตั้งเครื่องหมายดอกจันบน Windows ทำได้โดยการใช้เครื่องเสมือนเท่านั้น คุณสามารถดาวน์โหลดเครื่องหมายดอกจันเวอร์ชันล่าสุดได้จากลิงค์ต่อไปนี้ ในขณะนี้เซิร์ฟเวอร์นี้ 4 เวอร์ชันกำลังได้รับการพัฒนาพร้อมกัน เวอร์ชันดอกจัน 1.4 และดอกจัน 1.6 มีความเสถียรมากที่สุดในบรรดาโมดูลทั้งหมด ในทางกลับกันในแง่ของฟังก์ชันการทำงาน เครื่องหมายดอกจันเวอร์ชัน 1.8 เปรียบเทียบได้ดีซึ่งรองรับโมดูลและฟังก์ชันใหม่มากมายรวมถึงการรองรับโปรโตคอล SRTP ทำงานกับ IPv6 และปรับปรุงประสิทธิภาพเมื่อทำงานกับ SIP และ ISDN

    บทความนี้จะกล่าวถึงการติดตั้งเครื่องหมายดอกจัน v 1.6.22 บน Linux Fedora Core

    หากต้องการเริ่มการติดตั้ง ให้ดาวน์โหลดแหล่งที่มาของเครื่องหมายดอกจัน เมื่อต้องการทำเช่นนี้ ให้รันคำสั่งในคอนโซลเซิร์ฟเวอร์:

    # wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.22.tar.gz

    # tar -xzvf เครื่องหมายดอกจัน-1.6.2.22.tar.gz

    ก่อนที่จะรวบรวมซอร์ส มาติดตั้งโมดูลและยูทิลิตี้ที่จำเป็นทั้งหมดก่อน:

    #ยำติดตั้งgcc

    # ยำติดตั้ง gcc-c++

    # ยำติดตั้งทำ

    # ยำติดตั้ง libxml2-devel

    # yum ติดตั้ง ncurses-devel

    หลังจากทุกอย่าง สาธารณูปโภคเพิ่มเติมติดตั้งแล้วเราติดตั้งเครื่องหมายดอกจันเอง:

    # ซีดีเครื่องหมายดอกจัน-1.6.2.22

    หลังจากการติดตั้งสำเร็จ ในไดเร็กทอรี /etc/asterisk คุณจะพบไฟล์การกำหนดค่าเครื่องหมายดอกจัน เครื่องหมายดอกจันได้รับการกำหนดค่าโดยการแก้ไขไฟล์การกำหนดค่าที่มีโครงสร้างและตัวดำเนินการที่เฉพาะเจาะจงมาก พื้นฐานสำหรับการกำหนดค่าเมื่อกำหนดค่าเครื่องหมายดอกจันคือ sip.conf และไฟล์ extensions.conf เมื่อศึกษาและแก้ไขไฟล์เหล่านี้แล้ว การดำเนินงานที่เหมาะสมเซิร์ฟเวอร์

    ไฟล์ sip.conf รวมถึงการตั้งค่าของอุปกรณ์ SIP ทั้งหมดที่ลงทะเบียนบนเซิร์ฟเวอร์ ซึ่งต่อมาโต้ตอบกันโดยการเชื่อมต่อช่อง SIP สองช่องขึ้นไป ดังนั้นจึงเริ่มการเชื่อมต่อโทรศัพท์ - นั่นคือการโทร

    ตัวอย่างไฟล์ sip.conf:

    มีคุณสมบัติ=ใช่
    แนท=ไม่

    ค่าเริ่มต้นหมดอายุ=3600
    ไม่อนุญาต=ทั้งหมด
    อนุญาต = อนุญาต
    อนุญาต=ulaw
    จากผู้ใช้=044XXXXXXX
    โฮสต์=80.91.169.2
    ไม่ปลอดภัย = เชิญพอร์ต
    ความลับ=xxxxxxxxxxxx
    ประเภท = เพื่อน
    ชื่อผู้ใช้=044XXXXXXX
    บริบท=ขาเข้า
    ภาษา=en
    มีคุณสมบัติ=ใช่
    dtmfmode=อัตโนมัติ

    ประเภท=เพื่อน
    โฮสต์ = ไดนามิก
    ไม่ปลอดภัย = เชิญพอร์ต
    ชื่อผู้ใช้=fxo
    ความลับ=xxxxxxxxx
    บริบท=ขาเข้า
    มีคุณสมบัติ=ใช่
    แนท=ไม่
    สามารถเชิญใหม่ได้=ไม่
    อนุญาตให้โอน=ไม่ใช่
    dtmfmode=อัตโนมัติ
    ไม่อนุญาต=ทั้งหมด
    อนุญาต = อนุญาต
    อนุญาต=ulaw

    ประเภท=เพื่อน
    regexten=101
    ความลับ=xxxxxxxxxxxx
    บริบท=ภายใน
    โฮสต์ = ไดนามิก
    ผู้โทร = "101"
    ไม่อนุญาต=ทั้งหมด
    อนุญาต = อนุญาต
    อนุญาต=ulaw
    ภาษา=en
    กลุ่มการโทร=1
    กลุ่มรถกระบะ=1
    มีคุณสมบัติ=ใช่
    สามารถเชิญใหม่ได้=ใช่
    ขีดจำกัดการโทร=4
    แนท=ไม่

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

    จำเป็นต้องมีบล็อก ประกอบด้วยการตั้งค่าและตัวเลือกที่ใช้กับการบล็อกทั้งหมดตามค่าเริ่มต้น กล่าวอีกนัยหนึ่ง หากไม่ได้ระบุพารามิเตอร์เมื่ออธิบายอุปกรณ์ เครื่องหมายดอกจันจะอ่านจากบล็อกนี้

    สามช่วงตึกถัดไปจะอธิบายอุปกรณ์ SIP โดยตรง เพื่อความชัดเจน อุปกรณ์ทั้งสามเครื่องมีจุดประสงค์ที่แตกต่างกัน บล็อกนี้อธิบายพารามิเตอร์สำหรับหมายเลข sip ของบริษัท Datagroup บล็อกอธิบายพารามิเตอร์สำหรับการเชื่อมต่อกับเกตเวย์ VOIP และบล็อกอธิบายพารามิเตอร์ของอุปกรณ์ sip ภายในปกติที่ซอฟต์แวร์หรือโทรศัพท์ IP ฮาร์ดแวร์สามารถใช้ได้

    เรามาดูพารามิเตอร์หลักกันดีกว่า อุปกรณ์จิบ- พารามิเตอร์บริบทจะกำหนดว่าจะใช้อัลกอริธึมการดำเนินการใดกับอุปกรณ์เฉพาะ Callerid กำหนดหมายเลขเพียร์และชื่อ ซึ่งจะแสดงเมื่อมีการโทรออก ตัวเลือกไม่อนุญาตและอนุญาตจะกำหนดว่าตัวแปลงสัญญาณใดที่จะใช้สำหรับการสื่อสาร ตัวเลือกลับคือรหัสผ่านสำหรับการลงทะเบียนเพียร์นี้ ขอแนะนำให้สร้างรหัสผ่านที่ซับซ้อนพอที่จะหลีกเลี่ยงการแฮ็กโดยผู้ประสงค์ร้าย

    ไฟล์ extensions.conf อธิบายการโต้ตอบระหว่างบริบทและช่องทางการสื่อสาร ซึ่งสามารถมีได้จำนวนมาก ที่จริงแล้วไฟล์นี้เป็นไฟล์หลักเมื่อกำหนดค่าเครื่องหมายดอกจัน

    ตัวอย่างไฟล์ extensions.conf:

    ขยาย => _XXX,1,Dial(SIP/$(EXTEN),120,tT)
    ขยาย => _XXX,n,วางสาย

    ขยาย => _X.,1,Dial(SIP/กลุ่มข้อมูล/$(EXTEN),120,tT)
    ขยาย => _X.,n,วางสาย

    ขยาย => _X.,1,Dial(SIP/101,60,tT)
    ขยาย => _X.,2,วางสาย

    ขยาย => h,1,วางสาย

    ในตัวอย่างที่ง่ายที่สุดนี้ เรามีอัลกอริธึมการดำเนินการสองแบบ (บริบท) - ภายในและขาเข้า ขอให้เราจำไว้ว่าการเชื่อมโยงกับบริบทนั้นดำเนินการเมื่อสร้างเพียร์ในไฟล์ sip.conf และต่อมาถูกกำหนดใน extensions.conf เมื่อพยายามเริ่มต้นการสื่อสารกับเพียร์

    ให้เราอธิบายทั้งสองบริบทโดยละเอียดยิ่งขึ้น ตามชื่อของพวกเขาเป็นที่ชัดเจนว่าใช้สำหรับอัลกอริธึมสำหรับสมาชิกภายใน (ภายใน) และสายเรียกเข้า (ขาเข้า) ตัวอย่างทั่วไปซึ่งสามารถแสดงในบรรทัดต่อไปนี้จะช่วยให้คุณเข้าใจการออกแบบไฟล์นี้:

    ขยาย => _XXX,n,คำสั่ง(ตัวเลือก)

    ตัวเลือกเหล่านี้ถูกถอดรหัสดังนี้:

    Exten => _XXX เป็นคำนำหน้าบริการที่บรรทัดเกือบทั้งหมดในไฟล์นี้เริ่มต้นขึ้น มันอธิบายการเป็นตัวแทนของบริบทที่เข้ามา กล่าวอีกนัยหนึ่ง หากบริบทนี้ได้รับการติดต่อโดยเพื่อนหมายเลข 101 อัลกอริทึมของบริบทนี้ควรเริ่มต้นด้วยการก่อสร้าง exten => 101 คำนำหน้ารองรับ การแสดงออกปกติและสามารถระบุได้โดยทั่วไป ตัวอย่างเช่น ขยาย => _XXX ระบุว่าอยู่ภายใต้ อัลกอริทึมนี้เพื่อนทั้งหมดที่ประกอบด้วยตัวเลขสามหลักจะรวมอยู่ด้วย

    N - หมายเลขบรรทัดของอัลกอริทึม ในโค้ดโปรแกรมใดๆ จะมีลำดับของคำสั่งที่ถูกดำเนินการตามลำดับ ในทำนองเดียวกันมีลำดับดังกล่าวในการตั้งค่าเครื่องหมายดอกจัน ข้อแตกต่างเพียงอย่างเดียวคือคำสั่งที่ดำเนินการโดยเครื่องหมายดอกจันจะมีหมายเลขกำกับไว้ จำเป็นต้องระบุบรรทัดแรกอย่างชัดเจน ดังที่คุณอาจสังเกตเห็นแล้ว บริบททั้งหมดเริ่มต้นด้วยบรรทัด:

    ขยาย => _XXX,1,…..
    ขยาย => _X.,1,…..
    ขยาย => h,1,……

    แต่บรรทัดเพิ่มเติมสามารถกำหนดหมายเลขโดยปริยายได้ กล่าวคือ เช่นนี้

    ขยาย => _XXX,n,…..
    ขยาย => _X.,n,…..
    ขยาย => h,n,……

    เมื่อมีการระบุหมายเลขบรรทัดโดยปริยาย เครื่องหมายดอกจันจะดำเนินการตามลำดับจากบนลงล่าง เช่นเดียวกับที่ทำกับโค้ดอื่นๆ

    Command - คำสั่งที่ดำเนินการโดยเครื่องหมายดอกจัน คำสั่งพื้นฐานมีไม่มากนัก สำหรับการตั้งค่าพื้นฐาน ก็เพียงพอที่จะทราบไวยากรณ์ของคำสั่ง Dial ซึ่งเราจะดูตัวเลือกที่เหลือเป็นตัวอย่าง

    ตัวอย่างเช่น:
    exten => _X.,1,Dial(SIP/101,60,tT) - เครื่องหมายดอกจันจะกดหมายเลขต่อ 101 และพยายามเข้าถึงผู้สมัครสมาชิกภายใน 60 วินาทีโดยมีความเป็นไปได้ที่จะสกัดกั้นการโทรจากการโทรและรับสาย (ตัวเลือก tT)
    exten => _X.,1,Dial(SIP/datagroup/$(EXTEN),120,tT) เครื่องหมายดอกจันจะหมุนหมายเลขที่ส่งผ่านในตัวแปร $(EXTEN) โดยใช้ datagroup peer ที่ระบุไว้ก่อนหน้านี้ใน sip.conf

    ตัวอย่างแรกถูกใช้ในบริบทขาเข้า ซึ่งหมายความว่าสายเรียกเข้าทั้งหมดที่มาถึงบริบทนี้จะถูกเปลี่ยนเส้นทางไปยังผู้สมัครสมาชิกภายในที่รับสายเหล่านี้ ตัวอย่างที่สองจะแสดงวิธีการโทรออกโดยการส่งหมายเลขที่โทรออกในตัวแปรบริการ $(EXTEN)

    ไฟล์ตัวอย่างสามารถคัดลอกได้โดยตรงจากบทความนี้ และวางลงใน sip.conf และ extensions.conf ของคุณ และแก้ไขตัวเลือกบางอย่าง (การเข้าสู่ระบบ ชื่อเพียร์ รหัสผ่าน ฯลฯ) หลังจากตั้งค่าเครื่องหมายดอกจันแล้ว เราจะเริ่มเซิร์ฟเวอร์ด้วยคำสั่งง่ายๆ:

    การดำเนินการเพิ่มเติมสามารถทำได้จากบรรทัดคำสั่งดอกจันซึ่งเรียกใช้งานด้วยคำสั่ง:

    # เครื่องหมายดอกจัน -rvvvvd

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

    ป.ล. หากคุณไม่สามารถกำหนดค่าเซิร์ฟเวอร์ได้ หรือต้องการการกำหนดค่าที่ซับซ้อนมากขึ้น เรายินดีที่จะช่วยคุณกำหนดค่าเครื่องหมายดอกจัน ผู้ติดต่อของเรา


    หลังจากติดตั้งระบบแล้ว
    ในที่สุด ไม่ทางใดก็ทางหนึ่ง เราได้ติดตั้ง Asterisk และ FreePBX แล้ว

    ฉันจะอธิบายสถานการณ์โดยละเอียดอีกเล็กน้อยเพื่อเปรียบเทียบว่ารูปแบบการทำงานของเราเหมาะกับคุณหรือไม่ เราเป็นผู้ให้บริการอินเทอร์เน็ตรายเล็ก เราต้องการบันทึกการสนทนา รอคิวการโทรเข้าโทรศัพท์บ้านและโทรศัพท์มือถือ เมนูเสียงบอกโปรโมชั่นพร้อมตัวเลือกว่าจะไปแผนกใด และความสามารถในการนำเสนอทั้งหมดนี้ได้อย่างรวดเร็ว ข้อความเกี่ยวกับอุบัติเหตุบนถนนบางสายในเมือง เพื่อไม่ให้ผู้คนออกแรงสนับสนุนมากเกินไป โดยควรไม่มีค่าใช้จ่าย เพื่อไม่ให้ซื้อเกตเวย์ราคาแพง เราจึงตัดสินใจเปลี่ยนหมายเลขโทรศัพท์ของเมืองและซื้อหมายเลขสองสามหมายเลข + สิบช่องจากผู้ให้บริการโทรศัพท์ IP บางคนจะบอกว่ามันไม่น่าเชื่อถือ ฯลฯ แค่บอกฉันว่าผู้ให้บริการอินเทอร์เน็ตบนโทรศัพท์บ้านจะมีความแตกต่างอะไรหากอินเทอร์เน็ตทั้งหมดของเขาหลุด? แต่มันราคาถูก การเชื่อมต่อมีค่าใช้จ่ายเพียง $38 หมายเลขโทรศัพท์แต่ละหมายเลข $2 และสายโทรศัพท์ $1.2 ต่อเดือน หลังจากนั้นเราได้รับการตั้งค่าแม้จะไม่ได้รับอนุญาตและบัญชีก็เชื่อมโยงกับที่อยู่ IP ของเรา ฉันต้องการกำหนดทันทีว่าบทความนี้จะมีโครงสร้างอย่างไร เพื่อไม่ให้มีภาพหน้าจอจำนวนมากเกินไป ฉันจะอธิบายการสร้างแต่ละองค์ประกอบเพียงครั้งเดียว (ซึ่งฉันแนะนำให้คุณทำเนื่องจากจำเป็นสำหรับการทดลองครั้งต่อไปของคุณ) จากนั้นฉันจะเขียนไดอะแกรมของสิ่งที่อ้างอิงถึงสิ่งที่อยู่ในแผนงานของเรา แน่นอนว่าแผนภาพของคุณจะแตกต่างออกไป แต่คุณจะสามารถเข้าใจความหมายได้ ฉันจะอธิบายเฉพาะองค์ประกอบที่จำเป็นโดยตรงระหว่างการตั้งค่า

    ตอนนี้เป็นเวลาที่จะเริ่มลำต้น:

    เพื่อความชัดเจนฉันจะเขียนเป็นภาษาอังกฤษเพราะ... อินเทอร์เฟซได้รับการแปลเป็นชิ้น ๆ และค่อนข้างลึกลับ ไปที่การเชื่อมต่อ> Trunks> เพิ่ม SIP Trunk

    ที่มุมขวาจะมีรายการลำต้นที่คุณสร้างไว้แล้ว เมื่อเปิดอันใหม่ฉันสุ่มกรอกชื่อ - ชื่อ Trunk เรียกมันว่าเวก้า (Vegatelecom เป็นผู้ให้บริการของเรา) Outbound CallerID โดยป้อนหมายเลขในรูปแบบ 380652XXXXXXXX ตามที่ผู้ให้บริการของเราออกให้ นี่คือหมายเลขที่จะโทรออก หากไม่ได้ตั้งค่าไว้จะไม่สามารถโทรโดยใช้ Trunk นี้ได้ทุกสาย กำลังยุ่งอยู่ ในการตั้งค่าขาออก ฉันกรอกช่องชื่อ Trunk อื่นและป้อนการตั้งค่าที่กำหนดโดยผู้ให้บริการ:

    โฮสต์=93.178.205.29
    ประเภท = เพื่อน
    ไม่อนุญาต=ทั้งหมด
    อนุญาต=alaw&ulaw&g729
    แนท=ไม่
    สามารถเชิญใหม่ได้=nonat
    ไม่ปลอดภัย = เชิญ
    dtmfmode=rfc2833

    ที่ด้านล่างฉันคลิกปุ่มส่งการเปลี่ยนแปลงและรับ Trunk ที่สร้างขึ้น

    ตอนนี้เราต้องเลือกว่าจะรับสายที่ไหน ไปที่แอปพลิเคชัน > ส่วนขยาย > อุปกรณ์ SIP ทั่วไป > ส่ง

    มีจุดสำคัญสามจุดในการตั้งค่านี้:

  • ตั้งค่าที่อยู่ IP แบบคงที่สำหรับเซิร์ฟเวอร์
  • ตั้งค่า DNS
  • ตั้งค่าเขตเวลา
  • มาดูการตั้งค่า IP กันดีกว่า โดยไปที่แท็บผู้ดูแลระบบ → ผู้ดูแลระบบ → การตั้งค่าเครือข่าย


    ที่นี่เรากำหนดค่าตัวเลือกต่อไปนี้:

    • อินเทอร์เฟซเครือข่าย - อินเตอร์เฟซเครือข่ายนั่นคือการ์ดเครือข่ายเฉพาะ (NIC)
    • การกำหนด IP - เลือกแบบคงที่เพื่อกำหนดค่าที่อยู่ IP แบบคงที่
    • IP แบบคงที่ - ป้อนที่อยู่ IP ของเซิร์ฟเวอร์
    • เน็ตมาสก์ - เน็ตเวิร์กมาสก์
    • เกตเวย์ - เกตเวย์เริ่มต้น
    • เริ่มโดยอัตโนมัติ - เริ่มต้นเมื่อเซิร์ฟเวอร์บูท


    มาตั้งค่าการแจ้งเตือนสำหรับเซิร์ฟเวอร์ Asterisk ของเราในกรณีที่เกิดความล้มเหลว เช่น พื้นที่ดิสก์เหลือน้อยหรือความล้มเหลวของอาร์เรย์ RAID:


    เรากำหนดค่าตัวเลือกต่อไปนี้:

    • ที่อยู่จาก - ที่อยู่ อีเมลซึ่ง ATS จะระบุเป็นที่อยู่ของผู้ส่งเมื่อสร้างจดหมาย
    • การแจ้งเตือนที่เก็บข้อมูล - เมลสำหรับการแจ้งเตือนเกี่ยวกับปัญหาการจัดเก็บข้อมูล (ความล้มเหลวของ RAID หรือพื้นที่ดิสก์เหลือน้อย)
    • IP การแจ้งเตือนการตรวจจับการบุกรุก - อีเมลสำหรับการแจ้งเตือนเกี่ยวกับการบุกรุกหรือความพยายามในการแฮ็กเซิร์ฟเวอร์

    การกำหนดค่าความปลอดภัย

    เครื่องหมายดอกจันมีระบบตรวจจับการบุกรุกในตัว – Fail2Ban หากต้องการกำหนดค่าระบบ ให้ไปที่แท็บผู้ดูแลระบบ → ผู้ดูแลระบบ → การตรวจจับการบุกรุก


    ระบบมีความยืดหยุ่น และบางครั้งก็ตอบสนองเมื่อไม่จำเป็น :) ดังนั้น เราขอแนะนำให้คุณเพิ่มรายการที่อยู่ IP ที่จำเป็น เช่น พร็อกซี IP SIP ที่อยู่เกตเวย์ เช่น FXS ลงในไวท์ลิสต์ล่วงหน้า บางครั้งมันเกิดขึ้นที่ที่อยู่ IP ของเกตเวย์ FXS ที่โทรศัพท์อะนาล็อกในสำนักงานทั้งหมดเชื่อมต่ออยู่จะถูกแบน

    • สถานะ - เราขอแนะนำให้คุณตรวจสอบสถานะของ Fail2Ban เสมอเพื่อให้สถานะกำลังทำงานอยู่
    • การตรวจจับการบุกรุก - ณ จุดนี้คุณสามารถหยุดและรีสตาร์ทบริการได้
    • เวลาแบน - เวลาเป็นวินาทีที่ที่อยู่ IP จะอยู่ในสถานะบล็อก
    • Max Retry - จำนวนความพยายามในการเชื่อมต่อกับ PBX ที่ผู้ใช้สามารถทำได้ในระหว่าง Find Time
    • Find Time - เวลาที่ผู้ใช้พยายามเชื่อมต่อกับระบบสูงสุดอีกครั้ง
    • อีเมล: - ที่อยู่อีเมลที่จะส่งการแจ้งเตือนเกี่ยวกับการเพิ่มที่อยู่ IP ใหม่ลงในการแบน
    • ไวท์ลิสต์คือรายการที่อยู่ IP ที่ป้อนไว้ล่วงหน้าซึ่งผู้ดูแลระบบเชื่อถือ

    การตั้งค่าหมายเลขต่อ

    เพื่อกำหนดค่า ชุดโทรศัพท์และสร้างหมายเลขภายใน ไปที่แท็บ Applications → Extensions เราได้อธิบายกระบวนการสร้างหมายเลขภายใน (ส่วนขยาย) ไว้ในบทความตามลิงค์ด้านล่าง:

    กำลังตั้งค่า SIP Trunk

    การเชื่อมต่อกับผู้ให้บริการก็คือ ขั้นตอนที่สำคัญที่สุดในการตั้งค่า IP เซิร์ฟเวอร์ของคุณ - เครื่องหมายดอกจัน PBX- เป็นการตั้งค่าผู้ให้บริการที่จะอนุญาตให้ผู้ใช้ของเราโทรออกและรับสายเรียกเข้า สำหรับ การตั้งค่าจิบ– trunk ไปที่แท็บการเชื่อมต่อ → Trunks กระบวนการสร้าง SIP trunk มีการอธิบายโดยละเอียดในบทความที่ลิงค์ด้านล่าง:

    การตั้งค่าเส้นทาง

    หลังจากที่เรากำหนดค่าหมายเลขภายในและ SIP Trunks เพื่อเชื่อมต่อกับผู้ให้บริการแล้ว เราจำเป็นต้องกำหนดค่าการกำหนดเส้นทางการโทร ในส่วนหนึ่งของการตั้งค่านี้ เราจะสอนเซิร์ฟเวอร์เครื่องหมายดอกจันถึงวิธีจัดการกับสายเรียกเข้าและโทรออก b>การเชื่อมต่อ → เส้นทางขาเข้า/ขาออก เราได้อธิบายกระบวนการนี้โดยละเอียดในบทความที่ลิงก์ด้านล่าง:

    เนื่องจากเครื่องหมายดอกจันของเราจะถูกติดตั้งไว้ บริษัทขนาดเล็กเราวางแผนที่จะสร้างเมนูเสียงซึ่งจะช่วยให้ผู้ใช้ติดต่อกับบุคคลที่เหมาะสมได้อย่างรวดเร็ว การตั้งค่า เมนูเสียง(IVR) ได้รับการควบคุมในโมดูล IVR ซึ่งคอนโซลการกำหนดค่าจะอยู่ในแท็บ Applications → IVR คุณสามารถค้นหาการตั้งค่าได้ที่ลิงค์ด้านล่าง::

    บทความนี้มีประโยชน์กับคุณหรือไม่?

    โปรดบอกฉันว่าทำไม?