CLI Spoofing?

I’m trying to have a go at CLI spoofing.

My outbound calls may go out over various VoIP providers, using least cost routing to determine which provider for call destination and time of day.

No matter which provider I go out over, i’d like the called party to only see only one of my numbers - that number will be the only number i’ll want people to call back on.

To test, i’ve got a call file as follows

Channel: SIP/2222
Callerid: Spoof Name <spoofNumber>
MaxRetries: 2
RetryTime: 10
WaitTime: 5
Context: spoofing
Extension: number to dial
Priority: 1

And in extensions.conf

exten => _.,1,Dial(SIP/voiptalk/${EXTEN})
exten => 2222,1,Dial(SIP/2222)

What is supposed to happen I believe, is, my softphone (2222) is called, and when I answer, Asterisk will try to make a connection to the actual person I want to call, and upon the called party answering, he and I are bridged. Though, the called party should see my spoofed CLI.

Asterisk calls my softphone (I see the spoofed CLI), I answer, and Asterisk then attempts to call the person I want to call. But it fails. Other VoIP providers come back with 500 error messages and such.

If I dial out to a PSTN number, their phone will ring, and the call is fine, but, they don’t get my spoofed CLI.

I can probably understand the lack of spoofed CLI on the PSTN, as in the UK, it’s difficult if not impossible to spoof the CLI on the PSTN, but VoIP to VoIP, surely it should work?