ip-probing issue with BTS connection - no rebinding to a correct IP address
Try configuring osmo-mgw to use ip-probing without configuring a default rtp binding address.
See the attached pcap file for the RSL+MGW trace of a new call setup initiation.
You can see in this trace that:
1) MGW first responds with IP address of 127.0.0.1 because the initial CRCX doesn't have any address information MGW could use to infer which IP it should be binding to.
2) Then MGW receives an MDCX with the other side's IP address and responds with a selected correct IP address on its side.
The issue is that while responding with the correct bind address, it doesn't actually bind to it, so the RTP stream is completely lost.
1) Only send CRCX to MGW when we know BTS's IP address (i.e. after exchanging "ip.access CRCX/MDCX" with the BTS). In this case MGW will bind to the correct IP address on its side from the beginning and there will be no issue.
2) Implement RTP stream re-binding on MDCX, and centralize local RTP bind address management. Right now mgcp_get_local_addr() function returns guesses the IP address and returns it, even if the RTP stream is not bound to it. So when we create MDCX response and call this function to get an address for our side of the RTP stream, it essentially misleads us.