Two peers on same IP address, incoming call context

Hi! I have two accounts on the same sip provider. I added into sip.conf this lines:

register => account1:password1@sip-provider.com
register => account2:password2@sip-provider.com

[SipProviderAccount1]
defaultuser=account1
type=friend
secret=password1
insecure=port,invite
host=sip-provider.com
context=fromsip-sipprovider-account1
canreinvite=no

[SipProviderAccount2]
defaultuser=account2
type=friend
secret=password2
insecure=port,invite
host=sip-provider.com
context=fromsip-sipprovider-account2
canreinvite=no

(Incoming calls does not work without insecure option)
All incoming calls are falling into fromsip-sipprovider-account1, even though call is belong to second account. How to make asterisk separate them?

There are many ways to solve this issue, one of them is use the call back extension on the register string and then use dial plan logic goto() to send the call to the desired context

register => username:secret@host/callbackextension

there is a section here svn.digium.com/svn/asterisk/trun … onf.sample

called ;------ OUTBOUND SIP REGISTRATIONS ------------------------

reading this section could help you understand better

Thanks, but callbackextension will not work in case of sip provider, because sip provider will dial extension equal to my PSTN number, not regarding what callbackextension I sent.
I need this splitting to calculate sip providers channels usage.