ysyt-agent-sdk 1.0.49 → 1.0.51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,25 @@
1
+ import { SIPClient } from '@/core/sip-client';
2
+ declare class CallApi {
3
+ sipClient: SIPClient | null;
4
+ constructor(sipClient: SIPClient);
5
+ roleMute(): void;
6
+ holdCall(): void;
7
+ unholdCall(): void;
8
+ sendDTMF(tone: string): void;
9
+ cancelCall(): void;
10
+ consultCall(agentNo: string): Promise<void>;
11
+ answerCall(): Promise<void>;
12
+ rejectInCall(): Promise<void>;
13
+ makeCall(number: string): Promise<void>;
14
+ rejectOutCall(): Promise<void>;
15
+ hangup(): Promise<void>;
16
+ mute(): void;
17
+ unmute(): void;
18
+ consultTransfer(): void;
19
+ satisfactionEvaluation(): void;
20
+ startConference(): void;
21
+ consultRetrieve(): void;
22
+ transferAgent(agentNo: string): Promise<void>;
23
+ transferOutline(number: string): Promise<void>;
24
+ }
25
+ export default CallApi;
@@ -10,6 +10,7 @@ import './components/my-select';
10
10
  import './components/my-phone-dialer';
11
11
  import './components/my-modal-wrapper';
12
12
  import './components/my-icon-popup';
13
+ import CallApi from '@/core/call-api';
13
14
  interface Props {
14
15
  container: HTMLElement;
15
16
  rttHTML?: HTMLElement;
@@ -17,6 +18,7 @@ interface Props {
17
18
  }
18
19
  export declare class PhoneView {
19
20
  private VoiceSDKInstance;
21
+ private callApi;
20
22
  private readonly container;
21
23
  private readonly rttHTML?;
22
24
  private apiClient;
@@ -26,9 +28,10 @@ export declare class PhoneView {
26
28
  private modalRoot;
27
29
  private agentStateData;
28
30
  private default_device;
29
- private inCallAudio;
30
- private waitAudio;
31
- constructor({ container, rttHTML, statusParams }: Props, VoiceSDKInstance: YSYTAgentSdk);
31
+ private readonly inCallAudio;
32
+ private readonly waitAudio;
33
+ transferType: string;
34
+ constructor({ container, rttHTML, statusParams }: Props, VoiceSDKInstance: YSYTAgentSdk, callApi: CallApi);
32
35
  private play;
33
36
  private playFromStart;
34
37
  private pause;
@@ -59,6 +62,7 @@ export declare class PhoneView {
59
62
  private renderAnswer;
60
63
  private renderReject;
61
64
  private renderConsultModalToBody;
65
+ private renderTransferModalToBody;
62
66
  private getActionConfigs;
63
67
  private render;
64
68
  private renderRtt;
@@ -1,5 +1,4 @@
1
- import type { AgentDataType, AgentItemType, AgentStateDataType, DeviceType, InitInfoType, RequestBodyType, StateType } from './types';
2
- import type { Events } from '@/store/event-center';
1
+ import type { AgentDataType, AgentItemType, AgentStateDataType, DeviceType, InitInfoType, RequestBodyType, StateType, Events } from './types';
3
2
  export type * from './types';
4
3
  export * from './types/Enum';
5
4
  declare class YSYTAgentSdk {
@@ -36,6 +35,8 @@ declare class YSYTAgentSdk {
36
35
  unmute: () => void;
37
36
  satisfactionEvaluation: () => void;
38
37
  startConference: () => void;
38
+ transferAgent: (agent_no: string) => Promise<void>;
39
+ transferOutline: (number: string) => Promise<void>;
39
40
  };
40
41
  get agent_api(): {
41
42
  changeDevice: (params: RequestBodyType<{
@@ -12,6 +12,7 @@ declare class CallInfoStore extends ReactiveStore<CallInfoType> {
12
12
  updateIncomingIsAnswer(incomingIsAnswer: boolean): void;
13
13
  updateAnswerDevice(answerDevice: CallInfoType['answerDevice']): void;
14
14
  updateIsMeeting(isMeeting: boolean): void;
15
+ updateTransferIsAnswer(transferIsAnswer: boolean): void;
15
16
  reset(): void;
16
17
  getCallInfo(): CallInfoType;
17
18
  get<K extends keyof CallInfoType>(key: K): CallInfoType[K];
@@ -1,63 +1,7 @@
1
- import { CallSipCallEvent, WebRtcCallSipEventEnum, EventName } from '@/types/Enum';
2
- import { AgentStateType, ConsultInComingType, DTMFDataType, NotificationClickType, RtcErrorDataType, RtcEventDataType, RtcEventDataTypes } from '@/types/event';
3
- import { ActionType, DeviceType } from '@/types';
4
- type EventObject<T> = {
5
- event: keyof Events;
6
- data: T;
7
- };
8
- export interface Events {
9
- [EventName.AGENT_INIT_SUCCESS]: unknown;
10
- [WebRtcCallSipEventEnum.WEB_RTC_CONNECTING]: unknown;
11
- [WebRtcCallSipEventEnum.WEB_RTC_CONNECTED]: unknown;
12
- [WebRtcCallSipEventEnum.WEB_RTC_DISCONNECTING]: unknown;
13
- [WebRtcCallSipEventEnum.WEB_RTC_DISCONNECTED]: unknown;
14
- [WebRtcCallSipEventEnum.WEB_RTC_REGISTERED]: unknown;
15
- [WebRtcCallSipEventEnum.WEB_RTC_UNREGISTERED]: unknown;
16
- [WebRtcCallSipEventEnum.WEB_RTC_TERMINATED]: unknown;
17
- [WebRtcCallSipEventEnum.WEB_RTC_REGISTER_FAILED]: EventObject<RtcEventDataType<any>['data']>;
18
- [WebRtcCallSipEventEnum.WEB_RTC_ANSWER_FAILED]: EventObject<RtcEventDataType<RtcErrorDataType>['data']>;
19
- [WebRtcCallSipEventEnum.WEB_RTC_SEND_DTMF]: EventObject<RtcEventDataType<DTMFDataType>['data']>;
20
- [EventName.EVENT_ALL]: EventObject<RtcEventDataType<RtcEventDataTypes>['data']>;
21
- [CallSipCallEvent.OUT_INCOMING_CALL]: unknown;
22
- [CallSipCallEvent.OUT_SUCCESS]: unknown;
23
- [CallSipCallEvent.OUT_FAILED]: string;
24
- [CallSipCallEvent.MUTE_SUCCESS]: unknown;
25
- [CallSipCallEvent.MUTE_FAILED]: string;
26
- [CallSipCallEvent.UNMUTE_SUCCESS]: unknown;
27
- [CallSipCallEvent.UNMUTE_FAILED]: string;
28
- [CallSipCallEvent.CONSULT_TRANSFER_SUCCESS]: unknown;
29
- [CallSipCallEvent.CONSULT_TRANSFER_FAILED]: string;
30
- [CallSipCallEvent.CONSULT_TRANSFER_OFF_HOOK]: unknown;
31
- [CallSipCallEvent.CONSULT_RINGING]: unknown;
32
- [CallSipCallEvent.CONSULT_OFF_HOOK]: unknown;
33
- [CallSipCallEvent.CONSULT_FAILED]: {
34
- custom_reason: string;
35
- };
36
- [EventName.NOTIFICATION_CLICK]: NotificationClickType;
37
- [CallSipCallEvent.CONSULT_INCOMING]: RtcEventDataType<ConsultInComingType>['data'];
38
- [CallSipCallEvent.CONSULT_CALL_IN_SUCCESS]: unknown;
39
- [CallSipCallEvent.CONSULT_RETURN_CALL_SUCCESS]: unknown;
40
- [CallSipCallEvent.AGENT_STATE]: AgentStateType;
41
- [EventName.UPDATE_ANSWER_DEVICE]: DeviceType;
42
- [EventName.PHONE_BAR_OPERATION]: Array<ActionType>;
43
- [CallSipCallEvent.INCOMING_CALL]: {
44
- customer_phone: string;
45
- };
46
- [CallSipCallEvent.INCOMING_CALL_OFF_HOOK]: unknown;
47
- [CallSipCallEvent.INCOMING_CALL_END]: unknown;
48
- [CallSipCallEvent.SATISFACTION_EVALUATION_SUCCESS]: unknown;
49
- [CallSipCallEvent.SATISFACTION_EVALUATION_FAILED]: string;
50
- [CallSipCallEvent.CONSULT_THREE_WAY_SUCCESS]: unknown;
51
- [CallSipCallEvent.CONSULT_THREE_WAY_FAILED]: {
52
- conf_name: string;
53
- };
54
- [key: string]: unknown;
55
- [key: symbol]: unknown;
56
- }
1
+ import type { Events } from '@/types';
57
2
  export declare const EventCenter: {
58
3
  on<K extends keyof Events>(event: K, handler: (data: Events[K]) => void): /*elided*/ any;
59
4
  off<K extends keyof Events>(event: K, handler: (data: Events[K]) => void): void;
60
5
  emit<K extends keyof Events>(event: K, data?: Events[K]): void;
61
6
  clearAllListeners(): void;
62
7
  };
63
- export {};
@@ -8,7 +8,8 @@ export declare enum DirectionEnum {
8
8
  OUTGOING = "outgoing",
9
9
  INCOMING = "incoming",
10
10
  CONSULT = "consult",
11
- MEETING = "meeting"
11
+ MEETING = "meeting",
12
+ TRANSFER = "transfer"
12
13
  }
13
14
  export declare enum WebRtcCallSipEventEnum {
14
15
  WEB_RTC_CONNECTING = "connecting",
@@ -57,7 +58,12 @@ export declare enum CallSipCallEvent {
57
58
  SATISFACTION_EVALUATION_FAILED = "satisfaction_evaluation_failed",
58
59
  CONSULT_THREE_WAY_SUCCESS = "consult_three_way_success",
59
60
  CONSULT_THREE_WAY_FAILED = "consult_three_way_failed",
60
- THREE_WAY_OUR_SIDE_HANGUP = "three_way_our_side_hangup"
61
+ THREE_WAY_OUR_SIDE_HANGUP = "three_way_our_side_hangup",
62
+ TRANSFER_FAILED = "transfer_failed",
63
+ TRANSFER_PROGRESS = "transfer_progress",
64
+ TRANSFER_INCOMING_CALL = "transfer_incoming_call",
65
+ TRANSFER_OFF_HOOK = "transfer_off_hook",
66
+ TRANSFER_END = "transfer_end"
61
67
  }
62
68
  export declare enum WebsocketTypeEnum {
63
69
  OUT_CALL = 100,
@@ -86,7 +92,11 @@ export declare enum WebsocketTypeEnum {
86
92
  INCOMING_CALL_END = 121,
87
93
  SATISFACTION_EVALUATION = 122,
88
94
  CONSULT_THREE_WAY = 123,
89
- CONSULT_THREE_WAY_RESULT = 124
95
+ CONSULT_THREE_WAY_RESULT = 124,
96
+ TRANSFER = 127,
97
+ TRANSFER_FAILED = 128,
98
+ TRANSFER_INCOMING_CALL = 129,
99
+ TRANSFER_OFF_HOOK = 130
90
100
  }
91
101
  export declare enum EventName {
92
102
  EVENT_ALL = "event_all",
@@ -103,5 +113,7 @@ export declare enum DisplayTextEnum {
103
113
  CONSULTING = "\u6B63\u5728\u54A8\u8BE2",
104
114
  CONSULT_CALL_IN = "\u54A8\u8BE2\u6765\u7535",
105
115
  INCOMING_CALL = "\u5BA2\u6237\u6765\u7535",
106
- MEETING = "\u4F1A\u8BAE\u4E2D"
116
+ MEETING = "\u4F1A\u8BAE\u4E2D",
117
+ TRANSFERRING = "\u8F6C\u63A5\u4E2D",
118
+ TRANSFER_INCOMING_CALL = "\u8F6C\u63A5\u6765\u7535"
107
119
  }
@@ -1,4 +1,5 @@
1
- import type { AgentStatus, DirectionEnum } from './Enum';
1
+ import { AgentStatus, CallSipCallEvent, DirectionEnum, EventName, WebRtcCallSipEventEnum } from './Enum';
2
+ import { AgentStateType, ConsultInComingType, DTMFDataType, NotificationClickType, RtcErrorDataType, RtcEventDataType, RtcEventDataTypes } from '@/types/event';
2
3
  export interface ResponseCodeType<T> {
3
4
  code: number;
4
5
  msg: string;
@@ -20,11 +21,12 @@ export type RttObjectType = {
20
21
  };
21
22
  export interface CallInfoType {
22
23
  isCalling: boolean;
23
- direction: DirectionEnum.OUTGOING | DirectionEnum.INCOMING | DirectionEnum.CONSULT | DirectionEnum.MEETING | null;
24
+ direction: DirectionEnum.OUTGOING | DirectionEnum.INCOMING | DirectionEnum.CONSULT | DirectionEnum.MEETING | DirectionEnum.TRANSFER | null;
24
25
  outCallIsAnswer: boolean;
25
26
  consultIsAnswer: boolean;
26
27
  incomingIsAnswer: boolean;
27
28
  isMeeting: boolean;
29
+ transferIsAnswer: boolean;
28
30
  isHold: boolean;
29
31
  displayText: string;
30
32
  isMuted: boolean;
@@ -127,4 +129,57 @@ export interface AgentDataType {
127
129
  state_name: string;
128
130
  };
129
131
  }
130
- export type * from './event';
132
+ type EventObject<T> = {
133
+ event: keyof Events;
134
+ data: T;
135
+ };
136
+ export interface Events {
137
+ [EventName.AGENT_INIT_SUCCESS]: unknown;
138
+ [WebRtcCallSipEventEnum.WEB_RTC_CONNECTING]: unknown;
139
+ [WebRtcCallSipEventEnum.WEB_RTC_CONNECTED]: unknown;
140
+ [WebRtcCallSipEventEnum.WEB_RTC_DISCONNECTING]: unknown;
141
+ [WebRtcCallSipEventEnum.WEB_RTC_DISCONNECTED]: unknown;
142
+ [WebRtcCallSipEventEnum.WEB_RTC_REGISTERED]: unknown;
143
+ [WebRtcCallSipEventEnum.WEB_RTC_UNREGISTERED]: unknown;
144
+ [WebRtcCallSipEventEnum.WEB_RTC_TERMINATED]: unknown;
145
+ [WebRtcCallSipEventEnum.WEB_RTC_REGISTER_FAILED]: EventObject<RtcEventDataType<any>['data']>;
146
+ [WebRtcCallSipEventEnum.WEB_RTC_ANSWER_FAILED]: EventObject<RtcEventDataType<RtcErrorDataType>['data']>;
147
+ [WebRtcCallSipEventEnum.WEB_RTC_SEND_DTMF]: EventObject<RtcEventDataType<DTMFDataType>['data']>;
148
+ [EventName.EVENT_ALL]: EventObject<RtcEventDataType<RtcEventDataTypes>['data']>;
149
+ [CallSipCallEvent.OUT_INCOMING_CALL]: unknown;
150
+ [CallSipCallEvent.OUT_SUCCESS]: unknown;
151
+ [CallSipCallEvent.OUT_FAILED]: string;
152
+ [CallSipCallEvent.MUTE_SUCCESS]: unknown;
153
+ [CallSipCallEvent.MUTE_FAILED]: string;
154
+ [CallSipCallEvent.UNMUTE_SUCCESS]: unknown;
155
+ [CallSipCallEvent.UNMUTE_FAILED]: string;
156
+ [CallSipCallEvent.CONSULT_TRANSFER_SUCCESS]: unknown;
157
+ [CallSipCallEvent.CONSULT_TRANSFER_FAILED]: string;
158
+ [CallSipCallEvent.CONSULT_TRANSFER_OFF_HOOK]: unknown;
159
+ [CallSipCallEvent.CONSULT_RINGING]: unknown;
160
+ [CallSipCallEvent.CONSULT_OFF_HOOK]: unknown;
161
+ [CallSipCallEvent.CONSULT_FAILED]: {
162
+ custom_reason: string;
163
+ };
164
+ [EventName.NOTIFICATION_CLICK]: NotificationClickType;
165
+ [CallSipCallEvent.CONSULT_INCOMING]: RtcEventDataType<ConsultInComingType>['data'];
166
+ [CallSipCallEvent.CONSULT_CALL_IN_SUCCESS]: unknown;
167
+ [CallSipCallEvent.CONSULT_RETURN_CALL_SUCCESS]: unknown;
168
+ [CallSipCallEvent.AGENT_STATE]: AgentStateType;
169
+ [EventName.UPDATE_ANSWER_DEVICE]: DeviceType;
170
+ [EventName.PHONE_BAR_OPERATION]: Array<ActionType>;
171
+ [CallSipCallEvent.INCOMING_CALL]: {
172
+ customer_phone: string;
173
+ };
174
+ [CallSipCallEvent.INCOMING_CALL_OFF_HOOK]: unknown;
175
+ [CallSipCallEvent.INCOMING_CALL_END]: unknown;
176
+ [CallSipCallEvent.SATISFACTION_EVALUATION_SUCCESS]: unknown;
177
+ [CallSipCallEvent.SATISFACTION_EVALUATION_FAILED]: string;
178
+ [CallSipCallEvent.CONSULT_THREE_WAY_SUCCESS]: unknown;
179
+ [CallSipCallEvent.CONSULT_THREE_WAY_FAILED]: {
180
+ conf_name: string;
181
+ };
182
+ [key: string]: unknown;
183
+ [key: symbol]: unknown;
184
+ }
185
+ export {};