I am connecting to internet via a 3g dongle(that is via a local ISP). When I connect to the internet, my computer is assigned a dynamic IP. I can find this by going to whatismyip. I tried to ping my computer for that dynamic IP from another computer which is connected to internet via the same ISP. But when I pinged it I got request time out response. That means I can't exchange data between those two machines. If I have a computer with static IP which I can use to exchange data between two machines which I mentioned previously.
My question is, Is it possible to ping (in other words to exchange data) a computer which is connected to internet with dynamic IP?
Background for the question is I thought to develop a software like teamviewer. I initially thought there was no involvement in third party computer with static IP when I do a screen share with teamviewer. But with the above mentioned observation, I feel there should be a middle machine with static IP is involved (Correct me if I am wrong) at least to initiate the conversation.
If this is not possible, what is the theoretical explanation for that?