Calling form softphone (SIP)to other channel and vice-versa

Greetings Everyone,
I wrote dial plan of SIP user in which I am calling to different channels for different conditions.
Only the part of Dial plan in which SIP channel is used is bieng called.

[context_of_sip_user]
exten =>_X.,1,Playback(hello-world)
same => n,Dial(Mobile/NokiaE6/${EXTEN})
same => n,gotonextexten(somecondition) ;dont mind syntax plz
same => n,Dial(DAHDI/G0/${EXTEN})
same => n,gotonextexten(somecondition) ;dont mind syntax plz
same => n,Dial(SIP/MyVoipProvider/${EXTEN})

It is only able to dial the voip provider…!!!
While originating a call from CLI or using .call files does the work.But when a registered SIP user calls …doesn’t work…
Am I missing something like codec translation or Is any gateway needed for protocol change from one channel to other?

Please explain these lines:

same => n,gotonextexten(somecondition) ;dont mind syntax plz

Please explain exactly what you mean by does not work, e.g. where does it diverge from the dialplan, what diagnostics are produced, what does the user hear, etc.