penSer uses advanced techniques for executing programmable logic. One of them is called Call Programming Logic (CPL). CPL scripts are XML-based documents. They describe operations that the server performs upon a call setup event. CPL scripts can reside on a SIP proxy server, an appli- cation server, or intelligent agent. Figure 2.7 shows how SER works with CPL. Asterisk is an open source IP PBX, composed of several modules that oper- ate as a simple PBX, Gateway or Media Server. Asterisk has a General Public C 2009 by Taylor & Francis Group, LLC SIP: Advanced Media Integration <cpl> <incomings> <address-switch field="origin" subfield="user"> <address is=2000> <reject status=reject reason=l don't take calls from extension 2000 /> </address> </address-switch> </incoming> </cpl> Reject Redirect SIP request Other SIP app server FIGURE 2.7 Call processing logic. License (GPL) and although it was originally developed for the Linux oper- ating system, it currently works on other operating systems. Asterisk has many features only available in expensive PBX systems such as conferences, IVR, voice mailbox, automatic distribution of calls, etc. It's possible to add new features on its contexts collection, called dialplan, which is written in the characteristic script language of Asterisk, and to add mod- ules written in C language or in another programming language supported by Linux. Asterisk can be installed on a traditional computational platform working as a gateway interconnecting the PSTN and IP environments. RTP Proxy is a server that operates together with the SER and any proxy server, solving the topic of NAT Traversal with the appropriate handling of ports. One of the most used is Portaone RTP Proxy. Service-Oriented Architecture (SOA) Service-Oriented Architecture (SOA) is an architectural pattern for creating business processes organized as services. It provides an infrastructure that allows applications to exchange information and participate in business pro- cesses. While the SOA concept is general and is base