[AT&T Samsung Galaxy S II Skyrocket SGH-I727] ocd_amp:
[INFO] Cnap Caller ID Name Display for Roger's / Fido people

Since this is a hot thread and development seems to be in full swing here, I thought I'd take a few minutes pause from frustration to post my findings here.

Caller ID Name Display seems to not work in ANY Cyanogenmod or AOSP based ROMS. The ONLY way to make it work is to go with one of the Stock TouchWiz ROMS on Vincom's page.

Caller ID Name Display is a standard service offered over GSM Networks which not only sends the Number but also the Name of the Caller (if they are not blocking their CallerID) in a limited digit String. This is a very useful feature as it allows us to see who (if there is a name associated with the number) is calling. This works very similar to how your Home or Work land line CallerID would work. However this feature is only available on old and Out dated Stock ROMS.

Most ROMS that we Flash are based on some combination of AOSP and Cyanogenmod or something based on one of those two. So in an effort to Solve this problem, I took apart the Frameworks for Both STOCK and CM based ROMS.

What I found was something interesting inside the code com/android/internal/telephony/Connection/GsmConnection.java

in STOCK ROM 4.1.2 there are Public classes for CNAP Name Presentation, however in CM source, there is no such thing to be found.

This part of Code is modified by Samsung or Carriers so that our phones, when Running in GSM Networks are able to display Caller Name.

The reason we only see Numbers in CM or AOSP based ROMs is because the Code is simply not there.

So I began to write classes from GSMConnection from 1 ROM to another. The Closest I got was getting a GSM connection Failure because I believe my effort was incomplete.

I am using only Notepad++ to edit the Code which I can later Smali back into the Framework and make it flashable, however I think there is more to this than meets the eye. I am not a Programmer, but I understand Java classes and construct methods. So if there is any one who has a proper Software which can allow me to Reference lines in code, I believe it would take me a few hours to get this done so I can test it.

There are almost 3000 lines of code, which without proper tools is impossible to get it right without spending a long time, but the major issue is Reference points in Classes which can also correlate to outside or Global classes.

Anyway from what I have found, ANDROID AOSP is not designed to handle Modern GSM networks properly because this is a HUGE mistake in their Code to not include CNAP functions in their GSM class. What is astonishing is that Cnap code is included in CDMA class which means that if someone is able to make ONLY a CDMA connection to their network that offers CNAP functionality, they could test this out.

So yes, it appears the problem is in the ROM, and not the Radio or the RIL library, due to entire chunks of Missing code which I am not sure I will be successful in putting together by hand but I am giving it a shot. If it works, I will post a patch for everyone but I wouldn't hold my own breath.

Edit : I should say that smali is not exactly easy to code in where as java would be better but I don't name to resources at hand to do so. We are basically screwed.