Dialstatus CANCEL when it should be NOANSWER. How to solve?

Hi. This scenario is giving me a headache:

I call someone. The phone rings for x seconds, and the called person hangs up (declined the call, cellphone).

The Dialstatus will be “CANCEL”. Its because the SIP-phone does not hang up even though the other end has declined the call. The only way to end it is to hang up (which results in “CANCEL”). One could also set a timeout, and ALWAYS wait for this timeout instead of hanging up the sip-phone, but that is not realistic (I won’t be able to instruct 5-10 salespeople to do such a counter-intuitive thing).

Is there a way to tweak the SIP-phone (X-lite), Asterisk configs, timeout or the like so that this results in DIALSTATUS “NOANSWER” as it should be? Or should it really be cancel as the the the other end “cancelled” the call?