I have such thing in a dialplan:
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10001”]?dial1)
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10003”]?dial3)
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10007”]?dial7)
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10008”]?dial8)
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10009”]?dial9)
exten => _XXXXXXXXXXX,n,GotoIf(["{caller}" = “10010”]?dial10)
exten => _XXXXXXXXXXX,n(dial1),Dial(PJSIP/{EXTEN}@10000001)
exten => _XXXXXXXXXXX,n(dial3),Dial(PJSIP/{EXTEN}@10000003)
exten => _XXXXXXXXXXX,n(dial7),Dial(PJSIP/{EXTEN}@10000007)
exten => _XXXXXXXXXXX,n(dial8),Dial(PJSIP/{EXTEN}@10000008)
exten => _XXXXXXXXXXX,n(dial9),Dial(PJSIP/{EXTEN}@10000009)
exten => _XXXXXXXXXXX,n(dial10),Dial(PJSIP/{EXTEN}@10000010)
For example im caller 10001 and my line is busy now, somehow asterisk start to call first ready line (usually its 10000003 or 10000007).
Why so happens?