-
Notifications
You must be signed in to change notification settings - Fork 1
/
ENetUC_CTI.asn1
1626 lines (1392 loc) · 77.7 KB
/
ENetUC_CTI.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
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
UC-Server-Access-Protocol-CTI
{ iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) estos(10924) uc-server-access-protocol-v2(2) cti(8) }
-- @category CTI
-- @brief CTI interface
-- @long
-- ## CTI Modul
--
--
-- ## Module description
-- This module contains structures and operations for CTI (remote call control) on TAPI or Bluetooth phone lines in the server.
--
-- A client program has access to all lines owned by the logged in user and to additional lines it has dedicated access.<br />
-- It is possible to monitor all actions on these lines and to call operations to initiate new calls, set forwards, change states and so on.
--
-- ## Prerequisites
-- In order to use the operations described in this document you have to make sure:
-- - The server has lines configured and activated. (Install an appropriate TAPI-driver for your PBX system.)
-- - There is at least one user activated on the server, who has lines configured to use.
-- - The client program is connected to the server via UCServer Web Services using a websocket or directly to the server on the client port (default port 7222).
-- - The client program encodes the data structures as estos JSON or ASN.1 BER.
-- - The client program is logged in to the server with a user who has access to lines.
--
-- Additional prerequisites for a operation on the PBX and or the TAPI driver may be necessary.
--
-- ### Description of the Line-Call-Model ###
-- The remote call control and monitoring of the server is based on a line-call-model. This means, that users, lines and calls are organized in a tree like hierarchy.
-- Each node in this tree contains configuration data and dynamic data, which can be accessed and observed.
--
-- The Nodes are:
-- - The user. This a more a kind of "meta" node, it just holds the list of lines, a client has access to if it is logged in as this user.
-- - The line(s). Defined with the logged in user, a client can retrieve a list of lines, the user has access to. With these lines, the client can (one time) pull information or can attach itself on to get initial data and events if these data changes over time (get-and-subscribe mechanism).
-- The line information contains configuration information and dynamic data about the lines status, including current calls.
-- *Note:* A line is identified by its URI tel:number@pbxsystem. The parameter is often named as "u8sLinePhoneNumber".<br />The "u8sPhoneNumber" is the phone number of a line, but for technical reasons that is not a distinct property of a line. It is possible to have multiple lines with the same phone number!
-- - The call(s). A line has a list of current calls, which are currently "on" the line. If the client is attached to a line for events, new calls will be announced via events. Changes to these calls are also announced via events.
-- There is no need to attach to calls explicitly, this is already done by attaching to the line. Call changing events are then sent to the client too.
-- *Note:* A call is identified by its connection identifier often named as "ConnectionID".
--
-- ### Remarks ###
-- Some operations return an empty result object if they are executed successfully. So in this cases, the business logic should wait for result/error before do additional actions.
-- Phone numbers are normally used and provided in a so called supercanonic notation containing a full qualified number including country, city, main and extension number: +49815136856177
-- For operations affecting multiple calls be sure to check that all calls affected have the corresponding feature set. To merge two calls both calls have to have the feature eCFEATUREMERGECALLS set.
--
-- ### Example: Monitoring lines ###
-- 1. Get the lines the client has access to with asnCtiEnumPhoneLines. If you wish to get events if the line list changes afterwards, set the parameter "attachChangeNotify" to 1.
-- 2. Use the lines URI to start monitoring for initial data and events on it. asnCtiLineMonitorStart will result in a monitor cross reference id to distinguish between events for different line monitors easier.
-- This is useful, if the client has the requirement to monitor the same line multiple times for different use cases.
-- 3. With the line URI you can call functions e.g. asnCtiMakeCall, asnCtiAnswerCall a.s.o. With the line monitoring on, you will get the according changes on the line and its calls as events back.
-- 4. To stop monitoring a line, call asnCtiLineMonitorStop with the corresponding monitor cross reference id.
--
-- ### Example: Call data transfer ###
--
-- ### Phone number formats ###
-- The whole system tries to use supercanonic numbers (+country city main and extension number / +49815136856177) whereever possible.
-- As long as the number is used in supercanonic notation all components can format the number as required (for dialing, for display, etc.)
-- You likely won´t need to format numbers as the system always provides supercanonic numbers.
--
DEFINITIONS
IMPLICIT TAGS ::=
BEGIN
IMPORTS
AsnOptionalParameters, AsnRequestError, AsnSystemTime, AsnNetDatabaseContact, UTF8StringList FROM UC-Server-Access-Protocol-Common
AsnProjectPinRuleList, AsnCtiNewCallParams, AsnProjectPinRule, AsnLineForward, AsnLineForwards FROM UC-Server-Access-Protocol-SIPCTICommon
;
-- @brief List of AsnCtiCallData objects
AsnCtiCallDataList ::= SEQUENCE OF AsnCtiCallData
-- @brief Data structure (key value pair) to associate additional information with call objects.
-- @long
-- Data structure to associate additional information with call objects, which can be
-- transferred together with a call to another client.<br />
-- The data consists of key/value pairs. The keys can be used for different use cases and should be named in such a way,
-- so that they do not conflict with other uses.<br />
--
-- The AsnCtiCallDataList is part of the following OptionalParams of these data structs:
-- - AsnCtiCallInformation
-- - AsnCtiNewCallParams
-- The Key of the AsnCtiCallDataList is "calldata".
AsnCtiCallData ::= SEQUENCE
{
key UTF8String,
-- the string length of 'value' should be limited to a reasonable number because callData is a part of the call information and
-- is delivered from server to the clients with every call status change. If the data is big in size it is recommended
-- to only store sort of a reference in 'value'
value UTF8String,
...
}
-- @brief Line Open State (identical to ECTILineStatusEnum)
-- @long
-- In order to get line and call states or to use remote call control you have to "open" a line with asnCtiLineMonitorStart.
AsnCtiLineOpenStatus ::= ENUMERATED
{
lineStatusDisconnected (0), -- line ready
lineStatusClosed (1), -- line is closed
lineStatusOpen (2), -- line is opened and ready for usage
lineStatusOpenNoPhoneConnected (3), -- line is opened but out of service; e.g. no phone connected
lineStatusOpenNoPBXConnection (4), -- line is opened but the connection to the PBX is broken
lineStatusOpenPBXLoginFailed (5), -- line is opened but the login on the PBX has failed
lineStatusOpenPBXNoLicense (6), -- line is opened but there is a license missing on the PBX
lineStatusOpenPBXSessionCountExceeded (7), -- line is opened but the CSTA session counter on the PBX exceeded
lineStatusFailedNoLicense (8), -- line cannot be opened because of missing license on the UCServer
lineStatusFailedNoECSTALicense (9) -- line cannot be opened because of missing license on the ECSTA driver
}
-- @brief Bitfield of features/functions which can be executed on a call.
-- @long
-- These bit flags describe the features/functions which can be executed on a line/call.
-- These flags are set by the UCServer.
EnumCallFeatures ::= ENUMERATED
{
eCFEATURENONE (0), -- no features/function possible
eCFEATUREANSWER (1), -- Answer a call (state eCALLSTATEOFFERING)
eCFEATUREMAKECALL (2), -- Make call is allowed. You can call MakeCall also while having a call to setup a consultation.
eCFEATURECOMPLETECALL (4), -- Complete a busy or an unanswered call for automated callback (if supported by PBX system)
eCFEATUREMERGECALLS (16), -- Merge the active call (state eCALLSTATECONNECTED) with an on hold call (state eCALLSTATEHOLD). This will disconnect the executing client from the call.
eCFEATUREHANGUP (32), -- Terminate an active call (state eCALLSTATECONNECTED) or reject an incoming offering call (state eCALLSTATEOFFERING).
eCFEATUREBLINDTRANSFER (256), -- Blind transfer an active call (state eCALLSTATECONNECTED) to another extension.
eCFEATUREREDIRECT (512), -- Redirect an incoming offering call (state eCALLSTATEOFFERING) to another extension.
eCFEATUREMAYBEPICKUPED (1024), -- The call may be picked by another line (state eCALLSTATEOFFERING).
eCFEATURESWAPHOLD (4096), -- The active call will be swapped with a call on hold on the same line. Both calls must have set this feature in order to be able to swaphold.
eCFEATUREHOLD (8192), -- Put the active call (state eCALLSTATECONNECTED) on hold (state eCALLSTATEHOLD).
eCFEATUREUNHOLD (16384), -- Retrieve the call currently on hold (state eCALLSTATEHOLD).
eCFEATURECONFERENCESTARTEU (65536), -- Start a conference (european model; you have an active call (state eCALLSTATECONNECTED) and a hold call (state eCALLSTATEHOLD)).
eCFEATURECONFERENCEADDPARTY (131072), -- Call can be added to an existing conference.
eCFEATURECONFERENCESTARTUSA (262144), -- Start a conference (american model; you have an active call and you decide you want to setup a conference)
eCFEATUREGENERATETONE (1048576), -- A way of generating tones on the call (currently not supported by UCServer)
eCFEATUREDIALDIGITS (2097152), -- Dial DTMF tones is possible
eCFEATURESTARTCALLRECORD (16777216), -- Start call recording (see UCServer Administration for details how the UCServer is supporting call recording).
eCFEATURESTOPCALLRECORD (33554432) -- Stop call recording (see UCServer Administration for details how the UCServer is supporting call recording).
}
-- @brief Bitfield describing which features/function can be executed on a line
-- @long Some of these bit flags indicate that certain functions may be called on the line. For example, if eCTILINEFEATUREMAKECALL is set, the client may call "MakeCall".
-- Other bits are indicators of a status, like eCTILINEFEATUREINVALIDPASSWORD, for example, tells the client, that the line will not work as expected, because the password validation on the PBX failed.
EnumLineFeatures ::= ENUMERATED
{
eCTILINEFEATURENONE (0), -- No actions are available. The client can only show the call states, but no other actions will be completed successfully.
eCTILINEFEATUREMAKECALL (1), -- Call can be initiated.
eCTILINEFEATUREDONOTDISTURB (2), -- "Do not disturb" can be set/modified.
eCTILINEFEATUREPICKUP (4), -- Calls from this line can be picked to other lines.
eCTILINEFEATUREBLOCKID (8), -- While "MakeCall" the CALLERID may be suppressed.
eCTILINEFEATURENOIMMEDIATEINQUIRY (16), -- This flag is set, if it is not possible to execute "MakeCall" while another call is already in active state (no automatic "put on hold" available).
eCTILINEFEATUREREMOTEOFFICE (32), -- Remote Office - Nomadic Mode - is possible
eCTILINEFEATUREINVALIDPASSWORD (64), -- Invalid Password (currently only for BroadWorks lines)
eCTILINEFEATUREREMOTEOFFICEEMULATION (128) -- This flag can be set additionally with ECTILINEFEATURE_REMOTEOFFICE, if the remote office feature will be emulated by the UCServer (call association).
}
-- @brief Different forward modes the API supports
-- @long
-- These are the different forward modes the UCServer supports for forwarding.
-- The highest value is eFORWARDBACKENDSPECIFIC (2147483648; 0x80000000) - A backend specific forwarding entry
EnumForwardModes ::= ENUMERATED
{
eFORWARDMODEUNKNOWN (0), -- 0x0000_0000 Forward unknown
eFORWARDMODEIMMEDIATE (1), -- 0x0000_0001 Forward Immediate
eFORWARDMODEBUSY (2), -- 0x0000_0002 Forward on Busy
eFORWARDMODENOANSW (4), -- 0x0000_0004 Forward on No Answer
eFORWARDMODEBUSYINT (8), -- 0x0000_0008 Forward on Busy for internal callers
eFORWARDMODEBUSYEXT (16), -- 0x0000_0010 Forward on Busy for external callers
eFORWARDMODENOANSINT (32), -- 0x0000_0020 Forward on No answer for internal callers
eFORWARDMODENOANSEXT (64), -- 0x0000_0040 Forward on No answer for external callers
eFORWARDMODEIMMINT (128), -- 0x0000_0080 Forward immediate for internal callers
eFORWARDMODEIMMEXT (256), -- 0x0000_0100 Forward immediate for external callers
eFORWARDDISC (512), -- @added 19.06.2024
-- 0x0000_0200 Forward on No client connected for internal callers (SIP)
eFORWARDDISCINT (1024), -- @added 19.06.2024
-- 0x0000_0400 Forward on No client connected for external callers (SIP)
eFORWARDDISCEXT (2048), -- @added 19.06.2024
-- 0x0000_0800 Admin Forward on No client connected (SIP)
eFORWARDADMINDISC (4096), -- @added 19.06.2024
-- 0x0000_1000 Admin Forward on No client connected for internal callers (SIP)
eFORWARDADMINDISCINT (8192), -- @added 19.06.2024
-- 0x0000_2000 Admin Forward on No client connected for external callers (SIP)
eFORWARDADMINDISCEXT (16384), -- @added 19.06.2024
-- 0x0000_4000 Backend specific forwarding entry
eFORWARDALLMODESMASK (32767) -- @added 19.06.2024
-- 0x0000_7FFF All modes
-- the following are not used as c# implementation of the snacc compiler we are using does not support them
-- eFORWARDBACKENDSPECIFIC (2147483648) - 0x8000_0000 Backend specific forwarding entry
}
-- @brief Different forward controllers the API supports
-- @long
-- These are the different forward controllers the UCServer supports for forwarding
EnumForwardController ::= ENUMERATED
{
eFORWARDCONTROLLERPBX (1), -- Forwardings take place in the PBX
eFORWARDCONTROLLERTAPISERVERADMIN (2), -- Forwardings take place in the UCServer on an administrative basis
eFORWARDCONTROLLERTAPISERVERUSER (4) -- Forwardings take place in the UCServer on an user basis
}
-- @brief Description of a line with its state, phone number etc.
-- @long
-- This structure contains the complete description of a line. With this information a client can determine the current state of the line,
-- its callable number (u8sPhoneNumber), its unique identification number (u8sLinePhoneNumber, not necessary callable), its current available features and so on.
--
-- A client can obtain this information with asnCtiEnumPhoneLines, asnCtiSnapshotPhoneLine and asnCtiLineMonitorStart.
--
-- For visualization of phone numbers in various formats, it is necessary to get the location information of a line.
-- The contents of the u8sLineLocationID field is used to fetch the necessary data from the server. At the moment there is no
-- JavaScript implementation of the needed business logic to execute the complete call number formatting rules.
AsnCtiLineInfo ::= SEQUENCE
{
-- Indicates if this is the primary (first) line of the user or not.
-- @linked AsnContactPhoneLineType
iType INTEGER,
-- The line open status of the line.
-- @linked AsnCtiLineOpenStatus
iLineOpenStatus INTEGER,
-- Contains the line identifier. This can be a phone number or (if the line is monitored by the UCServer) a LineURI beginning with 'tel:'.
-- This identifier will be used throughout the API for referencing a line. Exceptions are described if needed.
u8sLinePhoneNumber UTF8String,
-- Descriptive text if available.
u8sDescriptor UTF8String,
-- This is the phone number of the line in a dialable format, if possible beginning with "+", e.g. "+49815136856177"
u8sPhoneNumber UTF8String,
-- ID of the PBX/Line location information to fetch it from the server. With this information, it is possible to
-- transform phone numbers.
u8sLineLocationID UTF8String,
-- Current features/function available on the line.
-- @linked EnumLineFeatures
iLineFeatures INTEGER,
-- Available line forwarding PBX features/modes on this line
-- @linked AsnForwardMode
iForwardFeaturesPBX INTEGER,
-- Available line forwarding UCServer features/modes on this line.<br />
-- At the moment the UCServer can only set a time based redirect on the lines.
-- @linked AsnForwardMode
iForwardFeaturesSERVER INTEGER,
-- Available user defined line forwarding features/modes on this line.<br />
-- Currently not used.
iForwardFeaturesUSER INTEGER,
-- Additionally line fields added later in the key-value-field for backward compatibility.
-- - key "AddressNames", Type AsnString, ';' separated strings with the address names of the line.
-- - key "CTIFeatureCodes", Type AsnString, List of features codes available on the line. These can be configured in the UCServer.
-- - key "PrivateLine", Type AsnBool, Indicates, that this line is flagged as "private".
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- List of AsnCtiLineInfo
AsnCtiLineInfoList ::= SEQUENCE OF AsnCtiLineInfo
-- @brief In depth information about a call
-- @long
--
AsnCtiCallInformation ::= SEQUENCE
{
-- Contains the line identifier of the line the call is attached to.
u8sLinePhoneNumber UTF8String,
-- A GUID of the connection the call is assigned to. This is used to identify the call throughout the API (Journal, Search etc.).
u8sConnectionID UTF8String,
-- The call state described in EnumCallState.
-- @linked EnumCallState
iCallState INTEGER,
-- Type of the call described in EAsnCallType (normal, consult, callback etc.).
-- @linked EAsnCallType
iCallType INTEGER,
-- Disconnect reason described in EnumCallDisconnectedReason.
-- @linked EnumCallDisconnectedReason
iDisconnectedReason INTEGER,
-- The call features available, described in EnumCallFeatures. These features are dynamic and will change with the call state.
-- @linked EnumCallFeatures
iFeatures INTEGER,
-- The call is outbound (1, true) or inbound (0, false)
bOutbound BOOLEAN,
-- The call is an internal call (1, true) or an external call (0, false).
-- Internal calls are calls within the same location.
bInternal BOOLEAN,
-- The caller id is blocked on this call.
bCallerIDBlocked BOOLEAN,
-- The recording state of this call described in EnumCallRecordingState.
-- @linked EnumCallRecordingState
iCallRecordingState INTEGER,
-- If this is true, this call is the conference controller call
bConferenceCtlr BOOLEAN,
-- If the call is part of a conference, this field contains the conference controller ID
u8sConferenceCtlrID UTF8String,
-- Number of local line
-- In case of an incoming call, it is the called number.
-- In case of an outgoing call, it is the number of the line.
u8sLocalNumberSC UTF8String,
-- Number of remote party
u8sRemoteNumberSC UTF8String,
-- The contact data source as described in EnumRemoteContactSource. Only valid if the optional field pRemoteContact is set.
iRemoteContactSource INTEGER,
-- Description of the current project/pin rules applied to the call
projectPinRule AsnProjectPinRule,
-- Free text field (memo) for the call
u8sNote UTF8String,
-- The ID of the CallTracker, this call is part of. CallTracker gathers all calls which belong to the same call scenario. (e.g. All calls in a group call carry the same TrackerID)
u8sTrackerID UTF8String,
-- Creation time stamp of the call.
utcCallCreated AsnSystemTime,
-- Time stamp of the call when it is connected. (0 if it was never connected)
utcCallConnected AsnSystemTime,
-- Time stamp of the call when it is disconnected. (0 if the call is not yet discsonnected)
utcCallDisconnected AsnSystemTime,
-- This is true, if a hold contact has no known number.
bIsUnknownHoldContact BOOLEAN,
-- The contact data of the owner of the call.
-- In case of an incoming call, it is the contact of the called number.
-- In case of an outgoing call, it is the contact of the line owner.
pLocalContact [0] AsnNetDatabaseContact OPTIONAL,
-- If it is available, this contains the contact data of the remote party.
pRemoteContact [1] AsnNetDatabaseContact OPTIONAL,
-- If there is a call on hold, this contains its number (if the number is unknown bIsUnknownHoldContact is set)
pu8sHoldNumberSC [2] UTF8String OPTIONAL,
-- If there is a call on hold and if data is available, this contains contact data of the contact on hold.
pHoldContact [3] AsnNetDatabaseContact OPTIONAL,
-- If the call was redirected, this number indicate who has redirected it.
pu8sRedirectingNumber [5] UTF8String OPTIONAL,
-- If available and applicable, this contains the contact data of the redirecting party.
pRedirectingContact [6] AsnNetDatabaseContact OPTIONAL,
-- Additional information which were added later (for backward compatibility):
-- - Key "PBXCallID" Value AsnString - CallID of the call in the PBX
-- - Key "AddressID" Value int - The AddressID the call is currently processed on the TAPI line.
-- - Key "CallLinkageID" Value AsnString - CallLinkageID of the Call from the ECSTA (only available on PBX systems supporting it).
optionalParams [7] AsnOptionalParameters OPTIONAL,
-- If available this is the list of key/value pairs with additional information provided by clients for special use cases (so called CallData).
-- (New optional with PCE 6.1)
callDataList [8] AsnCtiCallDataList OPTIONAL,
...
}
-- List of AsnCtiCallInformation
AsnCtiCallInformationList ::= SEQUENCE OF AsnCtiCallInformation
-- @brief Remove office information object
-- @long
--
AsnRemoteOfficeState ::= SEQUENCE
{
-- Remote Office Controller (currently not used)
u8sController UTF8String,
-- remote office enabled (1) / disabled (0)
iEnabled INTEGER,
-- Destination number
u8sDestination UTF8String,
...
}
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnCtiEnumPhoneLines ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Arguments for asnCtiEnumPhoneLines.
AsnCtiEnumPhoneLinesArgument ::= SEQUENCE
{
typeofLines ENUMERATED -- @brief Which lines shall be listed for the user (own, additional lines, all).
{
userOwnLines(0), -- Own lines which the logged in user is owner of.
userMonitorLines(1), -- Own lines plus the lines, the user has special access rights for.
systemLocalLines(2), -- All lines that are local on the system.
systemGlobalLines(3) -- All local lines plus all global known lines; for future use, current its the same as systemLocalLines.
},
attachChangeNotify INTEGER, -- Request events for line add/remove changes (1) or not (0).
...
}
-- If successful this result will be returned by asnCtiEnumPhoneLines.
AsnCtiEnumPhoneLinesResult ::= SEQUENCE
{
seqLines AsnCtiLineInfoList, -- The list with line information requested.
u8sLineMonitorCrossRefID UTF8String OPTIONAL, -- LineMonitorCrossrefID for add/remove event from the server.
...
}
-- @brief Error codes in case AsnRequestError is returned.
AsnCtiEnumPhoneLinesErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiEnumPhoneLinesResult will be returned.
generalerror(1), -- The monitor point for getting events couldn't been set.
accessdenied(2) -- The logged in user has no access rights to enumerate the lines requested.
}
-- @brief Retrieve line information from the server.
-- @long
-- To get information about the lines a user has access to on the server.<br />
-- There are four possible line types, which can be requested:
-- - userOwnLines: Own lines which the logged in user is owner of.
-- - userMonitorLines: Own lines plus the lines, the user has special access rights for.
-- - systemLocalLines: All lines that are local on the system.
-- - systemGlobalLines: All local lines plus all global known lines; for future use, current its the same as systemLocalLines.
--
-- If attachChangeNotify is set to 1, the server will send asnCtiNotifyLineAddRemove events, if lines were added or removed for the given scope (or line type).
--
-- The monitoring of the line lists can only be stopped by disconnecting from the server.
asnCtiEnumPhoneLines OPERATION
ARGUMENT arg AsnCtiEnumPhoneLinesArgument
RESULT res AsnCtiEnumPhoneLinesResult
ERRORS {AsnRequestError}
::= 1260
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnCtiSnapshotPhoneLine ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Argument for asnCtiSnapshotPhoneLine
AsnCtiSnapshotPhoneLineArgument ::= SEQUENCE
{
u8sLinePhoneNumber UTF8String, -- Identifier of the line
...
}
-- @brief If asnCtiSnapshotPhoneLine is executed successful, AsnCtiSnapshotPhoneLineResult will be returned.
AsnCtiSnapshotPhoneLineResult ::= SEQUENCE
{
-- Current line information
lineInfo AsnCtiLineInfo,
-- Current calls on the line
seqCalls AsnCtiCallInformationList,
-- Do Not disturb is set (1) oder not (0)
iDoNotDisturb INTEGER,
-- Current list of forwardings set on the line
seqLineForwards AsnLineForwards,
-- Current state of remote office feature
remoteOfficeState AsnRemoteOfficeState,
-- Optionals
-- - Key "InvalidPasswordState" Value AsnInt (1) oder (0)
-- - Key "InvalidPasswordUser" Value String
-- - Key "BusyOnBusy" Value AsnInt (1) oder (0)
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Error codes in case AsnRequestError is returned by asnCtiSnapshotPhoneLine
AsnCtiSnapshotPhoneLineErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiEnumPhoneLinesResult will be returned.
generalerror(1), -- General error; not used in this case.
accessdenied(2), -- The user has no access rights to perform asnCtiSnapshotPhoneLine.
invalidline(3) -- The line given in the argument is not known.
}
-- @brief Call this function to get the current status of a line.
-- @long
-- With asnCtiSnapshotPhoneLine a client can retrieve the current status of a line inclusive calls, forwardings, DnD and remote office states.<br />
--
-- Attention: Do not poll with this function get changes of the line state. Use asnCtiLineMonitorStart instead, to be notified if something on the is changing.
-- asnCtiEnumPhoneLines is not necessary be called before asnCtiLineMonitorStart.
asnCtiSnapshotPhoneLine OPERATION
ARGUMENT arg AsnCtiSnapshotPhoneLineArgument
RESULT res AsnCtiSnapshotPhoneLineResult
-- @linked AsnCtiSnapshotPhoneLineErrorEnum
ERRORS {AsnRequestError}
::= 1261
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnCtiLineMonitorStart ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Arguments for asnCtiLineMonitorStart
AsnCtiLineMonitorStartArgument ::= SEQUENCE
{
u8sLinePhoneNumber UTF8String, -- Identifier of the line
...
}
-- If asnCtiLineMonitorStart is executed successful, AsnCtiLineMonitorStartResult will be returned.
AsnCtiLineMonitorStartResult ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID to identify the corresponding events after calling asnCtiLineMonitorStart.
lineInfo AsnCtiLineInfo, -- Current line state.
seqCalls AsnCtiCallInformationList, -- Current calls on the line.
iDoNotDisturb INTEGER, -- Current state of DoNotDisturb is set (1) or not (0).
seqLineForwards AsnLineForwards, -- Current list of forwarding settings on the line.
remoteOfficeState AsnRemoteOfficeState, -- Current state of remote office feature.
-- Optionals
-- - Key "InvalidPasswordState" Value AsnInt (1) oder (0)
-- - Key "InvalidPasswordUser" Value String
-- - Key "BusyOnBusy" Value AsnInt (1) oder (0)
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Error codes in case AsnRequestError is returned by asnCtiLineMonitorStart
AsnCtiLineMonitorStartErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiLineMonitorStartResult will be returned.
generalerror(1), -- General error; not used in this case.
accessdenied(2), -- The user has no access rights to perform asnCtiLineMonitorStart.
invalidline(3) -- The line given in the argument is not known.
}
-- @brief Gets the current state of a line and attach for call and change notifies on this line.
-- @long
-- In order receive events about calls and line state changes a client can call asnCtiLineMonitorStart. The result will contain a current snapshot of the line, the calls and additional information.
-- To stop these events call asnCtiLineMonitorStop.
--
-- Attention: To get this information just once without further events, call asnCtiSnapshotPhoneLine instead.
asnCtiLineMonitorStart OPERATION
ARGUMENT arg AsnCtiLineMonitorStartArgument
RESULT res AsnCtiLineMonitorStartResult
-- @linked AsnCtiLineMonitorStartErrorEnum
ERRORS {AsnRequestError}
::= 1262
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~ asnCtiLineMonitorStop ~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Arguments for asnCtiLineMonitorStop
AsnCtiLineMonitorStopArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossRefID the client got from the corresponding asnCtiLineMonitorStart.
...
}
-- @brief Result of asnCtiLineMonitorStop
AsnCtiLineMonitorStopResult ::= SEQUENCE
{
...
}
-- @brief Error codes in case AsnRequestError is returned by asnCtiLineMonitorStop
AsnCtiLineMonitorStopErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiLineMonitorStopResult will be returned.
generalerror(1), -- General error; not used in this case.
accessdenied(2), -- The user has no access rights to perform asnCtiLineMonitorStop.
invalidline(3) -- The line given in the argument is not known.
}
-- @brief Stops the call and state change events on a line.
-- @long
-- A client can stop events for state changes and calls on a line with a call to asnCtiLineMonitorStop with the corresponding monitor cross reference ID.
asnCtiLineMonitorStop OPERATION
ARGUMENT arg AsnCtiLineMonitorStopArgument
RESULT res AsnCtiLineMonitorStopResult
-- @linked AsnCtiLineMonitorStopErrorEnum
ERRORS {AsnRequestError}
::= 1263
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~ asnCtiLineSetDoNotDisturb ~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Argument for asnCtiLineSetDoNotDisturb (DnD)
AsnCtiLineSetDoNotDisturbArgument ::= SEQUENCE
{
u8sLinePhoneNumber UTF8String, -- Identifier of the line
bDoNotDisturb BOOLEAN, -- Set DnD (1, true) or remove it (0, false)
...
}
-- @brief Result of asnCtiLineSetDoNotDisturb
AsnCtiLineSetDoNotDisturbResult ::= SEQUENCE
{
...
}
-- @brief Error codes in case AsnRequestError is returned by asnCtiLineSetDoNotDisturb
AsnCtiLineSetDoNotDisturbErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiLineSetDoNotDisturbResult will be returned.
generalerror(1), -- General error; not used in this case.
accessdenied(2), -- The user has no access rights to perform asnCtiLineSetDoNotDisturb.
invalidline(3) -- The line given in the argument is not known.
}
-- @brief Set or remove "Do not Disturb" feature on the a line.
-- @long
-- Most PBX support "Do not Disturb" (DnD) on phone lines, so the user can prevent being disturbed by phone calls by setting this feature on his phone line.<br />
-- A Client can call this function to set or remove this feature from the line. See AsnCtiLineSetDoNotDisturbArgument for the arguments needed.
asnCtiLineSetDoNotDisturb OPERATION
ARGUMENT arg AsnCtiLineSetDoNotDisturbArgument
RESULT res AsnCtiLineSetDoNotDisturbResult
ERRORS {AsnRequestError}
::= 1264
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~ asnCtiLineSetRemoteOffice ~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Argument for asnCtiLineSetRemoteOffice
AsnCtiLineSetRemoteOfficeArgument ::= SEQUENCE
{
u8sLinePhoneNumber UTF8String, -- Identifier of the line
remoteOfficeState AsnRemoteOfficeState, -- The state to set. See AsnRemoteOfficeState for more details.
...
}
-- @brief Result of asnCtiLineSetRemoteOffice<br />
-- If the client receives the Result, the operation was successful.
AsnCtiLineSetRemoteOfficeResult ::= SEQUENCE
{
...
}
-- @brief Error codes in case AsnRequestError is returned by asnCtiLineSetRemoteOffice
AsnCtiLineSetRemoteOfficeErrorEnum ::= ENUMERATED
{
success(0), -- There was no error; for completeness only. If the call was successful, AsnCtiLineSetRemoteOfficeResult will be returned.
generalerror(1), -- General error; not used in this case.
accessdenied(2), -- The user has no access rights to perform asnCtiLineSetRemoteOffice.
invalidline(3) -- The line given in the argument is not known.
}
-- @brief Changes the state of the "Remote Office" feature on a line.
-- @long
-- "Remote office" is a feature, where a user can virtually attach his mobile phone to his line on the PBX. So every incoming call to the line on the PBX will be automatically forwarded to the mobile phone.
-- Additionally the outgoing calls will be forwarded to the mobile too, if either the PBX itself supports this feature or the UCServer can emulate it.
asnCtiLineSetRemoteOffice OPERATION
ARGUMENT arg AsnCtiLineSetRemoteOfficeArgument
RESULT res AsnCtiLineSetRemoteOfficeResult
ERRORS {AsnRequestError}
::= 1273
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~ asnCtiNotifyLineInfoChanged ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineInfoChanged.
AsnCtiNotifyLineInfoChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
lineInfo AsnCtiLineInfo, -- The new line information.
...
}
-- @brief Event from the server if a line changed its status or has been added or removed.
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
asnCtiNotifyLineInfoChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineInfoChangedArgument
::= 1280
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~ asnCtiNotifyLineDoNotDisturbChanged ~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineDoNotDisturbChanged
AsnCtiNotifyLineDoNotDisturbChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
iDoNotDisturb INTEGER, -- Current status of DnD - (1) set, (0) not set.
-- - Key "BusyOnBusy" Value AsnInt (1) oder (0)
optionalParams AsnOptionalParameters OPTIONAL,
...
}
-- @brief Event from the server if a line changed its DnD status.
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
asnCtiNotifyLineDoNotDisturbChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineDoNotDisturbChangedArgument
::= 1281
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~ asnCtiNotifyLineRemoteOfficeChanged ~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineRemoteOfficeChanged
AsnCtiNotifyLineRemoteOfficeChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
remoteOfficeState AsnRemoteOfficeState, -- The new remote office state of the line.
...
}
-- @brief Event from the server if a line changed its remote office state.
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
asnCtiNotifyLineRemoteOfficeChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineRemoteOfficeChangedArgument
::= 1292
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~ asnCtiNotifyMonitorStopped ~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyMonitorStopped
AsnCtiNotifyMonitorStoppedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
...
}
-- @brief Event from the server that a monitoring point was closed due to a configuration change
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
-- This event is send to the client if a monitor was closed due to a configuation change on the server
-- The client shall remove the monitor point with u8sMonitorCrossRefID on the client side.
asnCtiNotifyMonitorStopped OPERATION
ARGUMENT arg AsnCtiNotifyMonitorStoppedArgument
::= 1294
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~ asnCtiNotifyLineSortOrderChanged ~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineSortOrderChanged
AsnCtiNotifyLineSortOrderChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLineURISortOrder UTF8StringList, -- Line sort order based on the user configuration, CTI/SIP LineURIs, AV LineURI, additional lines (not server configured line uris like mobile lines)
...
}
-- @brief Event from the server that a monitoring point has changed position from the configurative view
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
-- This event is send to the client if the sort order of the lines has changed (line added, config lines have swapped positions, (no event is dispatched if a line was removed))
-- This event is only dispatched for the userOwnLines (see AsnCtiEnumPhoneLinesArgument)
asnCtiNotifyLineSortOrderChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineSortOrderChangedArgument
::= 1295
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~ asnCtiNotifyLineForwardingChanged ~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineForwardingChanged
AsnCtiNotifyLineForwardingChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
seqLineForwards AsnLineForwards, -- New forwarding settings on the line.
...
}
-- @brief Event from the server if a line changed its forwardings.
-- In order to get these events the line must be monitored with asnCtiLineMonitorStart.
asnCtiNotifyLineForwardingChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineForwardingChangedArgument
::= 1282
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~ asnCtiNotifyLineCallInformationChanged ~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Possible reasons for a call information changed event.
AsnCtiCallInfoChangedReason ::= ENUMERATED
{
reasonCallOffering(0), -- New incoming call.
reasonCallDialing(1), -- New outgoing call, dialing.
reasonCallRingback(2), -- Outgoing call is now ringing.
reasonCallConnected(3), -- Call is now connected.
reasonCallConferenced(4), -- Call is now member of a conference.
reasonCallHold(5), -- Call is now on hold.
reasonRemotePartyChanged(6), -- The call's remote party has changed.
reasonRemoteContactChanged(7), -- The call's remote party contact data has changed.
reasonProjectOrPrivateChanged(8), -- The call's project settings or private state has changed.
reasonCallMemoChanged(9), -- The call's note has changed.
reasonCallBusy(10), -- The remote party of an outgoing call is busy.
reasonCallDisconnect(11), -- The call has been disconnected on the other side.
reasonCallDestroyed(12), -- The call has been destroyed - local line is now idle.
reasonHoldContactChanged(13), -- The call's hold contact data has been changed.
reasonOther(14), -- Other reasons, not specified.
reasonCallDataChanged(15), -- The call information has been updated as a whole. No specified reason.
reasonConnectionToPhoneDestroyed(16) -- The connection to the phone has been destroyed, therefore the active call has been updated. (Bluetooth disconnected)
}
-- @brief Event arguments of asnCtiNotifyLineCallInformationChanged.
AsnCtiNotifyLineCallInformationChangedArgument ::= SEQUENCE
{
u8sMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
-- Reason for the event. See AsnCtiCallInfoChangedReason fro details.
-- @linked AsnCtiCallInfoChangedReason
reason INTEGER,
callinformation AsnCtiCallInformation, -- (Possible) reduced version a call information according to the reason.
...
}
-- @brief Event from the server if a call changed its state.
-- In order to get this event the line must be monitored with asnCtiLineMonitorStart.
-- @long
-- Calls are changing their state and additional information during their live time. This event reflects the new status<br />
asnCtiNotifyLineCallInformationChanged OPERATION
ARGUMENT arg AsnCtiNotifyLineCallInformationChangedArgument
::= 1283
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~ asnCtiNotifyLineAddRemove ~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyLineAddRemove.
AsnCtiNotifyLineAddRemoveArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossRefID the client got from the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
addremove ENUMERATED -- @brief Line was added (0) or removed (1).
{
added(0), -- Line was added.
removed(1) -- Line was removed.
},
lineInfo AsnCtiLineInfo, -- The current line information set.
...
}
-- @brief Event from the server if asnCtiEnumPhoneLines was called to monitor the lines of the user.
-- In order to get this event the line must be monitored via asnCtiEnumPhoneLines.
-- @long
-- With asnCtiEnumPhoneLines the client defined, which sort of lines it wants to monitor.
-- If there are changes to the corresponding line list, this event will reflect the changes to the client.<br />
asnCtiNotifyLineAddRemove OPERATION
ARGUMENT arg AsnCtiNotifyLineAddRemoveArgument
::= 1284
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~ asnCtiNotifyMakeCallResult ~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyMakeCallResult
AsnCtiNotifyMakeCallResultArgument ::= SEQUENCE
{
u8sLinePhoneNumber UTF8String, -- Line identifier on which the make call was performed.
u8sConnectionID UTF8String, -- Unique identifier of the call (ConnectionID).
success INTEGER, -- If make call was successfully executed on TAPI, this is (1), (0) otherwise.
...
}
-- @brief Event from the server with the result of an asynchronous make call operation on the server.
-- In order to get this event the client must have called asnCtiMakeCall first.
-- @long
-- Make call is a asynchronous process in the UCServer. So the final result will be send as an event from the server.
-- This event contains the result the PBX provided.<br />
asnCtiNotifyMakeCallResult OPERATION
ARGUMENT arg AsnCtiNotifyMakeCallResultArgument
::= 1285
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~ asnCtiNotifyConferenceCreated ~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyConferenceCreated
AsnCtiNotifyConferenceCreatedArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
conferenceControllerCallInfo AsnCtiCallInformation, -- Information about the conference controller call. See AsnCtiCallInformation for details.
conferenceMemberCallInfoList AsnCtiCallInformationList, -- Information about the current participating calls in this conference.
...
}
-- @brief Event from the server if there is a conference established on a line.
-- In order to get these events the line must be monitored via asnCtiLineMonitorStart.
-- @long
-- This event will inform the client, if a conference was established and with whom.<br />
-- In this way, the client gets detailed information about the participants and the conference controller.<br />
asnCtiNotifyConferenceCreated OPERATION
ARGUMENT arg AsnCtiNotifyConferenceCreatedArgument
::= 1286
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~ asnCtiNotifyConferenceDestroyed ~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyConferenceDestroyed
AsnCtiNotifyConferenceDestroyedArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
conferenceControllerCallInfo AsnCtiCallInformation, -- The call information of the conference controller.
conferenceMemberCallInfoList AsnCtiCallInformationList, -- The call information of the other participants.
...
}
-- @brief Event from the server if a conference is closed/destroyed.
-- In order to get these events the line must be monitored via asnCtiLineMonitorStart.
asnCtiNotifyConferenceDestroyed OPERATION
ARGUMENT arg AsnCtiNotifyConferenceDestroyedArgument
::= 1287
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~ asnCtiNotifyConferencePartyAdded ~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyConferencePartyAdded
AsnCtiNotifyConferencePartyAddedArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
conferenceControllerCallInfo AsnCtiCallInformation, -- Call information of the conference controller.
conferenceMemberCallInfo AsnCtiCallInformation, -- Call information of the added new conference participant.
...
}
-- @brief Event from the server when a new participant was added to a conference.
-- In order to get these events the line must be monitored via asnCtiLineMonitorStart.
asnCtiNotifyConferencePartyAdded OPERATION
ARGUMENT arg AsnCtiNotifyConferencePartyAddedArgument
::= 1288
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~ asnCtiNotifyConferencePartyRemoved ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Event arguments of asnCtiNotifyConferencePartyRemoved
AsnCtiNotifyConferencePartyRemovedArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
conferenceControllerCallInfo AsnCtiCallInformation, -- Call information of the conference controller.
conferenceMemberCallInfo AsnCtiCallInformation, -- Call information of the removed conference participant.
...
}
-- @brief Event from the server when a conference participant was removed.
-- In order to get these events the line must be monitored via asnCtiLineMonitorStart.
asnCtiNotifyConferencePartyRemoved OPERATION
ARGUMENT arg AsnCtiNotifyConferencePartyRemovedArgument
::= 1289
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~ asnCtiNotifyLineCallFeaturesChanged ~~~~~~~~~~~~~~~~~~
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- @brief Helper to combine ConnectionID and call features of a call. See asnCtiNotifyLineCallFeaturesChanged.
AsnCtiCallFeature ::= SEQUENCE
{
u8sConnectionID UTF8String, -- Call identifier of the call which features have changed.
-- Bit field of the current features of the call.
-- @linked EnumCallFeatures
iFeatures INTEGER,
...
}
-- @brief List of AsnCtiCallFeature objects.
AsnCtiCallFeaturesList ::= SEQUENCE OF AsnCtiCallFeature
-- @brief Event arguments of asnCtiNotifyLineCallFeaturesChanged.
AsnCtiNotifyLineCallFeaturesChangedArgument ::= SEQUENCE
{
u8sLineMonitorCrossRefID UTF8String, -- CrossrefID for the corresponding asnCtiLineMonitorStart.
u8sLinePhoneNumber UTF8String, -- Line identifier for the line where the changes happened.
callFeaturesList AsnCtiCallFeaturesList, -- List of call with their current features which have changed.
...
}
-- @brief Event from the server when call features have changed.
-- In order to get these events the line must be monitored via asnCtiLineMonitorStart.
-- @long
-- If the state of a call changes or other events on a call happened its features are most likely change too.