Overly Loud, echo, unclear voice - who is at fault?

Hi, my FreePBX is running from a vmware server and Gsm gateway is in the same DC, but both are on public IP.
Sim cards in Gsm gateway are perfectly fine.
But when we initiate any calls from FreePBX and then agents receive the call, the voice quality is very bad, broken, overly loud, echo happening, etc.

What can be the issue ?

At first I thought its the issue with network of the sim provider or the sim, so I took the sim out and tried it on a phone and it works instantly and perfectly fine.

but whenever a call gets forwarded through freePBX, then quality is dead bizarre.

What to do now, how to debug this ?