Differenze tra le versioni di "AdminGuide:Service:EventsNotification"
(Versione segnata per la traduzione) |
|||
(7 versioni intermedie di 2 utenti non mostrate) | |||
Riga 4: | Riga 4: | ||
Torna a [[AdminGuide:Service]] | Torna a [[AdminGuide:Service]] | ||
= | == Descrizione del servizio == <!--T:2--> | ||
{{#evu:https://vimeo.com/508382279#t=37m26s | |||
== | |alignment=right|dimensions=350 | ||
}} | |||
Tramite questo servizio è possibile monitorare gli eventi selezionati ricevendo delle notifiche. | |||
<!--T:3--> | <!--T:3--> | ||
Per ogni evento selezionato dall’utente è possibile associare delle azioni di notifica, come l’invio di una mail o la chiamata ad un Web Service. | Per ogni evento selezionato dall’utente è possibile associare delle azioni di notifica, come l’invio di una mail o la chiamata ad un Web Service. | ||
<!--T: | ==Configurazione del servizio== <!--T:4--> | ||
[[File:Not1.png|miniatura]] | |||
Nella sessione Monitoraggio → Notifiche è possibile gestire la funzionalità di [[AdminGuide:Service:EventsNotification|notifica]]. | |||
<!--T: | === Notification Action List === <!--T:5--> | ||
In Notification Action List è possibile aggiungere una nuova notification selezionando l’azione di Email o WebService. | |||
== | |||
==== Email ==== <!--T:6--> | |||
[[File:Noti2.png|miniatura]] | |||
<!--T:7--> | <!--T:7--> | ||
Selezionando Add New Email Notification Action è possibile definire il destinatario della mail di notifica dell’evento e le informazioni che vogliamo trasmettere. | |||
Nella tabella seguente sono illustrati i parametri che è possibile definire per l’Email Notification. | |||
<!--T:8--> | <!--T:8--> | ||
{| class="wikitable" | |||
|- | |||
! <div style = 'text-align: left> '''Parametro''' !! <div style = 'text-align: left> '''Descrizione''' !! <div style = 'text-align: left> '''Valore''' | |||
|- | |||
|colspan="3"| <div style = 'text-align: center; color: transparent> - | |||
|- | |||
| Abilitato || Consente di disabilitare l’Email Notification || Si / No | |||
|- | |||
| Nome|| Identificativo della notifica || Alfanumerico | |||
|- | |||
!colspan="3"| <div style = 'text-align: left> '''''Email Settings''' | |||
|- | |||
| Destinatari || indirizzo email del destinatario della notifica|| Alfanumerico | |||
|- | |||
| Soggetto || Oggetti della mail di notifica || Alfanumerico | |||
|- | |||
| Body || Testo dell’email contenente placeholder sia di default che specifici dell’ evento || Alfanumerico | |||
|} | |||
<!--T:9--> | |||
I parametri generici sono elencati nella seguente tabella: | |||
<!--T:41--> | |||
{| class="wikitable" | |||
|- | |||
! <div style = 'text-align: left> '''Parametro''' !! <div style = 'text-align: left> '''Descrizione''' | |||
|- | |||
|colspan="3"| <div style = 'text-align: center; color: transparent> - | |||
|- | |||
| %event_id% || sequenziale dell'evento | |||
|- | |||
| %event_name% || identificativo dell'evento | |||
|- | |||
| %event_description% || descrizione testuale dell'evento | |||
|- | |||
| %event_severity% || | criticità dell'evento (numerica, da 4 a 0 corrispondenti ai livelli DEBUG|INFO|WARNING|CRITICAL|FATAL | |||
|- | |||
| %event_timestamp% || epoch di occorrenza dell'evento | |||
|} | |||
<!--T:10--> | |||
I parametri specifici di evento sono invece elencati nella nel pannello Notification; questi paramentri possono essere riportati in tre formati diversi: JSON, XML e AVP. | |||
<!--T:42--> | |||
Il set completo dei parametri relativi ad un evento è ottenibile con il placeholder: | |||
%call_params[<format>]% | |||
==== Web Service ==== <!--T:11--> | |||
[[File:Not4.png|miniatura]] | |||
Selezionando Add New WebService Notification Action è necessario inserire il nome della notification che partirà al verificarsi dell’evento, tra le impostazioni generali. | |||
<!--T:12--> | |||
Nella tabella seguente sono illustrati i parametri che è possibile definire per la WebService Notification. | |||
<!--T:13--> | |||
{| class="wikitable" | |||
|- | |||
! <div style = 'text-align: left> '''Parametro''' !! <div style = 'text-align: left> '''Descrizione''' !! <div style = 'text-align: left> '''Valore''' | |||
|- | |||
|colspan="3"| <div style = 'text-align: center; color: transparent> - | |||
|- | |||
| Abilitato || Consente di disabilitare la WebService Notification || Si / No | |||
|- | |||
| Nome|| Identificativo della notifica || Alfanumerico | |||
|- | |||
!colspan="3"| <div style = 'text-align: left> '''''WebService Settings''' | |||
|- | |||
| URL|| URL di Notifica|| Alfanumerico | |||
|- | |||
| Tipo Auth|| Tipo di Autenticazione || None/ Basic | |||
|- | |||
| Auth username|| Username per autenticazione (solo in caso Auth)|| Alfanumerico | |||
|- | |||
| Auth password|| Password per autenticazione (solo in caso Auth)|| Alfanumerico | |||
|- | |||
| Tipo Request|| Tipo della richiesta || Get/Post | |||
|- | |||
| Request content|| Contenuto della richiesta (solo Post) || Placeholder | |||
|} | |||
<!--T:14--> | |||
Al verificarsi dell’evento arriverà una segnalazione al WebService esterno che gestirà le informazioni ricevute. | |||
=== Notification List === <!--T:15--> | |||
[[File:Not5.png|miniatura]] | |||
Nella sezione Notification List, selezionando Add new notification è possibile selezionare l’evento per cui ottenere la notifica. | |||
<!--T:43--> | |||
Nella tabella seguente sono elencati gli eventi che possono essere monitorati e a cui può essere associata una notifica. | |||
<!--T:44--> | |||
{| class="wikitable" | |||
|- | |||
! Evento !! Descrizione | |||
|- | |||
| ademco.*.* <br>alarmreceiver.*.*|| Eventi specifici utilizzati dal modulo opzionale KalliopeLift per interfacciarsi con i combinatori telefonici degli ascensori | |||
|- | |||
| cti.client.background || Un client CTI (sistema operativo mobile) è stato messo in backrground | |||
|- | |||
| cti.client.login || Un client CTI ha effettuato il login | |||
|- | |||
| cti.client.login-failed || Un client CTI ha fallito un login | |||
|- | |||
| cti.client.logoff || Un client CTI ha effettuato il logout | |||
|- | |||
| mobile-app.call.incoming || Chiamata in arrivo all'account dell'app mobile | |||
|- | |||
| mobile-app.call.timeout || La chiamata all'account dell'app mobile è scaduta | |||
|- | |||
| mobile-app.status.not-logged || L'applicazione mobile non è registrata | |||
|- | |||
| mobile-app.wake-up.registered || L'app mobile si è attivata | |||
|- | |||
| mobile-app.wake-up.sent || Notifica di sveglia inviata all'account dell'app mobile | |||
|- | |||
| mobile-app.wake-up.timeout || L'applicazione mobile non si attiva entro 5 secondi dall'invio della notifica | |||
|- | |||
| pbx.account.incomingcall || Una chiamata per un interno inoltrata all'account | |||
|- | |||
| pbx.account.startcall || Tentativo di chiamata all'account avviato | |||
|- | |||
| pbx.account.unavailable || Tentativo di chiamata all'account non iniziato perché l'account non è disponibile | |||
|- | |||
| pbx.call.end || Una chiamata finisce | |||
|- | |||
| pbx.call.start || Una chiamata inizia | |||
|- | |||
| pbx.dynamic-routing.enter|| Una chiamata è entrata nel servizio di Instradamento dinamico | |||
|- | |||
| pbx.dynamic-routing.input|| Un nuovo parametro è stato inserito dal chiamante nell'instradamento dinamico | |||
|- | |||
| pbx.extension.answercall || Chiamata all'interno risposta da uno degli account associati | |||
|- | |||
| pbx.extension.failedcall || Chiamata all'interno fallita | |||
|- | |||
| pbx.extension.incomingcall || Chiamata all'interno in arrivo | |||
|- | |||
| pbx.extension.missedcall|| Un interno ha perso una chiamata; l'evento viene innescato solo se nelle azioni di trabocco di quell'interno è spuntata la voce "genera evento" | |||
|- | |||
| pbx.queue.enqueue || Chiamata in attesa | |||
|- | |||
| pbx.queue.enter || Una chiamata arriva al servizio di coda | |||
|- | |||
| pbx.queue.ringmember || Una chiamata viene presentata ad un operatore di coda | |||
|- | |||
| pbx.queue.ringnoanswer|| Un operatore selezionato non ha gestito la chiamata; la chiamata è ancora in coda e andrà ad altri operatori, se ci sono e non è scaduto il tempo massimo di attesa | |||
|- | |||
| pbx.queue.servedcall|| Una chiamata nella coda è stata servita, ovvero risposta da un operatore | |||
|- | |||
| pbx.queue.unservedcall|| Una chiamata nella coda non è stata servita globalmente; rappresenta quindi l'esito finale della chiamata che non è stata servita da nessun operatore | |||
|- | |||
| pbx.queuemember.added|| Un operatore di coda aggiunto | |||
|- | |||
| pbx.queue.enqueue || Una chiamata entra nel servizio di coda; la coda è aperta | |||
|- | |||
| pbx.queuemember.pause|| Un operatore di coda è entrato in pausa | |||
|- | |||
| pbx.queuemember.unpause|| Un operatore di coda è uscito dalla pausa | |||
|- | |||
| pbx.spy.start|| Avviata la spia di supervisore | |||
|- | |||
| pbx.spy.stop|| Interrotta la spia di supervisore | |||
|- | |||
| pbx.queuemember.removed|| Un operatore di coda è rimosso | |||
|- | |||
| pbx.wake-up.unanswered|| Il servizio sveglia non ha avuto risposta dalla camera | |||
|- | |||
| pbx.user.create|| È stato creato un nuovo utente di Kalliope | |||
|- | |||
| pbx.user.password-change|| È stata cambiata la password di un utente di Kalliope | |||
|- | |||
| storage.quota.exceeded|| È stata superata la quota di archiviazione riservata ad un determinato tenant | |||
|- | |||
| storage.quota.restored|| L'occupazione di archiviazione di un determinato tenant è tornata sotto la quota riservata | |||
|- | |||
|} | |||
<!--T:16--> | |||
Nella tabella seguente sono illustrati i parametri che è possibile definire per la notifica. | |||
<!--T:17--> | |||
{| class="wikitable" | |||
|- | |||
! <div style = 'text-align: left> '''Parametro''' !! <div style = 'text-align: left> '''Descrizione''' !! <div style = 'text-align: left> '''Valore''' | |||
|- | |||
|colspan="3"| <div style = 'text-align: center; color: transparent> - | |||
|- | |||
| Abilitato || Consente di disabilitare la notifica || Si / No | |||
|- | |||
| Nome|| Identificativo della notifica || Alfa-numerico | |||
|- | |||
!colspan="3"| <div style = 'text-align: left> '''''Events''' | |||
|- | |||
| Event|| Tipo di eventi per cui si vuole ricevere notifica|| Da elenco | |||
|- | |||
| Severity|| Severity dell'evento ||Fatal/Critical/Warning/Info/Debug | |||
|- | |||
!colspan="3"| <div style = 'text-align: left> '''''Notification Action''' | |||
|- | |||
| Notification Action|| Associazione ad una NotificationAction|| Da elenco | |||
|} | |||
<!--T:18--> | |||
Al momento in cui si verifica l’evento selezionato riceveremo una notifica con le informazioni richieste. | |||
==Esempio pratico== <!--T:19--> | |||
<!--T:20--> | |||
Per maggiore chiarezza facciamo un esempio. | |||
Per l’evento “Coda non Servita” , se effettuiamo una chiamata da 103 a 201 a cui è associata la coda QueueTest e dopo 5 secondi il chiamante abbandona il servizio, possiamo richiedere nella mail informazioni circa | Per l’evento “Coda non Servita” , se effettuiamo una chiamata da 103 a 201 a cui è associata la coda QueueTest e dopo 5 secondi il chiamante abbandona il servizio, possiamo richiedere nella mail informazioni circa | ||
<!--T: | <!--T:21--> | ||
* l’id dell’evento | * l’id dell’evento | ||
* il nome dell’evento | * il nome dell’evento | ||
Riga 34: | Riga 248: | ||
* il motivo per cui la coda non è stata servita | * il motivo per cui la coda non è stata servita | ||
<!--T: | <!--T:22--> | ||
semplicemente inserendo nel body i placeholder appositi. | semplicemente inserendo nel body i placeholder appositi. | ||
<!--T: | <!--T:23--> | ||
Nella Notification List indicheremo come evento “pbx.queue.unservedcall” associando la Notification Action precedentemente creata. | Nella Notification List indicheremo come evento “pbx.queue.unservedcall” associando la Notification Action precedentemente creata. | ||
<!--T: | <!--T:24--> | ||
Riceveremo quindi una mail con le seguenti informazioni: | Riceveremo quindi una mail con le seguenti informazioni: | ||
<!--T: | <pre style="color: blue"> | ||
<!--T:25--> | |||
Unserved | Unserved | ||
<!--T: | <!--T:26--> | ||
1511212918.0 | 1511212918.0 | ||
<!--T: | <!--T:27--> | ||
1 | 1 | ||
<!--T: | <!--T:28--> | ||
Default | Default | ||
<!--T: | <!--T:29--> | ||
103 | 103 | ||
<!--T: | <!--T:30--> | ||
201 | 201 | ||
<!--T: | <!--T:31--> | ||
5 | 5 | ||
<!--T: | <!--T:32--> | ||
CANCELLED | CANCELLED | ||
</pre> | |||
<!--T: | <!--T:33--> | ||
Oppure possiamo ottenere la seguente risposta inserendo il placeholder: | Oppure possiamo ottenere la seguente risposta inserendo il placeholder: | ||
<!--T: | <pre style="color: blue"> | ||
<!--T:34--> | |||
%call_params[<JASON>]% : | %call_params[<JASON>]% : | ||
<!--T:35--> | |||
<!--T: | |||
{"reason":"CANCELED","queue_id":"1","uniqueid":"1511212918.0","called_num":"201","caller_num":"103","queue_name":"QueueTest","waiting_time":"5"} | {"reason":"CANCELED","queue_id":"1","uniqueid":"1511212918.0","called_num":"201","caller_num":"103","queue_name":"QueueTest","waiting_time":"5"} | ||
<!--T: | <!--T:36--> | ||
%call_params[<XML>]% | %call_params[<XML>]% | ||
<!--T: | <!--T:37--> | ||
> <?xml version="1.0"?> | > <?xml version="1.0"?> | ||
<!--T: | <!--T:38--> | ||
> <response><reason>CANCELED</reason><queue_id>1</queue_id><uniqueid>1511212918.0</uniqueid><called_num>201</called_num><caller_num>103</caller_num><queue_name>QueueTest</queue_name><waiting_time>5</waiting_time></response> | > <response><reason>CANCELED</reason><queue_id>1</queue_id><uniqueid>1511212918.0</uniqueid><called_num>201</called_num><caller_num>103</caller_num><queue_name>QueueTest</queue_name><waiting_time>5</waiting_time></response> | ||
<!--T:39--> | |||
<!--T: | |||
> %call_params[AVP]%: | > %call_params[AVP]%: | ||
<!--T: | <!--T:40--> | ||
> reason=CANCELED&queue_id=1&uniqueid=1511212918.0&called_num=201&caller_num=103&queue_name=QueueTest&waiting_time=5 | > reason=CANCELED&queue_id=1&uniqueid=1511212918.0&called_num=201&caller_num=103&queue_name=QueueTest&waiting_time=5 | ||
</pre> | |||
</translate> | </translate> |
Versione attuale delle 15:33, 12 dic 2022
Torna a AdminGuide:Service
Descrizione del servizio
Tramite questo servizio è possibile monitorare gli eventi selezionati ricevendo delle notifiche.
Per ogni evento selezionato dall’utente è possibile associare delle azioni di notifica, come l’invio di una mail o la chiamata ad un Web Service.
Configurazione del servizio
Nella sessione Monitoraggio → Notifiche è possibile gestire la funzionalità di notifica.
Notification Action List
In Notification Action List è possibile aggiungere una nuova notification selezionando l’azione di Email o WebService.
Selezionando Add New Email Notification Action è possibile definire il destinatario della mail di notifica dell’evento e le informazioni che vogliamo trasmettere. Nella tabella seguente sono illustrati i parametri che è possibile definire per l’Email Notification.
Parametro |
Descrizione |
Valore
|
---|---|---|
-
| ||
Abilitato | Consente di disabilitare l’Email Notification | Si / No |
Nome | Identificativo della notifica | Alfanumerico |
Email Settings
| ||
Destinatari | indirizzo email del destinatario della notifica | Alfanumerico |
Soggetto | Oggetti della mail di notifica | Alfanumerico |
Body | Testo dell’email contenente placeholder sia di default che specifici dell’ evento | Alfanumerico |
I parametri generici sono elencati nella seguente tabella:
Parametro |
Descrizione
| |
---|---|---|
-
| ||
%event_id% | sequenziale dell'evento | |
%event_name% | identificativo dell'evento | |
%event_description% | descrizione testuale dell'evento | |
%event_severity% | criticità dell'evento (numerica, da 4 a 0 corrispondenti ai livelli DEBUG|INFO|WARNING|CRITICAL|FATAL | |
%event_timestamp% | epoch di occorrenza dell'evento |
I parametri specifici di evento sono invece elencati nella nel pannello Notification; questi paramentri possono essere riportati in tre formati diversi: JSON, XML e AVP.
Il set completo dei parametri relativi ad un evento è ottenibile con il placeholder: %call_params[<format>]%
Web Service
Selezionando Add New WebService Notification Action è necessario inserire il nome della notification che partirà al verificarsi dell’evento, tra le impostazioni generali.
Nella tabella seguente sono illustrati i parametri che è possibile definire per la WebService Notification.
Parametro |
Descrizione |
Valore
|
---|---|---|
-
| ||
Abilitato | Consente di disabilitare la WebService Notification | Si / No |
Nome | Identificativo della notifica | Alfanumerico |
WebService Settings
| ||
URL | URL di Notifica | Alfanumerico |
Tipo Auth | Tipo di Autenticazione | None/ Basic |
Auth username | Username per autenticazione (solo in caso Auth) | Alfanumerico |
Auth password | Password per autenticazione (solo in caso Auth) | Alfanumerico |
Tipo Request | Tipo della richiesta | Get/Post |
Request content | Contenuto della richiesta (solo Post) | Placeholder |
Al verificarsi dell’evento arriverà una segnalazione al WebService esterno che gestirà le informazioni ricevute.
Notification List
Nella sezione Notification List, selezionando Add new notification è possibile selezionare l’evento per cui ottenere la notifica.
Nella tabella seguente sono elencati gli eventi che possono essere monitorati e a cui può essere associata una notifica.
Evento | Descrizione |
---|---|
ademco.*.* alarmreceiver.*.* |
Eventi specifici utilizzati dal modulo opzionale KalliopeLift per interfacciarsi con i combinatori telefonici degli ascensori |
cti.client.background | Un client CTI (sistema operativo mobile) è stato messo in backrground |
cti.client.login | Un client CTI ha effettuato il login |
cti.client.login-failed | Un client CTI ha fallito un login |
cti.client.logoff | Un client CTI ha effettuato il logout |
mobile-app.call.incoming | Chiamata in arrivo all'account dell'app mobile |
mobile-app.call.timeout | La chiamata all'account dell'app mobile è scaduta |
mobile-app.status.not-logged | L'applicazione mobile non è registrata |
mobile-app.wake-up.registered | L'app mobile si è attivata |
mobile-app.wake-up.sent | Notifica di sveglia inviata all'account dell'app mobile |
mobile-app.wake-up.timeout | L'applicazione mobile non si attiva entro 5 secondi dall'invio della notifica |
pbx.account.incomingcall | Una chiamata per un interno inoltrata all'account |
pbx.account.startcall | Tentativo di chiamata all'account avviato |
pbx.account.unavailable | Tentativo di chiamata all'account non iniziato perché l'account non è disponibile |
pbx.call.end | Una chiamata finisce |
pbx.call.start | Una chiamata inizia |
pbx.dynamic-routing.enter | Una chiamata è entrata nel servizio di Instradamento dinamico |
pbx.dynamic-routing.input | Un nuovo parametro è stato inserito dal chiamante nell'instradamento dinamico |
pbx.extension.answercall | Chiamata all'interno risposta da uno degli account associati |
pbx.extension.failedcall | Chiamata all'interno fallita |
pbx.extension.incomingcall | Chiamata all'interno in arrivo |
pbx.extension.missedcall | Un interno ha perso una chiamata; l'evento viene innescato solo se nelle azioni di trabocco di quell'interno è spuntata la voce "genera evento" |
pbx.queue.enqueue | Chiamata in attesa |
pbx.queue.enter | Una chiamata arriva al servizio di coda |
pbx.queue.ringmember | Una chiamata viene presentata ad un operatore di coda |
pbx.queue.ringnoanswer | Un operatore selezionato non ha gestito la chiamata; la chiamata è ancora in coda e andrà ad altri operatori, se ci sono e non è scaduto il tempo massimo di attesa |
pbx.queue.servedcall | Una chiamata nella coda è stata servita, ovvero risposta da un operatore |
pbx.queue.unservedcall | Una chiamata nella coda non è stata servita globalmente; rappresenta quindi l'esito finale della chiamata che non è stata servita da nessun operatore |
pbx.queuemember.added | Un operatore di coda aggiunto |
pbx.queue.enqueue | Una chiamata entra nel servizio di coda; la coda è aperta |
pbx.queuemember.pause | Un operatore di coda è entrato in pausa |
pbx.queuemember.unpause | Un operatore di coda è uscito dalla pausa |
pbx.spy.start | Avviata la spia di supervisore |
pbx.spy.stop | Interrotta la spia di supervisore |
pbx.queuemember.removed | Un operatore di coda è rimosso |
pbx.wake-up.unanswered | Il servizio sveglia non ha avuto risposta dalla camera |
pbx.user.create | È stato creato un nuovo utente di Kalliope |
pbx.user.password-change | È stata cambiata la password di un utente di Kalliope |
storage.quota.exceeded | È stata superata la quota di archiviazione riservata ad un determinato tenant |
storage.quota.restored | L'occupazione di archiviazione di un determinato tenant è tornata sotto la quota riservata |
Nella tabella seguente sono illustrati i parametri che è possibile definire per la notifica.
Parametro |
Descrizione |
Valore
|
---|---|---|
-
| ||
Abilitato | Consente di disabilitare la notifica | Si / No |
Nome | Identificativo della notifica | Alfa-numerico |
Events
| ||
Event | Tipo di eventi per cui si vuole ricevere notifica | Da elenco |
Severity | Severity dell'evento | Fatal/Critical/Warning/Info/Debug |
Notification Action
| ||
Notification Action | Associazione ad una NotificationAction | Da elenco |
Al momento in cui si verifica l’evento selezionato riceveremo una notifica con le informazioni richieste.
Esempio pratico
Per maggiore chiarezza facciamo un esempio. Per l’evento “Coda non Servita” , se effettuiamo una chiamata da 103 a 201 a cui è associata la coda QueueTest e dopo 5 secondi il chiamante abbandona il servizio, possiamo richiedere nella mail informazioni circa
- l’id dell’evento
- il nome dell’evento
- nome della coda, il tempo di attesa
- il motivo per cui la coda non è stata servita
semplicemente inserendo nel body i placeholder appositi.
Nella Notification List indicheremo come evento “pbx.queue.unservedcall” associando la Notification Action precedentemente creata.
Riceveremo quindi una mail con le seguenti informazioni:
Unserved 1511212918.0 1 Default 103 201 5 CANCELLED
Oppure possiamo ottenere la seguente risposta inserendo il placeholder:
%call_params[<JASON>]% : {"reason":"CANCELED","queue_id":"1","uniqueid":"1511212918.0","called_num":"201","caller_num":"103","queue_name":"QueueTest","waiting_time":"5"} %call_params[<XML>]% > <?xml version="1.0"?> > <response><reason>CANCELED</reason><queue_id>1</queue_id><uniqueid>1511212918.0</uniqueid><called_num>201</called_num><caller_num>103</caller_num><queue_name>QueueTest</queue_name><waiting_time>5</waiting_time></response> > %call_params[AVP]%: > reason=CANCELED&queue_id=1&uniqueid=1511212918.0&called_num=201&caller_num=103&queue_name=QueueTest&waiting_time=5