No voice without Monitor function

OK, so I’ve got an extension like: exten=>_X.,1,Dial(SIP/${EXTEN}@provider-out) and there is no voice when I make outbound call. But when I add a Monitor function before Dial like this:
exten=>_X.,1,Monitor(wav, blah)
exten=>_X.,2,Dial(SIP/${EXTEN}@provider-out)
everything works just fine :neutral_face:. Isn’t it strange? And does anyone has any ideas how to fix it so I could have voice even without Monitor function?

Monitor will frustrate directmedia. Maybe you have an inappropriate use of directmedia?

I’m using Realtime and I don’t even set directmedia when adding sip - it’s NULL in database by default. How should I use it? Should it be ‘yes’ or ‘no’?

The default is yes, which will try and reduce the load on Asterisk by sending RTP direct between endpoints. I’m guessing that your firewalling/natting is too complex for that to work, in which case you may need it set to no.

You might want to look at the other recent thread where someone is complaining about the cost of transcoding, which looks like a case of where directmedia needs to be on and working for adequate performance.

I’ve tried all posibilities of directmedia: ‘no’, ‘yes’, ‘nonat’, ‘update’, ‘update,nonat’…and there’s still no voice :frowning:
Can monitor function affect on any other thing? Or maybe any other ideas?