This project requires two TAPI applications.
The first application (the client) must detect all TAPI compliant hardware on the client machine and allow the user to select an input and output device. I am using a Clarisys USB phone, however any TAPI compliant device can be used. The application can be a console application and the selection GUI can be very simple (println/getch).
The second application (the server) must detect all TAPI compliant hardware on the server machine and allow the user to select an input and output device. On the server I am using Modem Blaster voice modem cards, however any generic TAPI compliant modem or voice processing card is fine. The server can also be a console application with a simple GUI.
The system must provide the following functions:
Client opens TCP socket to server
Client opens UDP socket to server
Server opens UDP socket to client
Client sends hard coded TCP message to server (e.g., "dial 2125551212")
Server receives TCP message and places outbound call
Server and client stream incoming/outgoing data over UDP socket so that a 2 way call is made
## Deliverables
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Must be written in C++
Must use TAPI2.2 API
Must be able to compile under MSVC 6.0 on Win2k or WinXP
Must be class based, only the functions above can be procedural, all telephony functions must be in classes
Must provide telephone quality voice for at least 30 minutes over an internal network (not internet)
Must run on two machines over a network (client and server not on same machine)
Must support Clarisys USB phone on client and Modem Blaster voice modem on server
Must be able to place at least 100 sequential phone calls in a single session of the application without crash
## Platform
Win2k, WinXP