80 likes | 194 Views
Speak A Simple VoIP Application. Project 2 Due date: March 8 th by 11:59pm. Overview. VoIP Been able to do this (well) for at least 20 years Web and Internet made Internet telephony possible, cheaper increasingly popular Basic Two-person System parameters to evaluate quality
E N D
SpeakA Simple VoIP Application Project 2 Due date: March 8thby 11:59pm
Overview • VoIP • Been able to do this (well) for at least 20 years • Web and Internet made Internet telephony possible, cheaper increasingly popular • Basic • Two-person • System parameters to evaluate quality • Speech detection • Simpler version than Project 1 • Minimal interface • Load time options for connection, parameters …
Details • Windows or Linux (or Mac) • Two boxes, actually • Internet sockets • Specify host (and port) • TCP and UDP • Variable chunk sizes (emulate latency) • 20, 40, 60 msare typical • Also support values up to 1000 ms
More Details • Basic speech detection • Modified from project 1 • 250 mssearch for zero crossing too big! • Detect based on energy level only • Sample only “chunk” from audio device • Tune thresholds to be effective • Can have on or off • Packet “Loss” • Drop before sending, or after receiving (your choice) • Percent, uniform randomly distributed
Hints • Many different architectural possibilities • Can design how you want • Provide some sample code (“tools”) • Refer to other samples, but write your own code (and reference any others) • Consider remote development (not at console) • “Pre-Record” some conversation • Read from file or device • Write to file or device • Allow development of system code • Also good for one person testing
Sample Code Linux/Cygwin Windows A simple header file to generate error messages for Winsock errors: sockerr.h Basic TCP sockets: tcp-talk.cpp, tcp-listen.cpp Basic UDP sockets: udp-talk.cpp, udp-listen.cpp Get the IP address of a host: getIPaddress.cpp • Basic TCP sockets: talk-tcp.c and listen-tcp.c • Basic UDP sockets: talk-udp.c and listen-udp.c • Setting a timer: setitimer.c • POSIX threads: add2.c • Multiple interrupts: select.c • Parsing command line parameters: get-opt.c
Hand-In • Email a tar/zip file • Use your name as the directory • Include • All source code and Makefile • README file with instructions on running • Due end of day when due
Grading 60% Basic 2-way VoIP Application (TCP or UDP), with parameters. 15% Uses both UDP and TCP. 5% Supports Speech Detection. 5% Works under all “Loss” parameters. 5% Works under all “Delay” parameters. 10% Clear, well-written code, including comments. Should be easy to "read" and understand. Grading rubric available online