This document discusses building a SIP softswitch using Asterisk and Asterisk-Java. It describes using Asterisk to handle SIP signaling, media processing, and interfacing with a Java routing application. The Java application directs call routing and interfaces with Asterisk via FastAGI and AMI. Key issues addressed include having call legs survive independently and supporting early media. Patches are used to enable call bridging and configurable early media handling in app_dial.