/* Yeah, let's not change a lock-critical value without locking */
if (!ast_channel_trylock(chan)) {
chan->_softhangup |= AST_SOFTHANGUP_DEV;
+ manager_event(EVENT_FLAG_CALL, "HangupRequest",
+ "Channel: %s\r\n"
+ "Uniqueid: %s\r\n",
+ chan->name,
+ chan->uniqueid);
ast_channel_unlock(chan);
}
return ast_queue_frame(chan, &f);
if (cause < 0)
f.data.uint32 = chan->hangupcause;
+ manager_event(EVENT_FLAG_CALL, "HangupRequest",
+ "Channel: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Cause: %d\r\n",
+ chan->name,
+ chan->uniqueid,
+ cause);
ast_channel_unlock(chan);
}
ast_channel_lock(chan);
res = ast_softhangup_nolock(chan, cause);
+ manager_event(EVENT_FLAG_CALL, "SoftHangupRequest",
+ "Channel: %s\r\n"
+ "Uniqueid: %s\r\n"
+ "Cause: %d\r\n",
+ chan->name,
+ chan->uniqueid,
+ cause);
ast_channel_unlock(chan);
return res;