weee, I got it working 
Noe i just want to ask a little question that for me is the most obvious thing, but i just like to get confirmed.
the [myphones] section will be read from the top down every time a new call is made,
so if i have
[myphones]
exten => 1000,1,Dial(SIP/1000)
exten => 1000,n,Hangup()
exten => 1001,1,Dial(SIP/1001)
exten => 1001,n,Hangup()
exten => _X.,1,NoOp()
same => n,ExecIf($["${CALLERID(num)}" = “1000”]?Dial(SIP/fooprovider_out1/${EXTEN}):ExecIf($["${CALLERID(num)}" = “1001”]?Dial(SIP/fooprovider_out2/${EXTEN}):NoOP(Conditions did not match)))
exten => _X.,n,Hangup()
Then it looks for 100 then 1001 then any other number more than 3 digits, is that correct?
And if I made it like:
[myphones]
exten => _X.,1,NoOp()
same => n,ExecIf($["${CALLERID(num)}" = “1000”]?Dial(SIP/fooprovider_out1/${EXTEN}):ExecIf($["${CALLERID(num)}" = “1001”]?Dial(SIP/fooprovider_out2/${EXTEN}):NoOP(Conditions did not match)))
exten => _X.,n,Hangup()
exten => 1000,1,Dial(SIP/1000)
exten => 1000,n,Hangup()
exten => 1001,1,Dial(SIP/1001)
exten => 1001,n,Hangup()
It will never get to thw 1000 and 1001?