Dropped Calls - how to tell?

How exactly can i tell if a call drops (after the fact).

Say I just want to look back on the “xyz log” and see x calls dropped, and these are the calls that did. Something like the CDRs.

Does anyone actually know how to see a history of dropped calls, obviously other that hearing silence on the line.

My clients say their call drop some time - how would i actually know that.

You need to provide technical definition of what you mean by a “dropped call”.

You also need to specify the channel technology.

As most people who fail to do the latter are using SIP, and if you mean that the call was unexpectedly cleared, one way of doing that is to enable sip history and the output of the history at the end of a call. Alternatively, the g option on Dial will allow the dialplan to coninue if the B party clears, but not if the A one clears. The h extension is run for both cases.

Mostly this one:

wiki.asterisk.org/wiki/display/ … nsmissions

When it hangs up the call because of the critical packet. Generally indicating that the connection has become degraded to the point that too many packets (critical ones) are lost.

I tried to recreate this issue by actually pulling the network cable out of the back of the phone… interestingly this didn’t actually work, the call just carried on like normal as soon as i plugged it back in. Eventually after the RTP timeout, about 120 sec, yes asterisk did hang up the call.

I’m forever wanting to know about the experience that our customers are having tho - it always works perfectly for me, and we get about 80% of our support calls for call quality complaints. They say calls can drop, but i have no way of knowing… “oh yes i see that… these x calls did drop (hung-up unexpectedly), gosh look there… there’s ya problem”

Critical packets only refer to certain SIP packets which it is important to get through to the other end. If you are losing those due to network congestion, the audio quality is likely to be attrocious.

Most of the critical packet errors that reach the forums are actually due to miconfigurations, and cause their complete loss.

I know all this - how can i report on it? I don’t even care that it happens or how it happens, but if it does, or basically: if Asterisk kills a call and not a user I want to know about it.

Is there anything in the h (hangup) dial-plan that i can push into the CDR? Like:

exten => h,1,Set(CDR(callclearing)=${WAS_THIS_CALL_CORRECTLY_HUNGUP})

PS, i already checked the ${HANGUPCAUSE} - its useless, if asterisk hangs up a call it puts 16, just the same as if a user does. (Gripe: They may as well just called it ${CALL_STATUS_CODE}, its got very little to do with the conditions under witch the call was hung up.)

EDIT: yes, SIP only (100%)

The call leg that had to be aborted will be in an indeterminate state at the other side, so the call will not necessarily be dropped from the point of view of the peer, although it is likely to go silent. That is the point of the error. Asterisk is trying very hard to get it into a known state but ended up not knowing the state.

I suspect the designers considered this to indicate a system fault that should be fixed, not one that should be tolerated and modify the billing.

If Asterisk is not setting an appropriate hangup cause, I suspect that your easiest solution would be to change the code. I would assume it had the appropriate locks at the time, so I would imagine it would be a simple change.