Actually the clue is in the error message. For most connections, it won't be possible to set up a direct connection between two peers, even if you allow it (see screenshot below). One main reason would be NAT.
The solution is to use a bytestream proxy that both peers can use and configure Miranda for that. It is likely that your side is the failing one from what you describe. In general, of course, it could be that either or both sides fail. So looking at the other person's settings may be necessary.
The second checked checkbox and the accompanying edit field are what you are looking for.
Also note: the bytestream proxies are services in the XMPP ("Jabber") sense, so the names, albeit appearing as DNS names, may not be entered in the DNS server, if you are connected to the Jabber server's domain that offers the bytestream proxy. The canonical name is usually
proxy.domain-name, at least in OpenFire it used to be and ejabberd it is.
where to find a bytestream proxy: From the Miranda main menu (the "crown") pick the protocol/account you configured. It should give you a popup menu with another submenu "Services" under which you find "Service Discovery". In there will it list available bytestream proxies for your service, if the server has been configured to advertise and provide this service. See the screenshot below.
The second to last shows the proxy service. Again, this has to be enabled on the server. And in addition Google - from my experience - does some things to complicate for example encrypted S2S connections, so I wouldn't be exactly surprised if some complications come up with the bytestream proxy as well. At least I couldn't see any offered services. Even though GTalk uses XMPP, they aren't completely following the standard as far as I understand.