Console based IAX voip call system.
Overview
An application for making voip calls (using the IAX protocol) between IAX endpoints.
- Version:
- 1.0
- Author:
- Derek J Smithies
Architecture
There is one instance of a Receiver class, which listens on port 4569 for incoming IAX packets. Incoming packets (from all calls) go via the one instance of a Receiver class.
Incoming packets may be used to generate a new IAXConnection class (if it is a request to open a call). Incoming packets are then passed on to the IAXConnection class for handling. Note that all connections listen to the same Receiver.
There is one instacne of a Transmit class, which sends data out port 4569 to the remote endpoint. Outgoing packets (from all calls) go via the one instance of a Transmit class. Note that all connections send data to the same Transmit.
Available classes
The following classes are key to the implementation of IAX in the opal library
- FrameIdValue - Element of an internal list, used to keep track of incoming FullFrame out sequence numbers.
- FrameList - A list of frames, which can be accessed in a thread safe fashion.
- IAXConnection - Manage the IAX protocol for one call, and connect to Opal
- IAXEndPoint - Manage the IAX protocol specific issues which are common to all calls, and connect to Opal.
- IAXProcessor - Separate thread to handle all IAX protocol requests, and transfer media frames.
- IncomingEthernetFrames - Separate thread to transfer all frames from the Receiver to the appropriate IAXConnection.
- OpalIAXMediaStream - Transfer media frames between IAXConnection to Opal.
- PacketIdList - A list of FrameIdValue elements, which is used to keep track of incoming FullFrame out sequence numbers
- Receiver - Handles the reception of data from the remote node
- Remote - contain information about the remote node.
- SafeString - handle a PString in a thread safe fashion.
- SafeStrings - Handle a PStringArray in a thread safe fashion.
- SoundList - Maintain a list of the sound packets as read from the microphone.
- Transmit - Send IAX packets to the remote node, and handle retransmit issues.
- WaitingForAck - A predefined action, that is to carried out (by one particular IAXProcessor) on receiving an ack.
classes for holding the UDP data about to be sent to (or received from) the network.
classes for carrying information in the FullFrameSessionControl UDP frames
- Ie - the parent of all information element types
classes for the different data types expressed in an Ie
- IeByte - Byte of data in data field.
- IeChar - character of data in the data field
- IeDateAndTime - data field contains a 32 bit number with date and time (2 sec resolution)
- IeInt - data field contains an integer.
- IeNone - there is no data field.
- IeShort - data field contains a short
- IeSockaddrIn - data field contains a sockaddr_in, which is address and port
- IeString - data field contains a string - there is no zero byte at the end.
- IeUInt - data field contains an unsigned int.
- IeUShort - data field contains an unsigned short.
Classes for each of the possible Ie types
Generated on Mon Jul 4 14:52:06 2005 for IAX2 for Opal by
1.3.2