Check with your SIP provider as to whether they are blocking calls with an origin not assigned to you. If the call-forwarding feature of the PBX passes the caller's number as the outbound CLID on forwarded calls, your SIP provider may assume that you are spoofing caller-ID and reject the call. Many carriers will lift this restriction if you justify the business case for it. If not, you can modify the outbound caller-ID in the Adtran configuration.
Thanks for the followup.. We are the SIP provider and there is no screening for outgoing caller ID on this circuit for this specific reason. I do receive an incoming message at the provider level from the adtran that indicates SIP 500 internal error when the call is attempted to be sent back out to the answering service.
It would be useful to see a "debug sip stack messages" output from the TA900 captured during a failed call, as well as a "debug voice verbose".
The problem is you changed it from a trusted sip binding to a registered binding, and the Meta is rejecting the call due to the from header not being a valid number on the system. We had to remedy this by using Header Manipulation Rules on the Adtran to add an additional match criteria that the Meta would use for Billing and matching. The Meta side needs to be configured to use Diversion matching for billing and matching. Below are the code snippets we used and it worked for us between our Meta and Adtran devices:
Voice trunk TXX type sip
hmr TRUNK out
hmr policy TRUNK
rule-set DiversionChange 1
hmr rule-set DiversionChange
message-rule CHANGE_Diversion message-type any 1
match header diversion
modify header diversion position first-match new-value /sip:firstname.lastname@example.org/ 2
For the voice trunk that connects to the Meta Switch add the hmr trunk out rule.
In the rule-set replace email@example.com to match what the from header that would normally be found on a call.