You should probably setup trunk so you can define the parameters (i.e. codec, dtmf) that match that provider and also to designate a context. Without an explicit context, the call will be forwarded to the default context. To address multiple addresses you can use config templates to keep the configuration to a minimum. Define the trunk template with all the needed trunk parameters and then inherit the trunk settings for each IP.
Example trunk for multiple addresses in sip.conf
[provider1](!) type=peer` dtmfmode=rfc2833 insecure=invite,port context=inbound disallow=all allow=ulaw qualify=no [provider1A](provider1) host=1.1.1.1 [provider1B](provider1) host=1.1.1.2 [provider1C](provider1) host=1.1.1.3
Finally, you will need to determine what DNIS is being used. When the call arrives, it will match the trunk with the correct IP address, and then forward it to the dialplan using the context defined in the template. That context needs have an dial pattern that matches the DNIS, so that you can determine how to route the call. If you don't know the DNIS, you can determine it by applying verbose output at the console or reading the log files. If you do not have a catch all pattern match, you'll see output with regard to 'Rejected because extension not found in context'. Whatever that extension is will be the pattern you need to match for.