Same user, two contexts with same extension?

For example I have created one sip user and I made two contexts in extension.conf. This user has 2 contexts and these contexts are context-1 and context-2.
My question is when user try to call 100 with his ip phone so how does behave asterisk.
1-this user only calls user1
2- this user only calls user2
3-this user call both of user1 and user2
4-none of them. Asterisk gives error message when dial plan loaded?

[context-1]
exten => 100,1,Dial(SIP/Client1)

[context-2]
exten => 100,1,Dial(SIP/Client2)

it depends on what context your sip peer has set and what context that context includes.

Say you have context = context-1 for your peer, then that persons calls to extension 100 will go to Client 1.

If you have context = context-2 for your peer then that persons calls to extension 100 will go to Client 2.

If you have context = internal and do not include either context-1 or context-2 then the calls won’t go anywhere.

If you have context = internal and have an include => context-1 then the calls will go to Client 1

If you have context = internal and have an include => context-2 then the calls will go to Client 2

If you have context = internal and have an include => context-1 followed by include => context-2 the calls will got to Client 1.

If you have context = internal and have an include => context-2 followed by include => context-1 the calls will got to Client 2.

A SIP device can only have one context. It is not clear what you are doing which would make you think that it had two contexts.

(It is possible to create sip.conf’s that have more than one section that will match a particular device. In that case, if a user match is permitted, that will win, otherwise which section matches should be repeatable but is not formally specified (it depends on the order in which sip.conf is written and on details of hashing algorithm used.)

Ok So I change my question.

Client contexts are :
internal and have an include => context-1 followed by include => context-2

[context-1]
exten => 100,1,NoOp(I m in NoOp)

[context-2]
exten => 100,1,Dial(SIP/Client2)

So firstly Execute NoOp than calls Client2?

The first match will be used, i.e. context-1.