You don't want to use ndlb-connectile-dysfunction (ndlb) for iOS with Freeswitch. Doing so will guarantee you can't hold a registration open long enough to be useful in the background, because Freeswitch appends "expires=30" to all registrations when that option is set. After that you'll just get a "USER_NOT_REGISTERED" error when trying to call that user, unless it happens to be within 30 seconds after a registration call.
What you need to do is follow the steps here:
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html#//apple_ref/doc/uid/TP40007072-CH7-SW12
Specifically:
1) make sure you have an iOS keep-alive timer running (setKeepAliveTimeout:handler:), with the handler block doing a re-register at the minimum value (600 seconds).
2) make sure your app is configured for VOIP and audio playback background modes in its Info.plist
3) make sure your client is registering the network stream interface for VOIP usage as noted in those Apple guidelines. That way the OS can put the app to sleep, but wake you up if incoming traffic occurs on that network stream.
If you do all three of those, you should be able to run voip just fine in the background on iOS 5, even with the screen locked.