In my case the headphone appears in the port list for "Built-in Analogue Stereo" itself and I can choose it in pavucontrol to let echo-cancel use it.
For your case I think you may need to explicitly point echo-cancel to the external source. You can specify the "source_master" argument to the module as per the documentation here.
So find out the name of the external source pactl list sources | less
, then search for required external device e.g. "Audio Adapter Analog Mono" as above (there might be entries for monitor devices for that as the description will show so skip those; the real device will have "alsa_input." prefix in name). Get the name of the required external device and add to the line in /etc/pulse/default.pa
:
load-module module-echo-cancel source_name=echosource aec_method=webrtc source_master=alsa_input.pci-0000_00_1b.0.analog-stereo
(change the name in source_master as found before). I couldn't find a way to change this to internal mic or back to external mic dynamically other than unloading+loading module again using pactl/pacmd.
BTW, in my case the noise cancellation takes a few seconds to take affect and first few seconds in Skype have noise which smoothens out quickly.