Enum/custom audio not working

I had an enum rule for tollfree calls working until recently when audio on it died. I switched to a gizmo account for 800 access, but it isn’t reliable. Gizmo often is unreachable and drops out during calls.

I’d like to get the enum trunk working so I have some more choices.
For ENUM, I have one dial rule: 1+NXXNXXXXXX

For custom rules to do something similar, I have:
SIP/[email protected] ,
SIP/[email protected] and
SIP/[email protected]

I connect to my asterisk box either with analog phones connected through a linksys PAP2, or a twinkle softphone. I use G711 ulaw.
When I make an toll free call with a broken trunk (ENUM, or one of the Customs), the call connects, softphone/FXS status shows 711u being used, but no audio.

Not sure where to look for answers. The custom rules sometimes work, perhaps one call in ten. Gizmo always works (with dropouts). I use contacttel for DID and all non-tollfree calls. I haven’t experienced any dropouts with contacttel.

Asterisk box sits behind a NAT. 5060 incoming maps through the router to the asterisk box. Linksys PAP2 has 5061/5062, softphone has 5063.

it is tf.voipmich.com and tollfree.sip-happens.com from my ENUM trunk that fail.
They make a connection, but there is no audio.

How does ENUM select service providers? Is there a list stored somewhere?
I’d like to either remove these two non-working providers, or perhaps figure out what is going wrong with them.

I would much rather freepbx as an open organization sign up to do toll free termination. These companeis that do this get compensation. However I would like to give that compensation to freepbx.

I sued to use it more, but really the service is hit or miss on quality and ton passing so I end up using one of my trunk providers (voicepulse.com ) to terminate toll free for free.