The call states can be used to track the progress of a particular call. Once a call has hung up, the call cause can be checked to find the reason why.
Call states:
Usage example:
state = channel.call('sip:1234@127.0.0.1:5060;user=phone')
if state != channel.State.ANSWERED:
# might be busy
pass