Hi David,
there is no magick with fs_path. fs_path contains value from Path header of a request which comes from sip proxy, i.e. kamailio. It means that replies and SIP requests from freeswitch to UAC will traverse SIP proxy which should be on the path.
For example,
Request: UAC ==> SIP proxy/load balancer ==> freeswitch box
Reply: freeswitch box ==> SIP proxy/load balancer ==> UAC
Request (INVITE): freeswitch box ==> SIP proxy/load balancer ==> UAC
Without path specified freeswitch will send direct messages to UAC:
Request: UAC ==> SIP proxy ==> freeswitch box
Reply: freeswitch box ==> UAC
This behaviour may be undesirable.
So SIP proxy inserts itself to Path header and freeswitch recognizes it and add fs_path tag to contact.