I don't think there is ome way to get rid of this situation of call getting routed to a modem when no match is found for dial peers.
The matching is done in the following manner:
1.Called number (DNIS) with incoming called-number .
First, the router/gateway attempts to match the called number of the call setup request with the configured incoming called-number of each dial-peer.
2.Calling Number (ANI) with answer-address.
If no match is found in step 1, the router/gateway attempts to match the calling number of call setup request with the answer-address of each dial-peers.
3.Calling Number (ANI) with destination-pattern.
If no match is found in step 2, the router/gateway attempts to match the calling number of call setup request to the destination-pattern of each dial-peer.
4.Voice-port with configured dial peer port.
If no match is found in the step 3, the router/gateway attempts to match the configured dial-peer port to the voice-port associated with the incoming call. If multiple dial-peers have the same port configured, the dial-peer first added in the configuration is matched.
Step 4 is not applicable to voice/dial platforms such as AS5300, AS5350, AS5400, AS5800 and AS5850 If any one of first three steps are not used, then we match dial-peer 0 and the call is treated as a dial modem call. This means that customers can be getting modem tones as opposed to dial tone for inbound calls.
The following URLs will give you more information:
http://www.cisco.com/univercd/cc/td/doc/product/software/ios120/120newft/120t/120t3/voip5300/voip53_1.htm#4802
http://www.cisco.com/univercd/cc/td/doc/product/software/ios122/122cgcr/fvvfax_c/vvfpeers.htm#45738