I am using ejabberd for chat and audio/video and implemented from the following URL https://www.process-one.net/blog/how-to-set-up-ejabberd-video-voice-calling/
Audio-video calling is working in the same network but when both android app using different networks then the call is connecting...
firstly configure listener ports of TURN STURN server and give the public ip question is where is public ip comes from firstly you need to configure your own TURN sever or you can purchase that if you configure your own server this is you can do Setup up your own TRUN server
deploy this server and use this ipv4 ip in your ejabberd listener config This is my STUN/TURN configuration in ejabberd.yml:
port: 3478
transport: udp
use_turn: true
turn_ip: "212.83.142.6"
auth_type: user
auth_realm: "im.silverpeas.net"
module: ejabberd_stun