Odpowiedź na pytanie naprawdę zależy od tego, co chcesz z nim zrobić. Oto 2 przykłady tego, jak to zrobiłem:
Opracowałem oprogramowanie dla Go2Call.Com (obecnie należące do Deltathree) i było używane do połączeń z komputera do telefonu. W przypadku Go2Call był to aplet Java dla interfejsu dialera, który nazwał DLL systemu Windows napisany w C++. Stamtąd wypowiadał zastrzeżony protokół, aby rozmawiać z serwerami, które z kolei wysyłały połączenia do zwykłych telefonów stacjonarnych.
Kilka lat później napisałem na stronie internetowej (kontrolka ActiveX), która umożliwiłaby nawiązywanie połączeń PC-PC lub PC-telefon i korzystała ze standardowego protokołu H.323.
Polecam zacząć od określenia, jaki jest twój cel końcowy, a następnie sprawdzenia niezbędnych protokołów i technologii, aby to osiągnąć.
Dla PC-PC, możesz robić, co chcesz, jeśli obie osoby używają twojego oprogramowania. W takim przypadku możesz dowiedzieć się, jak działa VoIP (w tym kodeki-dekodery kompresji itp.) I wdrożyć je w dowolny sposób.
W przypadku PC-do-telefonu lub gdy chcesz zadzwonić do oprogramowania innej osoby, polecam SIP, ponieważ jest to prawdopodobnie najpopularniejszy protokół. H.323 jest nadal powszechny, ale SIP wydaje się przejmować.
Niestety, to prawdopodobnie nie mówi wszystkiego, ale jest w tym dużo. Mam nadzieję, że to pozwoli ci zacząć we właściwym kierunku.
Aktualizacja: od kiedy wspomniałeś PC-to-PC, Packetizer ma listę standardów i sporo informacji, których używałem z powrotem, kiedy robiłem dużo programowania VoIP.
Jeśli chodzi o książki, to książki, które widziałem do tej pory, nie są związane z programowaniem, ale raczej z wykorzystaniem oprogramowania VoIP i instalowania sieci VoIP.
Dla porównania istnieje również Twilio: https://www.twilio.com/docs/api/client –