Okay, so I compiled all your code and ran it like this: freeswitch_bind:start('freeswitch@DEV-CS1', configuration, self()). The third parameter seems to be unused, so I passed the shell's pid in. I look at freeswitch console and see the messages that the bindings were successful. I then reload the sofia module and see the XML being served to FS (on both the erlang shell and the FS console). After the stun times out, it complains about requiring a username and that it failed to start the 'external' UA but I get control back. This is without making any modifications to your code. I suppose I should have asked this earlier, but what version of freeswitch are you running? Also, what output do you get in the erlang shell and in the FS console (in debug mode)? Andrew