I can not distribute calls to contexts

All should be simple but I cannot do ti the second day already.
There is asterisk, one more SIP Proxy and a gateway to PSTN. All works on SIP. To asterisk the call can come from another SIP Proxy or from a gateway.It would be desirable that the call depending on that whence it has come got in the own context.
Neither the second SIP Proxy nor gateway are not registered on asterisk. “Authentication” works on ip address.
For the second SIP Proxy config is written is sip.conf file:

[sip_proxy]
type=peer
context=voip-sip
host=62.33.22.14
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=g723
allow=ilbc

And all calls from 62.33.22.14:5060 get to context [voip-sip]
For PSTN gateway this config is written is sip.conf file:

[ptzas1]
type=peer
context=ptzgw
host=62.33.22.11
disallow=all
allow=alaw
allow=ulaw
allow=g729
allow=gsm
allow=g723
allow=ilbc

As you can see difference only in the IP address. But all calls from the gateway get to default context.
sip debug writes:

Found no matching peer or user for ‘62.33.22.11:51279’

I.e. asterisk cannot find peer and takes a default context.
Second SIP Proxy all time sends the calls from port 5060. But the gateway sends from random port.
Probably it is a reason. But since port number varies all time I cannot enter it in parameter port = into corresponding section of sip.conf file.
How it is possible to join call to a context in a similar situation, ignoring port number?

Dmitry

try sip debug… is the gateway possibly sending a username/authuser/etc?