The first goal of the project is to interface the Teltone T-311 PSTN interface to a FreeBSD and Solaris, possibly also NT system. The Teltone PSTN interface provides a serial control connection and standard audio input and output that can be connected to the workstation's soundcard.
(Note: Chapter 11 of Advanced Programming in the Unix Environment has a good introduction to programming the terminal/serial port.)
The server hosting this interface should be able to act as a bidirectional gateway between packet (Internet) telephony and the PSTN. Thus, a PSTN caller to the gateway would have his voice converted to RTP packets, directed to the destination determined by table lookup. (In the absence of distinctive ringing, this destination would have to be fixed, although one could imagine connecting to an automated system that would ask for the caller to type in, via DTMF, the desired called party, with the call then being forwarded to that party.) An existing tool (NeVoT) is to be modified for the conversion between packet and analog audio.
Internet calls are set up via the Session Initiation Protocol (SIP). The gateway should accept caller id and package this information into the From header of the SIP request.
The gateway would also accept outgoing calls, based on the number contained in the SIP invitation. As an optional feature, user authentication may be required to limit outgoing calls as in standard PBXs.