Normally, all smartphones running Android 2.3.3 or higher come with a native SIP stack, allowing handset owners to register their SIP accounts to make and receive calls through VoIP.
Unfortunately this feature has been deliberately dropped by the Samsung cowards who obviously bowed to the pressure of greedy telecom providers (we all know how adamant these sorts of companies are about having this feature disabled).
There are various VoIP clients available on the market (both free and paid) that you can use for making VoIP calls (Sipdroid, csipsimple, etc.) but I’d definitely recommend giving the original Android SIP stack a try as it works nicely and reliably.
Here are the full step by step instructions for enabling the native SIP stack on your Galaxy S II again (I think there’s already a similar thread out there by a member named jarsiv, but I decided to create a dedicated thread describing all steps thoroughly):
- Unzip the attached file “android.software.sip.voip.zip” and add it to “system\etc\permissions\". After you’re done, reboot your phone and voila you can enjoy the benefits of the native SIP stack again
By default, the native Android SIP stack only allows for VoIP calls placed via Wifi (it seems that even the mighty G from mountain view bowed to the telecom operators), but there is a way to enable support for VoIP calls via 3G as well:
- You need to modify your framework-res.apk to enable SIP over 3G by editing the xml file "res\values\bools.xml" and setting the parameter for "config_sip_wifi_only" to false.
In order to modify your framework-res.apk you’ll need to follow the following instructions (again this is only necessary if you want to enable 3G support and not required if you only want to place VoIP calls via Wifi):
- Download the program “APK Manager” (just search the forum) and install it on your PC
- Copy your original "framework-res.apk" (via adb push or root explorer) to your PC and place your original "framework-res.apk" into the "\place-apk-here-for-modding\" folder
- Launch "script.bat"
- Press 22 to set your project and choose "framework-res.apk" as your project by pressing 1
- After setting "framework-res.apk as your project, press 9 to Decompile the apk
- Edit the xml file "res\values\bools.xml" and change the parameter for "config_sip_wifi_only" from “true” to “false”
- Recompile the apk by pressing 11
- When asked whether it is a system file, answer “yes”
- When asked "would you like to copy over any additional files...?", answer “yes”
- The script will be temporarily paused and you shouldn’t press a key now.
- Now go to the “keep” folder (located in the same folder as "script.bat")
- In the “keep” folder delete the following file:
- Go back to the "script.bat" screen and press a key to let the program finish the job
- Your new "framework-res.apk" has been created and can be found in the "\place-apk-here-for-modding\" folder (it’s called "unsignedframework-res.apk" and doesn’t work yet).
- After unzipping the entire content of the "unsignedframework-res.apk" you should have 5 objects (3 folders and 2 files).
- Now zip these files with Winzip choosing "No compression" as zipping method
- After zipping it, rename the zip into "framework-res.apk".
- Now you can use root explorer or adb push to replace the original framework.apk with your newly created "framework-res.apk".
- Reboot your phone.
Enjoy the native SIP stack with support for both Wifi and 3G
Note: If you’re sitting behind a NAT you might not be able to receive incoming calls after a while as the keep alive packets (even when set to “always send”) sent by your android phone don’t seem to suffice to keep the connection alive. Unfortunately the keep-alive interval can’t be changed manually in Android 2.3.3 meaning this issue has nothing to do with your Galaxy S II but rather with the Android native stack.
Good luck and enjoy your VoIP calls