A telephony application architecture which allows creating programs as a
set of nested routines running independently and concurrently on three
different control layers. Each layer focuses on only a particular portion
of the overall call processing function thus allowing that portion to be
written or presented in a substantially linear fashion. This linear
presentation greatly reduces the complexity of development and maintenance
of the software.