Accountcode and callerid

In a asterisk pbx I can force the callerid from the ata (or phone, or another asterisk pbx connected to the first one in SIP trunk) and this setting change also the accountcode moving the bill to another customer.

I try to explain more detailed:
I have an asterisk as public centrex and I call centrex below. We have one sip account for each customer, and each sip account have an accountcode for the billing. The customer use SIP ATA or SIP Phone or private asterisk pbx.
If the customer set in their asterisk private pbx an outbound cid (that is also present in the centrex) he can place call and charge the call on the other customer.
I have seen that: after the autentication of the sip account, the connected device can place call sending OPTIONS @ ip
the only way to block the changing of the callerid is put the permit ip address, but this solution is not the best for the user that need to connect with a dynamic public IP.
there is a way to force a sip account to use only its callerid?

Specify the caller ID in its sip.conf entry.

I ha solved with this settings:
in sip.conf:
Match_Auth_Username = true

for each account: insecure = port

Thanks
Marco