VoIP คืออะไร
VoIP ย่อมาจาก Voice over Internet Protocol คือการสื่อสารทางเสียงผ่านอินเทอร์เน็ต เป็นเทคโนโลยีใหม่สำหรับการโทรศัพท์ผ่านทางเครือข่าย Internet ซึ่งมีข้อดีอันดับแรก ๆ ที่เห็นได้ชัดก็คือ ช่วยลดค่าใช้จ่ายในการโทรได้ ไม่ว่าจะเป็นการโทรภายในประเทศ หรือการโทรระหว่างประเทศก็ตาม เพราะการโทรศัพท์ผ่านทางระบบ Internet นั้นไม่จำเป็นที่จะต้องทำงานผ่านทางชุมสายโทรศัพท์ ซึ่งจะมีค่าใช้จ่ายของส่วนที่ให้บริการด้วย
VoIP นั้นเป็นการประยุกต์การส่งข้อมูลผ่าน Internet มาใช้งาน ซึ่งโดยปกติการใช้งาน Internet จะเป็นการใช้สัญญาณข้อมูลเพียงอย่างเดียว แต่สำหรับการใช้งาน VoIP นั้นจะเป็นการนำเอาสัญญาณเสียงมารวมเข้ากับสัญญาณข้อมูล เพื่อส่งผ่านไปยังระบบเครือข่ายผ่านทาง Protocol l ที่ใช้สำหรับอินเทอร์เน็ตก็คือ Internet Protocol หรือที่เรียกกันทั่วไปว่า IP ซึ่งตามปกตินั้น IP จะใช้สัญญาณข้อมูลเท่านั้น แต่ด้วยเทคโนโลยี VoIP ที่ทำให้ส่งสัญญาณเสียงได้ ตัวอย่างผู้ให้บริการ VoIP ในประเทศไทย เช่น บริษัท แอดวานซ์ เทเลโฟน แอนด์ เทเลคอมมูนิเคชั่น จำกัด
การใช้เทคโนโลยี VoIP รูปแบบต่าง
1. คอมพิวเตอร์ส่วนบุคคล ไปยัง คอมพิวเตอร์ส่วนบุคคล ( PC to PC )
2. คอมพิวเตอร์ส่วนบุคคล ไปยัง โทรศัพท์พื้นฐาน ( PC to Phone )
3.จากเครื่องโทรศัพท์สู่เครื่องคอมพิวเตอร์ (Phone-to-PC)
4. โทรศัพท์กับโทรศัพท์ ( Telephony )
ประโยชน์ที่ได้รับ จาก VoIP
1.ลดค่าใช้จ่าย
2.เพิ่มความยืดหยุ่นในการติดต่อสื่อสาร
3.จัดการระบบเครือข่ายได้ง่ายขึ้น เนื่องจากเครือข่ายการติดต่อสื่อสารทั้งหมด สามารถยุบรวมกันให้เหลือเพียงเครือข่ายเดียวได้ อีกทั้งในกรณีที่มีการโยกย้ายของหน่วยงานหรือพนักงาน การจัดการด้านหมายเลขโทรศัพท์และอื่นๆ สามารถทำได้โดยไม่จำเป็นต้องเดินสายสัญญาณใดๆขึ้นมาใหม่
4.รองรับการขยายตัวของระบบในอนาคต หากในอนาคตองค์กรขยายตัวใหญ่ขึ้น VoIP สามารถรองรับผู้ใช้งานได้เพิ่มมากขึ้นในทันทีโดยการเพิ่ม Virtual User เข้าไปในระบบเท่านั้นเอง
5.ลดค่าใช้จ่ายในการดูแลและจัดการระบบ (Reduce Operating Expenses) เนื่องจากใช้ซอฟต์แวร์ในการจัดการ ทำให้ VoIP นั้นง่ายในการจัดการและบำรุงรักษา
6.เพิ่มประสิทธิภาพการทำงาน (Increase Productivity) พนักงานสามารถส่งเอกสารผ่านเครือข่ายควบคู่ไปกับการสนทนา หรืออาจจัดการประชุมออนไลน์(Conference Call) ทั้งภาพและเสียง และแม้กระทั่งส่งเอกสารการประชุมให้กับผู้เข้าร่วมประชุม ผ่านทางเครือข่ายได้อีกด้วย
7.ใช้ร่วมกับการสื่อสารไร้สายได้ ทำให้อุปกรณ์สื่อสารไร้สายต่างๆ เช่นโทรศัพท์มือถือหรือPDA สามารถติดต่อผ่าน VoIP เข้ามาในเครือข่ายขององค์กรได้
8.เพิ่มประสิทธิภาพในการติดต่อกับลูกค้า (Improved Level of Services) โดยใช้ความสามารถของแอพพลิเคชั่นต่างๆ ของ VoIP เช่น Click-to-talk เพื่อเพิ่มความสะดวกและรวดเร็วในการติดต่อกับลูกค้า
วันพฤหัสบดีที่ 6 กุมภาพันธ์ พ.ศ. 2557
การสื่อสารด้วยระบบ VOIP
การสื่อสารด้วยระบบ VOIP
วิวัฒนาการการสื่อสารผ่านอินเตอร์เน็ต
ในปัจจุปันการใช้อินเทอร์เน็ตมีบทบาทกับชีวิตประจำวันมากขึ้น และใช้งานกันอย่างกว้างขวาง โดยเฉพาะอย่างยิ่งความจำเป็นที่จะต้องติดต่อสื่อสาร อินเตอร์เน็ตจึงได้รับการพัฒนาโครงสร้างพื้นฐานเพื่อรองรับการสื่อสารรูปแบบต่างๆ เช่น การใช้จดหมายอินเล็กทรอนิกส์ การติดต่อด้วยเสียง ระบบ VDO Conference การใช้โทรศัพท์บนเครือข่าย ซึ่งก็มีวิวัฒนาการตามลำดับเบื้องต้นดังนี้ E-mail หรือ จดหมายอิเล็กทรอนิคส์เป็นบริการอย่างหนึ่งที่นิยมใช้กันอย่างแพร่หลายมาก จนทำให้บางคนคิดว่า E-mail คือ อินเตอร์เน็ต และอินเตอร์เน็ตคือ E-mail วิธีใช้งานอีเมลล์ก็ง่ายและมีประโยชน์มาก การทำงานของ E-mail มีลักษณะคล้ายกับระบบไปรษณีย์ปกติ (หมายถึงระบบที่ใช้กระดาษในการเขียนจดหมาย) กล่าวคือในระบบไปรษณีย์ปกติมีหน่วยงานที่ทำหน้าที่ในการรับส่งจดหมายคือเป็นบรุษไปรษณีย์ (ในกรณีของประเทศไทยคือ การสื่อสารแห่งประเทศไทย) ถ้าเป็นในอินเตอร์เน็ตสิ่งที่ทำหน้าที่คอยรับส่งจดหมายคือบรรดาคอมพิวเตอร์ทั้งหลายที่ทำหน้าที่เป็น E-mail Server (คอมพิวเตอร์ที่ทำหน้าที่ให้บริการด้านจดหมายอิเล็กทรอนิคส์) Chat คือ การส่งข้อความสั้นๆ ระหว่างบุคคลที่อยู่หน้าเครื่องคอมพิวเตอร์ในเวลาเดียวกัน และสามารถเขียนโต้ตอบกันไปมาคล้ายกับการคุยกัน ซึ่งก็ได้มีการพัฒนโปรแกรมสำหรับหาร Chat ออกมามากมายที่เป็นที่นิยมและใช้กันอย่างแพร่หลายก็คือ MSN Messenger และสิ่งหนึ่งที่มีการพัฒนาต่อมา คือระบบการสื่อสารด้วยเสียงผ่านเครือข่าย IP ที่เรียกว่า เทคโนโลยี Voice over IP หรือที่รู้จักกันโดยทั่วไปว่า VoIP จนสามารถใช้งานได้ดีขึ้น เพื่อให้ได้รับประโยชน์และมีความสะดวกมากที่สุด VoIP ถูกเริ่มต้นใช้งานกันอย่างกว้างขวาง เพื่อให้เครื่องคอมพิวเตอร์ส่วนบุคคลสามารถสนทนา ระหว่างกัน ได้ รวมถึงการสนทนากับโทรศัพท์พื้นฐานอีกด้วยโดยไม่เสียค่าบริการแต่อย่างได และคุณภาพของบริการก็ถูกพัฒนาขึ้นมาเรื่อยๆจนเทียบเท่าระบบ โทรศัพท์พื้นฐาน ซึ่ง VoIP สามารถแบ่งได้เป็น 3 ลักษณะคือ 1. คอมพิวเตอร์ส่วนบุคคล ไปยัง คอมพิวเตอร์ส่วนบุคคล ( PC to PC ) PC มีการติดตั้ง sound card และไมโครโฟน ที่เชื่อมต่ออยู่กับเครือข่าย IP การประยุกต์ใช้ PC และ IP-enabled telephones สามารถสื่อสารกันได้แบบจุดต่อจุด หรือ แบบจุดต่อหลายจุด โดยอาศัย software ทางด้าน IP telephony
2. คอมพิวเตอร์ส่วนบุคคล ไปยัง โทรศัพท์พื้นฐาน ( PC to Phone ) เป็นการเชื่อมเครือข่ายโทรศัพท์เข้ากับ เครือข่าย IP ทำให้โดยอาศัย Voice trunks ที่สนับสนุน voice packet ทำให้สามารถใช้ PC ติดต่อกับ โทรศัพท์ระบบปกติได้
3. โทรศัพท์กับโทรศัพท์ ( Telephony ) เป็นการใช้โทรศัพท์ธรรมดา ติดต่อกับโทรศัพท์ธรรมดา แต่ในกรณีนี้จริงๆแล้วประกอบด้วยขั้นตอนการส่งเสียงบนเครือข่าย Packet ประเภทต่างๆซึ่งทั้งหมดติดต่อกันระหว่างชุมสายโทรศัพท์ (PSTN) การติดต่อกับ PSTN หรือ การใช้โทรศัพท์ร่วมกับเครือข่ายข้อมูลจำเป็นต้องใช้ gateway
เอกสารอ้างอิง
[1] L.R. Rabiner, The impact of voice processing on modern telecommunications, Proceeding of the Speech Communication 17,p 217-226,1995 [2] A.Barberis,C.Casetti,J.C.De Martin,M.Meo, A simulation study of adaptive voice communications on IP networks, Proceeding of the Computer Communication 24,p 757-767,2001 [3] Alcatel Inc. , IP Telephony Design Guide ,Alcatel white paper, April 2003 [4] Voice Over IP Reference Page, Available on http://www.protocols.com/pbook/VoIP.htm( 19 August 2004) [5] Roberto Arcomano berto, VoIP Howto, August 7, 2002, Available on http://www.tldp.org/HOWTO/VoIP-HOWTO.html (19 August 2004) [6] Alan Percy, Senior Sales Engineer, Understanding Latency in IP Telephony, Available on http://www.telephonyworld.com/training/brooktrout/iptel_latency_wp.html (19 August 2004) [7] Asim Karim, Ohio State University , H.323 and Associated Protocols , Available on http://www.cis.ohio-state.edu/~jain/cis788-99/h323/index.html (19 August 2004) [8] ปวีณ เขื่อนแก้ว.2004.โทรศัพท์บนเครือข่ายอินเตอร์เน็ต (Voice over Internet Protocol ( VoIP ).ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่ [9] กรุงเทพธุรกิจ (กรุงเทพไอที) ฉบับวันที่ 16 สิงหาคม 2544 [10] บริษัท Allied Telesyn [11] การสื่อสารด้วยระบบ Voice-over-IP (VoIP), Available on http://www.voipthailand.com/voip/articles/voip_articles_00002.html
Voice over IP (VoIP) คืออะไร
ก่อนที่เราจะรู้ว่า VoIP คือออะไร สิ่งที่เราควรจะต้องรู้ก่อนก็คือ เครือข่าย IP มีหลักการพื้นฐานอย่างไร แล้วจึงพัฒนาไปเป็น VoIP ได้อย่างไร หลักการพื้นฐานของเครือข่าย IP เครือข่ายไอพี (Internet Protocol) มีพัฒนามาจากรากฐานระบบการสื่อสารแบบ Packet โดยระบบมีการกำหนด Address ที่เรียกว่า IP Address จาก IP Address หนึ่ง ถ้าต้องการส่งข่าวสารไปยังอีก IP Address หนึ่ง ใช้หลักการบรรจุข้อมูลใส่ใน Packet แล้วส่งไปในเครือข่าย ระบบการจัดส่ง Packet กระทำ ด้วยอุปกรณ์สื่อสารจำพวก Router โดยมีหลักพื้นฐานการส่งเป็นแบบ DATAGRAM หรือ Packet ซึ่งมีความหมายว่า "เป็นที่เก็บข้อมูลที่เป็นอิสระ ซึ่งมีสารสนเทศเพียงพอในการเดินทางจากแหล่งข้อมูลไปยังคอมพิวเตอร์ปลายทาง โดยปราศจากความเชื่อมั่นของการเปลี่ยนครั้งก่อน ระหว่างแหล่งข้อมูลกับคอมพิวเตอร์ปลายทาง และเครือข่ายการส่งข้อมูล"
ซึ่งจะเห็นว่าการส่งแบบ Packet เข้าไปในเครือข่ายนั้น จะไม่มีการประกันว่า Packet นั้นจะถึงปลายทางเมื่อไร ดังนั้นรูปแบบของเครือข่ายไอพีจึงไม่เหมาะสมกับการสื่อสารแบบต่อเนื่องเช่น การส่งสัญญาณเสียง หรือวิดีโอ เมื่อเครือข่าย IP กว้างขวางและเชื่อมโยงกันมากขึ้น ความต้องการส่งสัญญาณข้อมูลเสียงที่ได้คุณภาพจึงเกิดขึ้น ก็เลยมีการพัฒนาเป็น VoIP แล้ว Voice over IP (VoIP) คืออะไร VoIP-Voice Over IP หรือที่เรียกกันว่า VoIP Gateway หมายถึง การส่งเสียงบนเครือข่ายไอพี เป็นระบบที่แปลงสัญญาณเสียงในรูปของสัญญาณไฟฟ้ามาเปลี่ยนเป็นสัญญาณดิจิตอล คือ นำข้อมูลเสียงมาบีบอัดและบรรจุลงเป็นแพ็กเก็ต ไอพี (IP) แล้วส่งไปโดยมีเราเตอร์ (Router) ที่เป็นตัวรับสัญญาณแพ็กเก็ต และแก้ปัญหาบางอย่างให้ เช่น การบีบอัดสัญญาณเสียง ให้มีขนาดเล็กลง การแก้ปัญหาเมื่อมีบางแพ็กเก็ตสูญหาย หรือได้มาล่าช้า (delay) การสื่อสารผ่านทางเครือข่ายไอพีต้องมีเราเตอร์ (Router) ที่ทำหน้าที่พิเศษเพื่อประกันคุณภาพช่องสัญญาณไอพีนี้ เพื่อให้ข้อมูลไปถึง ปลายทางหรือกลับมาได้อย่างถูกต้อง และอาจมีการให้สิทธิพิเศษก่อนแพ็กเก็ตไอพีอื่น (Quality of Service : QoS) เพื่อการให้บริการที่ทำให้เสียงมีคุณภาพ
นอกจากนั้น Voice over IP (VoIP) ยังเป็นการส่งข้อมูลเสียงแบบ 2 ทางบนระบบเครือข่ายแบบ packet-switched IP network. ซึ่งข้อมูลนี้จะถูกส่งผ่านเครือข่ายอินเตอร์เน็ตสาธารณะ เพื่อสื่อสารระหว่าง VoIP ด้วยกัน โดยที่ยังคงความเป็นส่วนตัวไว้ได้ สำหรับการใช้งานเทคโนโลยี VoIP นั้น จริงๆ แล้วทุกๆ องค์กรสามารถนำเทคโนโลยีนี้มาประยุกต์ใช้งานได้ แต่สำหรับกลุ่มเป้าหมายที่ตรงและน่าจะได้รับประโยชน์จากการนำเทคโนโลยี VoIP มาประยุกต์ใช้งานมากที่สุด ได้แก่... กลุ่มธุรกิจขนาดย่อม หรือ SME (Small/Medium Enterprise) รวมถึงกลุ่ม ISP (Internet Service Provider) ต่างๆ สำหรับกลุ่มธุรกิจ SME อาจจะต้องเป็นกลุ่มที่มีระบบเครือข่ายข้อมูลของตนเองอยู่แล้ว ไม่ว่าจะเป็นเครือข่าย Leased Line, Frame Relay, ISDN หรือแม้กระทั่งเครือข่าย E1/T1 ก็ตาม รวมถึงมีระบบตู้สาขาโทรศัพท์ในการใช้งานด้วย การนำเทคโนโลยี VoIP มาใช้งานนั้นจะทำให้องค์กรลดค่าใช้จ่ายในการใช้งานการสื่อสารสัญญาณเสียงไปได้อย่างมาก และเนื่องด้วยในปัจจุบันการขยายตัวของระบบเครือข่ายสัญญาณข้อมูล หรือ Data Network มีอัตราการเติบโตที่รวดเร็วกว่าการขยายตัวของเครือข่ายสัญญาณเสียงค่อนข้างมาก จึงทำให้มีการนำเทคโนโลยีที่สามารถนำสัญญาณเสียงเหล่านั้นมารวมอยู่บนระบบเครือข่ายของสัญญาณข้อมูลและมีการรับ-ส่งสัญญาณทั้งคู่ได้ในเวลาเดียวกัน เพื่อเป็นการสะดวกและประหยัดค่าใช้จ่าย ไม่ว่าจะเป็นค่าโทรศัพท์ทางไกลต่างจังหวัด หรือรวมถึงค่าโทรศัพท์ทางไกลต่างประเทศด้วยถ้าหากองค์กรนั้นมีสาขาอยู่ในต่างประเทศด้วย สำหรับกลุ่มธุรกิจ ISP นั้นสามารถที่จะนำเทคโนโลยี VoIP นี้มาประยุกต์ใช้งานเพื่อเป็นการเพิ่มโอกาสในธุรกิจของตนเองมากยิ่งขึ้น โดยทาง ISP ต่างๆ นั้นสามารถให้บริการ VoIP เพื่อเป็นบริการเสริมเพิ่มเติมขึ้นมาจากการให้บริการระบบเครือข่าย Internet แบบปกติธรรมดา หรือที่เราเรียกว่า Value Added Services ซึ่งถือว่าเป็นการสร้างความแตกต่างและเพิ่มทางเลือกในการให้บริการกับกลุ่มลูกค้าด้วย
เอกสารอ้างอิง
[1] L.R. Rabiner, The impact of voice processing on modern telecommunications, Proceeding of the Speech Communication 17,p 217-226,1995 [2] A.Barberis,C.Casetti,J.C.De Martin,M.Meo, A simulation study of adaptive voice communications on IP networks, Proceeding of the Computer Communication 24,p 757-767,2001 [3] Alcatel Inc. , IP Telephony Design Guide ,Alcatel white paper, April 2003 [4] Voice Over IP Reference Page, Available on http://www.protocols.com/pbook/VoIP.htm( 19 August 2004) [5] Roberto Arcomano berto, VoIP Howto, August 7, 2002, Available on http://www.tldp.org/HOWTO/VoIP-HOWTO.html (19 August 2004) [6] Alan Percy, Senior Sales Engineer, Understanding Latency in IP Telephony, Available on http://www.telephonyworld.com/training/brooktrout/iptel_latency_wp.html (19 August 2004) [7] Asim Karim, Ohio State University , H.323 and Associated Protocols , Available on http://www.cis.ohio-state.edu/~jain/cis788-99/h323/index.html (19 August 2004) [8] ปวีณ เขื่อนแก้ว.2004.โทรศัพท์บนเครือข่ายอินเตอร์เน็ต (Voice over Internet Protocol ( VoIP ).ภาควิชาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยเชียงใหม่ [9] กรุงเทพธุรกิจ (กรุงเทพไอที) ฉบับวันที่ 16 สิงหาคม 2544 [10] บริษัท Allied Telesyn [11] การสื่อสารด้วยระบบ Voice-over-IP (VoIP), Available on http://www.voipthailand.com/voip/articles/voip_articles_00002.html
เทคโนโลยีและการทำงานของ VoIP
Standard of VoIP Technology สำหรับมาตรฐานที่มีการใช้งานอยู่บนเทคโนโลยี VoIP นั้น โดยทั่วไปจะมีอยู่ 2 มาตรฐานด้วยกัน ได้แก่... มาตรฐาน H.323 และมาตรฐาน SIP มาตรฐานเหล่านี้ เราสามารถเรียกได้อีกอย่างหนึ่งว่า Call Control Technologies ซึ่งถือว่าเป็นส่วนประกอบสำคัญสำหรับการนำเทคโนโลยี VoIP มาใช้งาน H.323 Standard สำหรับมาตรฐาน H.323 นั้น จริงๆ แล้วไม่ได้ถูกออกแบบมาให้ใช้งานกับระบบเครือข่ายที่ใช้ Internet Protocol (IP) นอกจากนั้นมาตรฐาน H.323 ยังมีการทำงานที่ค่อนข้างช้า โดยปกติแล้วเราจะเสนอการใช้งานมาตรฐาน H.323 ให้กับลูกค้าก็ต่อเมื่อในระบบเดิมของลูกค้ามีการใช้งานมาตรฐาน H.323 อยู่แล้วเท่านั้น มาตรฐาน H.323 เป็นมาตรฐานภายใต้ ITU-T (International Telecommunications Union) Standard ในตอนแรกนั้น มาตรฐาน H.323 ได้ถูกพัฒนาขึ้นมาเพื่อเป็นมาตรฐานสำหรับการทำ Multimedia Conferencing บนระบบเครือข่าย LAN เป็นหลัก แต่มาในตอนหลังจึงถูกพัฒนาให้ครอบคลุมถึงการทำงานกับเทคโนโลยี VoIP ด้วย มาตรฐาน H.323 สามารถรองรับการทำงานได้ทั้งแบบ Point-to-Point Communications และแบบ Multi-Point Conferences อุปกรณ์ต่างๆ จากหลากหลายยี่ห้อ หรือหลายๆ Vendors นั้นสามารถที่จะทำงานร่วมกัน (Inter-Operate) ผ่านมาตรฐาน H.323 ได้ SIP (Session Initiation Protocol) Standard มาตรฐาน SIP นั้นถือเป็นมาตรฐานใหม่ในการใช้งานเทคโนโลยี VoIP โดยที่มาตรฐาน SIP นั้น ได้ถูกออกแบบมาให้ใช้งานกับระบบ IP โดยเฉพาะ ซึ่งโดยปกติแล้วเราจะแนะนำให้ลูกค้าใหม่ที่จะมีการใช้งาน VoIP ให้มีการใช้งานอยู่บนมาตรฐาน SIP... มาตรฐาน SIP นั้นเป็นมาตรฐานภายใต้ IETF Standard ซึ่งถูกออกแบบมาสำหรับการเชื่อมต่อ VoIP มาตรฐาน SIP นั้นจะเป็นมาตรฐาน Application Layer Control Protocol สำหรับการเริ่มต้น (Creating), การปรับเปลี่ยน (Modifying) และการสิ้นสุด (Terminating) ของ Session หรือการติดต่อสื่อสารหนึ่งครั้ง มาตรฐาน SIP จะมีสถาปัตยกรรมการทำงานคล้ายคลึงการทำงานแบบ Client-Server Protocol เป็นมาตรฐานที่มี Reliability ที่ค่อนข้างสูง
เริ่มต้นเข้าสู่การใช้งาน Asterisk
เริ่มต้นเข้าสู่การใช้งาน Asterisk
ก่อนที่จะเริ่มต้นเข้าสู่การใช้งาน Asterisk เราต้องมาเข้าใจกันก่อนนะครับว่า Asterisk คืออะไร ซึ่งตัว Asterisk ก็เป็นระบบ IP-PBX ซึ่งอยุ่ในกลุ่ม Open source ที่สามารถทำงานได้บน Linux, Mac OS X,Open BSD , FreeBSD ,Sun Solaris ซึ่งทำหน้าที่เป็นตู้สาขาโทรศัพท์ PBX ที่มีคุณสมบัติเทียบเท่ากับตู้สาขาโทรศัพท์ราคาแพง ที่เห็นอยู่ในทุกวันนี้
Asterisk คิดค้นโดย Mark Spencer เมื่อปี 1999 รูปด้านบนก็คือ Mark Spencer
Asterisk คืออะไร
• Asterisk เป็น Open source PBX (www.asterisk.org)
• เป็นซอฟต์แวร์ระบบ IPPBX
ที่สมบูรณ์แบบและมีชื่อเสียงมาก
• รองรับกับระบบปฏิบัติการ Linux , BSD , Mac OS ฯลฯ
• รองรับกับ VoIP Protocols มากที่สุด เช่น H.323 , SIP ,
MGCP , IAX2 , XMPP , ISDN
• รองรับ CODECS หลากหลาย เช่นกัน
– Audio : G.711 , 723 ,729 , GSM , iLBC , Speex
– Video : H.263, H.263+ , H.264(MPEG4)
• มีฟังก์ชั่นของระบบโทรศัพท์ เช่น voicemail ,
conferencing , IVR ซึ่งเป็นมาตรฐานในการใช้งานทั่ว ๆ
ไป
• รองรับกับ Hardware ที่มีความหลากหลาย เช่น Analog
Card , E1 , ISDN
• มีภาษาในการเขียนโปรแกรมเองที่เรียกว่า AEL (Asterisk
Extension Language) เพื่อสั่งงาน
• มีระบบบันทึกการใช้งานโทรศัพท์ (Call Detail Record) :
CDR
ก่อนที่จะเริ่มต้นเข้าสู่การใช้งาน Asterisk เราต้องมาเข้าใจกันก่อนนะครับว่า Asterisk คืออะไร ซึ่งตัว Asterisk ก็เป็นระบบ IP-PBX ซึ่งอยุ่ในกลุ่ม Open source ที่สามารถทำงานได้บน Linux, Mac OS X,Open BSD , FreeBSD ,Sun Solaris ซึ่งทำหน้าที่เป็นตู้สาขาโทรศัพท์ PBX ที่มีคุณสมบัติเทียบเท่ากับตู้สาขาโทรศัพท์ราคาแพง ที่เห็นอยู่ในทุกวันนี้
Asterisk คิดค้นโดย Mark Spencer เมื่อปี 1999 รูปด้านบนก็คือ Mark Spencer
Asterisk คืออะไร
• Asterisk เป็น Open source PBX (www.asterisk.org)
• เป็นซอฟต์แวร์ระบบ IPPBX
ที่สมบูรณ์แบบและมีชื่อเสียงมาก
• รองรับกับระบบปฏิบัติการ Linux , BSD , Mac OS ฯลฯ
• รองรับกับ VoIP Protocols มากที่สุด เช่น H.323 , SIP ,
MGCP , IAX2 , XMPP , ISDN
• รองรับ CODECS หลากหลาย เช่นกัน
– Audio : G.711 , 723 ,729 , GSM , iLBC , Speex
– Video : H.263, H.263+ , H.264(MPEG4)
• มีฟังก์ชั่นของระบบโทรศัพท์ เช่น voicemail ,
conferencing , IVR ซึ่งเป็นมาตรฐานในการใช้งานทั่ว ๆ
ไป
• รองรับกับ Hardware ที่มีความหลากหลาย เช่น Analog
Card , E1 , ISDN
• มีภาษาในการเขียนโปรแกรมเองที่เรียกว่า AEL (Asterisk
Extension Language) เพื่อสั่งงาน
• มีระบบบันทึกการใช้งานโทรศัพท์ (Call Detail Record) :
CDR
รูปโครงสร้างของ Asterisk
ระบบ Asterisk คืออะไร และทำงานอย่างไร
ระบบ Asterisk คืออะไร และทำงานอย่างไร
Asterisk คือ opensource software ที่ทำหน้าที่หลักเป็น Softswitch, IP-PBX หรือที่เรียกว่าตู้ชุมสายโทรศัพท์ระบบ IP ซึ่งมีหน้าที่ในการควบคุมและจัดการบริหาร การเชื่อมต่อ ระหว่างอุปกรณ์โทรศัพท์ผ่านเครื่องข่ายเนทเวอร์ค อีกทั้งยังสามรถเพิ่มเติมประสิทธิ์ภาพและความสามารถในการทำงานได้โดยง่าย
1. Switch (PBX) ตู้ชุมสาย
Asterisk สามารถทำหน้าเป็นอุปกรณ์สลับสายโทรศัพท์ไม่ว่าจะเป็นระบบ IP หรือ hybrid, สามรถทำการตั้งค่าเส้นทางการของการโทรศัพท์โดยตัวเอง, สามารถเพิ่มเติม feature ได้เช่น (ระบบ Voicemail, IVR), รองรับการเชื่อมต่อกับระบบโทรศัพท์พื้นฐานไม่ว่าจะเป็นแบบ analog หรือ digital (ISDN)
2. Gateway
สามารถทำหน้าเป็นอุปกรณ์ที่ใช้ในการเชื่อมต่อระหว่าระบบโทรศัพท์พื้นฐานกับระบบ VoIP เช่นการติดตั้งการ์ดบน Asterisk และ ตั้งค่าให้ ทำงานเป็น Gateway เชื่อมระบบ SIP เข้ากับ ระบบ TDM(PSTN)
3. Feature & Media Server
อีกความสามารถของ Asterisk คือสามารถทำเป็น ระบบตอบรับหรือระบบการประชุมทางโทรศัพท์ เพื่อให้ทำงานเข้ากับระบบโทรศัพท์ที่มีอยู่เดิม ได้อีกด้วย
:ตัวอย่างการ implementation
-สามารถทำเป็น IVR หรือระบบตอบรับ ให้กับตู้ชุมสาย (pabx) เดิมที่ไม่มีระบบตอบรับ
-เชื่อมเข้ากับระบบ Database เพื่อให้ asterisk ทำหน้าที่เหมือนเป็น operator ในการรับสายและตอบคำถามตามที่ลูกค้าต้องการโดยอัตโนมัติ
-ทำเป็น Voice Conference server เพื่อรับการประชุมทางเสียง จากหลายๆจุด
-ระบบ Voice Recognition ทำงานร่วมกับ software ภายนอกเพื่อทำให้ asterisk สามารถที่จะ ตอบโต้กับผู้ใช้งานทางเสียงโดยอัตโนมัติ
-Paging server ทำงานเป็นอุปกรณ์ควบคุมระบบกระจายเสียง PA system
4. Call Center
รองรับการทำงานของระบบ Call-Center อย่างเต็มรูปแบบ เช่น ACD, Queue, IVR, Skill-based routing, etc.
5. Media Conversion
รองรับการทำงานในการแปลงข้อมูลเสียงจาก codec ไปเป็นอีก codec ในกรณีนี้ asterisk จะทำหน้าที่เป็นตัวกลางในการแปลงข้อมูลเสียง
จุดดีและจุดด้อยของ Asterisk
ข้อดี: รองรับการทำงานเกียบจะทุกแบบ คืออะไรที่คิดว่าโทรศัพท์ทำได้ Asterisk ทำได้หมด อะไรที่ไม่คิดว่าจะทำได้ astreisk ก็นำไปประยุกต์ใช้งานได้
ข้อด้อย: เนื่องจาก asterisk มีการออกแบบที่อาจไม่รองรับการขยายตัวขนาดนี้จึงทำให้มีปัญหามากมายในการเพิ่มเติมความสามารถในอนาคต ซึ่ง มีตัวอย่างเหตุผลสนับสนุนด้านล่าง
ตัวอย่างจุดด้อยของ asterisk
สามารถพบ deadlock และ crash ได้บ่อย
พบ memory leak ได้บ่อย
เนื่องจาก architechture ของ asterisk การทำงานเป็นแบบ thread ที่ค่อนข้างที่จะมีข้อจำกัดมาก โดยจะอนุญาติให้เฉพาะ channelตันฉบับและchannelที่ทำการ run application เป็น thread ได้ ฉะนั้น หากเป็นกรณีที่ผู้รับสาย (b-leg) มีการทำอะไรบางอย่างเช่นการโอนสาย, Channel นั้นๆ จะต้องถูกโอนเป็น thread ก่อน ซึ่งจะมีต้องมีการทำ channel masquerade โดยนำ channel เดิมไปใส่ไว้ใน channel ใหม่ ซึ่งเหมือนเป็นการ clone channel นั้นๆขึ้นมาใหม่และทำการ hangup channel เดิมลงไป จีงทำให้ระบบ CDR ของ asterisk นั้น ไม่มีความต่อเนื่องในบางกรณี เช่นการทำ attended transfer ที่เราจะเห็นจำนวน channel เกิดขึ้น 3-4 channel สำหรับการโทรเพียง ครั้งเดียว
มีการใช้ linked-lists เพื่อควบคุม Channel, สำหรับการทำงาน thread ใน asterisk ที่ถูกสร้างขึ้น ในแต่ละ linked-lists จะมี Mutexes ที่ควบคุมการถูก write-access โดยหนึ่ง threaded เท่านั้น ซึ่งอาจนำไปสู่ภาวะที่มีการล้าง บาง channel masquerade ได้ ทำให้เกิด Segmentation Fault ที่ระบบทั้งหมดจะหยุดไปทันที
ระบบ AMI ไม่มีกำหนด structure ที่ดีทำให้การส่งรับ data มีปัญหาในการ เก็บข้อมูล (parse data) ได้ยาก
Asterisk core มีการ link dependencies(shared code) ในบาง modules ลูกของ asterisk เอง ทำให้ในบางกรณีที่เราไม่สามารถที่จะ start asterisk ได้เนืี่องจากปัญหาในบาง modules
Asterisk ไม่มีการป้องกัน API ของตัวเอง ทำให้ในการ develop อะไรขึ้นมาเพิ่มเติมอาจไปทำให้ไปกระทบ กับ funcion และ data structure เดิมได้ง่าย
ระบบที่จำเป็นต่อ Asterisk
1. OS ระบบปฎิบัติการ 32/64 bits
Linux, OpenBSD, FreeBSD, MAC OS X
2 PC Hardware อาจเป็นเครื่อง PC หรือ Server ที่สามารถลงระบบปฏิบัติการ linux ได้
2.1 การ์ดสายนอกเพื่อเชื่อมต่อกับสายโทรศัพท์ทั้งระบบ Digital หรือ Analog มีทั้งที่ติดตั้งภายในเครื่อง หรือ ผ่าน USB Port นอกเครื่อง Server
2.2 เครื่อง Server,
Protocol ที่ Asterisk รองรับ
H.323, Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP), and Skinny Client Control Protocol (SCCP) และ Inter-Asterisk eXchange (IAX™)
การทำงานของ Asterisk
อย่างที่รู้กันแล้วว่า Asterisk เป็น software ตัวหนึ่งที่ทำหน้าที่หลักในการควบคุมระบบโทรศัพท์ ซึ่งส่วนใหญ่แล้ว Asterisk จะสามารถทำงานบน Linux OS, FressBSD (not officially support by digium) ซึ่งในการทำงาน ของ Asterisk ผู้ใช้งานจำเป็นต้องสามารถที่จะเข้าใจการทำงาน และ ตั้งค่าต่างๆของ Asterisk ได้
Asterisk เป็น software ที่ทำงานเป็น daemon หรือ เป็น Process หนึ่งที่ทำงานอยู่บนเครื่องคอมพิวเตอร์ โดยการตั้งค่าของ Asterisk เพิ่มที่จะทำให้ ระบบทำงานได้ หรือ เป็นไปตามที่ผู้ใช้งานต้องการนั้น มีอยู่ 2 ลักษณะ คือ
1. แบบ .conf ไฟล์ ซึ่งการตั้งค่าแบบนี้ใช้งานกันอยู่อย่างแพร่หลายไม่ว่าจะเป็น การตั้งโดยผ่าน Web-Interface เช่น FreePBX, โดย ไฟล์ที่เขียนลงไปในระบบจะทำหน้าที่ในการบอกให้ Asterisk ทำงานอย่างที่เราต้องการ
2. แบบ database, เป็นอีกลักษณะในการตั้งค่าบางประเภทของ Asterisk โดยการตั้งค่าลักษณะนี้มีข้อดีในการที่เราสามารถที่จะปรับเปลี่ยนค่าได้ทันที โดยไม่จำเป็นต้อง สั่งให้ Asterisk ทำการอ่านค่าจาก file อีก คร้้ง (reload)
โดยหลังจากที่การตั้งค่าต่างๆเสร็จสิ้น Asterisk ก็จะสามารถทำงานได้ทันที โดย ในกรณีที่เป็น ระบบ SIP/IAX/etc. เครื่องลูกข่ายต่างๆก็จะสามารถที่จะเชื่อมต่อเข้ามายังระบบ ผ่านระบบเครือข่าย อนึ่งหากต้องการที่จะให้ Asterisk ทำงานกับ Telephony Hardware เช่น การ์ดสายนอก หรือ กล่องสายนอกต่างๆ ก็ต้องทำการติดตั้งค่าใน Asterisk ด้วย
Features ที Asterisk รองรับ
Call features
ADSI On-Screen Menu System
Alarm Receiver
Append Message
Authentication
Automated Attendant (ระบบตอบรับอัตโนมัติ)
Blacklists (การทำ backlist ใช้ในการ filter ผู้ใช้งานโทรศัพท์ที่โทรเข้าได้)
Blind Transfer (การโอนสายแบบโอนขาด หรือ โอนโดยไม่ถามผู้ที่เราจะโอนไปหาก่อน)
Call Detail Records (การจัดเก็บข้อมูลการโทรศัพท์ในระบบโดยระเอียด)
Call Forward on Busy (การโอนสายไปยังผู้อื่นในกรณ์ที่สายนั้นๆไม่ว่าง)
Call Forward on No Answer (การโอนสายไปยังผู้อื่นในกรณ์ที่สายนั้นๆไม่รับสาย)
Call Forward Variable
Call Monitoring (การดู status (ipaddress,ping time) ของ Client ที่เชื่อมต่อมายังระบบ)
Call Parking
Call Queuing
Call Recording
Call Retrieval
Call Routing (DID & ANI)
Call Snooping
Call Transfer
Call Waiting
Caller ID
Caller ID Blocking
Caller ID on Call Waiting
Calling Cards
Conference Bridging
Database Store / Retrieve
Database Integration
Dial by Name
Direct Inward System Access
Distinctive Ring
Distributed Universal Number Discovery (DUNDi™)
Do Not Disturb
E911
ENUM
Fax Transmit and Receive (3rd Party OSS Package)
Flexible Extension Logic
Interactive Directory Listing
Interactive Voice Response (IVR)
Local and Remote Call Agents
Macros
Music On Hold
Music On Transfer:
- Flexible Mp3-based System
- Random or Linear Play
- Volume Control
Predictive Dialer
Privacy
Open Settlement Protocol (OSP)
Overhead Paging
Protocol Conversion
Remote Call Pickup
Remote Office Support
Roaming Extensions
Route by Caller ID
SMS Messaging
Spell / Say
Streaming Media Access
Supervised Transfer
Talk Detection
Text-to-Speech (via Festival)
Three-way Calling
Time and Date
Transcoding
Trunking
VoIP Gateways
Voicemail:
- Visual Indicator for Message Waiting
- Stutter Dialtone for Message Waiting
- Voicemail to email
- Voicemail Groups
- Web Voicemail Interface
Zapateller
Computer-Telephony Integration
AGI (Asterisk Gateway Interface)
Graphical Call Manager
Outbound Call Spooling
Predictive Dialer
TCP/IP Management Interface
Scalability
TDMoE (Time Division Multiplex over Ethernet)
Allows direct connection of Asterisk PBX
Zero latency
Uses commodity Ethernet hardware
Voice-over IP
Allows for integration of physically separate installations
Uses commonly deployed data connections
Allows a unified dialplan across multiple offices
Codecs
ADPCM
G.711 (A-Law & μ-Law)
G.722
G.723.1 (pass through)
G.726
G.729 (through purchase of a commercial license)
GSM
iLBC
Linear
LPC-10
Speex
Protocols
IAX™ (Inter-Asterisk Exchange)
H.323
SIP (Session Initiation Protocol)
MGCP (Media Gateway Control Protocol
SCCP (Cisco® Skinny®)
Traditional Telephony Interoperability
E&M
E&M Wink
Feature Group D
FXS
FXO
GR-303
Loopstart
Groundstart
Kewlstart
MF and DTMF support
Robbed-bit Signaling (RBS) Types
MFC-R2 (Not supported. However, a patch is available
PRI Protocols
4ESS
BRI (ISDN4Linux)
DMS100
EuroISDN
Lucent 5E
National ISDN2
NFAS
Asterisk คือ opensource software ที่ทำหน้าที่หลักเป็น Softswitch, IP-PBX หรือที่เรียกว่าตู้ชุมสายโทรศัพท์ระบบ IP ซึ่งมีหน้าที่ในการควบคุมและจัดการบริหาร การเชื่อมต่อ ระหว่างอุปกรณ์โทรศัพท์ผ่านเครื่องข่ายเนทเวอร์ค อีกทั้งยังสามรถเพิ่มเติมประสิทธิ์ภาพและความสามารถในการทำงานได้โดยง่าย
1. Switch (PBX) ตู้ชุมสาย
Asterisk สามารถทำหน้าเป็นอุปกรณ์สลับสายโทรศัพท์ไม่ว่าจะเป็นระบบ IP หรือ hybrid, สามรถทำการตั้งค่าเส้นทางการของการโทรศัพท์โดยตัวเอง, สามารถเพิ่มเติม feature ได้เช่น (ระบบ Voicemail, IVR), รองรับการเชื่อมต่อกับระบบโทรศัพท์พื้นฐานไม่ว่าจะเป็นแบบ analog หรือ digital (ISDN)
2. Gateway
สามารถทำหน้าเป็นอุปกรณ์ที่ใช้ในการเชื่อมต่อระหว่าระบบโทรศัพท์พื้นฐานกับระบบ VoIP เช่นการติดตั้งการ์ดบน Asterisk และ ตั้งค่าให้ ทำงานเป็น Gateway เชื่อมระบบ SIP เข้ากับ ระบบ TDM(PSTN)
3. Feature & Media Server
อีกความสามารถของ Asterisk คือสามารถทำเป็น ระบบตอบรับหรือระบบการประชุมทางโทรศัพท์ เพื่อให้ทำงานเข้ากับระบบโทรศัพท์ที่มีอยู่เดิม ได้อีกด้วย
:ตัวอย่างการ implementation
-สามารถทำเป็น IVR หรือระบบตอบรับ ให้กับตู้ชุมสาย (pabx) เดิมที่ไม่มีระบบตอบรับ
-เชื่อมเข้ากับระบบ Database เพื่อให้ asterisk ทำหน้าที่เหมือนเป็น operator ในการรับสายและตอบคำถามตามที่ลูกค้าต้องการโดยอัตโนมัติ
-ทำเป็น Voice Conference server เพื่อรับการประชุมทางเสียง จากหลายๆจุด
-ระบบ Voice Recognition ทำงานร่วมกับ software ภายนอกเพื่อทำให้ asterisk สามารถที่จะ ตอบโต้กับผู้ใช้งานทางเสียงโดยอัตโนมัติ
-Paging server ทำงานเป็นอุปกรณ์ควบคุมระบบกระจายเสียง PA system
4. Call Center
รองรับการทำงานของระบบ Call-Center อย่างเต็มรูปแบบ เช่น ACD, Queue, IVR, Skill-based routing, etc.
5. Media Conversion
รองรับการทำงานในการแปลงข้อมูลเสียงจาก codec ไปเป็นอีก codec ในกรณีนี้ asterisk จะทำหน้าที่เป็นตัวกลางในการแปลงข้อมูลเสียง
จุดดีและจุดด้อยของ Asterisk
ข้อดี: รองรับการทำงานเกียบจะทุกแบบ คืออะไรที่คิดว่าโทรศัพท์ทำได้ Asterisk ทำได้หมด อะไรที่ไม่คิดว่าจะทำได้ astreisk ก็นำไปประยุกต์ใช้งานได้
ข้อด้อย: เนื่องจาก asterisk มีการออกแบบที่อาจไม่รองรับการขยายตัวขนาดนี้จึงทำให้มีปัญหามากมายในการเพิ่มเติมความสามารถในอนาคต ซึ่ง มีตัวอย่างเหตุผลสนับสนุนด้านล่าง
ตัวอย่างจุดด้อยของ asterisk
สามารถพบ deadlock และ crash ได้บ่อย
พบ memory leak ได้บ่อย
เนื่องจาก architechture ของ asterisk การทำงานเป็นแบบ thread ที่ค่อนข้างที่จะมีข้อจำกัดมาก โดยจะอนุญาติให้เฉพาะ channelตันฉบับและchannelที่ทำการ run application เป็น thread ได้ ฉะนั้น หากเป็นกรณีที่ผู้รับสาย (b-leg) มีการทำอะไรบางอย่างเช่นการโอนสาย, Channel นั้นๆ จะต้องถูกโอนเป็น thread ก่อน ซึ่งจะมีต้องมีการทำ channel masquerade โดยนำ channel เดิมไปใส่ไว้ใน channel ใหม่ ซึ่งเหมือนเป็นการ clone channel นั้นๆขึ้นมาใหม่และทำการ hangup channel เดิมลงไป จีงทำให้ระบบ CDR ของ asterisk นั้น ไม่มีความต่อเนื่องในบางกรณี เช่นการทำ attended transfer ที่เราจะเห็นจำนวน channel เกิดขึ้น 3-4 channel สำหรับการโทรเพียง ครั้งเดียว
มีการใช้ linked-lists เพื่อควบคุม Channel, สำหรับการทำงาน thread ใน asterisk ที่ถูกสร้างขึ้น ในแต่ละ linked-lists จะมี Mutexes ที่ควบคุมการถูก write-access โดยหนึ่ง threaded เท่านั้น ซึ่งอาจนำไปสู่ภาวะที่มีการล้าง บาง channel masquerade ได้ ทำให้เกิด Segmentation Fault ที่ระบบทั้งหมดจะหยุดไปทันที
ระบบ AMI ไม่มีกำหนด structure ที่ดีทำให้การส่งรับ data มีปัญหาในการ เก็บข้อมูล (parse data) ได้ยาก
Asterisk core มีการ link dependencies(shared code) ในบาง modules ลูกของ asterisk เอง ทำให้ในบางกรณีที่เราไม่สามารถที่จะ start asterisk ได้เนืี่องจากปัญหาในบาง modules
Asterisk ไม่มีการป้องกัน API ของตัวเอง ทำให้ในการ develop อะไรขึ้นมาเพิ่มเติมอาจไปทำให้ไปกระทบ กับ funcion และ data structure เดิมได้ง่าย
ระบบที่จำเป็นต่อ Asterisk
1. OS ระบบปฎิบัติการ 32/64 bits
Linux, OpenBSD, FreeBSD, MAC OS X
2 PC Hardware อาจเป็นเครื่อง PC หรือ Server ที่สามารถลงระบบปฏิบัติการ linux ได้
2.1 การ์ดสายนอกเพื่อเชื่อมต่อกับสายโทรศัพท์ทั้งระบบ Digital หรือ Analog มีทั้งที่ติดตั้งภายในเครื่อง หรือ ผ่าน USB Port นอกเครื่อง Server
2.2 เครื่อง Server,
Protocol ที่ Asterisk รองรับ
H.323, Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP), and Skinny Client Control Protocol (SCCP) และ Inter-Asterisk eXchange (IAX™)
การทำงานของ Asterisk
อย่างที่รู้กันแล้วว่า Asterisk เป็น software ตัวหนึ่งที่ทำหน้าที่หลักในการควบคุมระบบโทรศัพท์ ซึ่งส่วนใหญ่แล้ว Asterisk จะสามารถทำงานบน Linux OS, FressBSD (not officially support by digium) ซึ่งในการทำงาน ของ Asterisk ผู้ใช้งานจำเป็นต้องสามารถที่จะเข้าใจการทำงาน และ ตั้งค่าต่างๆของ Asterisk ได้
Asterisk เป็น software ที่ทำงานเป็น daemon หรือ เป็น Process หนึ่งที่ทำงานอยู่บนเครื่องคอมพิวเตอร์ โดยการตั้งค่าของ Asterisk เพิ่มที่จะทำให้ ระบบทำงานได้ หรือ เป็นไปตามที่ผู้ใช้งานต้องการนั้น มีอยู่ 2 ลักษณะ คือ
1. แบบ .conf ไฟล์ ซึ่งการตั้งค่าแบบนี้ใช้งานกันอยู่อย่างแพร่หลายไม่ว่าจะเป็น การตั้งโดยผ่าน Web-Interface เช่น FreePBX, โดย ไฟล์ที่เขียนลงไปในระบบจะทำหน้าที่ในการบอกให้ Asterisk ทำงานอย่างที่เราต้องการ
2. แบบ database, เป็นอีกลักษณะในการตั้งค่าบางประเภทของ Asterisk โดยการตั้งค่าลักษณะนี้มีข้อดีในการที่เราสามารถที่จะปรับเปลี่ยนค่าได้ทันที โดยไม่จำเป็นต้อง สั่งให้ Asterisk ทำการอ่านค่าจาก file อีก คร้้ง (reload)
โดยหลังจากที่การตั้งค่าต่างๆเสร็จสิ้น Asterisk ก็จะสามารถทำงานได้ทันที โดย ในกรณีที่เป็น ระบบ SIP/IAX/etc. เครื่องลูกข่ายต่างๆก็จะสามารถที่จะเชื่อมต่อเข้ามายังระบบ ผ่านระบบเครือข่าย อนึ่งหากต้องการที่จะให้ Asterisk ทำงานกับ Telephony Hardware เช่น การ์ดสายนอก หรือ กล่องสายนอกต่างๆ ก็ต้องทำการติดตั้งค่าใน Asterisk ด้วย
Features ที Asterisk รองรับ
Call features
ADSI On-Screen Menu System
Alarm Receiver
Append Message
Authentication
Automated Attendant (ระบบตอบรับอัตโนมัติ)
Blacklists (การทำ backlist ใช้ในการ filter ผู้ใช้งานโทรศัพท์ที่โทรเข้าได้)
Blind Transfer (การโอนสายแบบโอนขาด หรือ โอนโดยไม่ถามผู้ที่เราจะโอนไปหาก่อน)
Call Detail Records (การจัดเก็บข้อมูลการโทรศัพท์ในระบบโดยระเอียด)
Call Forward on Busy (การโอนสายไปยังผู้อื่นในกรณ์ที่สายนั้นๆไม่ว่าง)
Call Forward on No Answer (การโอนสายไปยังผู้อื่นในกรณ์ที่สายนั้นๆไม่รับสาย)
Call Forward Variable
Call Monitoring (การดู status (ipaddress,ping time) ของ Client ที่เชื่อมต่อมายังระบบ)
Call Parking
Call Queuing
Call Recording
Call Retrieval
Call Routing (DID & ANI)
Call Snooping
Call Transfer
Call Waiting
Caller ID
Caller ID Blocking
Caller ID on Call Waiting
Calling Cards
Conference Bridging
Database Store / Retrieve
Database Integration
Dial by Name
Direct Inward System Access
Distinctive Ring
Distributed Universal Number Discovery (DUNDi™)
Do Not Disturb
E911
ENUM
Fax Transmit and Receive (3rd Party OSS Package)
Flexible Extension Logic
Interactive Directory Listing
Interactive Voice Response (IVR)
Local and Remote Call Agents
Macros
Music On Hold
Music On Transfer:
- Flexible Mp3-based System
- Random or Linear Play
- Volume Control
Predictive Dialer
Privacy
Open Settlement Protocol (OSP)
Overhead Paging
Protocol Conversion
Remote Call Pickup
Remote Office Support
Roaming Extensions
Route by Caller ID
SMS Messaging
Spell / Say
Streaming Media Access
Supervised Transfer
Talk Detection
Text-to-Speech (via Festival)
Three-way Calling
Time and Date
Transcoding
Trunking
VoIP Gateways
Voicemail:
- Visual Indicator for Message Waiting
- Stutter Dialtone for Message Waiting
- Voicemail to email
- Voicemail Groups
- Web Voicemail Interface
Zapateller
Computer-Telephony Integration
AGI (Asterisk Gateway Interface)
Graphical Call Manager
Outbound Call Spooling
Predictive Dialer
TCP/IP Management Interface
Scalability
TDMoE (Time Division Multiplex over Ethernet)
Allows direct connection of Asterisk PBX
Zero latency
Uses commodity Ethernet hardware
Voice-over IP
Allows for integration of physically separate installations
Uses commonly deployed data connections
Allows a unified dialplan across multiple offices
Codecs
ADPCM
G.711 (A-Law & μ-Law)
G.722
G.723.1 (pass through)
G.726
G.729 (through purchase of a commercial license)
GSM
iLBC
Linear
LPC-10
Speex
Protocols
IAX™ (Inter-Asterisk Exchange)
H.323
SIP (Session Initiation Protocol)
MGCP (Media Gateway Control Protocol
SCCP (Cisco® Skinny®)
Traditional Telephony Interoperability
E&M
E&M Wink
Feature Group D
FXS
FXO
GR-303
Loopstart
Groundstart
Kewlstart
MF and DTMF support
Robbed-bit Signaling (RBS) Types
MFC-R2 (Not supported. However, a patch is available
PRI Protocols
4ESS
BRI (ISDN4Linux)
DMS100
EuroISDN
Lucent 5E
National ISDN2
NFAS
วันอังคารที่ 4 กุมภาพันธ์ พ.ศ. 2557
ติดตั้ง freeradius บน ubuntu
- ติดตั้งด้วยคำสั่ง sudo apt-get install freeradius freeradius-utils freeradius-mysql freeradius-ldap gawk
- สั่งให้ทำงานด้วยคำสั่ง sudo /etc/init.d/freeradius start
- ทดสอบว่า freeradius ติดตั้งใช้งานได้แล้วด้วยตัวอย่างคำสั่ง
*** จากตัวอย่างให้แทนข้อความ your_root_password ด้วยรหัสผ่านของ root
sudo radtest your_name your_password 127.0.0.1 0 testing123
หากถูกต้องจะได้รับข้อความตอบกลับประมาณว่า
Sending Access-Request of id 232 to 127.0.0.1 port 1812
User-Name = "your-name"
User-Password = "your_password"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=232, length=20
ถึงตอนนี้แสดงว่า freeradius ใช้งานได้แล้ว แต่ใช้ได้เพียง localhost คือ 127.0.0.1 - หากต้องการอนุญาติให้ radius client เข้ามาใช้ radius server นี้ได้
ต้องแก้ไขสิทธิ์ที่แฟ้ม /etc/freeradius/clients.conf ปรับตั้งให้มีค่าดังประมาณตัวอย่างนี้
client 10.0.1.0/24 {
secret = mytestkey
shortname = private-network
}
ตัวอย่างนี้คือให้ radius client ที่มีหมายเลข ip 10.0.1.x สามารถเข้ามาใช้ด้วย secret key ว่า mytestkey
เมื่อแก้ไขเสร็จแล้วให้ reload ใหม่ ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload
ลองทดสอบด้วยคำสั่งตัวอย่าง sudo radtest your_name your_password 10.0.1.1 0 mytestkey
*** ค่า your_password คือ รหัสผ่านของ your_name และ 10.0.1.1 คือหมายเลข ip ของ radius server
ได้ผลแสดงข้อความดังตัวอย่าง
Sending Access-Request of id 246 to 10.0.1.1:1812
User-Name = "your_name"
User-Password = "your_password"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 10.0.1.1:1812, id=246, length=20
ถึงขั้นตอนนี้เป็นอันเปิดบริการระบบ radius server ได้แล้ว - ขั้นตอนการทำงานของ configuration ของ freeradius
แฟ้ม /etc/freeradius/radiusd.conf เป็นที่ปรับค่าของระบบต่างๆ
หากเป็น freeradius 2.x จะมีการแยกแฟ้มย่อยออกไปจาก /etc/freeradius/radiusd.conf
ไปอยู่ที่ /etc/freeradius/sites-available/default และ /etc/freeradius/modules
หากเป็น freeradius 1.x ทุกอย่างจะกระจุกตัวในแฟ้ม /etc/freeradius/radiusd.conf
เมื่อ radius server ได้รับการติดต่อจากผู้ใช้ radius client
วิธีการตรวจสอบคุณสมบัติของผู้ใช้อยู่ในส่วนที่ชื่อ authorize {...}
ภายใน authorize {...} นี้ ประกอบด้วยชื่อ modules ตรวจสอบต่างๆ
หากคุณสมบัติไม่ตรง ปรกติแล้วระบบก็จะรีบดีดออกมาพร้อมแจ้ง reject
แต่เราสามารถกำหนดให้ไปตรวจสอบต่อกับ authorize modules
เรียงลำดับอันถัดๆไปที่เหลืออื่นๆได้อีก
หากคุณสมบัติผ่าน ก็จะเข้าขั้นตอนตรวจสอบรหัสผ่านของผู้ใช้ว่าถูกต้องหรือไม่
โดย authorize modules จะเลือก modules ที่ต้องการเอง จากส่วนที่ชื่อ authenticate {...}
หากรหัสผ่านถูกต้อง ก็จะเข้าสู่ส่วนของ postauth {...}
เป็นการตรวจสอบทิ้งท้ายก่อนส่งคืนค่ากลับให้แก่ radius client ที่ติดต่อมา
การบันทึกประวัติใช้งานอยู่ในส่วน accounting {...}
modules ทุกตัวที่ใช้งาน จะต้องได้รับการประกาศไว้ก่อนแล้ว
หากเป็น freeradius 2.x จะแยก modules ออกเป็นแฟ้มย่อยๆอยู่ที่ directory ชื่อ /etc/freeradius/modules
หากเป็น freeradius 1.x จะมี modules อยู่ในแฟ้ม /etc/freeradius/radiusd.conf พื้นที่ส่วนของชื่อ modules {...} - หากต้องการตรวจสอบผู้ใช้กับ mail server ผ่าน imap/pop3 ให้ทำดังนี้
ตัวอย่างนี้จะตรวจสอบกับ mail server ชื่อ your.mail.server
ต้องติดตั้ง php และ php-imap ก่อนแล้ว ติดตั้งด้วยคำสั่ง sudo apt-get install php5 php5-imap php5-cli
แก้ไขแฟ้ม /etc/php5/cli/conf.d/imap.ini ตรวจสอบ/เพิ่มให้มีบรรทัดตัวแปรว่า extension=imap.so
ต่อไปสร้างแฟ้ม /etc/freeradius/imap.php ให้มีเนื้อหาว่า
<?php
error_reporting(0);
$host = $argv[1];
$username = $argv[2];
$password = $argv[3];
$service = $argv[4];
$imap_host="{" . $host . $service . "}";
$mbox = imap_open("$imap_host", "$username", "$password");
$folders = imap_listmailbox($mbox, "$imap_host", "*");
if ($folders == false) {
echo "false";
} else {
echo "true";
}
imap_close($mbox);
?>
สร้างแฟ้มคำสั่ง shell script ชื่อ /etc/freeradius/imap-authen.sh มีเนื้อหาว่า
#!/bin/bash
#exit 0 = valid ; exit 1 = invalid
AUTHEN_SHADOW="YES"
AUTHEN_MAIL="YES"
AUTHEN_LDAP="NO"
AUTHEN_PSU_PASSPORT="NO"
NAME=$(echo ${USER_NAME} | cut -d'"' -f2)
PASSWORD=$(echo ${USER_PASSWORD} | cut -d'"' -f 2-|sed "s/\"$//")
KEY="false"
if [ "${AUTHEN_SHADOW}" = "YES" ] ; then
KEY=$(/bin/sh /etc/freeradius/check-shadow.sh "${NAME}" "${PASSWORD}")
if [ "${KEY}" = "true" ] ; then
exit 0
fi
fi
if [ "${AUTHEN_LDAP}" = "YES" ] ; then
KEY=$(/bin/sh /etc/freeradius/check-ldap.sh "${NAME}" "${PASSWORD}")
if [ "${KEY}" = "true" ] ; then
exit 0
fi
fi
if [ "${AUTHEN_PSU_PASSPORT}" = "YES" ] ; then
USER=$(echo ${NAME} | cut -d'@' -f1)
KEY=$(/usr/bin/php /etc/freeradius/soap-authen.php ${USER} ${PASSWORD} $1 $2})
if [ "${KEY}" = "true" ] ; then
exit 0
fi
fi
if [ "${AUTHEN_MAIL}" = "YES" ] ; then
IS_EMAIL=$(echo ${NAME}|grep "@")
if [ -n "${IS_EMAIL}" ] ; then
USER=$(echo ${NAME} | cut -d'@' -f1)
DOMAIN=$(echo ${NAME} | cut -d'@' -f2)
else
USER=${NAME}
DOMAIN="mail.psu.ac.th"
fi
case ${DOMAIN} in
psu.ac.th)
HOST="mail.psu.ac.th"
SERVICE=":143/imap/notls" ;;
pharmacy.psu.ac.th)
HOST="mail.pharmacy.psu.ac.th"
SERVICE=":143/imap/notls" ;;
pn.psu.ac.th)
HOST="bunga.pn.psu.ac.th"
SERVICE=":143/imap/notls" ;;
gmail.com)
HOST="pop.gmail.com"
SERVICE=":995/pop3/ssl" ;;
live.com)
HOST="pop3.live.com"
USER=${NAME}
SERVICE=":995/pop3/ssl" ;;
*)
HOST=${DOMAIN}
SERVICE=":110/pop3/notls" ;;
esac
KEY=$(/usr/bin/php /etc/freeradius/imap.php ${HOST} ${USER} ${PASSWORD} ${SERVICE})
if [ "${KEY}" = "true" ] ; then
exit 0
fi
fi
exit 1
สร้างแฟ้มแบบ text ชื่อ /etc/freeradius/myusers มีเนื้อหาว่า
DEFAULT Auth-Type := Accept
Exec-Program-Wait="/bin/sh /etc/freeradius/imap-authen.sh"
หากเป็น freeradius 2.x ให้แก้ไขแฟ้ม /etc/freeradius/modules/files เติมข้อความต่อท้ายแฟ้มว่า
files myimap {
usersfile = ${confdir}/myusers
}
แล้วแก้ไขแฟ้ม /etc/freeradius/sites-available/default
ที่ส่วนของ authorize {...} ประมาณบรรทัดที่ 152 ที่บริเวณข้อความขึ้นต้นด้วย authorize {
...
# Read the 'users' file
files
ให้ comment บรรทัด files เพื่อยกเลิกค่านี้ แล้วแทรกเพิ่มบรรทัดข้อความเพิ่ม กลายเป็นว่า
# files
แทรกเพิ่มบรรทัดข้อความว่า myimap ต่อไปอีกบรรทัด กลายเป็นว่า
# files
myimap
เสร็จแล้วให้สั่งทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload
แค่นี้ก็เสร็จแล้ว ทดสอบผลงานได้เลย - หากต้องการว่าหลังผ่านการตรวจสอบ username/password ถูกต้องแล้ว
จะทำการบันทึกลงแฟ้ม log file เก็บไว้ที่ /var/log/freeradius/myauthen และยังต้องการตรวจวิธีการพิเศษเฉพาะของตนเองเพิ่มเติมอีก
ตัวอย่างต้องการไม่อนุญาติให้ผู้ใช้ชื่อ demo และ abc ใช้งาน ให้ทำดังนี้
สร้างแฟ้มคำสั่ง shell script ชื่อ /etc/freeradius/my-authen.sh มีเนื้อหาว่า
#!/bin/bash
###exit 0 = valid ; exit1 = invalid
ALL_PASS="YES"
CHECK_STAFF="NO"
CHECK_STUDENT="NO"
export LANG=en.US
MYDIR="/var/log/freeradius/myauthen"
if [ ! -d ${MYDIR} ] ; then
mkdir -p ${MYDIR}
fi
TODAY=$(date "+%Y%m%d")
MYFILE="${MYDIR}/${TODAY}"
if [ ! -e ${MYFILE} ] ; then
touch ${MYFILE}
fi
MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
echo "${MYTIME};${USER_NAME};$2;$1;PASS" >> ${MYFILE}
MYUSER=$(echo $USER_NAME | cut -d'"' -f2)
if [ "${ALL_PASS}" = "YES" ] ; then
exit 0
fi
if [ "${CHECK_STAFF}" = "YES" ] ; then
case "${MYUSER}" in
demo) exit 1 ;;
*) exit 0 ;;
esac
fi
if [ "${CHECK_STUDENT}" = "YES" ] ; then
case "${MYUSER}" in
demo) exit 1 ;;
*) exit 0 ;;
esac
fi
exit 1
หากเป็น freeradius 2.x ให้แก้ไขแฟ้ม /etc/freeradius/modules/exec เติมข้อความต่อท้ายแฟ้มว่า
exec my-auth {
program = "/bin/sh /etc/freeradius/my-authen.sh %l %{Packet-Src-IP-Address}"
wait = yes
input_pairs = request
output_pairs = reply
packet_type = Access-Accept
}
แล้วแก้ไขแฟ้ม /etc/freeradius/sites-available/default
ที่ส่วนของ post-auth {...} ประมาณบรรทัดที่ 439 ที่บริเวณข้อความขึ้นต้นด้วย post-auth {
...
แทรกเพิ่มบรรทัดข้อความเพิ่ม
my-auth
เสร็จแล้วให้สั่งทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload - การบันทึกประวัติการใช้งานของ radius โดย defualt จะบันทึกไว้ในพื้นที่ /var/log/freeradius/radacct
โดยแยกเป็น directory ของแต่ละหมายเลข ip ของ radius client
แล้วยังแตกย่อยออกเป็นแฟ้มของแต่วันอีก ซึ่งอาจไม่สะดวกต่อการวิเคราะห์ข้อมูล
เราสามารถเพิ่ม module บันทึกประวัติการใช้งานเพิ่มเติมจากของเดิม ตัวอย่างคือ
ต้องการบันทึกไว้ใน directory ชื่อ /var/log/freeradius/myaccount
แล้วเก็บแฟ้มแยกเป็นรายวันในรูปแบบ 20060729 ภายในแฟ้มมีรูปแบบว่า
20060729:15:54:05;"demo";10.0.0.153;1154163245;"a5f56ebd6ebc1321";Start;
20060729:15:55:06;"demo";10.0.0.153;1154163306;"a5f56ebd6ebc1321";Stop;61
ให้ทำดังนี้ สร้างแฟ้มคำสั่ง shell script ชื่อ /etc/freeradius/log-radius-account.sh มีเนื้อหาว่า
#!/bin/bash
export LANG=en.US
MYDIR="/var/log/freeradius/myaccount"
if [ ! -d ${MYDIR} ] ; then
mkdir -p ${MYDIR}
fi
TODAY=$(date "+%Y%m%d")
myfile="${MYDIR}/${TODAY}"
if [ ! -e ${MYDIR} ] ; then
touch ${MYDIR}
fi
MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
echo "${MYTIME};${USER_NAME};$2;$1;${ACCT_UNIQUE_SESSION_ID};${ACCT_STATUS_TYPE};${ACCT_SESSION_TIME}" >> ${MYFILE}
แฟ้ม shell script จบแค่นี้
หากเป็น freeradius 2.x ให้แก้ไขแฟ้ม /etc/freeradius/modules/exec เติมข้อความต่อท้ายแฟ้มว่า
exec my-log-account {
wait = no
program = "/bin/sh /etc/freeradius/log-radius-account.sh %l %{Packet-Src-IP-Address} "
}
แล้วแก้ไขแฟ้ม /etc/freeradius/sites-available/default
ที่ส่วนของ accounting {...}ประมาณบรรทัดที่ 358 ที่บริเวณข้อความ accounting {
...
detail
ให้แทรกเพิ่มบรรทัดข้อความว่า
my-log-account
เสร็จแล้วให้สั่งทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload - radius server สามารถส่งค่าบอกเวลาที่ยังคงเหลือให้ใช้งาน
โดยส่งค่ากลับมาที่ attribute ชื่อ Session-Timeout
แต่ตัวมันเองคำนวณไม่เป็น ต้องหาวิธีอื่นในการคำนวณเวลา
แล้วส่งกลับมาให้ radius ส่งคำตอบให้อีกทอดหนึ่ง
จากตัวอย่างข้อ 8 หากต้องการใส่ค่าเวลาที่เหลือในการใช้งาน
ตัวอย่างเช่นเหลือ 120 วินาที ให้เพิ่มบรรทัดข้อความว่า
echo "SESSION-TIMEOUT = \"120\""
ลงไปก่อนบรรทัดข้อความ exit 0 ดังตัวอย่าง
#!/bin/bash
###exit 0 = valid ; exit1 = invalid
MYUSER=$(echo $USER_NAME | cut -d'"' -f2)
case "${MYUSER}" in
demo) exit 1 ;;
abc) exit 1 ;;
*) echo "SESSION-TIMEOUT = \"120\""
exit 0 ;;
esac
เสร็จแล้วให้สั่งทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload
แค่นี้ก็เสร็จแล้ว PC ที่ติดต่อเข้ามาจะได้รับคำตอบกลับไป
ระบุว่าเหลือเวลาใช้งานอีกเท่าไร ขึ้นกับตัวเลขทีกำหนดส่งออกมา
จากตัวอย่างให้แก้ไขตัวเลข 120 เป็นอื่นๆตามต้องการ - การบันทึกประวัติการ authen radius ไว้ในพื้นที่ /var/log/freeradius/myauthen ให้ทำดังนี้
สร้างแฟ้มคำสั่ง shell script ชื่อ /etc/freeradius/log-radius-authen.sh มีเนื้อหาว่า
#!/bin/bash
export LANG=en.US
MYDIR="/var/log/freeradius/myauthen"
if [ ! -d ${MYDIR} ] ; then
mkdir -p ${MYDIR}
fi
TODAY=$(date "+%Y%m%d")
MYFILE="${MYDIR}/${TODAY}"
if [ ! -e ${MYFILE} ] ; then
touch ${MYFILE}
fi
MYTIME=$(echo $1|awk '{print strftime("%Y%m%d:%H:%M:%S",$1)}')
echo "${MYTIME};${USER_NAME};$2;$1;CHECK_IN" >> ${MYFILE}
แฟ้ม shell script จบแค่นี้
หากเป็น freeradius 2.x ให้แก้ไขแฟ้ม /etc/freeradius/modules/exec เติมข้อความต่อท้ายแฟ้มว่า
exec my-log-authen {
wait = no
program = "/bin/sh /etc/freeradius/log-radius-authen.sh %l %{Packet-Src-IP-Address} "
}
แล้วแก้ไขแฟ้ม /etc/freeradius/sites-available/default
ที่ส่วนของ authorize {...}ประมาณบรรทัดที่ 152 ที่บริเวณข้อความ authorize {
...
# files
myimap
ให้แทรกเพิ่มบรรทัดข้อความ กลายเป็นว่า
my-log-authen
# files
myimap
เสร็จแล้วให้สั่งทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/freeradius force-reload - ตัวอย่างคำสั่งการทดสอบด้วยคำสั่ง radclient
ทดสอบการ authen คำสั่งประมาณว่า
echo "User-Name=mama,User-Password=123456" | radclient 10.0.1.2 auth mytestkey
ทดสอบการ accounting ตอนเข้า คำสั่งประมาณว่า
echo "User-Name=mama,Acct-Status-Type=Start" | radclient 10.0.1.2 acct mytestkey
ทดสอบการ accounting ตอนออก คำสั่งประมาณว่า
echo "User-Name=mama,Acct-Status-Type=Stop" | radclient 10.0.1.2 acct mytestkey
ติดตั้ง postfix บน ubuntu
ระบบจะมีหน้าต่าง Postfix Configuration ขึ้นมา ให้กด TAB ไปเลือกแถบ <Ok>
จะได้อีกหน้าต่างให้เลื่อนไปเลือกแถบ No configuration แล้วกด TAB ไปเลือกแถบ <Ok>
เป็นอันว่าติดตั้งเสร็จ ค่อยมาปรับแต่งเพิ่มต่อไป
sudo dpkg-reconfigure postfix
ระบบจะมีหน้าต่าง Postfix Configuration ขึ้นมา ให้กด TAB ไปเลือกแถบ <Ok>
จะได้อีกหน้าต่างให้เลื่อนไปเลือกแถบ Local only แล้วกด TAB ไปเลือกแถบ <Ok>
ที่ช่อง System mail name : ให้ป้อนชื่อ server
ที่ช่อง Root and postmaster mail recipient: ให้ข้ามไปเลย
ที่ช่อง Other destinations to accept mail for (blank for none): ให้ข้ามไปเลย
ที่คำถาม Force synchronous updates on mail queue? ให้เลือกตอบ NO
ที่ช่อง Local networks: ให้ป้อนเหลือแค่ว่า 127.0.0.0/8
ที่ช่อง Mailbox size limit (bytes): ให้ใส่เลข 0
ที่ช่อง Local address extension character: ปล่อยตามเดิมเป็นเครื่องหมาย +
ที่คำถาม Internet protocols to use: ให้เลือก ipv4
ที่คำถาม Use procmail for local delivery? ให้ตอบ No
เสร็จแล้วพร้อมใช้งานได้เลย
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
myhostname = myserver.domain
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = myserver.domain, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
default_transport = error
relay_transport = error
inet_protocols = ipv4
ให้แก้ไขแฟ้ม /etc/postfix/main.cf ปรับปรุงค่าตัวแปรดังนี้คือ
default_transport = smtp
relay_transport = smtp
เสร็จแล้วให้ postfix ทำงานใหม่ ด้วยคำสั่ง sudo /etc/init.d/postfix restart
เสร็จแล้วสั่งให้ postfix เรียนรู้ข้อมูลใหม่ด้วยคำสั่ง sudo newaliases
ตั้งค่าตัวแปรดังตัวอย่าง relayhost = other.mail.net
เสร็จแล้วสั่งให้ posftix ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/postfix force-reload
ติดตั้ง wordpress บน ubuntu
sudo apt-get install apache2
sudo apt-get install mysql-server
ระหว่างติดตั้งหากมีคำถามที่เกี่ยวกับการตั้งรหัสผ่าน ก็ให้เคาะแป้น enter ผ่านไปก่อนทั้งหมด
หลังติดตั้งเสร็จแล้วให้รีบตั้งรหัสผ่าน root ของ mysql-server ใหม่
ตัวอย่างนี้ตั้งรหัสผ่านว่า mysqldroot ใช้คำสั่งคือ
mysqladmin -uroot password mysqldroot
sudo apt-get install php5 php5-mysql php5-cli php5-gd php5-imap php5-ldap php5-radius unzip
sudo a2enmod rewrite
แล้วสั่งให้ apache ทำงานใหม่ด้วยคำสั่ง
sudo /etc/init.d/apache2 restart
ตัวอย่างสร้าง database ชื่อ wpdb ใช้คำสั่ง
mysql -uroot -pmysqldroot -e "CREATE DATABASE wpdb CHARACTER SET 'UTF8';"
***หากต้องการลบ database เดิมที่เคยสร้างไว้แล้ว ใช้คำสั่งว่า
mysql -uroot -pmysqldroot -e "DROP DATABASE wpdb;"
แล้วกำหนดสิทธิ์การใช้ database wpdb ให้แก่ user
ตัวอย่างสร้าง user ชื่อ wpmysql โดยมีรหัสผ่านว่า wppass ใช้คำสั่งคือ
mysql -uroot -pmysqldroot -e "grant all privileges on wpdb.* to 'wpmysql'@'localhost' identified by 'wppass';"
wget -P /tmp http://ftp.psu.ac.th/pub/wordpress/wordpress-3.3.1-th.tar.gz
แล้วแตกแฟ้มออกมาด้วยคำสั่ง
sudo tar -zxvf /tmp/wordpress-3.3.1-th.tar.gz -C /var/www
แล้วทำงานต่อด้วยคำสั่ง
sudo chown -R www-data /var/www/wordpress
sudo cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
แก้ไขแฟ้ม /var/www/wordpress/wp-config.php แก้ไขข้อมูล 3 แห่งคือ
ประมาณบรรทัด 19 แก้ไขตัวแปรเดิมว่า define('DB_NAME', 'database_name_here'); เปลี่ยนใหม่ให้เป็นว่า define('DB_NAME', 'wpdb');
ประมาณบรรทัด 22 แก้ไขตัวแปรเดิมว่า define('DB_USER', 'username_here'); เปลี่ยนใหม่ให้เป็นว่า define('DB_USER', 'wpmysql');
ประมาณบรรทัด 25 แก้ไขตัวแปรเดิมว่า define('DB_PASSWORD', 'password_here'); เปลี่ยนใหม่ให้เป็นว่า define('DB_PASSWORD', 'wppass');
ได้หน้าเวบข้อความว่า
ยินดีต้อนรับ .. ไปหัวข้อรายละเอียดที่ต้องการ ...
ช่อง "หัวข้อเว็บ" ให้ป้อนชื่อที่ต้องการตัวอย่างเช่น MyWordpress
ช่อง "ชือผู้ใช้" ยังคงเหมือนเดิมคือ admin
ช่อง "รหัสผ่าน" ให้ป้อน 2 ครั้ง ตัวอย่างนี้ป้อนว่า 123456 ทั้ง 2 ครั้ง
ช่อง "อีเมล์ของคุณ" ให้ป้อนอีเมล์ที่ต้องการเช่น my@your.domain
ช่อง "ส่วนตัว" ยังคงติ๊กเลือก "อนุญาตให้เว็บของฉันปรากฎใน search engines..."
แล้วคลิกปุ่ม "ติดตั้งเวิร์ดเพรส" รอสักครู่ เมื่อได้หน้าเวบข้อความว่า "สำเร็จ"
ให้คลิกปุ่ม "เข้าสู่ระบบ" เพื่อทดสอบใช้งานได้เลย
ได้เวบหน้าหลัก ที่เมนูด้านซ้ายล่าง ให้คลิกเลือกหัวข้อว่า "ตั้งค่า" ได้เวบหน้า"ตั้งค่าทั่วไป"
ช่อง "เขตเวลา" ให้เลือกเปลี่ยนเป็น "Asia" -> "Bangkok"
ช่อง "รูปแบบวันที่" ให้เลือกเปลี่ยนเป็น "ปรับแต่ง d-m-Y"
ช่อง "รูปแบบเวลา" ให้เลือกเปลี่ยนเป็น "ปรับแต่ง H:i"
แล้วคลิกปุ่ม "บันทึกการเปลี่ยนแปลง"
ต้องติดตั้ง php5-ldap ก่อน ด้วยคำสั่ง
sudo apt-get install php5-ldap
ดาวน์โหลดแฟ้ม http://ftp.psu.ac.th/pub/wordpress/simple-ldap-login.1.4.0.5.1.zip มาติดตั้ง ด้วยคำสั่ง
wget -P /tmp http://ftp.psu.ac.th/pub/wordpress/simple-ldap-login.1.4.0.5.1.zip
แตกแฟ้มออกมาแล้วเอาไปติดตั้งด้วยคำสั่ง
sudo unzip -d /var/www/wordpress/wp-content/plugins /tmp/simple-ldap-login.1.4.0.5.1.zip
ต่อไปให้เข้าหน้าเวบของ http://localhost/wordpress ด้วย login เป็น admin
ที่เมนูด้านซ้าย ให้คลิกเลือกหัวข้อว่า "ปลั๊กอิน" ได้หน้าเวบ "ปลั๊กอิน"
ไปที่ช่อง "Simple LDAP Login" แล้วคลิกเลือก "ใช้งาน"
กลับไปที่เมนูด้านซ้ายล่าง ให้คลิกเลือกหัวข้อว่า "ตั้งค่า" -> "Simple LDAP Login"
ได้หน้าเวบ Simple LDAP Login 1.4.0.5.1 (ตัวอย่างนี้ตั้งค่าให้ใช้กับ LDAP ของ PSU)
ไปด้านขวาที่ส่วนของ Advanced
ช่อง Login mode: ให้ติ๊กเลือกเปลี่ยนเป็น Create Wordpress account for anyone who successfully authenticates against LDAP.
ไปด้านซ้ายที่ส่วนของ Settings
ช่อง LDAP Directory: ให้เปลี่ยนไปติ๊กเลือกเป็น OpenLDAP
ช่อง Account Suffix: ให้ลบข้อความออกหมด ให้เหลือกลายเป็นช่องว่างๆ
ช่อง LDAP Login Attribute ยังคงเหมือนเดิมคือ uid
ช่อง Base DN: ให้แก้ไขเปลี่ยนเป็นว่า ou=staff,dc=cc,dc=psu
ช่อง Domain Controller(s): ให้แก้ไขเปลี่ยนเป็นว่า front.psu.ac.th
เสร็จแล้วเลื่อนลงไปคลิกปุ่ม "Update Options >>"
ทำเพียงแค่นี้ แล้วทดสอบผลงานได้เลย
sudo /etc/init.d/apache2 stop
sudo update-rc.d -f apache2 remove
ติดตั้ง nginx ด้วยคำสั่ง
sudo apt-get install nginx php5-cgi
สร้างแฟ้ม /etc/init.d/php-fastcgi ให้มีข้อมูลดังนี้
#!/bin/bash
BIND=127.0.0.1:9000
USER=www-data
PHP_FCGI_CHILDREN=15
PHP_FCGI_MAX_REQUESTS=1000
PHP_CGI=/usr/bin/php-cgi
PHP_CGI_NAME=`basename $PHP_CGI`
PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
RETVAL=0
start() {
echo -n "Starting PHP FastCGI: "
start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
RETVAL=$?
echo "$PHP_CGI_NAME."
}
stop() {
echo -n "Stopping PHP FastCGI: "
killall -q -w -u $USER $PHP_CGI
RETVAL=$?
echo "$PHP_CGI_NAME."
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo "Usage: php-fastcgi {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
สั่งให้ php-fastcgi ทำงานด้วยคำสั่ง
sudo chmod +x /etc/init.d/php-fastcgi
sudo /etc/init.d/php-fastcgi start
sudo update-rc.d php-fastcgi defaults
แก้ไขแฟ้ม /etc/nginx/sites-available/default
ไปประมาณบรรทัด 14-15 แก้ค่าเดิมจาก
root /var/www/nginx-default;
index index.html index.htm;
ให้กลายเป็นค่าใหม่ว่า
root /var/www;
index index.php index.html index.htm;
ไปประมาณบรรทัด 47-52 แก้ไขยกเลิกการ comment ด้วยการลบเครื่องหมาย # ที่นำหน้าออก กลายเป็นว่า
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
}
สั่งให้ nginx ทำงานใหม่ด้วยคำสั่ง
sudo /etc/init.d/nginx restart
ทำเพียงแค่นี้ ก็ได้ wordpress บน nginx แล้ว ทดสอบเข้าหน้าเวบ http://localhost/wordpress ได้เลย
ติดตั้ง vsftpd บน ubuntu
หากเป็น ubuntu 10.04 เก็บข้อมูลไว้ภายใต้ directory ชื่อ /srv/ftp/pub
ต้องสร้าง directory เพิ่มด้วยคำสั่ง sudo mkdir -p /srv/ftp/pub
หากเป็น ubuntu 8.04 ให้เก็บข้อมูลไว้ภายใต้ directory ชื่อ /var/ftp/pub
ซึ่งต้องสร้าง directory เพิ่มด้วยคำสั่ง sudo mkdir -p /var/ftp/pub
ตั้งเวลาให้แสดงผลเวลาตรงกับของ server
ด้วยการเพิ่ม/แก้ไขบรรทัดข้อความว่า use_localtime=yes
หากต้องการให้ใช้งานได้เฉพาะภายใน home ของตนเอง ไม่ต้องการให้ออกไปเพ่นพ่านที่อื่น
เพิ่ม/แก้ไขบรรทัดข้อความว่า chroot_local_user=YES
หากต้องการห้าม anonymous เข้ามาใช้บริการ
เพิ่ม/แก้ไขบรรทัดข้อความว่า anonymous_enable=NO
หากต้องการให้ user สามารถ upload แฟ้มได้
เพิ่ม/แก้ไขบรรทัดข้อความว่า local_enable=YES และ write_enable=YES
ตัวอย่างหากต้องการจำกัดจำนวน client ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 100 คน
เพิ่ม/แก้ไขบรรทัดข้อความว่า max_clients=100
แต่ถ้าต้องการจำกัดจำนวน clinet ต่อ 1 เลข IP ที่เข้ามาใช้บริการ ftp ไม่ให้เกิน 50 คนด้วย
เพิ่ม/แก้ไขบรรทัดข้อความว่า max_per_ip=50
แก้ไขเสร็จแล้วสั่ง vsftpd ทำงานใหม่ด้วยคำสั่ง sudo /etc/init.d/vsftpd restart
http://ftp.psu.ac.th/pub/temp/ และ ftp://ftp.psu.ac.th/pub/temp/
สมมติว่า root directcory ของ http อยู่ที่ /var/www
และ root directcory ของ http อยู่ที่ /srv/ftp/pub
ให้ใช้คำสั่งว่า sudo ln -s /srv/ftp/pub /var/www
แล้วทดสอบดูผลงานได้เลย
ให้จัดการติดตั้ง hard disk และ mount ให้เรียบร้อยสามารถใช้งานได้ซะก่อน
ตัวอย่างของผมคือเพิ่ม hard disk /dev/hdb1 ไปในพื้นที่ /mnt/data
และต้องการให้ไปโผล่เป็นส่วนหนึ่งของ /home/ftp/pub/newdisk
ทำคำสั่งขั้นตอนดังนี้คือ
sudo mkdir -p /mnt/data
sudo mount /dev/hdb1 /mnt/data
sudo mkdir -p /home/ftp/pub/newdisk
sudo mount --bind /mnt/data /home/ftp/pub/newdisk
แค่นี้ก็เสร็จแล้ว ตรวจสอบดูผลงานได้เลย
ต้องแก้ไขให้ระบบทำงานคำสั่งเหล่านี้โดยอัตโนมัติทุกครั้งที่บูทเครื่อง
ต้องแก้ไขแฟ้ม /etc/rc.local โดยเพิ่มบรรทัดคำสั่งเหล่านั้นเข้าไปด้วย
ติดตั้ง remastersys บน ubuntu
ต้อง apt-get ไปเอา remastersys จาก repository อื่น
หากเป็น ubuntu 8.04, 8.10, 9.04 ที่ใช้ grub รุ่นเดิมๆ ให้เพิ่ม repository ด้วยคำสั่งว่า
sudo sh -c "echo 'deb http://www.geekconnection.org/remastersys/repository ubuntu/' > /etc/apt/sources.list.d/remastersys.list"
หากเป็น ubuntu 9.10 ที่ใช้ grub2 รุ่นใหม่ ให้เพิ่ม repository ด้วยคำสั่งว่า
sudo sh -c "echo 'deb http://www.geekconnection.org/remastersys/repository karmic/' > /etc/apt/sources.list.d/remastersys.list"
หากเป็น ubuntu 10.04 หรือใหม่กว่า ให้เพิ่ม repository ด้วยคำสั่งว่า
sudo sh -c "echo 'deb http://www.geekconnection.org/remastersys/repository lucid/' > /etc/apt/sources.list.d/remastersys.list"
หลังติดตั้ง remastersys เสร็จแล้ว จะยกเลิกบรรทัดแฟ้มนี้ออกก็ได้
ติดตั้งด้วยคำสั่ง sudo apt-get update และ sudo apt-get install remastersys
บางทีเจอบั๊ก โปรแกรมไม่สร้าง /home/remastersys
ให้แก้ไขด้วยการสร้างเองด้วยคำสั่ง sudo mkdir -p /home/remastersys
ให้ติดตั้งด้วยตนเองทำดังนี้ เริ่มต้นติดตั้งโปรแกรมที่จำเป็นใช้งานด้วยคำสั่ง
sudo apt-get install coreutils dialog genisoimage findutils bash passwd sed squashfs-tools casper rsync mount eject libdebian-installer4 os-prober
sudo apt-get install ubiquity user-setup discover laptop-detect syslinux xterm util-linux xresprobe
ต่อให้ดาวน์โหลดแฟ้ม remastersys มาติดตั้งดังนี้
wget -P /tmp http://ftp.psu.ac.th/pub/remastersys/remastersys_3.0.0-1_all.deb
sudo dpkg -i /tmp/remastersys_3.0.0-1_all.deb
บางทีเจอบั๊ก โปรแกรมไม่สร้าง /home/remastersys
ให้แก้ไขด้วยการสร้างเองด้วยคำสั่ง sudo mkdir -p /home/remastersys
ที่สามารถนำไปบูทใช้งานได้โดยไม่ต้องมี hard disk ใช้คำสั่งว่า sudo remastersys backup
แล้วก็ให้รอๆๆ จนงานเสร็จ ช้าหรือเร็วขึ้นกับความเร็วของ disk
เมื่อเสร็จแล้วจะได้แฟ้ม iso อยู่ที่ /home/remastersys/remastersys
ให้แก้ไขแฟ้ม /etc/init.d/casper ประมาณบรรทัดที่ 96
ยกเลิกบรรทัดคำสั่ง eject เดิม กลายเป็นดังตัวอย่าง
# eject -p -m /cdrom > /dev/null 2>&1
และแก้ไขแฟ้ม /etc/remastersys/isolinux/isolinux.cfg.vesamenu
ให้เพิ่ม noprompt เข้าไป ตัวอย่างเช่น
label live
menu label live - boot the Live System
kernel /casper/vmlinuz
append file=/cdrom/preseed/custom.seed boot=casper initrd=/casper/initrd.gz splash noprompt --
สมัครสมาชิก:
บทความ (Atom)