X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=joinpbx.cpp;fp=joinpbx.cpp;h=c3e9e31aea3eea348962aa23a56554fe64886e82;hp=6e995f3d2bb17a4cac6c248ade5b25a5416d20c9;hb=0562b894ff8302ad4ca2d0df1f659cc18f6af5fb;hpb=d19b20fa4e130683b9b5c088019f5988e6b8e19b diff --git a/joinpbx.cpp b/joinpbx.cpp index 6e995f3..c3e9e31 100644 --- a/joinpbx.cpp +++ b/joinpbx.cpp @@ -695,6 +695,26 @@ void JoinPBX::message_epoint(unsigned int epoint_id, int message_type, union par } break; + /* track notify */ + case MESSAGE_NOTIFY: + switch(param->notifyinfo.notify) { + case INFO_NOTIFY_USER_SUSPENDED: + case INFO_NOTIFY_USER_RESUMED: + case INFO_NOTIFY_REMOTE_HOLD: + case INFO_NOTIFY_REMOTE_RETRIEVAL: + case INFO_NOTIFY_CONFERENCE_ESTABLISHED: + case INFO_NOTIFY_CONFERENCE_DISCONNECTED: + new_state = track_notify(relation->rx_state, param->notifyinfo.notify); + if (new_state != relation->rx_state) { + relation->rx_state = new_state; + trigger_work(&j_updatebridge); + if (options.deb & DEBUG_JOIN) + joinpbx_debug(this, "Join::message_epoint{after setting new rx state}"); + } + break; + } + break; + case MESSAGE_DISCONNECT: PDEBUG(DEBUG_JOIN, "releasing after receiving disconnect, because join in partyline mode.\n"); message = message_create(j_serial, epoint_id, JOIN_TO_EPOINT, MESSAGE_RELEASE);