-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathENetUC_Journal.asn1
693 lines (580 loc) · 32.2 KB
/
ENetUC_Journal.asn1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
UC-Server-Access-Protocol-Journal
{ iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) estos(10924) uc-server-access-protocol-v2(2) journal(14) }
-- @category Journal
-- @brief Journal interface
-- @long
-- ## Module description
-- This Module defines structures and operations for accessing the journal database of the UCServer.
--
-- ## Features
-- - Get journal entries from the database (asnGetJournalEntries).
-- - Update journal entries in the database.
-- - Notify CRUD interface for getting events from the journal database.
--
-- New journal entries where only generated by the UCServer if the corresponding events happend (Calls, Chats etc.) and cannot be generated by this client API.
DEFINITIONS
IMPLICIT TAGS ::=
BEGIN
IMPORTS
AsnOptionalParameters, UTF8StringList, AsnRequestError, AsnSystemTime, AsnNetDatabaseContact FROM UC-Server-Access-Protocol-Common
AsnProjectPinRule FROM UC-Server-Access-Protocol-SIPCTICommon
;
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~ asnGetOfflineJournal ~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnGetOfflineJournal.
AsnGetOfflineJournalArgument ::= SEQUENCE
{
iMaxDays INTEGER, -- Maximum Days to get offline journal entries. (0 = 365 days)
iMarkRead INTEGER, -- 0: Don't change the entries; 1: Mark the offline entries as "read", which means delete the entry from the offline database. The corresponding entry in the journal database will not be touched.
...
}
-- @brief Result of asnGetOfflineJournal.
AsnGetOfflineJournalResult ::= SEQUENCE
{
journalList AsnNetDatabaseJournalList, -- List of AsnNetDatabaseJournal objects, containing the offline journal entries found.
...
}
-- @brief Fetch and optionally delete offline journal entries.
-- @long
-- The UCServer saves journal entries of missed calls additionally in an offline database, if the owner of the line
-- where the call was happening was not logged into the UCServer.
-- With this function it is possible to read (and delete) such entries.
asnGetOfflineJournal OPERATION
ARGUMENT arg AsnGetOfflineJournalArgument
RESULT res AsnGetOfflineJournalResult
ERRORS {AsnRequestError}
::= 2104
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnGetJournalEntries ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief The structure of a journal entry of conversations on the UCServer.
-- @long
-- This sequence describes a call or other conversation when it is stored in the history database called "journal".
--
-- With this structure it it possible to see when an conversation or event has happend and other meta information about it.
-- The API provides operations to alter or add information of that entry.
-- New entries can only be generated by the UCServer.
AsnNetDatabaseJournal ::= SEQUENCE
{
u8sConnectionID UTF8String, -- Unique ID of the call
stStartTime AsnSystemTime, -- Time stamp start of call (first event).
stStopTime AsnSystemTime, -- Time stamp end of call (last event).
iDurationTotal INTEGER, -- Duration of the call from stStartTime to stStopTime in seconds.
stConnectTime AsnSystemTime, -- Time stamp when the call was connected (e.g. accepted).
stDisconnectTime AsnSystemTime, -- Time stamp when the call was disconnected (e.g. hangup).
iDurationConnected INTEGER, -- Duration of the call from stConnectTime to stDisconnectTime in seconds.
iOrigin INTEGER, -- 1: outgoing call (outbound), 0: incoming Gespräch (inbound)
iInternal INTEGER, -- 1: internal call (call with internal partner), 0: external call (call with external partner)
u8sLineNumber UTF8String, -- Number of the line, the call was active.
u8sLineName UTF8String, -- A Name of the Line (can be the owner's name or a name configured in the PBX).
u8sLineUserName UTF8String, -- The user name of the line owner.
iLineUserOffline INTEGER, -- 1: user was offline during the call was active.
u8sLocalNumber UTF8String, -- Number of the line in local format (can be different to u8sLineNumber).
u8sPhoneNumber UTF8String, -- Phone number of the partner of the call.
u8sRedirectingNumber UTF8String, -- If the call was redirected from another extension, the phone number of that line is given here.
u8sContactName UTF8String, -- If available, the name of the call partner.
u8sContactCompany UTF8String, -- If available, the company of the call partner.
u8sContactEntryID UTF8String, -- If available, entry id of the contact data to get it from the source database.
u8sContactEntryStoreID UTF8String, -- If available, store id of the contact data to get it from the source database.
u8sContactEntryDBID UTF8String, -- If available, entry database id of the contact data to get it from the source database.
u8sCtiServerUserName UTF8String, -- User name of the owner.
u8sProviderNumber UTF8String, -- TBD
iSucessState INTEGER, -- TBD
u8sSubject UTF8String, -- Free text, unused.
u8sMemo UTF8String, -- Free text, contains possible comment to the call.
iReadFlag INTEGER, -- 0: call was not marked as read, 1: call was marked as read.
-- @brief Contains further information about possible used project or pin rules.
-- @linked AsnProjectPinRule
projectPinRule AsnProjectPinRule,
u8sTrackerID UTF8String, -- Unique ID for the call tracker, which contains further information about the call history if the call was forwarded for example.
u8sAcceptorName UTF8String, -- If available, the name of the user who accepted the call (e.g. if the call was missed by the owner and a collegue has picked it up instead).
u8sAcceptorCtiServerUserName UTF8String, -- If available, the user name of the user who accepted the call (e.g. if the call was missed by the owner and a collegue has picked it up instead).
u8sAcceptorConnectionID UTF8String, -- If available, the unique id of the journal entry, which was the call of the acceptor (e.g. if the call was missed by the owner and a collegue has picked it up instead).
-- Additional parameters for AsnNetDatabaseJournalFindOptions added here for backward compatibility.
-- @long
-- - Key "bMemoComplete", Value bool, optional. Only present if the entry represnets a text chat entry and the logged in user is owner of this entry.
-- - Key "TrackerLastCall", Value integer, optional. 1 if it is the last call of a call tracker sequence of calls.
-- - Key "NoStatistic", Value integer, optional. 1 if this entry should be ingnored for statistic services (e.g. ProCall Analytics).
-- - Key "CallType", Value integer, not optional. Type of the call, valid values are defined in AsnNetDatabaseJournalCallType.
-- - Key "iTransactionID", Value integer, not optional. Transaction id of the entry in the database.
-- - Key "iChatSequenceID", Value integer, optional. Sequence id of text chat entries.
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Call type of the journal entry used in AsnNetDatabaseJournal objects.
AsnNetDatabaseJournalCallType ::= ENUMERATED
{
-- ~ Quelle: estos\common\libs\enetctilib\include\edatastructurescallinformation.h
eJOURNALCALLTYPEPBX (0), -- Calls on PBX lines (TAPI)
eJOURNALCALLTYPEVIDEOCHAT (1), -- Video Chat (WebRTC based) (only Video, no Audio; e.g. desktop sharing session)
eJOURNALCALLTYPEAUDIOCHAT (2), -- Audio Chat (WebRTC based) (only Audio, no Video)
eJOURNALCALLTYPEAUDIOVIDEOCHAT (3), -- Video Chat (WebRTC based) (Audio and Video)
eJOURNALCALLTYPEIM (4), -- Text Chat
eJOURNALCALLTYPEBLUETOOTHMOBILE (5), -- Bluetooth mobile phone call
eJOURNALCALLTYPEBLUETOOTHMOBILEUNKNOWNDURATION (6), -- Bluetooth mobile phone - Call duration of the connected call is (1 sec, offline Journal)
eJOURNALCALLTYPESIPAVCALL (7), -- Audio chat via SIP connection to PBX. Looks like a normal PBX call, but is technically a SIP softphone call via PBX using WebRTC.
eJOURNALCALLTYPESMS (8), -- SMS
eJOURNALCALLTYPESCREENSHARING (9), -- Screen/Desktop sharing (WebRTC based, invite := outgoing)
eJOURNALCALLTYPERSCREENSHARING (10) -- Screen/Desktop sharing (WebRTC based, request := incoming)
}
-- @brief List of AsnNetDatabaseJournal
AsnNetDatabaseJournalList ::= SEQUENCE OF AsnNetDatabaseJournal
-- @brief Flags for filtering journal entries in the result list of asnGetJournalEntries. These are used in AsnNetDatabaseJournalFindOptions in the optionalParams key "iAdditionalFlags".
-- These Bits can be used to set the filter flags in a more convenient way mit normal Bit operations in an integer value.
-- @long
-- Addionally newer Flags are only to be set with this Method. These flags are: NoUnknown, TextChats, AudioChats, VideoChats, PhoneCalls, DeskShare.
--
AsnNetDatabaseJournalFilterEnumeration ::= ENUMERATED
{
-- ~ Quelle: x:\dev\procall\estos\common\libs\ETool\include\ENetDatabaseJournalFindOptions.h => ENetDatabaseJournalFindOptions::eFlags
flagIntern(1), -- 0x00000001 - Internal calls
flagExtern(2), -- 0x00000002 - External calls
flagInbound(4), -- 0x00000004 - Inbound calls
flagOutbound(8), -- 0x00000008 - Outbound calls
flagConnected(16), -- 0x00000010 - Connected calls
flagNotConnected(32), -- 0x00000020 - Not connected calls
flagHasMemo(64), -- 0x00000040 - The memo field contains text
flagHasNoMemo(128), -- 0x00000080 - The memo field is empty
flagUnreadOnly(256), -- 0x00000100 - Only entries, which are not marked as "read"
flagNoUnknown(512), -- 0x00000200 - Exclude all calls without a caller number (clipped numbers)
flagTextChats(1024), -- 0x00000400 - Include text chats (default: TBD)
flagAudioChats(2048), -- 0x00000800 - Include audio chats (default: TBD)
flagVideoChats(4096), -- 0x00001000 - Include video chats (default: TBD)
flagPhoneCalls(8192), -- 0x00002000 - Include phone calls (default: set)
flagDeskShare(16384), -- 0x00004000 - Include screen-/deskshare chats
flagIncludeAllPublic(65536) -- 0x00010000 - Include all entries, which are marked as "public" and the user has access rights on.
}
-- @brief Filter options for finding more specific journal entries.
-- @long
-- The find options are use to give more details about the journal entries which should be in the result list.
-- By default, the search is limited to the journal entries of the logged in user (public and private). Deleted ones are never listed.
--
-- If there are user names given in u8slistLineUserNames, the search can be expanded on users, where access rights were granted (public only).
AsnNetDatabaseJournalFindOptionsV2 ::= SEQUENCE
{
stStartTimeFrom AsnSystemTime, -- Filter on "StartTime", first time stamp of a desired time window of journal entries.
stStartTimeTo AsnSystemTime, -- Filter on "StartTime", last time stamp of a desired time window of journal entries.
u8slistLineUserNames UTF8StringList, -- A list of CTIUserNames of which journal entries should be searched.
-- The own user name of the logged in user is not necessary and should not be given here.
u8slistPhoneNumber UTF8StringList, -- Filter on sought after phone numbers.
u8sContactName UTF8String, -- Name of the conversational partner.
u8sCompanyName UTF8String, -- Company name of the conversational partner.
u8sFilterText UTF8String, -- Free text which will be found in the contact name, company name, phone number or memo field.
iMaxNumEntries INTEGER, -- Max count of journal entries to return, 0 would be "all". Higher values resulting in a increasing perfomance impact on the ucserver. A good value is 100.
-- @linked AsnNetDatabaseJournalFilterEnumeration
iFilter INTEGER, -- Defines a filter based on AsnNetDatabaseJournalFilterEnumeration
iLastKnownGlobTransactionID [0] INTEGER OPTIONAL,-- Last known global transaction ID. If this parameter is given, only entries with a global transaction ID newer than iLastKnownGlobTransactionID will be delivered. The value has to be greater than 0.
...
}
-- @brief Result of asnGetJournalEntries and asnGetJournalEntriesV2 operation
AsnGetJournalEntriesResult ::= SEQUENCE
{
journalList AsnNetDatabaseJournalList,
...
}
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~ asnGetJournalEntriesV2 ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AsnGetJournalEntriesV2Argument ::= SEQUENCE
{
findOptions AsnNetDatabaseJournalFindOptionsV2,
...
}
-- @brief Search for journal entries of the users conversations.
-- @long
-- asnGetJournalEntries makes it possible to search in the journal database of the user. The search is limited to the journal entries of the logged in user himself (public and private)
-- and to the journal entries of users where permissions are granted for the logged in user.
--
-- With AsnGetJournalEntriesV2Argument.findOptions it is possible to give more search criterias.
asnGetJournalEntriesV2 OPERATION
ARGUMENT arg AsnGetJournalEntriesV2Argument
RESULT res AsnGetJournalEntriesResult
ERRORS {AsnRequestError}
::= 2172
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~ asnUpdateCallAndJournalContactAndNumber ~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateCallAndJournalContactAndNumber.
AsnUpdateCallAndJournalContactAndNumberArgument ::= SEQUENCE
{
u8sConnectionID UTF8String, -- Unique ID of the call or journal entry to modify.
u8sRemoteNumberSC UTF8String, -- Phone number to set for the contact in long format (e.g. +49815136856177).
-- The contact to set for the journal entry.
-- @linked AsnNetDatabaseContact
remoteContact AsnNetDatabaseContact,
...
}
-- @brief The result of asnUpdateCallAndJournalContactAndNumber.
AsnUpdateCallAndJournalContactAndNumberResult ::= SEQUENCE
{
bResultCallInfoUpdate BOOLEAN, -- If the active call was updated, this will be "true".
bResultJournalUpdate BOOLEAN, -- If the journal entry was updated, this will be "true".
...
}
-- @brief Update the contact information of a current active call or a journal entry.
-- @long
-- A Client can update the contact information for a call. This function updates the information is currently active or, if already disconnected, the corresponding journal entry.
--
-- If neither the active call was found nor the journal entry, an error will be returned.
asnUpdateCallAndJournalContactAndNumber OPERATION
ARGUMENT arg AsnUpdateCallAndJournalContactAndNumberArgument
RESULT res AsnUpdateCallAndJournalContactAndNumberResult
ERRORS {AsnRequestError}
::= 2108
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~ asnUpdateCallLocalContact ~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateCallLocalContact event to the server
AsnUpdateCallLocalContactArgument ::= SEQUENCE
{
u8sConnectionID UTF8String, -- Connection ID of the journal entry to change the local contact ("Mandantenfunktion")
localContact AsnNetDatabaseContact, -- Contact to set in the journal entry
...
}
-- @brief Update the contact data of the local contact of a journal entry ("Mandantenkontakt").
-- @long
-- A client can search and update the called contact of a call ("Mandanten").
asnUpdateCallLocalContact OPERATION
ARGUMENT arg AsnUpdateCallLocalContactArgument
::= 2140
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnUpdateJournalMemo ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateJournalMemo
AsnUpdateJournalMemoArgument ::= SEQUENCE
{
u8sConnectionIDList UTF8StringList, -- Liste von IDs, anhand welcher der Journaleintrag identifiziert wird.
u8sMemo UTF8String, -- Die Notiz zu einem bestimmten Call
...
}
-- @brief Result of asnUpdateJournalMemo
AsnUpdateJournalMemoResult ::= SEQUENCE
{
bSuccess BOOLEAN, -- True if the update wasa successful, false if not.
...
}
-- @brief Update Journal memo text
-- @long
-- A client can update a memo text of a journal entry without transferring the whole journal entry.
asnUpdateJournalMemo OPERATION
ARGUMENT arg AsnUpdateJournalMemoArgument
RESULT res AsnUpdateJournalMemoResult
ERRORS {AsnRequestError}
::= 2112
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnUpdateJournalProject ~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateJournalProject
AsnUpdateJournalProjectArgument ::= SEQUENCE
{
u8sConnectionIDList UTF8StringList, -- List of IDs to identify the journal entries to modify with new project rules
projectPinRule AsnProjectPinRule, -- Project data to set to the jounral entries
...
}
-- @brief Result of asnUpdateJournalProject
AsnUpdateJournalProjectResult ::= SEQUENCE
{
bSuccess BOOLEAN,
...
}
-- @brief Change the project information of a journal entry
-- @long
-- A client can change the project information/rules of an journal entry independently of the other journal entry data.
asnUpdateJournalProject OPERATION
ARGUMENT arg AsnUpdateJournalProjectArgument
RESULT res AsnUpdateJournalProjectResult
ERRORS {AsnRequestError}
::= 2113
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnUpdateJournalReadFlag ~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateJournalReadFlag
AsnUpdateJournalReadFlagArgument ::= SEQUENCE
{
u8sConnectionIDList UTF8StringList, -- List of ids to specify the journal entries to change their read flag
bReadFlag BOOLEAN, -- True if the entry(s) should be set to "read", False if they should be set to "unread"
...
}
-- @brief Result of asnUpdateJournalReadFlag
AsnUpdateJournalReadFlagResult ::= SEQUENCE
{
bSuccess BOOLEAN, -- True if the entroes were modified, false if there was a problem.
...
}
-- @brief Set the 'read' flag of journal entries
-- @long
-- A Client can change the 'read' flag of journal entries in the database independently of the other fields of the entries.
asnUpdateJournalReadFlag OPERATION
ARGUMENT arg AsnUpdateJournalReadFlagArgument
RESULT res AsnUpdateJournalReadFlagResult
ERRORS {AsnRequestError}
::= 2114
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnUpdateJournalSubject ~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnUpdateJournalSubject
AsnUpdateJournalSubjectArgument ::= SEQUENCE
{
u8sConnectionIDList UTF8StringList, -- List of ids to specify the journal entries to change their subject field
u8sSubject UTF8String, -- New text for the subject
...
}
-- @brief Result of asnUpdateJournalSubject
AsnUpdateJournalSubjectResult ::= SEQUENCE
{
bSuccess BOOLEAN, -- True if the subject was changed in the databse, false is not
...
}
-- @brief Change the subject text of a journal entry.
-- @long
-- A client can change the subject text of a journal entry independently of the other fields.
asnUpdateJournalSubject OPERATION
ARGUMENT arg AsnUpdateJournalSubjectArgument
RESULT res AsnUpdateJournalSubjectResult
ERRORS {AsnRequestError}
::= 2115
-- @brief Result of asnGetJournalEntriesCount and asnGetJournalEntriesCountV2 method
AsnGetJournalEntriesCountResult ::= SEQUENCE
{
iCount INTEGER, -- Count of journal entries found in the database according the AsnNetDatabaseJournalFindOptions given in the argument
...
}
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~ asnGetJournalEntriesCountV2 ~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AsnGetJournalEntriesCountV2Argument ::= SEQUENCE
{
findOptions AsnNetDatabaseJournalFindOptionsV2, -- specify the journal entries to count
...
}
-- @brief Count journal entries in the database ang get the result.
-- @long
-- A client can get the count of journal entries from the server in the database for a given filter named 'findOptions' in the argument.
--
-- This can be used for displaying the count of such journal entries without transferring a lot of journal data via the network.
-- Popups or pins with the count of unread entries are examples for this.
asnGetJournalEntriesCountV2 OPERATION
ARGUMENT arg AsnGetJournalEntriesCountV2Argument
RESULT res AsnGetJournalEntriesCountResult
ERRORS {AsnRequestError}
::= 2173
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnJournalEntryGet ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnJournalEntryGet
AsnJournalEntryGetArgument ::= SEQUENCE
{
u8sConnectionID UTF8String, -- ConnectionID of the call to get its journal entry
...
}
-- @brief Result of asnJournalEntryGet
AsnJournalEntryGetResult ::= SEQUENCE
{
journalEntry AsnNetDatabaseJournal, -- If a journal entry can be found, this result contains a copy of it.
...
}
-- @brief Get the journal entryof a call from the server.
-- @long
-- A client can retrieve a journal entry from a server by its connection id. The entry can be from the database (if the call was finished earlier), from the pending
-- write list (when the call was finished, but not yet written to the database) or if the call is still ongoing will be generated from its CallInformation data.
asnJournalEntryGet OPERATION
ARGUMENT arg AsnJournalEntryGetArgument
RESULT res AsnJournalEntryGetResult
ERRORS {AsnRequestError}
::= 2117
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnJournalEntryChanged ~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for the asnJournalEntryChanged event
AsnJournalEntryChangedArgument ::= SEQUENCE
{
-- Journal entry added(1), modified(2), deleted(3), added or modified(4).<br />
-- If the event was triggered by a differential update the server will set 'added or modified'(4)
-- because it cannot differentiate between added or modified.
iFlags INTEGER,
journalEntry AsnNetDatabaseJournal, -- Journal entry (at least with connection id in case of delete)
-- - optionalParams Name "iTransactionID" Value String, transaction ID of the entrys, so older desktop clients can support diff updates.
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Journal update event from the server.
asnJournalEntryChanged OPERATION
ARGUMENT arg AsnJournalEntryChangedArgument
::= 2109
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnJournalEntryChangedList ~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief List of AsnJournalEntryChangedArgument
AsnJournalEntryChangedList ::= SEQUENCE OF AsnJournalEntryChangedArgument
-- @brief Argument of asnJournalEntryListChanged from the server
AsnJournalEntryChangedListArgument ::= SEQUENCE
{
iLastTransactionID INTEGER, -- A counter increased by every database change to support differetial updates
journalEntryChangedList AsnJournalEntryChangedList, -- List of journal entries changed with this event
...
}
-- @brief Event from the server if journal entries where changed (new version of asnJournalEntryChanged, which only supports a single entry)
asnJournalEntryListChanged OPERATION
ARGUMENT arg AsnJournalEntryChangedListArgument
::= 2170
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnJournalSubscribeEvents ~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Subscribe for events of journal database changes
-- @long
-- Clients can subscribe for events from the journal database when changes occure.<br />
-- The server will then send events if there were entries added, deleted or changed.<br />
-- With the subscription, the client can set a more detailed description, which entries it is interested in the direct result
-- of the call. It is possible to set a last known transaction id to start from, the maximum number of entries to reply or if
-- the client is only interested in the users own journal entries or additional of the groups the user is in (and is allowed to see the journal entries).<br />
-- <br />
-- To unsubscribe from the jornal events, call this function with bReceiveJournalEvents set to false. This will stop the server to send events.
asnJournalSubscribeEvents OPERATION
ARGUMENT arg AsnJournalSubscribeEventsArgument
RESULT res AsnJournalSubscribeEventsResult
ERRORS {AsnRequestError}
::= 2171
-- @brief Argument for asnJournalSubscribeEvents
AsnJournalSubscribeEventsArgument ::= SEQUENCE
{
bReceiveJournalEvents BOOLEAN, -- Set to true to subscribe, set to false to unsubscribe (completely)
-- If this parameter is set to the last known transaction id, the server will only send the journal entries with a higher transaction id.
-- The search is limited to the last 60 days. If older entries are of interest, the client should use asnGetJournalEntries with find options set accordingly.
iLastKnownGlobTransactionID [0] INTEGER OPTIONAL,
-- Maximum number of journal entries to retrieve by this call
iMaxEntries [1] INTEGER OPTIONAL,
-- Additional subscribe options defined in AsnJournalSubscribeFlags
iFlags [2] INTEGER OPTIONAL,
...
}
-- @brief Options for asnJournalSubscribeEvents which defines if the client is interested in only user owened journal entries or it should include the
-- journal entries of his groups also.
AsnJournalSubscribeFlags ::= ENUMERATED
{
eDEFAULT (0), -- Get only user owened jounral entries
eGROUPJOURNAL (1) -- Include the journal entries of the users groups, if the view permissions in the groups are set accordingly
}
-- @brief Result of asnJournalSubscribeEvents if the call is successful. If an error occured, the AsnRequestError will be returned
AsnJournalSubscribeEventsResult ::= SEQUENCE
{
iResult INTEGER, -- If the call was successful, 0 is returned. If there was an error, the AsnRequestError of the call will be returned instead.
-- ~ iEventCrossRefID INTEGER, Answer to Event Correlator Information (Wenn der Request prozessiert wird tragen die Events diese ID als assoziation zum Request)
-- ~ obiger Parameter sollte aufgrund der asynchronität der Schnittstelle (Event könnte vor Result ankommen?) besser schon vom Client in den AsnJournalSubscribeEventsArgument mitgegeben werden.
-- ~ Da es sich um einen spekulativen Parameter handelt, und noch niemand genau weiß wofür man ihn braucht, wird das vorerst aber ganz weggelassen.
optionalParams AsnOptionalParameters OPTIONAL, -- No optional parameters yet
...
}
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnJournalGetSettings ~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnJournalGetSettings - there are no parameters needed, but the call needs an argument.
AsnJournalGetSettingsArgument ::= SEQUENCE
{
...
}
-- @brief Flags needed for AsnJournalGetSettingsResult to describe the privacy level of the handling of private calls
AsnJournalPrivateCallOptions ::= ENUMERATED
{
eNORMAL(0), -- No special treatment of private calls
eSHORTENNUMBERS(1), -- Numbers in private calls should be shortned
eNONUMBERS(2) -- Numbers of private calls wont be persistet
}
-- @brief Result of asnJournalGetSettings
AsnJournalGetSettingsResult ::= SEQUENCE
{
ePrivacyLevel AsnJournalPrivateCallOptions, -- Enumerated AsnJournalPrivateCallOptions to describe how the privatzed calls are handled by the server
bUseOfflineJournal BOOLEAN, -- True if the server use the offline journal database, false if not
bOfflineDeleteOldEntries BOOLEAN, -- True: delete old offline journal entries
iOfflineDaysNoDelete INTEGER, -- Maximum days to keep old offline entries
...
}
-- @brief Get the current Journal settings from the server
-- @long
-- A client can get the current journal settings, in particular the privacy settings, which describes the handling of private calls on the server.
asnJournalGetSettings OPERATION
ARGUMENT arg AsnJournalGetSettingsArgument
RESULT res AsnJournalGetSettingsResult
ERRORS {AsnRequestError}
::= 2118
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnUpdateJournal ~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Flags which part of the journal entries should be updated in the database. Used in AsnUpdateJournalArgument .
AsnUpdateJournalUpdateFlags ::= ENUMERATED
{
eUpdateFlagRead(1), -- 0x0001 - Read flag update
eUpdateFlagContact(2), -- 0x0002 - Contact data update
eUpdateFlagProject(4), -- 0x0004 - Project rules update
eUpdateFlagMemo(8), -- 0x0008 - Memo text update
eUpdateFlagSubject(16), -- 0x0010 - Subject text update
eUpdateFlagAcceptor(32), -- 0x0020 - Acceptor changed
eUpdateFlagPhoneNumber(64), -- 0x0040 - Phone number changed
eUpdateFlagTrackerLastCall(128), -- 0x0080 - Tracker last call changed
eUpdateFlagNoStatistic(256), -- 0x0100 - No statitistics flag changed
eUpdateFlagCallType(512), -- 0x0200 - Call type changed
eUpdateFlagLabel(1024), -- 0x0400 - Label changed
eUpdateFlagDeleted(2048), -- 0x0800 - Deleted flag changed
eUpdateFlagTrackerCallFlow(4096), -- 0x1000 - Tracker call flow changed
eUpdateFlagContactName(8192) -- 0x2000 - Contact name changed
-- ~ eUpdateFlagAll = -1 - - All bits set -> not ro define here
}
-- @brief Argument for asnUpdateJournal, event to the server.
AsnUpdateJournalArgument ::= SEQUENCE
{
journalList AsnNetDatabaseJournalList, -- List of AsnNetDatabaseJournal to update on the server
iFlags INTEGER, -- Bitfield for describing what has changed. If set to 0, the server assumes that all fields have changed.
-- optionalParam key "CreateMobile", unsigned Integer 0 or 1, 1: special handling of mobile journal entries, should only be set by mobile clients
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Event sent to the server to update journal entries ansynchronously. The Result will be received from the server as asnJournalEntryChanged event.
asnUpdateJournal OPERATION
ARGUMENT arg AsnUpdateJournalArgument
::= 2119
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~ asnDeleteJournalEntries ~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnDeleteJournalEntries
AsnDeleteJournalEntriesArgument ::= SEQUENCE
{
u8sConnectionIDList UTF8StringList, -- List of connection ids to indentify the journal entries to delete
...
}
-- @brief Result of asnDeleteJournalEntries
AsnDeleteJournalEntriesResult ::= SEQUENCE
{
iResult INTEGER, -- 0 if the call was successful
...
}
-- @brief Delete journal entries form the database.
-- @long
-- Depending on the persmissions, a client can delete journal entries of the user or from the groups. If the call fails, AsnRequestError will be used instead of the result.
asnDeleteJournalEntries OPERATION
ARGUMENT arg AsnDeleteJournalEntriesArgument
RESULT res AsnDeleteJournalEntriesResult
ERRORS {AsnRequestError}
::= 2128
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~ asnMarkAllJournalEntriesAsRead ~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnMarkAllJournalEntriesAsRead
AsnMarkAllJournalEntriesAsReadArgument ::= SEQUENCE
{
...
}
-- @brief Result of asnMarkAllJournalEntriesAsRead
AsnMarkAllJournalEntriesAsReadResult ::= SEQUENCE
{
iResult INTEGER, -- 0 if the call was successful
...
}
-- @brief Mark all journal entries opf the current user as 'read'.
-- @long
-- To make it a client simpler, this function marks all journal entries of the current user as 'read' in the database.
asnMarkAllJournalEntriesAsRead OPERATION
ARGUMENT arg AsnMarkAllJournalEntriesAsReadArgument
RESULT res AsnMarkAllJournalEntriesAsReadResult
ERRORS {AsnRequestError}
::= 2129
END