This software is a DEMO, intended to demonstrates MY SKILLS in this subjects:
[table id=2 /]
Abstract
Showcase2 is a simple VoIP program completely developed using QT libraries, and C++, intended to be used inside your private network (does not implements any NAT traversal algorithm). Download this demo and prepare yourself with microphone and earphones.
Instructions
Windows:
- download & install VS 2015 redist using this link (or search from google).
- download software using this link
- unpack contents in a empty folder
- Double click and run simple_voip_program.exe
- You must see first about dialog, just click OK and continue next screen.
Ubuntu 16.04:
- download software using this link
- unpack contentes in a empty folder
- Double click and run deploy/simple_voip_linux_qt
- You must see first about dialog, just click OK and continue next screen.
Then you see VoIP program screen:
Just follow steps in order is showed.
NOTE: maybe you guess, but this program needs a partner or peer program running in other pc machine, both connected to the same private network (same router for example).
NOTE: i suggest you download and run Wireshark software, in order to sniff UDP packets traveling through UDP ports 20000 (control channel) & 20001 (voice channel).
Code Snippet
qint64 AudioInput::readData(char *data, qint64 maxlen) { qint64 total = 0; QByteArray datagram; QHostAddress src_addr; int s, count; count = 0; do { audioUdpSocket->waitForReadyRead(100); while(total < maxlen && audioUdpSocket->hasPendingDatagrams()) { datagram.resize(audioUdpSocket->pendingDatagramSize()); if(audioUdpSocket->readDatagram(datagram.data(), datagram.size(), &src_addr) <= 0) continue; QByteArray decompress = qUncompress(datagram); s = decompress.size() - sizeof(int); if(s + total > maxlen) s = maxlen - total; if(s <= 0) return total; memcpy(data + total, decompress.data() + sizeof(int), s); total += s; } } while(total == 0 && count++ < 5); return total; }