"my ISP (India, MTNL) blocks ports at it's will"
There's only one way they could do this but still allow for something like teamviewer (which it's implied in your question they do) and that's because the connection to the teamviewer server is initiated from inside your LAN, as opposed to dynamic DNS, in which the DNS is updated from within the LAN, but actual connections to services there are initiated from outside.
So your real problem is that your ISP will not (consistently) allow for incoming connections. You could try, e.g., periodically emailing the IP to somewhere, but that will not get around this if it is the case.
If you want to connect to somewhere but you cannot initiate the connection directly, that somewhere must be connected to some other somewhere that you can connect to; this is (presumably) how teamviewer works. At first glance, this is not necessarily a significant load on the middle party if it can be arranged that your pi could then connect independently to wherever it is your are.
The problem with that is "wherever you are" may just as well be subject to the same restrictions your ISP places on your home LAN. E.g., if it is your phone, your phone service provider may prevent connections initiated from outside. So the development of this kind of software is (I would guess) dead in the water -- no one is going to bother because there is no way to guarantee its usefulness.
That means both you and the pi have to initiate a connection to the third party, and, more significantly, the connection must continue to flow through that third party. This implies you would have to pay that third party some money to support their servers, as (I believe) does teamviewer.
While it would take some programming skill, you could implement this kind of thing yourself via a VPS which might cost you ~$10 US/month -- I am guessing again that this is likely the cheapest solution if you can't find someone besides teamviewer. You might not have to do any programming at all if some form of available VPN software (e.g., openVPN) could accomplish what you want, but you will still have to pay for a server to run it on.