How asterisk will determine other callee cut the call

i want to know is there any key which can determine whether the call is cut by caller or callee because when i am using the dialstatus variable it show cancel if calle cut the call so any suggestion are welcomed

I don’t think “key” is the word you intended. If the callee terminate the call, and you used the g option on Dial, dialplan execution will continue after the Dial. If the caller terminated, control will transfer to any h extension or other hangup handler. If the callee terminates the call without answering, the dialplan will continue without the need for the g option.

In certain cases, with analogue lines, the callee terminating cannot be detected.

Taking the subject literally, the way that the Asterisk actual detects how the call was cut is dependent on the signalling protocol. For an answered SIP call it is the receipt of BYE, For an unanswered one, it is a particular response status code (others can indicate that the network cut the call). For answered analogue lines, in some case, battery voltage will temporarily be removed. There is no way of detecting rejected unanswered calls on analogue lines, as any indication will be in the audio. Many analogue configurations have to assume the call is answered from the start, as the network may not provide any indication of answer. ISDN is different again.

consider this scenario if i dialed the call and then the call is ringing on callee phone and at that point if callee cut the call and for now i am assuming that call will cut after answered or missed
so if the callee cut the call and caller did not cut the call then in dialstatus key is giving me busy
but if callee cut the call then caller hears the message that the number you have dialed is busy and at that point if caller does not interested in listening the message he cuts the call then dailstatus is giving me cancel
but orignally callee cut the call in that scenario so how can i figure out that reason is acutall busy not cancel

If the network reports the call using early media, rather than as a status code, and doesn’t follow that by disconnecting the call, there is no real way of detecting the failed call, as Asterisk has no mechanism, for recognizing in band tone signals, let alone doing voice recognition on announcements.

Although I don’t think Asterisk can cope with tones, either, is the announcement preceded by an SIT tri-tone.