Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
Логирование статусов пользователей
 
Добрый день.
Телефония Астериск 11. Панель телефонии (обычные формы) вер.1.2.24.8

Каким образом можно реализовать возможность хранения изменения статусов пользователей? (Unavailable, Not in use,In use, paused)
Необходимо получать срез на определенный момент времени состояние всех пользователей, в каком статусе они находились.
В таблице CEL эти данные не пишутся.
Какие есть варианты? Ежесекундный опрос со стороны 1С через "Miko_Ajam.Компонент.Queues(НашКаналФильтр, Result)" не внушает доверия так не является достаточно надежным способом логирования. Можно легко упустить какое либо изменение статуса.
 
в cel таблице можно включить более детальное логирование:
Код
; Accepted values: A comma separated list of one or more of the following:
;  ALL              -- Generate entries on all events
;  CHAN_START       -- The time a channel was created
;  CHAN_END         -- The time a channel was terminated
;  ANSWER           -- The time a channel was answered (ie, phone taken off-hook)
;  HANGUP           -- The time at which a hangup occurred
;  CONF_ENTER       -- The time a channel was connected into a conference room
;  CONF_EXIT        -- The time a channel was removed from a conference room
;  CONF_START       -- The time the first person enters a conference room
;  CONF_END         -- The time the last person left a conference room (and
;                      turned out the lights?)
;  APP_START        -- The time a tracked application was started
;  APP_END          -- the time a tracked application ended
;  PARK_START       -- The time a call was parked
;  PARK_END         -- Unpark event
;  BRIDGE_START     -- The time a bridge is started
;  BRIDGE_END       -- The time a bridge is ended
;  BRIDGE_UPDATE    -- This is a replacement channel (Masquerade)
;  3WAY_START       -- When a 3-way conference starts (usually via attended transfer)
;  3WAY_END         -- When one or all exit a 3-way conference
;  BLINDTRANSFER    -- When a blind transfer is initiated
;  ATTENDEDTRANSFER -- When an attended transfer is initiated
;  TRANSFER         -- Generic transfer initiated; not used yet...?
;  PICKUP           -- This channel picked up the peer channel
;  FORWARD          -- This channel is being forwarded somewhere else
;  HOOKFLASH        -- So far, when a hookflash event occurs on a DAHDI
;                      interface
;  LINKEDID_END     -- The last channel with the given linkedid is retired
;  USER_DEFINED     -- Triggered from the dialplan, and has a name given by the
;                      user
;
; Default value: none
;                (Track no events)

events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_START,BRIDGE_END
Проанализировав таблицу можно пробовать "вычислить статус".
Единственное, не получится понять статус "Unavailable".

Альтернатива - можно реализовать "демона" на основе PAMI или просто на PHP, который будет периодически опрашивать статусы к примеру командой:
Код
asterisk -rx"core show hints" | awk -F'[ ]*[:]?[ ]+' ' {print $2 "@.@" $3 "@.@" $4 } ';
Пример работы с PAMI описан в статье
https://habrahabr.ru/post/277743/
Читают тему (гостей: 1)