There is a possibility of your provider rejecting the call with deferent callerID supplied by your server.
Occasionally I experience similar problem and the solution I use is to setup overflow in your dilaplan with a deferent provider ( preferably more expensive):
exten => _1NXXNXXXXXX,1,AGI(
agi://127.0.0.1:4577/call_log)
;exten => _1NXXNXXXXXX,2,Dial(SIP/${EXTEN}@VSIPtrunk,55,o) ;test
exten => _1NXXNXXXXXX,2,dial(SIP/${EXTEN}@${SIPtrunkI},55,o) ;ip based
exten => _1NXXNXXXXXX,3,dial(SIP/${EXTEN}@${SIPtrunkII},55,o) ;ip based
exten => _1NXXNXXXXXX,4,Dial(SIP/${EXTEN}@otherSIPtrunk,55,o) ;auth based
exten => _1NXXNXXXXXX,5,Hangup