Unable to enable mobile data on ics 4.0.4 custom build on custom hardware

I am able to connect to gprs using terminal by “pppd call gprs” by hardcoding the scripts in system/etc/ppp but not from the firmware. According to the flow

onPreferenceTreeClick (case mButtonDataEnabled) in MobileNetworkSettings
setMobileDataEnabled in ConnectivityService
handleSetMobileData()
setUserDataEnable() ->CMD_SET_USER_DATA_ENABLE in MobileDataStateTracker
onSetUserDataEnabled in DataConnectionTracker
onTrySetupData(Phone.REASON_DATA_ENABLED)
setupDataOnReadyApns() in GsmDataConnectionTracker
trySetupData
setupData
bringUp
->EVENT_CONNECT in DataConnection
onConnect
setupDataCall() in Ril
i am able to get my log messages till setUserDataEnable(boolean enabled) in MobileDataStateTracker.java class but after sendmessage not getting into the callback mechanism and onSetUserDataEnabled(enabled)

the logcat snippet when i turn on mobile data is:

V/ConnectivityManager( 2661): Amit setMobileDataEnabled in ConnectivityManager1
D/ConnectivityService( 2467): setMobileDataEnabled(true)
D/ConnectivityService( 2467): AMIT out of setMobileDataEnabled ConnectivityService
D/ConnectivityService( 2467): AMIT inside handlesetmobiledata ConnectivityServiceMobile data state: DISCONNECTED
D/ConnectivityService( 2467): Data enabled: user=false, policy=true
D/ConnectivityService( 2467): AMIT out handlesetmobiledata TYPE_MOBILE ConnectivityService
D/MobileDataStateTracker( 2467): default: AMIT in setuserdataenabled in Mobiledatastatetracker
D/MobileDataStateTracker( 2467): default: AMIT in setuserdataenabled in Mobiledatastatetracker CHANNEL != NULLtrue
D/MobileDataStateTracker( 2467): default: AMIT out setuserdataenabled in Mobiledatastatetracker
D/ConnectivityService( 2467): AMIT out handlesetmobiledata ConnectivityService
W/BackupManagerService( 2467): dataChanged but no participant pkg='com.android.providers.settings' uid=1001

the complete logcat o/p is here I tried enabling and disabling airplane mode didnt make any difference. what could be the possible reason/solution for this

thanks