A softphone is a software program for making telephone calls over the Internet using a general purpose computer, rather than using dedicated hardware. Often a softphone is designed to behave like a traditional telephone, sometimes appearing as an image of a phone, with a display panel and buttons with which the user can interact. A softphone is usually used with a headset connected to the sound card of the PC, or with a USB phone.
To communicate, both end-points must support the same VoIP protocol, and at least one common audio codec.
A typical softphone has all standard telephony features (DND, Mute, DTMF, Flash, Hold, Transfer, etc.) and often additional features typical for online messaging, such as user preference indication, video, wide-band audio. Softphones provide a variety of audio codecs, a typical minimum set is G.711 and G.729.