Preserving CallerID

I have a client that would like to send some SIP traffic to my asterisk box from a wide range of IP addresses which (calls) are to be forwarded to myprovider.
Since the type=peer allows only one IP address defined, I tried defining the client as a user:

[someclient]
type=user
username=someuser
secret=somepass
host=dynamic
context=from-someclient

And then for the outbound calls I have configured in extensions.conf:

[from-someclient]
exten => _X.,1,Answer
exten => _X.,n,Wait(1)
exten => _X.,n,Dial(SIP/${EXTEN}@myprovider,20,o)
exten => _X.,n,Hangup()

However, the problem is that the callerid on the outbound call is set to “someuser”.
Is there a way to preserve the original CallerID on the outbound call i.e. not to be overwritten as “someuser”?

Thanks.
Nikola

He needs to send a register first, then he will be allowed to issue invites with from: containing the callerid

type=peer
host=dynamic

and have the phone register. You may still be limited by the phone.

If the source isn’t a phone, TrustRPID may be worth investigating.