I have solved the problem.

The incoming call context provider must be the same, otherwise asterisk takes the context of the last provider with the same host.
In summary....
I have 3 accounts Eutelia
Same context for all 3 accounts of the same host.
Sip.conf; 0XXXXXXXX1
register => 0XXXXXXXX1:pass:0XXXXXXXX1@voip.eutelia.it/0XXXXXXXX1
; 0XXXXXXXX2
register => 0XXXXXXXX2:pass:0XXXXXXXX2@voip.eutelia.it/0XXXXXXXX2
; 0XXXXXXXX3
register => 0XXXXXXXX3:pass:0XXXXXXXX3@voip.eutelia.it/0XXXXXXXX3
; 0XXXXXXXX1
[SIP-PROVIDER-18250921744788ab29d9325]
*
context=voip.eutelia.ithost=voip.eutelia.it
*
; 0XXXXXXXX2
[SIP-PROVIDER-8009797114788ac87a7e90]
*
context=voip.eutelia.ithost=voip.eutelia.it
*
; 0XXXXXXXX3
[SIP-PROVIDER-10695278284788acfd1ed8d]
*
context=voip.eutelia.ithost=voip.eutelia.it
*
; internal numbers
; 101
[101]
*
*
; 102
[102]
*
*
; 103
[103]
*
*
Extensions.conf; incoming provider : 0XXXXXXXX1
[0XXXXXXXX1]
include => public-direct-dial
exten => _X!,1,NoOp()
exten => _X!,n,Set(SENDNOTIFICATIONS="no")
exten => _X!,n,Macro(vm|SIP/101|101|101|to)
exten => s,1,NoOp()
exten => s,n,Set(SENDNOTIFICATIONS="no")
exten => s,n,Macro(vm|SIP/101|101|101|to)
; incoming provider : 0XXXXXXXX2
[0XXXXXXXX2]
include => public-direct-dial
exten => _X!,1,NoOp()
exten => _X!,n,Set(SENDNOTIFICATIONS="no")
exten => _X!,n,Macro(vm|SIP/102|102|102|to)
exten => s,1,NoOp()
exten => s,n,Set(SENDNOTIFICATIONS="no")
exten => s,n,Macro(vm|SIP/102|102|102|to)
; incoming provider : 0XXXXXXXX3
[0XXXXXXXX3]
include => public-direct-dial
exten => _X!,1,NoOp()
exten => _X!,n,Set(SENDNOTIFICATIONS="no")
exten => _X!,n,Macro(vm|SIP/103|103|103|to)
exten => s,1,NoOp()
exten => s,n,Set(SENDNOTIFICATIONS="no")
exten => s,n,Macro(vm|SIP/103|103|103|to)
; for all 3 providers with same host
[voip.eutelia.it]
exten => 0XXXXXXXX1,1,Goto(0XXXXXXXX1,s,1)
exten => 0XXXXXXXX2,1,Goto(0XXXXXXXX2,s,1)
exten => 0XXXXXXXX3,1,Goto(0XXXXXXXX3,s,1)