There’s a “thinko” in here somewhere that we need to talk about. It’s kind of fundamental to how the system works.
When you dial a phone and create a SIP call, the call goes to the PBX which answers your call. The PBX routes the call through the “context” of the extension is set in the Extension definition tab. Without getting into a lot of detail, the context is a little program that instructs the PBX what to do with an incoming call. For purposes of what’s happening here (dialing out) you should be use the “from-internal” context because it easily connects to the outbound routes.
This handles control of the call through your outbound routes. The outbound routes can process or edit the dialed number in several ways, but if the called number matches what the outbound route can handle, the route sends the call to one of its associated trunks.
The trunk then tells the PBX to place a call over the associated trunk to the number you dialed. This call is then merged (bridged) into your call and the two endpoints create a little “conference” (it isn’t really, but thinking of it this way can clarify the theory).
So, in order for your outbound call to work, you need to have a trunk (which communicates with your ITSP) that is associated with an Outbound Route, and the number that the Outbound Route call needs to work with that trunk. Remember, the PBX is the one placing and answering the calls - Asterisk is a Back to Back Agent, so the phones never talk to each other.
Hopefully, that will help you visualize what the call is supposed to be doing.