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 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น