Supporting traditional telephony (TDM) as well as voice over IP (VoIP), Asterisk is written in C and uses the Unix standard POSIX programming interface to communicate with the operating system.