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

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 ลินุกซ์ เฟโดราแกนกลาง

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

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

มาดูพารามิเตอร์หลักของอุปกรณ์ SIP กัน พารามิเตอร์บริบทจะกำหนดว่าจะใช้อัลกอริธึมการดำเนินการใดกับอุปกรณ์เฉพาะ 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 คำนำหน้ารองรับนิพจน์ทั่วไปและสามารถระบุได้ในลักษณะทั่วไป ตัวอย่างเช่น exten => _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

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

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


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

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


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

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

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

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

รูปแบบ:
register => ผู้ใช้ [:secret[:authuser]] @host [:port]

ตัวอย่าง:
- ลงทะเบียน 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 ) ตั้งค่าพารามิเตอร์นี้เป็น "ใช่" เพื่อหลีกเลี่ยงการรับข้อความแสดงข้อผิดพลาดเมื่อส่ง MWI ไปยังโทรศัพท์ที่มีปัญหานี้: กำหนดกลุ่มการโทรสำหรับการโทรผ่านอุปกรณ์นี้การโทรล่วงหน้า: ตั้งแต่เวอร์ชัน 1.4.x โหมดการเผยแพร่ CallerId ให้ดูค่า ในไฟล์ doc/callingpres.txt จากการกระจาย asterisk.call-limit: เริ่มต้นจากเวอร์ชัน 1.4.x__ การจำกัดจำนวนการโทรสำหรับผู้ใช้ ขาเข้า .: เปิดใช้งานเฉพาะในกรณีที่ไคลเอ็นต์รองรับฟังก์ชัน: .cid_number: ตั้งแต่เวอร์ชัน 1.4.x ส่วนหมายเลขของฟิลด์ CallerID.context: บริบทแผนการโทรซึ่งมีการโทรที่มาจากไคลเอ็นต์นี้ตกอยู่: ที่อยู่ IP เริ่มต้นของ client when.host= ถูกกำหนดให้เป็น 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 เครือข่ายอินเทอร์เน็ตด้วยที่อยู่ IP ปกติ) พร็อกซีขาออก: ที่อยู่พร็อกซีเซิร์ฟเวอร์สำหรับการโทรออก (ประเภทเพียร์เท่านั้น) อนุญาต ปฏิเสธ: ข้อจำกัดเกี่ยวกับที่อยู่ IP และเครือข่าย IP สำหรับไคลเอนต์ หมายเหตุ: ในเวอร์ชัน 1.4.x พารามิเตอร์มาสก์จะไม่ถูกใช้อีกต่อไป : จัดกลุ่มสำหรับการโทร “รับ” ถึงเพื่อนร่วมงานของคุณโดยใช้ชุดค่าผสม “*8” และแอปพลิเคชัน Pickup() เพื่อทำงานกับส่วนขยาย *8.port: พอร์ต SIP ของ client.progressinband: เริ่มต้นจากเวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่/ไม่เคย ค่าเริ่มต้น: ไม่เคย เครื่องหมายดอกจันควรสร้างเสียงเรียกเข้าของตัวเองสำหรับ (เสียงเรียกเข้าในวงดนตรี) ใช้ค่า "ไม่" เพื่อไม่สร้างสัญญาณนี้ แม้ว่าอุปกรณ์แปลก ๆ บางตัวไม่สามารถสร้างสัญญาณได้เองก็ตาม: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ หากตั้งค่าเป็น "ใช่" เราจะอนุญาตให้ส่งข้อความ SIP ที่มีรหัส 302 หรือข้อความโอนสายไปยังไคลเอนต์ SIP ที่มีที่อยู่ IP ที่ไม่ใช่ในเครื่อง เป็นที่น่าสังเกตว่าพฤติกรรมของ Promiscredir เมื่อโอนสายที่ทำบนระบบโลคัลสามารถนำไปสู่การวนสายได้เพราะ เครื่องหมายดอกจันไม่สามารถรับสายแบบกิ๊บติดผมได้ : ตรวจสอบความพร้อมของลูกค้าเป็นระยะ จำกัด: (ใช่/ไม่ใช่) ตัวเลือกนี้ไม่ได้ใช้ ให้ใช้callingpresแทน rfc2833compensate: ตั้งแต่เวอร์ชัน 1.4.x ค่า: ใช่/ไม่ใช่ ค่าเริ่มต้น: ไม่ใช่ เปิดใช้งานการชดเชยสำหรับการส่งสัญญาณ DTMF จากเซิร์ฟเวอร์เครื่องหมายดอกจันอื่น ๆ เวอร์ชันสูงสุด 1.4.* ในกรณีเหล่านี้ คุณต้องเปิดใช้งานคุณสมบัตินี้ มิฉะนั้นการรับสัญญาณ DTMF จะทำงานไม่ถูกต้อง : ยุติการโทรหากไม่มีกิจกรรมสตรีมสื่อ RTP เป็นเวลานานกว่า x วินาที และหากสายไม่อยู่ในโหมดพักสาย : ยกเลิกการโทรหากไม่มีกิจกรรมสตรีมสื่อ RTP เป็นเวลานานกว่า x วินาที ในโหมดพักสาย (ค่าต้องมากกว่า rtptimeout) ความลับ: หากเครื่องหมายดอกจันทำหน้าที่เป็นเซิร์ฟเวอร์ SIP ไคลเอ็นต์ SIP นี้จะต้องได้รับอนุญาตด้วยรหัสผ่านนี้ (ความลับร่วมกัน) หากเครื่องหมายดอกจันทำหน้าที่เป็นไคลเอนต์ SIP ที่ทำงานกับเซิร์ฟเวอร์ SIP ระยะไกลที่ต้องมีการอนุญาตสำหรับคำขอ "SIP INVITE" ดังนั้นฟิลด์นี้จะถูกนำมาใช้เพื่อการอนุญาตในข้อความ "SIP INVITE" ที่เครื่องหมายดอกจันของเราจะส่งไปยังเซิร์ฟเวอร์ SIP ระยะไกล 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 ทั้งหมดผ่านเครื่องหมายดอกจัน
กล่องจดหมาย=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 ของโทรศัพท์ Cisco) ปัญหานี้อธิบายไว้ใน: อีเมลของผู้เขียนตัวแปร $(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 จาก แหล่งข้อมูลภายนอก: ใช้กลไก RealTime สำหรับช่อง 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 ในฐานข้อมูล

เครื่องหมายดอกจันเป็นโซลูชันระบบโทรศัพท์คอมพิวเตอร์แบบโอเพ่นซอร์ส ซอร์สโค้ดซึ่งรองรับโปรโตคอล 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 เสร็จสมบูรณ์ ตอนนี้คุณสามารถไปได้แล้ว การปรับแต่งเพิ่มเติมเครือข่ายสำหรับการโทรระหว่างสมาชิกของคุณโดยตรงผ่านทางอินเทอร์เน็ต ในฐานะไคลเอ็นต์ซอฟต์แวร์ คุณสามารถใช้โปรแกรมใดก็ได้ที่รองรับโปรโตคอลที่จำเป็น เช่น Jitsi หรือ Linphone

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

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

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

ตอนแรกก็มีคำว่า

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

จากนั้นก็มีเรื่อง

โดยทั่วไปบนกระดาษทุกอย่างสวยงามและง่ายดาย มันเป็นเพียงเรื่องของการติดตั้งและกำหนดค่าเครื่องหมายดอกจัน
ขั้นแรก มีการซื้อเซิร์ฟเวอร์ธรรมดาสองตัว Core i7-930, หน่วยความจำ 12GB และดิสก์ SATA 12TB ฟรี Xen Server ได้รับการติดตั้งบนเซิร์ฟเวอร์เหล่านี้และปรับใช้ เซิร์ฟเวอร์เสมือนและเวิร์กสเตชันสำหรับคนทำงานระยะไกล
เช่น ที่จัดเก็บข้อมูลภายนอกฉันกำลังใช้ QNAP NAS ที่สืบทอดมา
พื้นที่เก็บข้อมูลภายในเทราไบต์จำเป็นสำหรับการจัดเก็บมีเดียแบงค์ซึ่งมีขนาดค่อนข้างใหญ่เท่านั้น เซิร์ฟเวอร์มีน้ำหนักรวมกันน้อยกว่า 3 เทราไบต์
หนึ่งในเซิร์ฟเวอร์คือ Asterisk เพื่อแทนที่ Panasonic TDE-200 รุ่นเก่า เพราะ บริษัทต้องการการสื่อสารราคาถูก มีเบอร์ตรงเข้ามา ประเทศต่างๆและการเจรจาอย่างเสรีระหว่างพนักงาน โดยทั่วไปแล้วไม่มีทางเลือกอื่นสำหรับ 12 เชเขล

วันแรก: สร้างโลก

มีการตัดสินใจกำหนดค่าเครื่องหมายดอกจันสำหรับ Citrix Xen ระบบปฏิบัติการ CentOS อันเดียวกันแต่จากด้านข้างเท่านั้น ฉันจะจองทันที: ฉันเป็นผู้ดูแลระบบ Windows มาตลอดชีวิต และฉันแค่ “เล่น” กับ *nix ในเครื่องเสมือนเท่านั้น ไม่นับเว็บเซิร์ฟเวอร์สองสามตัวบนฮาร์ดแวร์ ดังนั้น การใช้เครื่องหมายดอกจันใน Citrix Xen นี้จึงดูไร้เดียงสาบางอย่างจากมุมมองของผู้มีประสบการณ์
โดยทั่วไปแล้ว ฉันปฏิบัติตามเส้นทางที่ได้รับการพิสูจน์แล้ว: คำแนะนำโดยละเอียดสำหรับหุ่นจำลองจากคู่มืออย่างเป็นทางการนั้นเปิดบนแล็ปท็อปและดำเนินการบนเซิร์ฟเวอร์ตามตัวอักษรและไม่มีความคิดริเริ่ม คุณจะสามารถเล่นเป็นผู้แก้ไขฮีโร่ได้ในภายหลัง เมื่อทุกอย่างได้รับการกำหนดค่าและทำงานในสถานะ "เริ่มต้น" และทำการสำรองข้อมูลเต็มรูปแบบครั้งแรก

วันที่สอง: yum ติดตั้งเครื่องหมายดอกจัน -y

ไม่ใช่ว่าฉันรู้สึกประหลาดใจมาก แต่ถึงกระนั้น ฉันไปหาเพื่อนด้านโทรคมนาคมเพื่อขอคำแนะนำในการตั้งค่าเครื่องหมายดอกจัน เมื่อฉันพบว่ามีเครื่องหมายดอกจันที่มีอยู่แล้วสามตัว: 1.4, 1.6 และ 1.8 แต่ละคนมีแมลงสาบและโลชั่นของตัวเอง เพราะ ฉันไม่รู้สึกยินดีกับความหวังที่จะเอาชนะเครื่องหมายดอกจันด้วยความตั้งใจ ดังนั้นฉันจึงตัดสินใจติดตั้งเวอร์ชัน 1.4 เหมือนของเพื่อน เพื่อให้มีการกำหนดค่าที่เข้ากันได้สูงสุดที่เป็นไปได้ แม้ว่าในเวลาต่อมา เราจะต้องอัปเกรดเป็น 1.6 เนื่องจากขาดการรองรับ TCP ใน 1.4 เมื่อความต้องการดังกล่าวเกิดขึ้น
เมื่อต้องการทำเช่นนี้ มีการแนบที่เก็บ digium เข้ากับ CentOS และติดตั้งเครื่องหมายดอกจันจากนั้น
การติดตั้งเป็นไปตามที่คาดไว้โดยไม่มีข้อผูกมัด โดยพื้นฐานแล้ว มีการใช้แผนงานทีละขั้นตอนที่สมเหตุสมผลพร้อมข้อมูล voip
iptables ได้รับการแก้ไขทันทีเพื่อให้สามารถรับส่งข้อมูลบนพอร์ต SIP
ยังไม่เกิดขึ้นทันที แต่ฉันแนะนำให้คนรุ่นต่อๆ ไปติดตั้งและกำหนดค่าแพ็คเกจชื่อ failed2ban ทันที ไม่ใช่โปรแกรมฟุ่มเฟือยบนเซิร์ฟเวอร์ที่เปิดเผยต่ออินเทอร์เน็ต หนึ่งวันหลังการติดตั้ง ไต้หวันทั้งหมดตกต่ำลง โดยตัดสินโดย iptables

วันที่สาม: ข้อกำหนดทางเทคนิคสำหรับฟังก์ชัน PBX

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

  • หมายเลขโทรศัพท์เป็นตัวเลขสี่หลัก
  • ตัวเลขตัวแรกคือสัญลักษณ์ของประเทศที่สำนักงานตั้งอยู่
  • การนับเลขในแต่ละแผนกจะเริ่มต้นด้วยหลักแรกของหลักร้อยถัดไป
  • แต่ละแผนกจะมีกลุ่มการโทรแยกกัน
  • หากผู้สมัครสมาชิกที่ถูกเรียกไม่สามารถรับสายได้ไม่ว่าด้วยวิธีใดก็ตาม การโทรจะถูกโอนไปยังทั้งกลุ่ม
  • ตรรกะในการให้บริการสายเรียกเข้า:
  • หยิบโทรศัพท์ขึ้นมา
  • เล่นทักทาย.
  • เล่นโฆษณาเกี่ยวกับโปรโมชั่นปัจจุบัน
  • เล่นตัวเลือกการโทรไปยังแผนกต่างๆ หรือเสนอให้กดหมายเลขสมาชิก
  • เริ่มจากจุดที่ 2 รอให้ป้อนคำสั่งใด ๆ
  • หลังจากเสร็จสิ้นขั้นตอนที่ 4 แล้ว ให้รออีก 10 วินาทีเพื่อให้ป้อนคำสั่ง
  • หากไม่มีคำสั่ง ให้เล่นตัวเลือกการโทรอีกครั้ง
  • หากสมาชิกยังโง่อยู่ให้โอนสายไปที่เลขา
  • ผู้ใช้ที่ต้องการบริการดังกล่าวควรเพิ่มข้อความเสียง ในกรณีนี้ หากผู้ใช้ไม่สามารถโทรออกได้ไม่ว่าด้วยวิธีใดก็ตาม ให้โอนสายไปยังข้อความเสียง
  • ตามค่าเริ่มต้น อนุญาตให้โทรได้เฉพาะในรัสเซียและอิตาลี ซึ่งเป็นประเทศที่บริษัทของเราดำเนินกิจการเป็นหลัก ทิศทางที่เหลือจะถูกเปิดตามความจำเป็นด้วยมาสก์ที่แคบที่สุดเพราะว่า เราทุกคนจำได้ เรื่องราวที่น่ากลัวเกี่ยวกับ “ผู้ให้บริการโทรศัพท์ในคิวบา” และเราไม่อยากให้วันหนึ่ง PBX ของเราเริ่มโทรไปยังเซียร์ราลีโอนทั้ง 50 ช่องอย่างกะทันหัน โดยคิดค่าบริการ 14 ดอลลาร์ต่อนาทีสำหรับแต่ละช่อง

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

วันที่สี่: nano sip.conf

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


บริบท=ค่าเริ่มต้น ;บริบทเริ่มต้น
Allowguest=no ;ไม่มีแขก เราไม่ได้คาดหวังใคร
Allowoverlap=no ;พารามิเตอร์นี้จะกำหนดว่าเราอนุญาตให้โอนสายด้วยตัวเลขเพิ่มเติมหรือไม่ เราไม่อนุญาต
Alwaysauthreject=yes ;พารามิเตอร์นี้หมายความว่าข้อผิดพลาดทั้งหมดสำหรับไคลเอ็นต์ภายนอกมีลักษณะเหมือนกัน - ข้อผิดพลาดในการอนุญาต ออกแบบมาเพื่อทำให้การแฮ็ก PBX มีความซับซ้อน
useragent=Orgue de Barbaris ;นี่คือวิธีที่เราแนะนำตัวเองกับผู้อื่น ฉันระบุตัวเองด้วยชื่อแผ่นเสียงแผ่นแรกเพื่อให้ฝ่ายสนับสนุนด้านเทคนิคของผู้ให้บริการค้นหาการสนทนากับ PBX ของฉันได้ง่ายขึ้น เพราะ... ฉันต้องสื่อสารกับพวกเขาเป็นระยะ
defaultexpiry=360 ;ช่วงเวลาสำหรับการลงทะเบียนไคลเอนต์ใหม่ที่จำเป็น
callevents=yes ;นี่เป็นสำหรับอนาคตเพื่อให้ไคลเอนต์สามารถเล่นเพลงที่ควบคุมการพักสายได้
Limitonpeer=yes ;เรานับสายโทรออกและสายเรียกเข้าจากเพื่อนด้วยกัน
tcpenable=yes ;เปิดใช้งานโปรโตคอล TCP สำหรับ SIP
rtptimeout=60 ;ระยะเวลาที่ไคลเอ็นต์อาจไม่ตอบสนองก่อนที่จะถูกไล่ออกจากระบบ
language=ru ;ภาษาของระบบ ใช้สำหรับเมนูเสียง
bindport=5060 ;พอร์ตเริ่มต้น สามารถเปลี่ยนแปลงได้เพื่อทำให้การคำนวณและการแฮ็ก PBX ซับซ้อนขึ้น แต่วิธีแก้ปัญหายังเป็นที่ถกเถียงกันอยู่
bindaddr=0.0.0.0 ;ฉันมีเลขศูนย์เพราะ... PBX มีสองอินเทอร์เฟซและทั้งสองมีไคลเอนต์
srvlookup=ใช่
tos_sip=cs3 ; http://www.voip-info.org/wiki/view/Asterisk+sip+tos
tos_audio=efdisallow=all ;ขั้นแรกไม่อนุญาตให้ใช้ตัวแปลงสัญญาณทั้งหมด
Allow=alaw ;จากนั้นเราจะอนุญาตเฉพาะที่เราต้องการใช้เท่านั้น ลำดับไม่สำคัญ
อนุญาต=g729
อนุญาต=g723
อนุญาต=ulaw

canreinvite=no ;พารามิเตอร์นี้ป้องกันไม่ให้ไคลเอ็นต์สื่อสารโดยตรง การสื่อสารเกิดขึ้นผ่านเซิร์ฟเวอร์เท่านั้น ฉันทำเช่นนี้เพราะไคลเอนต์มือถือใช้ไคลเอนต์แบบชำระเงินด้วยโปรโตคอล g.729a และไคลเอนต์โทรศัพท์พื้นฐานใช้ ลูกค้าฟรีโดยไม่มีมัน ดังนั้น ฉันต้องการให้เซิร์ฟเวอร์เครียดด้วยการแปลงรหัส alawg.729a ทันทีเพื่อสนับสนุนคุณภาพการเชื่อมต่อสำหรับ ลูกค้ามือถือ- ยิ่งกว่านั้น Core i7-930 ไม่สังเกตเห็นภาระนี้เลย

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

  • ไปที่โฟลเดอร์ "contrib/scripts/" โดยใช้คำสั่ง "cd"
  • เปิดสคริปต์ "get_mp3_source.sh"
  • พิมพ์ "ทำการติดตั้ง"
  • รอในขณะที่ดาวน์โหลดไฟล์เก็บถาวร
  • เครื่องหมายดอกจันที่ติดตั้งจะต้องกำหนดค่าทั้งผ่านเมนูและผ่านเทอร์มินัล ดังนั้นเปิดคอนโซลของคุณ

  • ทำไฟล์คอนฟิกูเรชัน สามารถใช้เป็นแบบทดสอบได้ คำสั่งคือ "สร้างตัวอย่าง"
  • เปิดใช้งานฟังก์ชั่นการทำงานอัตโนมัติ -“ make config ldconfig”
  • ตอนนี้คุณสามารถเริ่มบริการได้ - "บริการเครื่องหมายดอกจันเริ่มต้น"
  • หรือเปิดเป็นดีมอนทันที - “/etc/init.d/asterisk start” หากต้องการเปิดใช้งานคอนโซล ให้ป้อนคำสั่ง “sudo asterisk -rvvvcd”
  • ในตอนนี้ หากต้องการทำงานกับ Asterisk คุณต้องมีสิทธิ์ของ superuser แต่เป็นการดีกว่าที่จะสร้าง ผู้ใช้แต่ละรายและให้เขาเข้าถึงฟังก์ชั่นของโปรแกรมได้ เมื่อต้องการทำสิ่งนี้:

  • ปิดการใช้งานยูทิลิตี้ชั่วคราว -“ หยุดเครื่องหมายดอกจันบริการ”
  • เพิ่มผู้ใช้ใหม่ - “adduser [ชื่อ]” คุณสามารถสร้างกลุ่มที่คุณจะให้สิทธิ์ที่จำเป็นได้ มันจะมีประโยชน์หากคุณตัดสินใจสร้างผู้ใช้หลายคนเพื่อร่วมงานด้วย บริการที่แตกต่างกันเครื่องหมายดอกจัน
  • ตอนนี้เราต้องการไดเร็กทอรีเพื่อเปิดใช้งาน เพิ่มโดยใช้คำสั่ง "mkdir" หลังจากนั้นให้เขียนพารามิเตอร์ “-p” และเส้นทางไปยังโฟลเดอร์ “/var/run/asterisk”
  • หากต้องการให้แอปพลิเคชันเปิดทันทีภายใต้ผู้ใช้ที่ต้องการ ให้แก้ไขไฟล์ “/etc/default/asterisk” ตั้งค่าพารามิเตอร์ต่อไปนี้: “AST_GROUP="dialout"" และ "AST_USER="asterisk""
  • คุณสามารถทำได้ง่ายขึ้น - ป้อนสคริปต์ “sed -i ‘s/#AST_USER=”asterisk”/AST_USER=”asterisk”/g’ /etc/default/asterisk”
  • ให้สิทธิ์ผู้ใช้เข้าถึงโฟลเดอร์โปรแกรมทั้งหมด - "chown -R [ชื่อผู้ใช้] [Path-to-directory]"
  • เปิดไฟล์ "asterisk.conf" ค้นหาพารามิเตอร์ "runuser" ในนั้นและระบุผู้ใช้ที่สร้างขึ้นใหม่ หากคุณสร้างกลุ่ม ให้เขียนบรรทัด "rungroup" ใหม่ด้วย
  • รีบูตระบบ - "รีบูต"
  • เข้าสู่ระบบในฐานะผู้ใช้เครื่องหมายดอกจัน - “su [ชื่อ]”
  • และรันโปรแกรม
  • หากต้องการดูข้อมูลเกี่ยวกับสิ่งนี้ ให้ป้อน “เครื่องหมายดอกจัน -rvvvv”
  • ยูทิลิตี้นี้พร้อมใช้งานแล้ว การดำเนินการเพิ่มเติมขึ้นอยู่กับเงื่อนไขที่จะใช้สถานี มีหลายไฟล์ที่มีการกำหนดค่า:

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

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