Sip port setting in extension not honored?

I have asterisk 1.8.7.1 (tried with 1.8.8 too) with freepbx 2.9.0.7.
I have several extensions. For some reason the port setting I specify in extension is not being honored. i.e.

For e.g. Here is what doesn’t work (omitted irrelevant settings like password, codecs etc.)

Freepbx extension config : Extension : 88888, … Port: 5090
Client (Zoiper/csipsimple etc.) : Extension: 88888 … Port : 5090

Clients time out trying to connect. However when I change it like this…

Freepbx extension config : Extension : 88888, … Port: 5090
Client (Zoiper/csipsimple etc.) : Extension: 88888 … Port : 5060

then clients register immediately (note that client is using port 5060 whereas server extension specifically specifies 5090). So it appears that freepbx/asterisk is ignoring the ‘Port’ field value from extension and still allowing registration at 5060.
What could be wrong ?

The extension port field doesn’t do what you think it does. I don’t actually know what it does, but if you want to change the port at which Asterisk listens for SIP registers, you need to change the SIP Signaling Port.

To change the SIP Signaling Port from the default of 5060, open your browser and access the FreePBX GUI. Click on “Tools,” and then “Asterisk SIP Settings.” If this module is not available on your installation of FreePBX, you can install it using the “Module Admin” module.

Scroll down to Advanced General Settings, and fill-in the desired port to the right of the Bind Port field. If the field is left blank, the FreePBX should default to port 5060. Click “Submit Changes” at the bottom of the screen, and then click the orange “Apply Configuration Changes” bar at the top of the screen.

The sip port setting in extension controls the port used by the client. It only works if the client is assigned a fixed IP.
In a typical case, when using host=dynamic, the client port is assigned automatically when the client connects to asterisk.
The port used by asterisk is controlled by the global setting and can not be changed per extension.

So, is it just an authentication related setting, i.e. unless the client uses that port, Asterisk will ignore it?

In other words, is it essentially the same as port=xxxx in the trunk settings?