Hi,
You can always set the caller id before your extensions status checking:
[failover]
exten => s,1,NoOp(Failover Check)
same => n,Set(CALLERID(all)=${CHANNEL(from)}
same => n,GotoIf($["${SIPPEER(11801,status):0:3}"="OK "]?good)
same => n,GotoIf($["${SIPPEER(11802,status):0:3}"="OK "]?good:fail)
same => n(fail),Dial(Local/15555555555@from-internal/n)
same => n(good),Return()
But, I think it might be possible that your provider is blocking any caller id that is not belongs to your trunk.
Thank you,
Daniel Friedman
Trixton LTD.