Asterisk Execif programming

A question from one who is totally newbie on Asterisk.
The following line works when I call externally (exten => s, 1, SipAddHeader (P-Preferred-Identity: sip: $ {FROM_DID}@x.x.x.x)
but not when I call internally.
Therefore I tried to condition kommantot follows:
exten => s, 1, ExecIf ($ [ “$ {FROM_DID}”> “0”]? SipAddHeader (P-Preferred-Identity: sip: $ {FROM_DID}@x.x.x.x): Noop (False))

But this does not work, but then says Asterisk:
WARNING [6439] [C 000008c9]: app_exec.c: 268 execif_exec: Could not find application! (SipAddHeader)

What am I doing wrong?

remove extra spaces on your dialplan, do it like this

ExecIf($["${FROM_DID}"=""]?SipAddHeader(P-Preferred-Identity:sip:${FROM_DID}@x.x.x.x):Noop(False))