Search code examples
node.jsvoip

Simple VOIP programming concept


When install some VOIP software such as Kphone or vock (with nodejs), it always specify server-side and client-side installation. If both VOIP chat users already know his target IP client address to each other, why we still need to install software on server-side ? OR since the phone or website VOIP users' IP is dynamic IP that is not static , we need to place the VOIP user's information such as his dynamic IP for talk communcation for both two VOIP client on server-side. Is it corect in concept ? For developer, they can just write client-side VOIP software if both client IP and port used that are fixed or static , no need to server-side assist, Is it correct. Server-side is just bridge purpose between two client if thier IP are dynamic , right ?

Please advise


Solution

  • You answered your question mostly correctly.

    One of the main purpose of a VoIP server (among routing/billing/ivr/voicemail/others) is the registrar functionality. This means that softphones can register to the server, and then any peer can easily contact the softphone via the server since this solves all dynamic/private IP issues. However in SIP you can always make calls directly between two endpoints by specifying the exact location, so: -If your softphone s registered to a server, then you call the peer by its username, like: abc -If your softphone is not connected to a server, then you call still call other phones by exact SIP URI, like: abc@ipaddress:port

    The SIP bible can be found here: RFC3261