20 mA will be only, if no IMLet is running .
Max expected current (average, not pulse!!!) is 350 mA in very bad coverage area.
On test board are filtering tantalum capacitors - 2500uF in total, your power supply must have similar, else pulse current can rise up to 2A.
When GPRS is online, power consumption rises, of course.
All of this power goes to RF transmitter, when active, and ARM core, so average consumption in general is independent from application (take in account, that you must not load any output with current greater than 1mA ... - in fact, this value can be greater, but you must see N12 internal schematics in this case and calculate, what is possible, what not, because of I/O level translation system).
N12 internals are the same as other NOKIA DCT4 based phones have, excepting firmware, of course (no UI part, extended data transfer functions, M2M protocol e.t.c).
So, power consumption scenarios are very like standard phone, excluding audio, ringer, LCD and backlight power.
When there are no IMLets running and no communications are active, N12 goes into sleep mode - ~20..50 mA at max.
IMLet only - 100..150 mA (with some pulses at replies to base station query).
Transmit mode - 350 mA max average, up to 2A pulse (see about this in HW guide).
BUT.. if there is bad coverage or no coverage at all, power consumption will be large, because of max RF power level.
N12 is communicating w base station even without active channels (as normal phone does).
So good antenna is helpful in power reduction.
Some undocumented things: N12 can work directly from standard phone accu, altough doesn't have realised charging path, in simple scenario is possible to use so called trickle charging mode. This is tested in real apps.