@babelforce/babelconnect-sdk 0.12.0 → 0.14.0
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.
- package/dist/embed/iife-entry.d.ts +1 -1
- package/dist/embed/iife-entry.js +1 -1
- package/dist/embed/index.d.ts +8 -8
- package/dist/embed/index.js +1 -1
- package/dist/gen/babelconnect/v1/babelconnect_connect.d.ts +18 -37
- package/dist/gen/babelconnect/v1/babelconnect_connect.js +37 -51
- package/dist/gen/babelconnect/v1/babelconnect_pb.d.ts +53 -89
- package/dist/gen/babelconnect/v1/babelconnect_pb.js +53 -89
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* class exported as `BabelconnectEmbed` from `@babelforce/babelconnect-sdk/embed`,
|
|
15
15
|
* so `BabelconnectEmbed.mount({...})` here is identical to the ESM
|
|
16
16
|
* `BabelconnectEmbed.mount({...})`. The name is deliberately **distinct** from the
|
|
17
|
-
*
|
|
17
|
+
* previous embedded phone widget's global (`BabelconnectConnect`) — the two APIs
|
|
18
18
|
* differ and a compatibility shim is out of scope; see EMBEDDING.md for the
|
|
19
19
|
* migration.
|
|
20
20
|
*
|
package/dist/embed/iife-entry.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* class exported as `BabelconnectEmbed` from `@babelforce/babelconnect-sdk/embed`,
|
|
15
15
|
* so `BabelconnectEmbed.mount({...})` here is identical to the ESM
|
|
16
16
|
* `BabelconnectEmbed.mount({...})`. The name is deliberately **distinct** from the
|
|
17
|
-
*
|
|
17
|
+
* previous embedded phone widget's global (`BabelconnectConnect`) — the two APIs
|
|
18
18
|
* differ and a compatibility shim is out of scope; see EMBEDDING.md for the
|
|
19
19
|
* migration.
|
|
20
20
|
*
|
package/dist/embed/index.d.ts
CHANGED
|
@@ -30,14 +30,14 @@ export interface EmbedOptions {
|
|
|
30
30
|
/** Optional initial shared context (also settable later via {@link context}). */
|
|
31
31
|
context?: Record<string, unknown>;
|
|
32
32
|
/**
|
|
33
|
-
* The `agent.loaded`/`user.loaded` event-payload schema version
|
|
33
|
+
* The `agent.loaded`/`user.loaded` event-payload schema version.
|
|
34
34
|
* Omit for the app's current default (`"v3"` — just the top-level
|
|
35
35
|
* `agentId`, no legacy struct nesting). Pass `"v1"` to opt into the
|
|
36
|
-
*
|
|
37
|
-
* agent:{id,name,email,number}}`,
|
|
38
|
-
* user:{email}}`) for a host still
|
|
39
|
-
* or routing by number. See the Embedding guide,
|
|
40
|
-
* version".
|
|
36
|
+
* legacy shape used by the previous embedded phone widget
|
|
37
|
+
* (`agent.loaded` → `{agentId, agent:{id,name,email,number}}`,
|
|
38
|
+
* `user.loaded` → `{agentId, user:{email}}`) for a host still matching
|
|
39
|
+
* CRM users by email or routing by number. See the Embedding guide,
|
|
40
|
+
* "Loaded event schema version".
|
|
41
41
|
*/
|
|
42
42
|
eventsVersion?: string;
|
|
43
43
|
/** Path within the app (default `/`). */
|
|
@@ -55,7 +55,7 @@ export interface AuthSetArgs {
|
|
|
55
55
|
session?: Record<string, unknown>;
|
|
56
56
|
/** Updated shared context. Omit to leave the currently-tracked value unchanged. */
|
|
57
57
|
context?: Record<string, unknown>;
|
|
58
|
-
/** Updated events-schema version (
|
|
58
|
+
/** Updated events-schema version (see {@link EmbedOptions.eventsVersion}). Only takes
|
|
59
59
|
* effect on the NEXT `ready` handshake (an iframe reload) — a live session's already-emitted
|
|
60
60
|
* `agent.loaded`/`user.loaded` don't refire. Omit to leave the currently-tracked value unchanged. */
|
|
61
61
|
eventsVersion?: string;
|
|
@@ -83,7 +83,7 @@ export declare class BabelconnectEmbed {
|
|
|
83
83
|
* Refresh the bearer token (and optionally session/context) mid-session —
|
|
84
84
|
* e.g. ahead of expiry on a long shift. Posts `auth.set` immediately; the
|
|
85
85
|
* live app applies it in place without interrupting the session or any
|
|
86
|
-
* active call
|
|
86
|
+
* active call. Also remembers the values as *current*, so if the
|
|
87
87
|
* iframe later reloads and re-emits `ready`, the handshake hands off this
|
|
88
88
|
* refreshed token rather than the one passed to {@link BabelconnectEmbed.mount}.
|
|
89
89
|
*/
|
package/dist/embed/index.js
CHANGED
|
@@ -64,7 +64,7 @@ export class BabelconnectEmbed {
|
|
|
64
64
|
* Refresh the bearer token (and optionally session/context) mid-session —
|
|
65
65
|
* e.g. ahead of expiry on a long shift. Posts `auth.set` immediately; the
|
|
66
66
|
* live app applies it in place without interrupting the session or any
|
|
67
|
-
* active call
|
|
67
|
+
* active call. Also remembers the values as *current*, so if the
|
|
68
68
|
* iframe later reloads and re-emits `ready`, the handshake hands off this
|
|
69
69
|
* refreshed token rather than the one passed to {@link BabelconnectEmbed.mount}.
|
|
70
70
|
*/
|
|
@@ -19,28 +19,15 @@ export declare const Agent: {
|
|
|
19
19
|
readonly kind: MethodKind.Unary;
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
readonly name: "Session";
|
|
32
|
-
readonly I: typeof Command;
|
|
33
|
-
readonly O: typeof StateUpdate;
|
|
34
|
-
readonly kind: MethodKind.BiDiStreaming;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Subscribe + Send are the browser-friendly split of Session: a browser speaks
|
|
38
|
-
* gRPC-web, which cannot client-stream, so the bidi Session is impossible there.
|
|
39
|
-
* Subscribe is the server→client half (the StateUpdate stream); Send is the
|
|
40
|
-
* client→server half (one Command per unary call). Together they are equivalent
|
|
41
|
-
* to Session for a single agent — the server keys both to the agent's one state
|
|
42
|
-
* store. Command rejections still arrive as an Error on the Subscribe stream
|
|
43
|
-
* (never on Send's reply), exactly as on Session.
|
|
22
|
+
* Subscribe + Send are the control stream, split into its server→client and
|
|
23
|
+
* client→server halves — the one shape every client uses (RPC-A4 retired the
|
|
24
|
+
* earlier bidi `Session` RPC, which needed HTTP/2 end-to-end and couldn't
|
|
25
|
+
* ride gRPC-web or a plain HTTP/1.1 ingress). Subscribe is the server→client
|
|
26
|
+
* half (StateUpdate: one snapshot on open, then entity-level patches; UI =
|
|
27
|
+
* f(AgentView)). Send is the client→server half (one Command per unary
|
|
28
|
+
* call). Together they key to the agent's one state store. Command
|
|
29
|
+
* rejections arrive as an Error on the Subscribe stream, never on Send's
|
|
30
|
+
* reply.
|
|
44
31
|
*
|
|
45
32
|
* @generated from rpc babelconnect.v1.Agent.Subscribe
|
|
46
33
|
*/
|
|
@@ -103,13 +90,11 @@ export declare const Agent: {
|
|
|
103
90
|
};
|
|
104
91
|
/**
|
|
105
92
|
* GetTransferTargets autocompletes blind-transfer / add-member targets as the
|
|
106
|
-
* agent types — agents, raw numbers, and IVR applications
|
|
107
|
-
* /
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* separate, already-server-computed flag the client applies itself
|
|
112
|
-
* (CallState.can_transfer_to_application hides APPLICATION results — CALL-I3).
|
|
93
|
+
* agent types — agents, raw numbers, and IVR applications. `query` filters
|
|
94
|
+
* server-side (substring across name/email/number for agents, name for
|
|
95
|
+
* applications); the lookup has no call-context param, so eligibility by call
|
|
96
|
+
* direction is a separate, already-server-computed flag the client applies
|
|
97
|
+
* itself (CallState.can_transfer_to_application hides APPLICATION results).
|
|
113
98
|
*
|
|
114
99
|
* @generated from rpc babelconnect.v1.Agent.GetTransferTargets
|
|
115
100
|
*/
|
|
@@ -148,9 +133,8 @@ export declare const Agent: {
|
|
|
148
133
|
};
|
|
149
134
|
/**
|
|
150
135
|
* ListCampaigns lists the outbound-dialer campaigns the agent may join (the
|
|
151
|
-
* Outbound tab's campaign picker
|
|
152
|
-
* GetPhonebook/GetTransferTargets
|
|
153
|
-
* campaigns?active=true (sbf/services ObdController#listCampaigns).
|
|
136
|
+
* Outbound tab's campaign picker) — on-demand reference data like
|
|
137
|
+
* GetPhonebook/GetTransferTargets.
|
|
154
138
|
*
|
|
155
139
|
* @generated from rpc babelconnect.v1.Agent.ListCampaigns
|
|
156
140
|
*/
|
|
@@ -162,11 +146,8 @@ export declare const Agent: {
|
|
|
162
146
|
};
|
|
163
147
|
/**
|
|
164
148
|
* ListDispositions lists the available call-outcome codes for the disposition
|
|
165
|
-
* picker
|
|
166
|
-
*
|
|
167
|
-
* ObdController#listDispositions). Grounded: the `{id}` path segment is never
|
|
168
|
-
* read server-side — the list is a static global, not campaign-scoped — so the
|
|
169
|
-
* request carries no campaign id either.
|
|
149
|
+
* picker — on-demand reference data like ListCampaigns. The list is a static
|
|
150
|
+
* global, not campaign-scoped, so the request carries no campaign id.
|
|
170
151
|
*
|
|
171
152
|
* @generated from rpc babelconnect.v1.Agent.ListDispositions
|
|
172
153
|
*/
|
|
@@ -3,30 +3,35 @@
|
|
|
3
3
|
/* eslint-disable */
|
|
4
4
|
// @ts-nocheck
|
|
5
5
|
// Package babelconnect.v1 is the control protocol between a babelconnect client
|
|
6
|
-
// (the SDK, via Go/Dart/gRPC-web) and babelconnect-server. It carries
|
|
7
|
-
// ONLY — media is WebRTC on a separate plane; the server terminates the
|
|
8
|
-
// WebRTC leg.
|
|
6
|
+
// (the SDK, via Go/Dart/gRPC-web/Connect) and babelconnect-server. It carries
|
|
7
|
+
// CONTROL ONLY — media is WebRTC on a separate plane; the server terminates the
|
|
8
|
+
// client's WebRTC leg.
|
|
9
9
|
//
|
|
10
10
|
// State lives on the SERVER, not the client. babelconnect-server holds the
|
|
11
11
|
// canonical per-agent AgentView and pushes an initial snapshot + entity-level
|
|
12
|
-
// patches over the
|
|
12
|
+
// patches over the Subscribe stream; clients are DUMB RENDERERS — they apply
|
|
13
13
|
// patches mechanically and send Command intents, with no domain logic.
|
|
14
14
|
//
|
|
15
|
-
//
|
|
15
|
+
// Three entry points:
|
|
16
16
|
// - Authenticate: unary handshake → the agent's identity.
|
|
17
|
-
// -
|
|
18
|
-
//
|
|
19
|
-
//
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
17
|
+
// - Subscribe: the server→client half — StateUpdate (snapshot then
|
|
18
|
+
// patches). The WebRTC offer rides on CallState (when
|
|
19
|
+
// RINGING); the client answers via the AnswerCall intent —
|
|
20
|
+
// signaling fits the state model, no separate event channel.
|
|
21
|
+
// - Send: the client→server half — one Command intent per call
|
|
22
|
+
// (register/place/answer/hangup/mute/...). Together with
|
|
23
|
+
// Subscribe this is the one blessed shape for every client
|
|
24
|
+
// (RPC-A4 retired the earlier bidi `Session` RPC once all
|
|
25
|
+
// clients had moved onto this split over the Connect
|
|
26
|
+
// protocol).
|
|
23
27
|
//
|
|
24
28
|
// The bearer token travels in gRPC metadata ("authorization: Bearer <token>")
|
|
25
29
|
// on every call; Authenticate additionally returns the resolved identity.
|
|
26
30
|
//
|
|
27
|
-
// In addition to gRPC/gRPC-web, the unary RPCs are exposed as a
|
|
28
|
-
// via grpc-gateway (the google.api.http annotations below)
|
|
29
|
-
// — one proto source of truth, two wire surfaces.
|
|
31
|
+
// In addition to gRPC/gRPC-web/Connect, the unary RPCs are exposed as a
|
|
32
|
+
// REST+JSON surface via grpc-gateway (the google.api.http annotations below)
|
|
33
|
+
// with an OpenAPI v2 spec — one proto source of truth, two wire surfaces.
|
|
34
|
+
// Streaming stays gRPC/gRPC-web/Connect.
|
|
30
35
|
import { Ack, AgentView, AuthenticateRequest, Command, GetStateRequest, HistoryRequest, HistoryResponse, Identity, ListCampaignsRequest, ListCampaignsResponse, ListDispositionsRequest, ListDispositionsResponse, PhonebookRequest, PhonebookResponse, SendSmsRequest, SmsConversation, SmsThreadRequest, SmsThreadResponse, StateUpdate, SubscribeRequest, TransferTargetsRequest, TransferTargetsResponse } from "./babelconnect_pb.js";
|
|
31
36
|
import { MethodKind } from "@bufbuild/protobuf";
|
|
32
37
|
/**
|
|
@@ -48,28 +53,15 @@ export const Agent = {
|
|
|
48
53
|
kind: MethodKind.Unary,
|
|
49
54
|
},
|
|
50
55
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
name: "Session",
|
|
61
|
-
I: Command,
|
|
62
|
-
O: StateUpdate,
|
|
63
|
-
kind: MethodKind.BiDiStreaming,
|
|
64
|
-
},
|
|
65
|
-
/**
|
|
66
|
-
* Subscribe + Send are the browser-friendly split of Session: a browser speaks
|
|
67
|
-
* gRPC-web, which cannot client-stream, so the bidi Session is impossible there.
|
|
68
|
-
* Subscribe is the server→client half (the StateUpdate stream); Send is the
|
|
69
|
-
* client→server half (one Command per unary call). Together they are equivalent
|
|
70
|
-
* to Session for a single agent — the server keys both to the agent's one state
|
|
71
|
-
* store. Command rejections still arrive as an Error on the Subscribe stream
|
|
72
|
-
* (never on Send's reply), exactly as on Session.
|
|
56
|
+
* Subscribe + Send are the control stream, split into its server→client and
|
|
57
|
+
* client→server halves — the one shape every client uses (RPC-A4 retired the
|
|
58
|
+
* earlier bidi `Session` RPC, which needed HTTP/2 end-to-end and couldn't
|
|
59
|
+
* ride gRPC-web or a plain HTTP/1.1 ingress). Subscribe is the server→client
|
|
60
|
+
* half (StateUpdate: one snapshot on open, then entity-level patches; UI =
|
|
61
|
+
* f(AgentView)). Send is the client→server half (one Command per unary
|
|
62
|
+
* call). Together they key to the agent's one state store. Command
|
|
63
|
+
* rejections arrive as an Error on the Subscribe stream, never on Send's
|
|
64
|
+
* reply.
|
|
73
65
|
*
|
|
74
66
|
* @generated from rpc babelconnect.v1.Agent.Subscribe
|
|
75
67
|
*/
|
|
@@ -132,13 +124,11 @@ export const Agent = {
|
|
|
132
124
|
},
|
|
133
125
|
/**
|
|
134
126
|
* GetTransferTargets autocompletes blind-transfer / add-member targets as the
|
|
135
|
-
* agent types — agents, raw numbers, and IVR applications
|
|
136
|
-
* /
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
* separate, already-server-computed flag the client applies itself
|
|
141
|
-
* (CallState.can_transfer_to_application hides APPLICATION results — CALL-I3).
|
|
127
|
+
* agent types — agents, raw numbers, and IVR applications. `query` filters
|
|
128
|
+
* server-side (substring across name/email/number for agents, name for
|
|
129
|
+
* applications); the lookup has no call-context param, so eligibility by call
|
|
130
|
+
* direction is a separate, already-server-computed flag the client applies
|
|
131
|
+
* itself (CallState.can_transfer_to_application hides APPLICATION results).
|
|
142
132
|
*
|
|
143
133
|
* @generated from rpc babelconnect.v1.Agent.GetTransferTargets
|
|
144
134
|
*/
|
|
@@ -177,9 +167,8 @@ export const Agent = {
|
|
|
177
167
|
},
|
|
178
168
|
/**
|
|
179
169
|
* ListCampaigns lists the outbound-dialer campaigns the agent may join (the
|
|
180
|
-
* Outbound tab's campaign picker
|
|
181
|
-
* GetPhonebook/GetTransferTargets
|
|
182
|
-
* campaigns?active=true (sbf/services ObdController#listCampaigns).
|
|
170
|
+
* Outbound tab's campaign picker) — on-demand reference data like
|
|
171
|
+
* GetPhonebook/GetTransferTargets.
|
|
183
172
|
*
|
|
184
173
|
* @generated from rpc babelconnect.v1.Agent.ListCampaigns
|
|
185
174
|
*/
|
|
@@ -191,11 +180,8 @@ export const Agent = {
|
|
|
191
180
|
},
|
|
192
181
|
/**
|
|
193
182
|
* ListDispositions lists the available call-outcome codes for the disposition
|
|
194
|
-
* picker
|
|
195
|
-
*
|
|
196
|
-
* ObdController#listDispositions). Grounded: the `{id}` path segment is never
|
|
197
|
-
* read server-side — the list is a static global, not campaign-scoped — so the
|
|
198
|
-
* request carries no campaign id either.
|
|
183
|
+
* picker — on-demand reference data like ListCampaigns. The list is a static
|
|
184
|
+
* global, not campaign-scoped, so the request carries no campaign id.
|
|
199
185
|
*
|
|
200
186
|
* @generated from rpc babelconnect.v1.Agent.ListDispositions
|
|
201
187
|
*/
|
|
@@ -38,9 +38,8 @@ export declare enum AgentState {
|
|
|
38
38
|
BUSY = 7
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* CampaignMemberState
|
|
42
|
-
*
|
|
43
|
-
* membership lifecycle: offline -> logging_in -> waiting -> in_progress ->
|
|
41
|
+
* CampaignMemberState is the predictive-dialer campaign membership
|
|
42
|
+
* lifecycle: offline -> logging_in -> waiting -> in_progress ->
|
|
44
43
|
* disposition (-> waiting for the next lead), with idle as the paused branch
|
|
45
44
|
* (waiting/logging_in <-> idle via pause/resume) and leave returning to
|
|
46
45
|
* offline from any state.
|
|
@@ -80,10 +79,9 @@ export declare enum CampaignMemberState {
|
|
|
80
79
|
DISPOSITION = 6
|
|
81
80
|
}
|
|
82
81
|
/**
|
|
83
|
-
* TransferTargetKind discriminates a TransferTarget.
|
|
84
|
-
*
|
|
85
|
-
* "phonebook"
|
|
86
|
-
* wire type only ever carries these three).
|
|
82
|
+
* TransferTargetKind discriminates a TransferTarget. The wire type only ever
|
|
83
|
+
* carries agent / number / application (a UI may group results differently,
|
|
84
|
+
* e.g. a "phonebook" section, but that is presentation only).
|
|
87
85
|
*
|
|
88
86
|
* @generated from enum babelconnect.v1.TransferTargetKind
|
|
89
87
|
*/
|
|
@@ -235,7 +233,7 @@ export declare class SubscribeRequest extends Message<SubscribeRequest> {
|
|
|
235
233
|
/**
|
|
236
234
|
* Ack is the empty reply to Send. It only confirms the server accepted the
|
|
237
235
|
* command for processing — the resulting state (or an Error) is delivered on the
|
|
238
|
-
* Subscribe stream,
|
|
236
|
+
* Subscribe stream, never in this reply.
|
|
239
237
|
*
|
|
240
238
|
* @generated from message babelconnect.v1.Ack
|
|
241
239
|
*/
|
|
@@ -423,8 +421,7 @@ export declare class Identity extends Message<Identity> {
|
|
|
423
421
|
}
|
|
424
422
|
/**
|
|
425
423
|
* Account is one tenant the signed-in agent can operate in — the switchable set
|
|
426
|
-
* (agent-role only) surfaced for the account picker
|
|
427
|
-
* GET /api/v2/user/accounts.
|
|
424
|
+
* (agent-role only) surfaced for the account picker.
|
|
428
425
|
*
|
|
429
426
|
* @generated from message babelconnect.v1.Account
|
|
430
427
|
*/
|
|
@@ -839,37 +836,32 @@ export declare class AgentInfo extends Message<AgentInfo> {
|
|
|
839
836
|
lineBlocked: boolean;
|
|
840
837
|
/**
|
|
841
838
|
* Accounts this agent may switch to without re-logging-in (agent-role only,
|
|
842
|
-
* resolved at auth
|
|
843
|
-
*
|
|
839
|
+
* resolved at auth). One is marked `current`. Drives the Account tab's
|
|
840
|
+
* switcher; empty/single ⇒ no picker.
|
|
844
841
|
*
|
|
845
842
|
* @generated from field: repeated babelconnect.v1.Account accounts = 19;
|
|
846
843
|
*/
|
|
847
844
|
accounts: Account[];
|
|
848
845
|
/**
|
|
849
|
-
* The agent's own email
|
|
850
|
-
*
|
|
851
|
-
*
|
|
852
|
-
* (EMB20, bc-connect parity) — bc-connect hosts match/route on it.
|
|
846
|
+
* The agent's own email — distinct from `username`, which is the *login*
|
|
847
|
+
* identity and may differ. Populated for the embedding bridge's legacy-shaped
|
|
848
|
+
* `agent.loaded` payload so host pages can match/route on it.
|
|
853
849
|
*
|
|
854
850
|
* @generated from field: string email = 20;
|
|
855
851
|
*/
|
|
856
852
|
email: string;
|
|
857
853
|
/**
|
|
858
|
-
* Subset of `available_numbers` the
|
|
859
|
-
* /
|
|
860
|
-
*
|
|
861
|
-
* composer's From picker (SMSC4); empty/unknown ⇒ client falls back to
|
|
862
|
-
* `available_numbers` (see docs/designs/messaging.md).
|
|
854
|
+
* Subset of `available_numbers` the platform marks SMS-capable. Drives the
|
|
855
|
+
* SMS composer's From picker; empty/unknown ⇒ client falls back to
|
|
856
|
+
* `available_numbers`.
|
|
863
857
|
*
|
|
864
858
|
* @generated from field: repeated string sms_capable_numbers = 21;
|
|
865
859
|
*/
|
|
866
860
|
smsCapableNumbers: string[];
|
|
867
861
|
/**
|
|
868
|
-
* Outbound-dialer (predictive campaign) membership state
|
|
869
|
-
*
|
|
870
|
-
*
|
|
871
|
-
* campaign this session; explicit OFFLINE means they left/aren't in one.
|
|
872
|
-
* See docs/designs/obd.md.
|
|
862
|
+
* Outbound-dialer (predictive campaign) membership state, kept live by the
|
|
863
|
+
* server. Unset/UNSPECIFIED means the agent has never touched a campaign
|
|
864
|
+
* this session; explicit OFFLINE means they left/aren't in one.
|
|
873
865
|
*
|
|
874
866
|
* @generated from field: babelconnect.v1.CampaignStatus campaign_status = 22;
|
|
875
867
|
*/
|
|
@@ -884,19 +876,13 @@ export declare class AgentInfo extends Message<AgentInfo> {
|
|
|
884
876
|
static equals(a: AgentInfo | PlainMessage<AgentInfo> | undefined, b: AgentInfo | PlainMessage<AgentInfo> | undefined): boolean;
|
|
885
877
|
}
|
|
886
878
|
/**
|
|
887
|
-
* CampaignStatus is the agent's outbound-dialer campaign membership envelope
|
|
888
|
-
*
|
|
889
|
-
*
|
|
890
|
-
*
|
|
891
|
-
*
|
|
892
|
-
*
|
|
893
|
-
*
|
|
894
|
-
* "unreachable", "no_answer", "busy", "answer", "hungup", "none") — kept as a
|
|
895
|
-
* string rather than a wire enum since the client only ever compares it
|
|
896
|
-
* against "unreachable" for the OBDA4 toast. `paused` is a convenience mirror
|
|
897
|
-
* of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead the agent is currently
|
|
898
|
-
* dialing, disposition reasons, and live campaign metrics are additive fields
|
|
899
|
-
* below (OBDB1/OBDD1) layered on top of this envelope.
|
|
879
|
+
* CampaignStatus is the agent's outbound-dialer campaign membership envelope,
|
|
880
|
+
* kept live by the server. `last_reason` is the platform's last dial-outcome
|
|
881
|
+
* as a lowercase string (e.g. "unreachable", "no_answer", "busy", "answer",
|
|
882
|
+
* "hungup", "none") — a string rather than a wire enum on purpose. `paused`
|
|
883
|
+
* is a convenience mirror of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead
|
|
884
|
+
* the agent is currently dialing, disposition reasons, and live campaign
|
|
885
|
+
* metrics are additive fields below, layered on top of this envelope.
|
|
900
886
|
*
|
|
901
887
|
* @generated from message babelconnect.v1.CampaignStatus
|
|
902
888
|
*/
|
|
@@ -928,12 +914,9 @@ export declare class CampaignStatus extends Message<CampaignStatus> {
|
|
|
928
914
|
*/
|
|
929
915
|
since: bigint;
|
|
930
916
|
/**
|
|
931
|
-
* lead is the customer the dialer connected the agent to
|
|
932
|
-
*
|
|
933
|
-
*
|
|
934
|
-
* `cti.outbound.lead` Faye event — sbf/services AgentCtiService#pushLead,
|
|
935
|
-
* CTIA3) that arrives the moment the dialer connects a lead, ahead of the
|
|
936
|
-
* next enrichment poll.
|
|
917
|
+
* lead is the customer the dialer connected the agent to — set while a lead
|
|
918
|
+
* is being worked (IN_PROGRESS/DISPOSITION), unset otherwise. Updated the
|
|
919
|
+
* moment the dialer connects a lead.
|
|
937
920
|
*
|
|
938
921
|
* @generated from field: babelconnect.v1.Lead lead = 7;
|
|
939
922
|
*/
|
|
@@ -957,14 +940,10 @@ export declare class CampaignStatus extends Message<CampaignStatus> {
|
|
|
957
940
|
static equals(a: CampaignStatus | PlainMessage<CampaignStatus> | undefined, b: CampaignStatus | PlainMessage<CampaignStatus> | undefined): boolean;
|
|
958
941
|
}
|
|
959
942
|
/**
|
|
960
|
-
* Lead is the customer the outbound dialer connected the agent to
|
|
961
|
-
*
|
|
962
|
-
*
|
|
963
|
-
*
|
|
964
|
-
* shape; `id`/`rank` are only present on the richer (list-enriched) form the
|
|
965
|
-
* GET read can return. `id` is the internal lead-list-item id — DISTINCT from
|
|
966
|
-
* `uid`, the customer-provided identifier the OBDB1 acceptance calls the
|
|
967
|
-
* lead's "id" in the UI.
|
|
943
|
+
* Lead is the customer the outbound dialer connected the agent to. `id`/`rank`
|
|
944
|
+
* are only present on the richer (list-enriched) form some reads return. `id`
|
|
945
|
+
* is the internal lead-list-item id — DISTINCT from `uid`, the
|
|
946
|
+
* customer-provided identifier shown as the lead's id in the UI.
|
|
968
947
|
*
|
|
969
948
|
* @generated from message babelconnect.v1.Lead
|
|
970
949
|
*/
|
|
@@ -1007,10 +986,8 @@ export declare class Lead extends Message<Lead> {
|
|
|
1007
986
|
static equals(a: Lead | PlainMessage<Lead> | undefined, b: Lead | PlainMessage<Lead> | undefined): boolean;
|
|
1008
987
|
}
|
|
1009
988
|
/**
|
|
1010
|
-
* CampaignMetrics is the campaign's live pacing snapshot
|
|
1011
|
-
*
|
|
1012
|
-
* ObdController#metrics, itself a filtered subset of Vicidial's realtime
|
|
1013
|
-
* report) — always this exact 6-key subset, never more.
|
|
989
|
+
* CampaignMetrics is the campaign's live pacing snapshot — always this exact
|
|
990
|
+
* 6-key subset, never more.
|
|
1014
991
|
*
|
|
1015
992
|
* @generated from message babelconnect.v1.CampaignMetrics
|
|
1016
993
|
*/
|
|
@@ -1431,7 +1408,7 @@ export declare class WrapUpStatus extends Message<WrapUpStatus> {
|
|
|
1431
1408
|
static equals(a: WrapUpStatus | PlainMessage<WrapUpStatus> | undefined, b: WrapUpStatus | PlainMessage<WrapUpStatus> | undefined): boolean;
|
|
1432
1409
|
}
|
|
1433
1410
|
/**
|
|
1434
|
-
* StateUpdate is the single server → client message on the
|
|
1411
|
+
* StateUpdate is the single server → client message on the Subscribe stream. On
|
|
1435
1412
|
* open the client receives a snapshot; thereafter partial patches. `seq` is
|
|
1436
1413
|
* monotonic across snapshot+patch — a gap means the client should resubscribe
|
|
1437
1414
|
* for a fresh snapshot. `error` is an out-of-band notice (command rejection /
|
|
@@ -1493,7 +1470,7 @@ export declare class StateUpdate extends Message<StateUpdate> {
|
|
|
1493
1470
|
static equals(a: StateUpdate | PlainMessage<StateUpdate> | undefined, b: StateUpdate | PlainMessage<StateUpdate> | undefined): boolean;
|
|
1494
1471
|
}
|
|
1495
1472
|
/**
|
|
1496
|
-
* Keepalive is an empty heartbeat frame sent on the
|
|
1473
|
+
* Keepalive is an empty heartbeat frame sent on the Subscribe stream so
|
|
1497
1474
|
* idle connections through proxies/LBs are not closed as idle. Notably the AWS
|
|
1498
1475
|
* Classic ELB in front of ingress-nginx (dev/prod EKS) has a 300s connection
|
|
1499
1476
|
* idle timeout; without these frames a quiet agent's gRPC-web server-stream is
|
|
@@ -2433,9 +2410,7 @@ export declare class SetAgentNumber extends Message<SetAgentNumber> {
|
|
|
2433
2410
|
}
|
|
2434
2411
|
/**
|
|
2435
2412
|
* Campaign is one outbound-dialer campaign the agent may join (the picker's
|
|
2436
|
-
* entries). `test_mode` drives the "name (live)" / "name (test)" label
|
|
2437
|
-
* (OBDA1). Sourced from GET /api/v2/agent/outbound/campaigns (sbf/services
|
|
2438
|
-
* ObdController#listCampaigns / ObdModel.Campaign.Simple).
|
|
2413
|
+
* entries). `test_mode` drives the "name (live)" / "name (test)" label.
|
|
2439
2414
|
*
|
|
2440
2415
|
* @generated from message babelconnect.v1.Campaign
|
|
2441
2416
|
*/
|
|
@@ -2501,11 +2476,8 @@ export declare class ListCampaignsResponse extends Message<ListCampaignsResponse
|
|
|
2501
2476
|
static equals(a: ListCampaignsResponse | PlainMessage<ListCampaignsResponse> | undefined, b: ListCampaignsResponse | PlainMessage<ListCampaignsResponse> | undefined): boolean;
|
|
2502
2477
|
}
|
|
2503
2478
|
/**
|
|
2504
|
-
* JoinCampaign enters a campaign
|
|
2505
|
-
*
|
|
2506
|
-
* "unpause" — bc-v2's client sent that stale name, which the backend command
|
|
2507
|
-
* object silently ignores, defaulting `paused` true); the client normally
|
|
2508
|
-
* sends false so the agent starts `waiting` for a lead right away.
|
|
2479
|
+
* JoinCampaign enters a campaign. The client normally sends `paused` false so
|
|
2480
|
+
* the agent starts `waiting` for a lead right away.
|
|
2509
2481
|
*
|
|
2510
2482
|
* @generated from message babelconnect.v1.JoinCampaign
|
|
2511
2483
|
*/
|
|
@@ -2528,10 +2500,9 @@ export declare class JoinCampaign extends Message<JoinCampaign> {
|
|
|
2528
2500
|
static equals(a: JoinCampaign | PlainMessage<JoinCampaign> | undefined, b: JoinCampaign | PlainMessage<JoinCampaign> | undefined): boolean;
|
|
2529
2501
|
}
|
|
2530
2502
|
/**
|
|
2531
|
-
* LeaveCampaign exits the current campaign (
|
|
2532
|
-
* — no body; the backend resolves the agent's current campaign server-side).
|
|
2503
|
+
* LeaveCampaign exits the current campaign (the server resolves which one).
|
|
2533
2504
|
* Available both from the campaign selector row and from within an active
|
|
2534
|
-
* call
|
|
2505
|
+
* call.
|
|
2535
2506
|
*
|
|
2536
2507
|
* @generated from message babelconnect.v1.LeaveCampaign
|
|
2537
2508
|
*/
|
|
@@ -2567,12 +2538,10 @@ export declare class PauseCampaign extends Message<PauseCampaign> {
|
|
|
2567
2538
|
static equals(a: PauseCampaign | PlainMessage<PauseCampaign> | undefined, b: PauseCampaign | PlainMessage<PauseCampaign> | undefined): boolean;
|
|
2568
2539
|
}
|
|
2569
2540
|
/**
|
|
2570
|
-
* EndCampaignCall ends the agent's live campaign call
|
|
2571
|
-
*
|
|
2572
|
-
*
|
|
2573
|
-
*
|
|
2574
|
-
* member-state transition to DISPOSITION (sbf/services), neither of which a
|
|
2575
|
-
* plain SIP/media-plane hangup would trigger.
|
|
2541
|
+
* EndCampaignCall ends the agent's live campaign call. Deliberately distinct
|
|
2542
|
+
* from the generic Hangup: it also releases the dialer's channel and drives
|
|
2543
|
+
* the campaign member-state transition to DISPOSITION, neither of which a
|
|
2544
|
+
* plain media-plane hangup would trigger.
|
|
2576
2545
|
*
|
|
2577
2546
|
* @generated from message babelconnect.v1.EndCampaignCall
|
|
2578
2547
|
*/
|
|
@@ -2587,14 +2556,10 @@ export declare class EndCampaignCall extends Message<EndCampaignCall> {
|
|
|
2587
2556
|
static equals(a: EndCampaignCall | PlainMessage<EndCampaignCall> | undefined, b: EndCampaignCall | PlainMessage<EndCampaignCall> | undefined): boolean;
|
|
2588
2557
|
}
|
|
2589
2558
|
/**
|
|
2590
|
-
* DisposeCall records the outcome of a campaign call
|
|
2591
|
-
*
|
|
2592
|
-
* is one of ListDispositionsResponse's codes (e.g. "no_answer", "callback").
|
|
2559
|
+
* DisposeCall records the outcome of a campaign call. `code` is one of
|
|
2560
|
+
* ListDispositionsResponse's codes (e.g. "no_answer", "callback").
|
|
2593
2561
|
* `callback_date` is ISO `YYYY-MM-DDTHH:mmZZ` and is set ONLY for the
|
|
2594
|
-
* "callback" disposition
|
|
2595
|
-
* backend command object's own optional field (grounded: a `pause` field also
|
|
2596
|
-
* exists on the backend but is `@ApiStatus(not_implemented)`, so it is
|
|
2597
|
-
* intentionally not exposed here).
|
|
2562
|
+
* "callback" disposition — omitted (empty) otherwise.
|
|
2598
2563
|
*
|
|
2599
2564
|
* @generated from message babelconnect.v1.DisposeCall
|
|
2600
2565
|
*/
|
|
@@ -3042,12 +3007,11 @@ export declare class StartConference extends Message<StartConference> {
|
|
|
3042
3007
|
* AddConferenceMember invites a participant — exactly one of agent_id / number.
|
|
3043
3008
|
* Starts a conference first if none is active. `hold_others` parks every other
|
|
3044
3009
|
* live, non-held member of the CURRENT conference before the invite goes out
|
|
3045
|
-
* (
|
|
3046
|
-
*
|
|
3047
|
-
*
|
|
3048
|
-
*
|
|
3049
|
-
*
|
|
3050
|
-
* already parks the original party unconditionally in that case.
|
|
3010
|
+
* (default off) so they don't overhear the new invitee ringing; the server
|
|
3011
|
+
* unholds them again once the invitee reaches a terminal state (added =
|
|
3012
|
+
* joined, or failed/removed = rejected/timed out). No effect when starting a
|
|
3013
|
+
* brand-new conference: StartConference(hold=true) already parks the original
|
|
3014
|
+
* party unconditionally in that case.
|
|
3051
3015
|
*
|
|
3052
3016
|
* @generated from message babelconnect.v1.AddConferenceMember
|
|
3053
3017
|
*/
|
|
@@ -53,9 +53,8 @@ proto3.util.setEnumType(AgentState, "babelconnect.v1.AgentState", [
|
|
|
53
53
|
{ no: 7, name: "AGENT_STATE_BUSY" },
|
|
54
54
|
]);
|
|
55
55
|
/**
|
|
56
|
-
* CampaignMemberState
|
|
57
|
-
*
|
|
58
|
-
* membership lifecycle: offline -> logging_in -> waiting -> in_progress ->
|
|
56
|
+
* CampaignMemberState is the predictive-dialer campaign membership
|
|
57
|
+
* lifecycle: offline -> logging_in -> waiting -> in_progress ->
|
|
59
58
|
* disposition (-> waiting for the next lead), with idle as the paused branch
|
|
60
59
|
* (waiting/logging_in <-> idle via pause/resume) and leave returning to
|
|
61
60
|
* offline from any state.
|
|
@@ -106,10 +105,9 @@ proto3.util.setEnumType(CampaignMemberState, "babelconnect.v1.CampaignMemberStat
|
|
|
106
105
|
{ no: 6, name: "CAMPAIGN_MEMBER_STATE_DISPOSITION" },
|
|
107
106
|
]);
|
|
108
107
|
/**
|
|
109
|
-
* TransferTargetKind discriminates a TransferTarget.
|
|
110
|
-
*
|
|
111
|
-
* "phonebook"
|
|
112
|
-
* wire type only ever carries these three).
|
|
108
|
+
* TransferTargetKind discriminates a TransferTarget. The wire type only ever
|
|
109
|
+
* carries agent / number / application (a UI may group results differently,
|
|
110
|
+
* e.g. a "phonebook" section, but that is presentation only).
|
|
113
111
|
*
|
|
114
112
|
* @generated from enum babelconnect.v1.TransferTargetKind
|
|
115
113
|
*/
|
|
@@ -323,7 +321,7 @@ export class SubscribeRequest extends Message {
|
|
|
323
321
|
/**
|
|
324
322
|
* Ack is the empty reply to Send. It only confirms the server accepted the
|
|
325
323
|
* command for processing — the resulting state (or an Error) is delivered on the
|
|
326
|
-
* Subscribe stream,
|
|
324
|
+
* Subscribe stream, never in this reply.
|
|
327
325
|
*
|
|
328
326
|
* @generated from message babelconnect.v1.Ack
|
|
329
327
|
*/
|
|
@@ -600,8 +598,7 @@ export class Identity extends Message {
|
|
|
600
598
|
}
|
|
601
599
|
/**
|
|
602
600
|
* Account is one tenant the signed-in agent can operate in — the switchable set
|
|
603
|
-
* (agent-role only) surfaced for the account picker
|
|
604
|
-
* GET /api/v2/user/accounts.
|
|
601
|
+
* (agent-role only) surfaced for the account picker.
|
|
605
602
|
*
|
|
606
603
|
* @generated from message babelconnect.v1.Account
|
|
607
604
|
*/
|
|
@@ -1167,37 +1164,32 @@ export class AgentInfo extends Message {
|
|
|
1167
1164
|
lineBlocked = false;
|
|
1168
1165
|
/**
|
|
1169
1166
|
* Accounts this agent may switch to without re-logging-in (agent-role only,
|
|
1170
|
-
* resolved at auth
|
|
1171
|
-
*
|
|
1167
|
+
* resolved at auth). One is marked `current`. Drives the Account tab's
|
|
1168
|
+
* switcher; empty/single ⇒ no picker.
|
|
1172
1169
|
*
|
|
1173
1170
|
* @generated from field: repeated babelconnect.v1.Account accounts = 19;
|
|
1174
1171
|
*/
|
|
1175
1172
|
accounts = [];
|
|
1176
1173
|
/**
|
|
1177
|
-
* The agent's own email
|
|
1178
|
-
*
|
|
1179
|
-
*
|
|
1180
|
-
* (EMB20, bc-connect parity) — bc-connect hosts match/route on it.
|
|
1174
|
+
* The agent's own email — distinct from `username`, which is the *login*
|
|
1175
|
+
* identity and may differ. Populated for the embedding bridge's legacy-shaped
|
|
1176
|
+
* `agent.loaded` payload so host pages can match/route on it.
|
|
1181
1177
|
*
|
|
1182
1178
|
* @generated from field: string email = 20;
|
|
1183
1179
|
*/
|
|
1184
1180
|
email = "";
|
|
1185
1181
|
/**
|
|
1186
|
-
* Subset of `available_numbers` the
|
|
1187
|
-
* /
|
|
1188
|
-
*
|
|
1189
|
-
* composer's From picker (SMSC4); empty/unknown ⇒ client falls back to
|
|
1190
|
-
* `available_numbers` (see docs/designs/messaging.md).
|
|
1182
|
+
* Subset of `available_numbers` the platform marks SMS-capable. Drives the
|
|
1183
|
+
* SMS composer's From picker; empty/unknown ⇒ client falls back to
|
|
1184
|
+
* `available_numbers`.
|
|
1191
1185
|
*
|
|
1192
1186
|
* @generated from field: repeated string sms_capable_numbers = 21;
|
|
1193
1187
|
*/
|
|
1194
1188
|
smsCapableNumbers = [];
|
|
1195
1189
|
/**
|
|
1196
|
-
* Outbound-dialer (predictive campaign) membership state
|
|
1197
|
-
*
|
|
1198
|
-
*
|
|
1199
|
-
* campaign this session; explicit OFFLINE means they left/aren't in one.
|
|
1200
|
-
* See docs/designs/obd.md.
|
|
1190
|
+
* Outbound-dialer (predictive campaign) membership state, kept live by the
|
|
1191
|
+
* server. Unset/UNSPECIFIED means the agent has never touched a campaign
|
|
1192
|
+
* this session; explicit OFFLINE means they left/aren't in one.
|
|
1201
1193
|
*
|
|
1202
1194
|
* @generated from field: babelconnect.v1.CampaignStatus campaign_status = 22;
|
|
1203
1195
|
*/
|
|
@@ -1246,19 +1238,13 @@ export class AgentInfo extends Message {
|
|
|
1246
1238
|
}
|
|
1247
1239
|
}
|
|
1248
1240
|
/**
|
|
1249
|
-
* CampaignStatus is the agent's outbound-dialer campaign membership envelope
|
|
1250
|
-
*
|
|
1251
|
-
*
|
|
1252
|
-
*
|
|
1253
|
-
*
|
|
1254
|
-
*
|
|
1255
|
-
*
|
|
1256
|
-
* "unreachable", "no_answer", "busy", "answer", "hungup", "none") — kept as a
|
|
1257
|
-
* string rather than a wire enum since the client only ever compares it
|
|
1258
|
-
* against "unreachable" for the OBDA4 toast. `paused` is a convenience mirror
|
|
1259
|
-
* of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead the agent is currently
|
|
1260
|
-
* dialing, disposition reasons, and live campaign metrics are additive fields
|
|
1261
|
-
* below (OBDB1/OBDD1) layered on top of this envelope.
|
|
1241
|
+
* CampaignStatus is the agent's outbound-dialer campaign membership envelope,
|
|
1242
|
+
* kept live by the server. `last_reason` is the platform's last dial-outcome
|
|
1243
|
+
* as a lowercase string (e.g. "unreachable", "no_answer", "busy", "answer",
|
|
1244
|
+
* "hungup", "none") — a string rather than a wire enum on purpose. `paused`
|
|
1245
|
+
* is a convenience mirror of `state == CAMPAIGN_MEMBER_STATE_IDLE`. The lead
|
|
1246
|
+
* the agent is currently dialing, disposition reasons, and live campaign
|
|
1247
|
+
* metrics are additive fields below, layered on top of this envelope.
|
|
1262
1248
|
*
|
|
1263
1249
|
* @generated from message babelconnect.v1.CampaignStatus
|
|
1264
1250
|
*/
|
|
@@ -1290,12 +1276,9 @@ export class CampaignStatus extends Message {
|
|
|
1290
1276
|
*/
|
|
1291
1277
|
since = protoInt64.zero;
|
|
1292
1278
|
/**
|
|
1293
|
-
* lead is the customer the dialer connected the agent to
|
|
1294
|
-
*
|
|
1295
|
-
*
|
|
1296
|
-
* `cti.outbound.lead` Faye event — sbf/services AgentCtiService#pushLead,
|
|
1297
|
-
* CTIA3) that arrives the moment the dialer connects a lead, ahead of the
|
|
1298
|
-
* next enrichment poll.
|
|
1279
|
+
* lead is the customer the dialer connected the agent to — set while a lead
|
|
1280
|
+
* is being worked (IN_PROGRESS/DISPOSITION), unset otherwise. Updated the
|
|
1281
|
+
* moment the dialer connects a lead.
|
|
1299
1282
|
*
|
|
1300
1283
|
* @generated from field: babelconnect.v1.Lead lead = 7;
|
|
1301
1284
|
*/
|
|
@@ -1339,14 +1322,10 @@ export class CampaignStatus extends Message {
|
|
|
1339
1322
|
}
|
|
1340
1323
|
}
|
|
1341
1324
|
/**
|
|
1342
|
-
* Lead is the customer the outbound dialer connected the agent to
|
|
1343
|
-
*
|
|
1344
|
-
*
|
|
1345
|
-
*
|
|
1346
|
-
* shape; `id`/`rank` are only present on the richer (list-enriched) form the
|
|
1347
|
-
* GET read can return. `id` is the internal lead-list-item id — DISTINCT from
|
|
1348
|
-
* `uid`, the customer-provided identifier the OBDB1 acceptance calls the
|
|
1349
|
-
* lead's "id" in the UI.
|
|
1325
|
+
* Lead is the customer the outbound dialer connected the agent to. `id`/`rank`
|
|
1326
|
+
* are only present on the richer (list-enriched) form some reads return. `id`
|
|
1327
|
+
* is the internal lead-list-item id — DISTINCT from `uid`, the
|
|
1328
|
+
* customer-provided identifier shown as the lead's id in the UI.
|
|
1350
1329
|
*
|
|
1351
1330
|
* @generated from message babelconnect.v1.Lead
|
|
1352
1331
|
*/
|
|
@@ -1404,10 +1383,8 @@ export class Lead extends Message {
|
|
|
1404
1383
|
}
|
|
1405
1384
|
}
|
|
1406
1385
|
/**
|
|
1407
|
-
* CampaignMetrics is the campaign's live pacing snapshot
|
|
1408
|
-
*
|
|
1409
|
-
* ObdController#metrics, itself a filtered subset of Vicidial's realtime
|
|
1410
|
-
* report) — always this exact 6-key subset, never more.
|
|
1386
|
+
* CampaignMetrics is the campaign's live pacing snapshot — always this exact
|
|
1387
|
+
* 6-key subset, never more.
|
|
1411
1388
|
*
|
|
1412
1389
|
* @generated from message babelconnect.v1.CampaignMetrics
|
|
1413
1390
|
*/
|
|
@@ -2009,7 +1986,7 @@ export class WrapUpStatus extends Message {
|
|
|
2009
1986
|
}
|
|
2010
1987
|
}
|
|
2011
1988
|
/**
|
|
2012
|
-
* StateUpdate is the single server → client message on the
|
|
1989
|
+
* StateUpdate is the single server → client message on the Subscribe stream. On
|
|
2013
1990
|
* open the client receives a snapshot; thereafter partial patches. `seq` is
|
|
2014
1991
|
* monotonic across snapshot+patch — a gap means the client should resubscribe
|
|
2015
1992
|
* for a fresh snapshot. `error` is an out-of-band notice (command rejection /
|
|
@@ -2056,7 +2033,7 @@ export class StateUpdate extends Message {
|
|
|
2056
2033
|
}
|
|
2057
2034
|
}
|
|
2058
2035
|
/**
|
|
2059
|
-
* Keepalive is an empty heartbeat frame sent on the
|
|
2036
|
+
* Keepalive is an empty heartbeat frame sent on the Subscribe stream so
|
|
2060
2037
|
* idle connections through proxies/LBs are not closed as idle. Notably the AWS
|
|
2061
2038
|
* Classic ELB in front of ingress-nginx (dev/prod EKS) has a 300s connection
|
|
2062
2039
|
* idle timeout; without these frames a quiet agent's gRPC-web server-stream is
|
|
@@ -3042,9 +3019,7 @@ export class SetAgentNumber extends Message {
|
|
|
3042
3019
|
}
|
|
3043
3020
|
/**
|
|
3044
3021
|
* Campaign is one outbound-dialer campaign the agent may join (the picker's
|
|
3045
|
-
* entries). `test_mode` drives the "name (live)" / "name (test)" label
|
|
3046
|
-
* (OBDA1). Sourced from GET /api/v2/agent/outbound/campaigns (sbf/services
|
|
3047
|
-
* ObdController#listCampaigns / ObdModel.Campaign.Simple).
|
|
3022
|
+
* entries). `test_mode` drives the "name (live)" / "name (test)" label.
|
|
3048
3023
|
*
|
|
3049
3024
|
* @generated from message babelconnect.v1.Campaign
|
|
3050
3025
|
*/
|
|
@@ -3150,11 +3125,8 @@ export class ListCampaignsResponse extends Message {
|
|
|
3150
3125
|
}
|
|
3151
3126
|
}
|
|
3152
3127
|
/**
|
|
3153
|
-
* JoinCampaign enters a campaign
|
|
3154
|
-
*
|
|
3155
|
-
* "unpause" — bc-v2's client sent that stale name, which the backend command
|
|
3156
|
-
* object silently ignores, defaulting `paused` true); the client normally
|
|
3157
|
-
* sends false so the agent starts `waiting` for a lead right away.
|
|
3128
|
+
* JoinCampaign enters a campaign. The client normally sends `paused` false so
|
|
3129
|
+
* the agent starts `waiting` for a lead right away.
|
|
3158
3130
|
*
|
|
3159
3131
|
* @generated from message babelconnect.v1.JoinCampaign
|
|
3160
3132
|
*/
|
|
@@ -3191,10 +3163,9 @@ export class JoinCampaign extends Message {
|
|
|
3191
3163
|
}
|
|
3192
3164
|
}
|
|
3193
3165
|
/**
|
|
3194
|
-
* LeaveCampaign exits the current campaign (
|
|
3195
|
-
* — no body; the backend resolves the agent's current campaign server-side).
|
|
3166
|
+
* LeaveCampaign exits the current campaign (the server resolves which one).
|
|
3196
3167
|
* Available both from the campaign selector row and from within an active
|
|
3197
|
-
* call
|
|
3168
|
+
* call.
|
|
3198
3169
|
*
|
|
3199
3170
|
* @generated from message babelconnect.v1.LeaveCampaign
|
|
3200
3171
|
*/
|
|
@@ -3254,12 +3225,10 @@ export class PauseCampaign extends Message {
|
|
|
3254
3225
|
}
|
|
3255
3226
|
}
|
|
3256
3227
|
/**
|
|
3257
|
-
* EndCampaignCall ends the agent's live campaign call
|
|
3258
|
-
*
|
|
3259
|
-
*
|
|
3260
|
-
*
|
|
3261
|
-
* member-state transition to DISPOSITION (sbf/services), neither of which a
|
|
3262
|
-
* plain SIP/media-plane hangup would trigger.
|
|
3228
|
+
* EndCampaignCall ends the agent's live campaign call. Deliberately distinct
|
|
3229
|
+
* from the generic Hangup: it also releases the dialer's channel and drives
|
|
3230
|
+
* the campaign member-state transition to DISPOSITION, neither of which a
|
|
3231
|
+
* plain media-plane hangup would trigger.
|
|
3263
3232
|
*
|
|
3264
3233
|
* @generated from message babelconnect.v1.EndCampaignCall
|
|
3265
3234
|
*/
|
|
@@ -3285,14 +3254,10 @@ export class EndCampaignCall extends Message {
|
|
|
3285
3254
|
}
|
|
3286
3255
|
}
|
|
3287
3256
|
/**
|
|
3288
|
-
* DisposeCall records the outcome of a campaign call
|
|
3289
|
-
*
|
|
3290
|
-
* is one of ListDispositionsResponse's codes (e.g. "no_answer", "callback").
|
|
3257
|
+
* DisposeCall records the outcome of a campaign call. `code` is one of
|
|
3258
|
+
* ListDispositionsResponse's codes (e.g. "no_answer", "callback").
|
|
3291
3259
|
* `callback_date` is ISO `YYYY-MM-DDTHH:mmZZ` and is set ONLY for the
|
|
3292
|
-
* "callback" disposition
|
|
3293
|
-
* backend command object's own optional field (grounded: a `pause` field also
|
|
3294
|
-
* exists on the backend but is `@ApiStatus(not_implemented)`, so it is
|
|
3295
|
-
* intentionally not exposed here).
|
|
3260
|
+
* "callback" disposition — omitted (empty) otherwise.
|
|
3296
3261
|
*
|
|
3297
3262
|
* @generated from message babelconnect.v1.DisposeCall
|
|
3298
3263
|
*/
|
|
@@ -3937,12 +3902,11 @@ export class StartConference extends Message {
|
|
|
3937
3902
|
* AddConferenceMember invites a participant — exactly one of agent_id / number.
|
|
3938
3903
|
* Starts a conference first if none is active. `hold_others` parks every other
|
|
3939
3904
|
* live, non-held member of the CURRENT conference before the invite goes out
|
|
3940
|
-
* (
|
|
3941
|
-
*
|
|
3942
|
-
*
|
|
3943
|
-
*
|
|
3944
|
-
*
|
|
3945
|
-
* already parks the original party unconditionally in that case.
|
|
3905
|
+
* (default off) so they don't overhear the new invitee ringing; the server
|
|
3906
|
+
* unholds them again once the invitee reaches a terminal state (added =
|
|
3907
|
+
* joined, or failed/removed = rejected/timed out). No effect when starting a
|
|
3908
|
+
* brand-new conference: StartConference(hold=true) already parks the original
|
|
3909
|
+
* party unconditionally in that case.
|
|
3946
3910
|
*
|
|
3947
3911
|
* @generated from message babelconnect.v1.AddConferenceMember
|
|
3948
3912
|
*/
|
package/dist/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.
|
|
1
|
+
export declare const SDK_VERSION = "0.14.0";
|
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babelforce/babelconnect-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "TypeScript SDK for babelconnect — server-authoritative agent state over gRPC-web, native WebRTC audio, and an embeddable widget (iframe + postMessage) for the Flutter web app.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://babelforce.github.io/babelconnect-sdk/",
|