24 ตุลาคม 2554

ติดตั้ง Endian Firewall เป็น Gateway ใน VMware ESXi (vSphere Hypervisor) VLAN

Study case..วันก่อนเซอฟเวอร์ตัวใหม่ HP Proliant DL120 G7 ที่สั่งซื้อไปเพิ่งส่งมาถึงก็ได้ฤกษ์ทำการทดสอบติดตั้ง VMware ESXi 4 (ชื่ออย่างเป็นทางการคือ vSphere Hypervisor) โดย Server เครื่องนี้จะทำเป็น VPS host เพื่อทดสอบ application ต่างๆ ที่เขียนขึ้นก่อนจะ deploy ใช้งานจริง

Problem : 

1. มีแค่ 1 IP จริง ต่อ Virtual Server (Guest) หลายเครื่อง
โดยปกติเมื่อติดตั้ง vSphere VSXi จะสร้าง virtual switch ให้ทันที คือ vSwitch0 โดย bridge เข้ากับการ์ด LAN จริงๆ ของเซอฟเวอร์ ถ้าต้องการให้ virtual server ติดต่อกับ LAN ภายนอกได้ก็ต้องจ่าย IP ให้ server ละตัว เหมือนเซอฟเวอร์จริง 1 IP/เครื่อง !?

2. ต้องการให้ Virtual Server (Guest) ทั้งหมดทำงานหลัง Firewall
ถ้าเราเอาเซอฟเวอร์ไปวาง datacenter ทันทีที่ต่อสายแลนเข้าไป server เราจะถูกต้อนรับโดยสารพัด spam bot จะวิ่งมา scan port ทันที รวมทั้งปัญหา DoS attack หรือภาษาชาวบ้านเรียก "โดนยิงเซอฟเวอร์ล่ม" ดังนั้นหลัก security policy ที่ได้ผลที่สุด คือ default deny ปิดกั้นการเชื่อมต่อทั้งหมดแล้วเปิดแค่ service ที่ใช้

Solution :
  1. ติดตั้ง Endian Firewall 2.4x ลงใน Virtual Machine (Guest) 
  2. ตั้งค่า Virtual Server ตัวอื่นๆ ให้อยู่ใน Green network โดยใช้ Endian Firewall เป็น Gateway

19 ตุลาคม 2554

C# TAPI3.x ติดต่อกับ USB GSM Modem - Part.1 (RD concept)



ระบบโทรผ่าน TAPI -> COM port (Aircard) -> Public switched Telephone Network (PSTN)
draft อ้างอิงไว้ก่อน..โปรเจคนี้เป็นการเขียน  functional module เพิ่มในโปรแกรม CRM ที่ทำไว้แล้วโดยจะทำเป็น class library เพื่อนำไปเรียกใช้งานต่อ

Telephony Application Programming Interfaces 
อ้างอิง : http://msdn.microsoft.com/en-us/library/windows/desktop/ms734215(v=VS.85).aspx
เป็น lib ที่ใช้จะมี 4 ตัวหลักๆ ..
  1. TAPI 2.x
  2. TAPI 3.x
  3. Telephony Service Provider (TSP)
  4. Media Service Provider (MSP) 

ตัวที่เอามาใช้ในโปรเจคนี้ คือ TAPI 3.x เป็น COM API
TAPI 2.x VS 3.x
  • 2.x ไม่รองรับ VOIP 
  • 2.x ต้องเขียนใน C++ แล้ว complie DLL อีกทีนึง ส่วน TAPI 3.x จะ reference COM component ได้
ความสามารถของ TAPI 3.x ที่ทำได้..
  • Multicast multimedia IP conferencing with quality of service (QOS)
  • Voice calls over the Internet using the H.323 protocol
  • Call center applications capable of tracking multiple agents
  • Basic voice calls on the Public Switched Telephone Network (PSTN)
  • PBX control
  • Interactive voice response (IVR) systems
  • Voice mail
เวอร์ชั่นแรกต้องการแค่ basic calls ก่อน 

รวมตัวอย่าง Code Project TAPI 3.x
เป็น sample project ที่ใช้ทำ TDD และ Prove of concept 

concept วิธีการ Implement TAPI สำหรับ outbound Call 
ใน MSDN มันลำดับข้ามไปมา ดังนั้นจะเขียนใหม่เป็น step นี้

1. Initialize TAPI - สร้าง object instant ของ TAPIClass แล้วเรียกเมธอด Initialize
2. Select Address - เซ็ท ITAddress object โดย enumerate จาก ITTAPI 
3. Register Event - ใช้เมธอด RegisterCallNotifications เซ็ท event handler เพื่อจัดการเหตการณ์ใน TAPI 
4. Create Call - เรียก ITAddress::CreateCall โดยกำหนด address เป็นเบอร์หรือ IP, address type และ media type ว่าเป็น audio, fax หรือ video call จะได้ output return เป็น object ITBasicCallControl
5. Select Terminal - เซ็ท Terminal Object ได้แก่ฮาร์ดแวร์ audio device ไมค์/ลำโพง ให้กับ ITStream 
6. Connect - เรียกเมธอด ITBasicCallControl::Connect 


จบส่วนของการ Research ในเบื้องต้นใน part ต่อไปจะเริ่มทำ TDD test code