1. A method of managing the lifecycle of a telephone call comprising: creating an abstract model of the telecommunication services to be provided during the call, said abstract model comprising threading concepts and at least one communication thread, wherein said communication threads are active in parallel and can be activated or deactivated as desired during the call; translating the abstract model into executable software code; and executing the created code.