Wiki source code of Registrazione Chiamate


Hide last authors
administrator BDP 16.3 1 {{box cssClass="floatinginfobox" title="**Sommario**" width="300px"}}
2 {{toc start=2 depth="3"/}}
3 {{/box}}
administrator BDP 2.1 4
administrator BDP 16.3 5 == Introduzione ==
administrator BDP 2.1 6
administrator BDP 16.3 7 Gli strumenti di registrazione delle chiamate telefoniche messi a disposizione da #phones permettono appunto di registrare le chiamate di tipo inbound e di tipo outbound, infine di salvarle, su file wave. Esistono due tecniche di attivazione della registrazione: la prima comprende la realizzazione di un [[driver di PhoneBar personalizzato>>path:../input/hashphones.phonebar-sviluppo-applicativi]] e consente un'ampia libertà di implementazione ed utilizzo; mentre la seconda, quella che verrà trattata all'interno del presente documento, prevede l'utilizzo di un dispositivo già predisposto: l**'AudioRecordingManager**.
administrator BDP 2.1 8
administrator BDP 16.3 9 == AudioRecordingManager ==
administrator BDP 2.1 10
administrator BDP 16.3 11 L'AudioRecordingManager è un [[servizio base del Messenger>>path:../input/hashphones.messenger-configurator-servizi#Base]]. In quanto tale, può essere configurato in due modi:
administrator BDP 2.1 12
administrator BDP 16.3 13 * attraverso il [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]]
14 * oppure attraverso il [[Messenger Configurator>>path:../input/hashphones.messenger-configurator]]; questo metodo è noto come [[Compatibility Mode>>path:../input/hashphones.phonesenterprise-client#Compatibility]].
administrator BDP 2.1 15
administrator BDP 16.3 16 La scelta del metodo dipende in particolare dal [[modo in cui viene gestito il call flow>>path:../input/hashphones.phonesenterprise-client-call-flow#callflowconfiguration]].
administrator BDP 2.1 17
administrator BDP 16.3 18 == Configurazione di AudioRecordingManager attraverso il Call Designer ==
administrator BDP 2.1 19
administrator BDP 16.3 20 Il [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]] mette a disposizione un nuovo tipo di [[blocchetto>>path:../input/hashphones.phonesenterprise-client-call-designer#TipiDiBlocchetti]], appartenente alla categoria dei [[blocchetti di sistema>>path:../input/hashphones.phonesenterprise-client-call-designer#Sistema]], di tipo **AudioRecordingManager**. Il nuovo [[blocchetto>>path:../input/hashphones.phonesenterprise-client-call-designer#TipiDiBlocchetti]] è visibile all'interno della [[tool-box del Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer#Tool-box]], in particolare nella sezione **Base Messenger services**.
administrator BDP 2.1 21
administrator BDP 16.3 22 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m233861ef.png||width="400"]]
administrator BDP 2.1 23
administrator BDP 16.3 24 Nell'immagine, evidenziato in rosso, è illustrato il comando posto all'interno della [[tool-box del Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer#Tool-box]] che permette di creare un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]] contenente il [[blocchetto>>path:../input/hashphones.phonesenterprise-client-call-designer#TipiDiBlocchetti]] **AudioRecordingManager**. Per creare un nuovo blocchetto, è sufficiente trascinare la voce **AudioRecordingManager** della [[tool-box del Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer#Tool-box]] nel [[workspace del Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer#Workspace]] nel modo descritto in [[Creare un servizio base del Messenger>>path:../input/hashphones.phonesenterprise-client-call-designer-howto#CreareServizio]].
administrator BDP 2.1 25
administrator BDP 16.3 26 Infine, per comprendere il processo di creazione di un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]] con il [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]], consultare [[#phones Client: Call Designer tutorial>>path:../input/hashphones.phonesenterprise-client-call-designer-tutorial]].
administrator BDP 2.1 27
administrator BDP 16.3 28 === Le operazioni consentite dall'AudioRecordingManager ===
administrator BDP 2.1 29
administrator BDP 16.3 30 [[image:hashphones.la-registrazione-delle-chiamate.html_html_485565a5.png||height="159" width="168"]]
administrator BDP 2.1 31
administrator BDP 16.3 32 Una volta creato il blocchetto, è necessario modificare le proprietà al fine di impiegarlo nel modo ritenuto coerente col proprio [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]]. Per fare ciò è sufficiente premere col tasto destro del mouse nella parte superiore del blocchetto (raffigurato nell'immagine precedente) e selezionare la voce **Properties**.
administrator BDP 2.1 33
administrator BDP 16.4 34 [[image:hashphones.la-registrazione-delle-chiamate.html_html_c340174.png||height="510" width="400"]]
administrator BDP 2.1 35
administrator BDP 16.3 36 Come visibile nell'immagine precedente, le funzionalità messe a disposizione dal [[blocchetto>>path:../input/hashphones.phonesenterprise-client-call-designer#TipiDiBlocchetti]] **AudioRecordingManager** sono:
administrator BDP 2.1 37
administrator BDP 17.2 38 1. [[Start Recording>>||anchor="HStartRecording"]]
administrator BDP 16.4 39 1. [[Stop recording>>||anchor="HStoprecording"]]
administrator BDP 19.2 40 1. [[Set recording mute state>>||anchor="HSetrecordingmutestate"]]
41 1. [[Append cue sheet>>||anchor="HAppendcuesheet"]]
administrator BDP 2.1 42
administrator BDP 16.3 43 ==== Start Recording ====
administrator BDP 2.1 44
administrator BDP 16.4 45 Indica a [[LightHouse>>doc:Glossario.WebHome||anchor="HLightHouse"]] di attivare la registrazione per la chiamata in corso. Questo comando accetta solo un parametro che permette di specificare il nome, completo di path, del file wave nel quale salvare la nuova registrazione.
administrator BDP 2.1 46
administrator BDP 16.4 47 **Nota**: il path indicato viene valutato da LightHouse che esegue la registrazione, quindi deve essere raggiungibile dal LightHouse. Può essere un path relativo (al folder in cui si trova l'eseguibile di LightHouse), oppure assoluto (anche di rete).
administrator BDP 2.1 48
administrator BDP 16.3 49 [[image:hashphones.la-registrazione-delle-chiamate.html_html_58f904d1.png||width="400"]]
administrator BDP 2.1 50
51 Nell'immagine, il nome del file deve essere inserito nel campo **File name**.
52
administrator BDP 19.7 53 **ATTENZIONE!** il primo blocchetto AudioRecordingManager di un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], deve essere sempre impostato su [[Start Recording>>||anchor="HStartRecording"]]; se fosse scelta qualunque altra opzione, cioè [[Stop recording>>||anchor="HStoprecording"]], [[Set recording mute state>>||anchor="HSetrecordingmutestate"]] o [[Append cue sheet>>||anchor="HAppendcuesheet"]], **AudioRecordingManager** verrebbe posto in uno stato non valido.
administrator BDP 2.1 54
administrator BDP 16.3 55 ==== Stop recording ====
administrator BDP 2.1 56
administrator BDP 16.3 57 Indica a [[LightHouse>>path:../input/hashphones.glossario#LH]] di fermare la registrazione. Per questo comando è possibile specificare nei parametri il path in cui spostare il file wave registrato. Se tale parametro viene lasciato vuoto, allora il file wave viene lasciato nel luogo indicato nel comando **Start Recording**. In questo caso il path è relativo al server dove risiede il [[Messenger>>path:../input/hashphones.messenger]].
administrator BDP 2.1 58
administrator BDP 16.3 59 [[image:hashphones.la-registrazione-delle-chiamate.html_html_2d71bd3f.png||width="400"]]
administrator BDP 2.1 60
61 Nell'immagine, il nome del file deve essere inserito nel campo **Destination folder**.
62
administrator BDP 16.3 63 ==== Set recording mute state ====
administrator BDP 2.1 64
65 Questo comando permette di escludere dalla registrazione:
66
67 * il canale audio del chiamante (remoto)
administrator BDP 16.3 68 * il canale audio dell'[[operatore>>path:../input/hashphones.agenti#Operatore]]
administrator BDP 2.1 69 * oppure entrambi.
70
administrator BDP 16.3 71 Ciò può essere utile ad esempio per non registrare eventuali fasi in cui viene chiesta la password del chiamante. Oltre ad escludere dalla registrazione i canali audio, il blocchetto permette di specificare un [[cue sheet>>path:../input/hashphones.glossario#cue]], con testo configurabile, da appendere al file wave. Così è possibile individuare il punto della registrazione in fase di riascolto.
administrator BDP 2.1 72
administrator BDP 16.3 73 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m531a73e8.png||width="400"]]
administrator BDP 2.1 74
75 Nell'immagine:
76
77 * **Mute Tx Channel (IVR)**: permette di escludere il canale IVR.
78 * **Mute Rx Channel (Remote Party)**: permette di escludere la voce del chiamante.
administrator BDP 16.3 79 * **Append cue sheet**: permette di specificare il testo del [[cue sheet>>path:../input/hashphones.glossario#cue]] da applicare al file wavel
administrator BDP 2.1 80
administrator BDP 16.3 81 ==== Append cue sheet ====
administrator BDP 2.1 82
administrator BDP 16.3 83 Indica a [[LightHouse>>path:../input/hashphones.glossario#LH]] di aggiungere un [[cue sheet>>path:../input/hashphones.glossario#cue]], al file wave, in corso di registrazione; il testo è configurabile.
administrator BDP 2.1 84
administrator BDP 16.3 85 [[image:hashphones.la-registrazione-delle-chiamate.html_html_4f682014.png||width="400"]]
administrator BDP 2.1 86
administrator BDP 16.3 87 Nell'immagine, il testo del [[cue sheet>>path:../input/hashphones.glossario#cue]] deve essere inserito nel campo **Cue sheet entry**.
administrator BDP 2.1 88
administrator BDP 16.3 89 == Il call flow ==
administrator BDP 2.1 90
administrator BDP 19.1 91 Un blocchetto **AudioRecordingManager** può essere posto in qualunque punto del [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], tuttavia è opportuno ricordare che il primo blocchetto **AudioRecordingManager**, cioè quello che avvia la registrazione, ovunque esso sia, deve essere **sempre **impostato su [[Start Recording>>||anchor="HStartRecording"]]. In caso contrario verrebbe posto in uno stato non valido, le cui conseguenze sono descritte nel paragrafo [[Invalid state>>||anchor="HInvalidstate"]].
administrator BDP 2.1 92
administrator BDP 16.3 93 Come tutti gli altri blocchetti del [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]], **AudioRecordingManager** possiede dei **port** che permettono di costruire un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]]; per maggiori dettagli consultare [[Connessioni tra i blocchetti>>path:../input/hashphones.phonesenterprise-client-call-designer#BlockConnection]].
administrator BDP 2.1 94
administrator BDP 16.4 95 Per tutte le 4 opzioni, indicate nel paragrafo [[Le operazioni consentite dall'AudioRecordingManage>>||anchor="HLeoperazioniconsentite"]], si possono configurare i seguenti port di uscita:
administrator BDP 2.1 96
administrator BDP 16.4 97 * **Success**: se la richiesta di avvio del comando [[Start Recording>>||anchor="HStartrecording"]] viene eseguita con successo, viene invocato il blocchetto successivo.
98 * **Failure**: se la richiesta di avvio del comando [[Start Recording>>||anchor="HStartrecording"]] **non **viene ha successo, è invocato il blocchetto successivo.
99 * **Invalid state**: se lo stato del servizio **AudioRecordingManager** non è valido, tipicamente a causa di un errore di configurazione oppure per le ragioni esposte nel paragrafo [[Avvio di una registrazione all'inizio del call flow>>||anchor="HAvviodiunaregistrazioneall27iniziodelcallflow"]], viene invocato il blocchetto successivo. Siccome questo port viene usato in alcune circostanze particolari, l'argomento Invalid state è stato approfondito nel paragrafo omonimo [[Invalid state>>||anchor="HInvalidstate"]].
administrator BDP 2.1 100
administrator BDP 16.3 101 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m2d1f281a.png||width="400"]]
administrator BDP 2.1 102
administrator BDP 16.3 103 Nell'immagine precedente è raffigurato un ipotetico [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], elaborato col [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]] in grado di registrare una chiamata a partire dal suo inizio; su di esso vanno fatte alcune importanti osservazioni.
administrator BDP 2.1 104
105 * Se la richiesta di avvio della registrazione viene eseguita con successo (port **Success**), il servizio successivo è costituito dal blocchetto **VoiceMenu**.
106 * Se la richiesta di avvio della registrazione **non **viene eseguita con successo (port **Failure**), allora il servizio successivo è costituito dal primo blocchetto **PlayMessage**.
administrator BDP 16.4 107 * Se per errore **AudioRecordingManager** fosse stato impostato su [[Stop recording>>||anchor="HStoprecording"]], allora verrebbe invocato il port **Invalid state**, e con esso il secondo blocchetto **PlayMessage**.
108 * Infine **AudioRecordingManager** è preceduto da un blocchetto **PlayMessage**: è necessario al fine di garantire una corretta gestione del ^messenger-configurator#IVR|canale IVR]; per maggiori dettagli consultare il paragrafo [[Avvio di una registrazione all'inizio del call flow>>||anchor="HAvviodiunaregistrazioneall27iniziodelcallflow"]].
administrator BDP 2.1 109
administrator BDP 19.8 110 Il blocchetto **AudioRecordingManager** può essere inserito in qualunque punto di un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], elaborato col [[Call Designer>>path:../input/hashphones.phonesenterprise-client-call-designer]]. Ma si ricorda che il suo comportamento dipende dalle impostazioni descritte nella sezione [[Le operazioni consentite dall'AudioRecordingManager>>||anchor="HLeoperazioniconsentitedall27AudioRecordingManager"]].
administrator BDP 2.1 111
administrator BDP 16.4 112 **ATTENZIONE:** quando di intende registrare una telefonata a partire dal suo inizio, **AudioRecordingManager**, [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], andrebbe collocato per primo; tuttavia ciò potrebbe avere delle conseguenze capaci di bloccare la registrazione, pertanto in queste circostanze devono essere seguite le indicazioni contenute nel paragrafo [[Avvio di una registrazione all'inizio del call flow>>||anchor="HAvviodiunaregistrazioneall27iniziodelcallflow"]].
administrator BDP 2.1 113
administrator BDP 16.3 114 === Avvio di una registrazione all'inizio del call flow ===
administrator BDP 2.1 115
administrator BDP 16.4 116 Se si desiderasse registrare la chiamata a partire dal suo inizio, **AudioRecordingManager** andrebbe posto all'inizio del [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]]. Tuttavia è opportuno sottolineare che tra il momento in cui il ^messenger-configurator#IVR|canale IVR] viene effettivamente impegnato dalla chiamata e il momento in cui [[LightHouse>>path:../input/hashphones.glossario#LH]] riceve la notifica dell'evento e pone il [[canale IVR>>path:../input/hashphones.messenger-configurator#IVR]] in [[stato di conversazione>>path:../input/hashphones.agenti#Stato]], possono trascorrere alcuni attimi di ritardo provocati dall'infrastruttura di rete. In linea di massima ciò non ha alcun effetto reale, ma nel caso di una registrazione con **AudioRecordingManager**, [[LightHouse>>path:../input/hashphones.glossario#LH]] potrebbe ricevere una richiesta ([[Start Recording>>||anchor="HStartrecording"]]) per un [[canale IVR>>path:../input/hashphones.messenger-configurator#IVR]] formalmente non ancora in conversazione. Per gestire questo caso, [[LightHouse>>path:../input/hashphones.glossario#LH]] non può far altro che rispondere con un messaggio che pone il blocchetto **AudioRecordingManager** in uno stato non valido [[Invalid state>>||anchor="HInvalidstate"]]. Quindi per prevenire ed eliminare del tutto la possibilità che ciò avvenga, è buona norma far precedere **AudioRecordingManager** da un altro blocchetto di tipo **PlayMessage** contenente un secondo di silenzio.
administrator BDP 2.1 117
administrator BDP 16.3 118 === Invalid state ===
administrator BDP 2.1 119
administrator BDP 18.1 120 Un caso tipico di **Invalid state** è quello citato all'inizio del paragrafo [[Il call flow>>||anchor="HIlcallflow"]]. Infatti in un [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]] il primo blocchetto **AudioRecordingManager** **deve **essere sempre impostato su [[Start Recording>>||anchor="HStartrecording"]]; in caso contrario si avrà un **Invalid state**. Ma la condizione **Invalid state** si può realizzare anche in altre circostanze; un esempio su tutti: la chiusura della registrazione può avvenire in due occasioni:
administrator BDP 2.1 121
122 * conclusione della chiamata
administrator BDP 16.4 123 * inserimento di un secondo blocchetto **AudioRecordingManager** impostato su [[Stop recording>>||anchor="HStoprecording"]].
administrator BDP 2.1 124
administrator BDP 16.4 125 Il secondo caso tipicamente si realizza all'interno di [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]] complessi, ossia in presenza di servizi di vario genere. Ad esempio se il secondo blocchetto **AudioRecordingManager** fosse stato impostato per errore su [[Start Recording>>||anchor="HStartrecording"]] invece che su [[Stop recording>>||anchor="HStoprecording"]], [[LightHouse>>path:../input/hashphones.glossario#LH]] rileverebbe un'incoerenza nel dispositivo, di conseguenza il secondo blocchetto **AudioRecordingManager** verrebbe posto in **Invalid state**.
administrator BDP 2.1 126
administrator BDP 16.3 127 In altre parole, **Invalid state** è necessario al fine di "intercettare" e governare eventuali errori nella configurazione del [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]], oppure per gestire fallimenti che non rientrano tra quelli previsti da **Failure**. In ultima analisi, il port **Invalid state** è in grado di garantire un'uscita ordinata e controllata del [[call flow>>path:../input/hashphones.phonesenterprise-client-call-flow]].
administrator BDP 2.1 128
administrator BDP 16.3 129 == Configurazione di AudioRecordingManager in Compatibility Mode ==
administrator BDP 2.1 130
administrator BDP 16.4 131 Il [[Compatibility Mode>>path:../input/hashphones.phonesenterprise-client#Compatibility]] prevede l'utilizzo del [[Messenger Configurator>>path:../input/hashphones.messenger-configurator]] ed è un metodo considerato obsoleto. Per maggiori dettagli, consultare [[Creazione e configurazione del call flow (obsoleto)>>path:../input/hashphones.messenger-configurator#CallFlow]]. La configurazione del [[servizio base del Messenger>>path:../input/hashphones.messenger-configurator-servizi#Base]] di tipo **AudioRecordingManager** prevede un wizard le cui finestre ripropongono quanto descritto in [[Le operazioni consentite dall'AudioRecordingManager>>||anchor="HLeoperazioniconsentite"]].
administrator BDP 2.1 132
administrator BDP 16.3 133 === Il wizard ===
administrator BDP 2.1 134
administrator BDP 16.3 135 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m5688ee42.png||width="400"]]
administrator BDP 2.1 136
administrator BDP 16.3 137 La prima finestra del wizard permette di impostare il comportamento del [[servizio base del Messenger>>path:../input/hashphones.messenger-configurator-servizi#Base]]:
administrator BDP 2.1 138
administrator BDP 16.4 139 * **Avvia registrazione**: corrisponde a [[Start Recording>>||anchor="HStartrecording"]];
140 * **Interrompi registrazione**: corrisponde a [[Stop recording>>||anchor="HStoprecording"]];
141 * **Imposta canale audio da registrare**: corrisponde a [[Set recording mute state>>||anchor="HSetrecordingmutestart"]];
142 * **Aggiungi cue sheet**: corrisponde a [[Append cue sheet>>||anchor="HAppendcuesheet"]].
administrator BDP 2.1 143
144 Le finestre successive dipendono dalla scelta fatta.
145
administrator BDP 16.3 146 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m519e3a7f.png||width="400"]]
administrator BDP 2.1 147
administrator BDP 16.4 148 La finestra viene visualizzata soltanto se è stata selezionata l'opzione **Avvia registrazione**; come in [[Start Recording>>||anchor="HStartrecording"]], il nome del file deve essere inserito nel campo **Nome del file**.
administrator BDP 2.1 149
administrator BDP 16.3 150 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m7490bc75.png||width="400"]]
administrator BDP 2.1 151
administrator BDP 16.4 152 Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione **Interrompi registrazione**; come in [[Stop recording>>||anchor="HStoprecording"]], deve essere indicato il folder di destinazione del file wave contenente la registrazione.
administrator BDP 2.1 153
administrator BDP 16.3 154 [[image:hashphones.la-registrazione-delle-chiamate.html_html_m5d1a1909.png||width="400"]]
administrator BDP 2.1 155
administrator BDP 16.4 156 Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione **Imposta canale audio da registrare**; come in [[Stop Set recording mute state>>||anchor="HSetrecordingmutestart"]], possono essere indicati i canali da escludere e il testo del [[cue sheet>>path:../input/hashphones.glossario#cue]] da associare al nuovo file.
administrator BDP 2.1 157
administrator BDP 16.3 158 [[image:hashphones.la-registrazione-delle-chiamate.html_html_63060f75.png||width="400"]]
administrator BDP 2.1 159
administrator BDP 16.4 160 Questa finestra viene visualizzata soltanto se è stata selezionata l'opzione **Aggiungi cue sheet**; come in [[Append cue sheet>>||anchor="HAppendcuesheet"]], deve essere indicato il testo del [[cue sheet>>path:../input/hashphones.glossario#cue]] da associare al nuovo file.
administrator BDP 2.1 161
administrator BDP 16.3 162 [[image:hashphones.la-registrazione-delle-chiamate.html_html_371b358b.png||width="400"]]
administrator BDP 2.1 163
administrator BDP 16.4 164 Infine questa finestra viene visualizzata alla fine del ciclo di configurazione. Essa possiede le stesse funzioni descritte nel [[Il call flow>>||anchor="HIlcallflow"]] e permette di definire i servizi da attivare nelle diverse circostanze:
administrator BDP 2.1 165
administrator BDP 16.3 166 * **Servizio successivo se richiesta eseguita con successo**: se il comando **Avvia registrazione** viene eseguito con successo, viene invocato il blocchetto successivo.
167 * **Servizio successivo se richiesta fallita**: se il comando **Avvia registrazione** fallisce, viene invocato il blocchetto successivo.
administrator BDP 16.4 168 * **Servizio successivo se richiesta non valida**: consultare il paragrafo [[Invalid state>>||anchor="HInvalidstate"]].
administrator BDP 2.1 169
administrator BDP 16.4 170 Soltanto se è stata selezionata l'opzione **Aggiungi cue sheet**, come in [[Append cue sheet>>||anchor="HAppendcuesheet"]], deve essere indicato il testo del [[cue sheet>>path:../input/hashphones.glossario#cue]] da associare al nuovo file.
administrator BDP 2.1 171
172
173
174
175
176
administrator BDP 16.3 177
administrator BDP 19.3 178