Can someone explain PJSIP transports?

I’m testing out PJSIP. At first I wasn’t able to get extensions registering. Then I noticed the Transports in the PJSIP settings and figured I would try to enable one of them. So I enabled the UDP - 0.0.0.0 - All and did an amportal restart over SSH. After that my PJSIP extension registered (locally and even over my VPN network).

So I then tried to see what would happen if I set the transport to udp - 192.168.0.4 - eth0 (the IP of my PBX). When I did this it seems like PJSIP extensions were able to register, but ALL my CHAN_SIP extensions went offline!

At this point I set it back so that it worked again and decided I’d come ask others for some explanation (or point to where this info is in the manual) about what these “transports” are and what they are supposed to do because I don’t understand it at this point.

PJSIP and CHAN_SIP cannot share ports, so long as they are different they both should work.

For example, if I want phones and softphones, to use PJSIP at 5062 (TCP and UDP) and SIP Trunks/Other SIP devices to use CHAN_SIP using 5060, I would configure the listening port and interface(s) in Asterisk SIP settings.

When choosing (0.0.0.0) binding in the extension, it tells it to allow that extension (user or device) to come in on any interface with PJSIP bound to it.