To simplify the scenario, let’s illustrate 2 soft phones with 2 providers. The rest can be done by induction.
ITSP1 <--+ +--> ITSP2
+-- Internet --+
| +--> soft phone1
Asterisk -- LAN
+--> soft phone2
Now, you job is to program Asterisk to
- Register Asterisk with ITSP1 and ITSP2, register soft phone1 and soft phone2 with Asterisk. You may also need to register ITSP1 and ITSP2 with Asterisk.
- Program Asterisk so it dials soft phone1 when ITSP1 initiates a call, and dials soft phone2 when ITSP2 initiates a call
- Designate a scheme to internally identify the two soft phones (you can even use their registered phone numbers as identifiers.
- Program Asterisk so it dials soft phone1 when another internal phone dials its identifier (known as an “extention”), and dial soft phone2 when another internal phone dials its respective identifier.
Steps 1 and 3 involve configuration files. Steps 2 and 4 are known as dial plan programming - and also involve configuration files. In Asterisk, basic programming are all done through configuration files. You just need to learn the “language”. (And it’s not hard once you get a hang of it.)
The first excercise you want to pick - OK, maybe the second, would be trying to register Asterisk with one provider, register one soft phone with Asterisk, and get half of step 2 to work. By that time, you probably would have learned how to complete the rest.