@framers/agentos 0.1.111 → 0.1.112
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/voice/CallManager.d.ts.map +1 -1
- package/dist/voice/CallManager.js +9 -1
- package/dist/voice/CallManager.js.map +1 -1
- package/dist/voice/MediaStreamParser.d.ts +115 -6
- package/dist/voice/MediaStreamParser.d.ts.map +1 -1
- package/dist/voice/MediaStreamParser.js +44 -0
- package/dist/voice/MediaStreamParser.js.map +1 -1
- package/dist/voice/TelephonyStreamTransport.d.ts +112 -20
- package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
- package/dist/voice/TelephonyStreamTransport.js +136 -30
- package/dist/voice/TelephonyStreamTransport.js.map +1 -1
- package/dist/voice/parsers/PlivoMediaStreamParser.d.ts +64 -6
- package/dist/voice/parsers/PlivoMediaStreamParser.d.ts.map +1 -1
- package/dist/voice/parsers/PlivoMediaStreamParser.js +67 -6
- package/dist/voice/parsers/PlivoMediaStreamParser.js.map +1 -1
- package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts +55 -8
- package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts.map +1 -1
- package/dist/voice/parsers/TelnyxMediaStreamParser.js +60 -9
- package/dist/voice/parsers/TelnyxMediaStreamParser.js.map +1 -1
- package/dist/voice/parsers/TwilioMediaStreamParser.d.ts +73 -11
- package/dist/voice/parsers/TwilioMediaStreamParser.d.ts.map +1 -1
- package/dist/voice/parsers/TwilioMediaStreamParser.js +81 -12
- package/dist/voice/parsers/TwilioMediaStreamParser.js.map +1 -1
- package/dist/voice/providers/plivo.d.ts +108 -12
- package/dist/voice/providers/plivo.d.ts.map +1 -1
- package/dist/voice/providers/plivo.js +106 -9
- package/dist/voice/providers/plivo.js.map +1 -1
- package/dist/voice/providers/telnyx.d.ts +110 -20
- package/dist/voice/providers/telnyx.d.ts.map +1 -1
- package/dist/voice/providers/telnyx.js +111 -20
- package/dist/voice/providers/telnyx.js.map +1 -1
- package/dist/voice/providers/twilio.d.ts +91 -13
- package/dist/voice/providers/twilio.d.ts.map +1 -1
- package/dist/voice/providers/twilio.js +94 -14
- package/dist/voice/providers/twilio.js.map +1 -1
- package/dist/voice/twiml.d.ts +70 -12
- package/dist/voice/twiml.d.ts.map +1 -1
- package/dist/voice/twiml.js +70 -12
- package/dist/voice/twiml.js.map +1 -1
- package/dist/voice/types.d.ts +142 -15
- package/dist/voice/types.d.ts.map +1 -1
- package/dist/voice/types.js +34 -3
- package/dist/voice/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAqB,MAAM,yBAAyB,CAAC;AACrF,OAAO,KAAK,EAEV,MAAM,EACN,QAAQ,EACR,UAAU,EAEV,mBAAmB,EAEnB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAWpB,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAC5B,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,aAAa,GACb,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,WAAW,GACX,iBAAiB,CAAC;AAEtB,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAMxF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAC9E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;gBAE7B,MAAM,EAAE,eAAe;IAMnC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIpD;;OAEG;IACH,WAAW,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,GAAG,SAAS;IAOrE;;;OAGG;IACH,EAAE,CAAC,OAAO,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAQhD,OAAO,CAAC,IAAI;IAiBZ;;;;;OAKG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,iBAAiB,CAAC;KAClC,GAAG,OAAO,CAAC,UAAU,CAAC;IAyEvB;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/C;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAW7C;;;;;OAKG;IACH,cAAc,CAAC,YAAY,EAAE,iBAAiB,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAsB1E;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -296,7 +296,15 @@ export class CallManager {
|
|
|
296
296
|
});
|
|
297
297
|
break;
|
|
298
298
|
case 'call-dtmf':
|
|
299
|
-
// DTMF
|
|
299
|
+
// DTMF key-presses are informational events -- they do NOT trigger a
|
|
300
|
+
// state transition. The call remains in its current state (typically
|
|
301
|
+
// 'listening' or 'active') because pressing a phone key is not a
|
|
302
|
+
// lifecycle event. Higher-level logic (IVR menus, PIN entry, etc.)
|
|
303
|
+
// subscribes to the 'call:dtmf' event to react to caller input.
|
|
304
|
+
//
|
|
305
|
+
// The `digit` field contains '0'-'9', '*', '#', or rarely 'A'-'D'.
|
|
306
|
+
// The `durationMs` field is provider-dependent: Twilio's media stream
|
|
307
|
+
// includes key-hold duration, but Telnyx and Plivo webhooks omit it.
|
|
300
308
|
this.emit({
|
|
301
309
|
type: 'call:dtmf',
|
|
302
310
|
callId: call.callId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallManager.js","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CallManager.js","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,72 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Interface for parsing provider-specific WebSocket media stream messages.
|
|
2
|
+
* @fileoverview Interface for parsing provider-specific WebSocket media stream messages.
|
|
3
3
|
*
|
|
4
4
|
* Each telephony provider (Twilio, Telnyx, Plivo, etc.) sends audio data
|
|
5
5
|
* over WebSocket in its own proprietary JSON or binary format. Implementations
|
|
6
6
|
* of this interface normalise the provider wire format into the shared
|
|
7
7
|
* {@link MediaStreamIncoming} discriminated union so the rest of the voice
|
|
8
8
|
* pipeline never needs to know which provider is in use.
|
|
9
|
+
*
|
|
10
|
+
* ## Implementing a custom parser
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import type { MediaStreamParser, MediaStreamIncoming } from './MediaStreamParser.js';
|
|
15
|
+
*
|
|
16
|
+
* class CustomMediaStreamParser implements MediaStreamParser {
|
|
17
|
+
* parseIncoming(data: Buffer | string): MediaStreamIncoming | null {
|
|
18
|
+
* const msg = JSON.parse(typeof data === 'string' ? data : data.toString('utf8'));
|
|
19
|
+
* if (msg.type === 'audio') {
|
|
20
|
+
* return {
|
|
21
|
+
* type: 'audio',
|
|
22
|
+
* payload: Buffer.from(msg.audioData, 'base64'),
|
|
23
|
+
* streamSid: msg.sessionId,
|
|
24
|
+
* };
|
|
25
|
+
* }
|
|
26
|
+
* return null; // Silently ignore unknown message types
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* formatOutgoing(audio: Buffer, streamSid: string): Buffer | string {
|
|
30
|
+
* return JSON.stringify({
|
|
31
|
+
* type: 'playback',
|
|
32
|
+
* sessionId: streamSid,
|
|
33
|
+
* audioData: audio.toString('base64'),
|
|
34
|
+
* });
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* formatConnected(streamSid: string): string | null {
|
|
38
|
+
* return JSON.stringify({ type: 'ready', sessionId: streamSid });
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @module @framers/agentos/voice/MediaStreamParser
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Contract for parsing and formatting provider-specific WebSocket media
|
|
47
|
+
* stream messages.
|
|
48
|
+
*
|
|
49
|
+
* The interface has three responsibilities:
|
|
50
|
+
*
|
|
51
|
+
* 1. **Inbound normalisation** ({@link parseIncoming}) -- Convert the provider's
|
|
52
|
+
* proprietary wire format into {@link MediaStreamIncoming} events.
|
|
53
|
+
* 2. **Outbound formatting** ({@link formatOutgoing}) -- Wrap mu-law audio
|
|
54
|
+
* bytes in whatever envelope the provider expects.
|
|
55
|
+
* 3. **Connection handshake** ({@link formatConnected}) -- Optionally generate
|
|
56
|
+
* a first-message acknowledgment required by some providers (e.g., Twilio).
|
|
57
|
+
*
|
|
58
|
+
* @see TwilioMediaStreamParser -- JSON envelope, base64 audio, `connected` ack.
|
|
59
|
+
* @see TelnyxMediaStreamParser -- JSON inbound, raw binary outbound, no ack.
|
|
60
|
+
* @see PlivoMediaStreamParser -- JSON envelope, `playAudio` outbound, no ack.
|
|
9
61
|
*/
|
|
10
62
|
export interface MediaStreamParser {
|
|
11
63
|
/**
|
|
12
64
|
* Parse a raw WebSocket message received from the telephony provider.
|
|
13
65
|
*
|
|
66
|
+
* Implementations must handle both `Buffer` (binary frames) and `string`
|
|
67
|
+
* (text frames) inputs, since different providers and WebSocket libraries
|
|
68
|
+
* deliver data in different forms.
|
|
69
|
+
*
|
|
14
70
|
* @param data - Raw message bytes or string as delivered by the WS frame.
|
|
15
71
|
* @returns A normalised {@link MediaStreamIncoming} event, or `null` if the
|
|
16
72
|
* message should be silently ignored (e.g. unknown event type, outbound
|
|
@@ -20,6 +76,12 @@ export interface MediaStreamParser {
|
|
|
20
76
|
/**
|
|
21
77
|
* Encode mu-law audio for transmission back to the telephony provider.
|
|
22
78
|
*
|
|
79
|
+
* The returned type varies by provider:
|
|
80
|
+
* - **Twilio**: Returns a JSON `string` wrapping base64-encoded audio in a
|
|
81
|
+
* `{ event: 'media', streamSid, media: { payload } }` envelope.
|
|
82
|
+
* - **Telnyx**: Returns the raw `Buffer` unchanged (binary WS frame).
|
|
83
|
+
* - **Plivo**: Returns a JSON `string` with a `{ event: 'playAudio', media: { payload } }` envelope.
|
|
84
|
+
*
|
|
23
85
|
* @param audio - Raw mu-law PCM bytes to send to the caller.
|
|
24
86
|
* @param streamSid - Provider stream identifier required by some formats.
|
|
25
87
|
* @returns A `Buffer` (for providers that accept raw binary) or a JSON
|
|
@@ -30,6 +92,10 @@ export interface MediaStreamParser {
|
|
|
30
92
|
* Generate the initial connection acknowledgment message, if the provider
|
|
31
93
|
* requires one immediately after the WebSocket handshake.
|
|
32
94
|
*
|
|
95
|
+
* - **Twilio**: Returns `{ event: 'connected', protocol: 'Call', version: '1.0.0' }`.
|
|
96
|
+
* - **Telnyx**: Returns `null` (no handshake needed).
|
|
97
|
+
* - **Plivo**: Not defined (no handshake needed).
|
|
98
|
+
*
|
|
33
99
|
* @param streamSid - The stream identifier established during the handshake.
|
|
34
100
|
* @returns A JSON string to send as the first WS message, or `null` if the
|
|
35
101
|
* provider does not need an explicit acknowledgment.
|
|
@@ -39,9 +105,28 @@ export interface MediaStreamParser {
|
|
|
39
105
|
/**
|
|
40
106
|
* Discriminated union of all normalised events that can arrive on a media
|
|
41
107
|
* stream WebSocket connection, regardless of the underlying telephony provider.
|
|
108
|
+
*
|
|
109
|
+
* ## Variant summary
|
|
110
|
+
*
|
|
111
|
+
* | `type` | When it fires | Key payload fields |
|
|
112
|
+
* |----------|----------------------------------------------|-----------------------------|
|
|
113
|
+
* | `audio` | Each inbound audio chunk (~20ms intervals) | `payload` (mu-law Buffer) |
|
|
114
|
+
* | `dtmf` | Caller presses a phone keypad button | `digit`, `durationMs?` |
|
|
115
|
+
* | `start` | Stream session begins (metadata available) | `callSid`, `metadata?` |
|
|
116
|
+
* | `stop` | Stream session ends / call disconnects | (none beyond `streamSid`) |
|
|
117
|
+
* | `mark` | Named sync point injected into audio stream | `name` |
|
|
118
|
+
*
|
|
119
|
+
* All variants carry a `streamSid` field to identify which stream the event
|
|
120
|
+
* belongs to (important when a single server handles multiple concurrent calls).
|
|
42
121
|
*/
|
|
43
122
|
export type MediaStreamIncoming = {
|
|
44
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* Inbound audio chunk encoded as mu-law 8-bit 8 kHz PCM.
|
|
125
|
+
*
|
|
126
|
+
* Audio arrives as small chunks (typically 20ms / 160 bytes) at regular
|
|
127
|
+
* intervals for the duration of the call. The pipeline must decode
|
|
128
|
+
* mu-law -> PCM Int16 -> resample -> Float32 before feeding to STT/VAD.
|
|
129
|
+
*/
|
|
45
130
|
type: 'audio';
|
|
46
131
|
/** Raw mu-law bytes decoded from whatever encoding the provider uses. */
|
|
47
132
|
payload: Buffer;
|
|
@@ -50,7 +135,13 @@ export type MediaStreamIncoming = {
|
|
|
50
135
|
/** Monotonically increasing sequence number, when provided. */
|
|
51
136
|
sequenceNumber?: number;
|
|
52
137
|
} | {
|
|
53
|
-
/**
|
|
138
|
+
/**
|
|
139
|
+
* DTMF tone detected by the provider during the call.
|
|
140
|
+
*
|
|
141
|
+
* Not all providers relay DTMF over the media stream -- Telnyx, for
|
|
142
|
+
* example, only delivers DTMF via HTTP webhooks. Check the provider's
|
|
143
|
+
* parser documentation for availability.
|
|
144
|
+
*/
|
|
54
145
|
type: 'dtmf';
|
|
55
146
|
/** Single character digit pressed by the caller (0-9, *, #, A-D). */
|
|
56
147
|
digit: string;
|
|
@@ -59,7 +150,14 @@ export type MediaStreamIncoming = {
|
|
|
59
150
|
/** Duration the key was held, in milliseconds, when reported. */
|
|
60
151
|
durationMs?: number;
|
|
61
152
|
} | {
|
|
62
|
-
/**
|
|
153
|
+
/**
|
|
154
|
+
* Stream successfully started; metadata about the call is available.
|
|
155
|
+
*
|
|
156
|
+
* This is always the first meaningful event on a new stream connection.
|
|
157
|
+
* The {@link TelephonyStreamTransport} transitions from `connecting` to
|
|
158
|
+
* `open` upon receiving this event and sends the optional
|
|
159
|
+
* {@link MediaStreamParser.formatConnected} acknowledgment.
|
|
160
|
+
*/
|
|
63
161
|
type: 'start';
|
|
64
162
|
/** Provider-assigned stream identifier. */
|
|
65
163
|
streamSid: string;
|
|
@@ -68,12 +166,23 @@ export type MediaStreamIncoming = {
|
|
|
68
166
|
/** Additional provider-specific metadata attached to the start event. */
|
|
69
167
|
metadata?: Record<string, unknown>;
|
|
70
168
|
} | {
|
|
71
|
-
/**
|
|
169
|
+
/**
|
|
170
|
+
* Call ended or stream was explicitly stopped.
|
|
171
|
+
*
|
|
172
|
+
* The {@link TelephonyStreamTransport} transitions to `closed` and
|
|
173
|
+
* emits a `'close'` event upon receiving this.
|
|
174
|
+
*/
|
|
72
175
|
type: 'stop';
|
|
73
176
|
/** Provider-assigned stream identifier. */
|
|
74
177
|
streamSid: string;
|
|
75
178
|
} | {
|
|
76
|
-
/**
|
|
179
|
+
/**
|
|
180
|
+
* Named marker injected into the audio stream for synchronisation.
|
|
181
|
+
*
|
|
182
|
+
* Marks are used to correlate outbound audio playback completion with
|
|
183
|
+
* application logic (e.g., knowing when a TTS utterance finished playing
|
|
184
|
+
* so the agent can transition from `speaking` to `listening`).
|
|
185
|
+
*/
|
|
77
186
|
type: 'mark';
|
|
78
187
|
/** The label assigned to this mark point. */
|
|
79
188
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaStreamParser.d.ts","sourceRoot":"","sources":["../../src/voice/MediaStreamParser.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MediaStreamParser.d.ts","sourceRoot":"","sources":["../../src/voice/MediaStreamParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;;;;;;;;OAaG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAElE;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE;;;;;;OAMG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,GACD;IACE;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
|
|
@@ -1,2 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Interface for parsing provider-specific WebSocket media stream messages.
|
|
3
|
+
*
|
|
4
|
+
* Each telephony provider (Twilio, Telnyx, Plivo, etc.) sends audio data
|
|
5
|
+
* over WebSocket in its own proprietary JSON or binary format. Implementations
|
|
6
|
+
* of this interface normalise the provider wire format into the shared
|
|
7
|
+
* {@link MediaStreamIncoming} discriminated union so the rest of the voice
|
|
8
|
+
* pipeline never needs to know which provider is in use.
|
|
9
|
+
*
|
|
10
|
+
* ## Implementing a custom parser
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import type { MediaStreamParser, MediaStreamIncoming } from './MediaStreamParser.js';
|
|
15
|
+
*
|
|
16
|
+
* class CustomMediaStreamParser implements MediaStreamParser {
|
|
17
|
+
* parseIncoming(data: Buffer | string): MediaStreamIncoming | null {
|
|
18
|
+
* const msg = JSON.parse(typeof data === 'string' ? data : data.toString('utf8'));
|
|
19
|
+
* if (msg.type === 'audio') {
|
|
20
|
+
* return {
|
|
21
|
+
* type: 'audio',
|
|
22
|
+
* payload: Buffer.from(msg.audioData, 'base64'),
|
|
23
|
+
* streamSid: msg.sessionId,
|
|
24
|
+
* };
|
|
25
|
+
* }
|
|
26
|
+
* return null; // Silently ignore unknown message types
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* formatOutgoing(audio: Buffer, streamSid: string): Buffer | string {
|
|
30
|
+
* return JSON.stringify({
|
|
31
|
+
* type: 'playback',
|
|
32
|
+
* sessionId: streamSid,
|
|
33
|
+
* audioData: audio.toString('base64'),
|
|
34
|
+
* });
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* formatConnected(streamSid: string): string | null {
|
|
38
|
+
* return JSON.stringify({ type: 'ready', sessionId: streamSid });
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @module @framers/agentos/voice/MediaStreamParser
|
|
44
|
+
*/
|
|
1
45
|
export {};
|
|
2
46
|
//# sourceMappingURL=MediaStreamParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MediaStreamParser.js","sourceRoot":"","sources":["../../src/voice/MediaStreamParser.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"MediaStreamParser.js","sourceRoot":"","sources":["../../src/voice/MediaStreamParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG"}
|
|
@@ -1,12 +1,62 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview TelephonyStreamTransport
|
|
2
|
+
* @fileoverview TelephonyStreamTransport -- bridges a telephony WebSocket media
|
|
3
3
|
* stream to the AgentOS streaming voice pipeline.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* ## Audio conversion chain
|
|
6
|
+
*
|
|
7
|
+
* ### Inbound path (phone -> pipeline)
|
|
8
|
+
*
|
|
9
|
+
* ```
|
|
10
|
+
* Provider WS frame
|
|
11
|
+
* │ (JSON string or raw binary)
|
|
12
|
+
* ▼
|
|
13
|
+
* MediaStreamParser.parseIncoming()
|
|
14
|
+
* │ (normalised MediaStreamIncoming)
|
|
15
|
+
* ▼
|
|
16
|
+
* mu-law 8 kHz bytes
|
|
17
|
+
* │ convertMulawToPcm16() -- ITU G.711 mu-law expansion table
|
|
18
|
+
* ▼
|
|
19
|
+
* Int16 PCM 8 kHz (2 bytes/sample)
|
|
20
|
+
* │ resample(8000 -> outputSampleRate) -- linear interpolation
|
|
21
|
+
* ▼
|
|
22
|
+
* Int16 PCM at outputSampleRate (default 16 kHz)
|
|
23
|
+
* │ sample / 32768 -- normalise to IEEE 754 float range
|
|
24
|
+
* ▼
|
|
25
|
+
* Float32 [-1, 1] at outputSampleRate
|
|
26
|
+
* │ emit('audio', AudioFrame)
|
|
27
|
+
* ▼
|
|
28
|
+
* Voice pipeline (VAD / STT)
|
|
29
|
+
* ```
|
|
30
|
+
*
|
|
31
|
+
* ### Outbound path (pipeline -> phone)
|
|
32
|
+
*
|
|
33
|
+
* ```
|
|
34
|
+
* EncodedAudioChunk (PCM Int16 at chunk.sampleRate)
|
|
35
|
+
* │ resample(chunk.sampleRate -> 8 kHz) -- linear interpolation
|
|
36
|
+
* ▼
|
|
37
|
+
* Int16 PCM 8 kHz
|
|
38
|
+
* │ convertPcmToMulaw8k() -- ITU G.711 mu-law compression
|
|
39
|
+
* ▼
|
|
40
|
+
* mu-law 8 kHz bytes
|
|
41
|
+
* │ MediaStreamParser.formatOutgoing()
|
|
42
|
+
* ▼
|
|
43
|
+
* Provider WS frame -- sent to caller
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* ## Why 8 kHz <-> 16 kHz resampling?
|
|
47
|
+
*
|
|
48
|
+
* The PSTN (Public Switched Telephone Network) uses 8 kHz sampling (G.711).
|
|
49
|
+
* Most modern STT engines (OpenAI Whisper, Deepgram, etc.) expect 16 kHz
|
|
50
|
+
* or higher. The transport bridges this gap with simple linear interpolation,
|
|
51
|
+
* which is adequate for narrow-band voice telephony.
|
|
52
|
+
*
|
|
53
|
+
* ## State machine
|
|
54
|
+
*
|
|
55
|
+
* ```
|
|
56
|
+
* connecting ──[start msg]──> open ──[stop msg / ws.close()]──> closed
|
|
57
|
+
* │ │
|
|
58
|
+
* └──[ws.close()]──> closed └──[close()]──> closing ──[ws 'close']──> closed
|
|
59
|
+
* ```
|
|
10
60
|
*
|
|
11
61
|
* @module @framers/agentos/voice/TelephonyStreamTransport
|
|
12
62
|
*/
|
|
@@ -28,43 +78,72 @@ export interface TelephonyStreamTransportConfig {
|
|
|
28
78
|
* Adapts a telephony provider WebSocket media stream to the
|
|
29
79
|
* {@link IStreamTransport} interface consumed by the AgentOS voice pipeline.
|
|
30
80
|
*
|
|
31
|
-
* ## Inbound path (phone
|
|
81
|
+
* ## Inbound path (phone -> pipeline)
|
|
32
82
|
* 1. Provider WebSocket frames arrive as raw `Buffer` or JSON `string`.
|
|
33
83
|
* 2. {@link MediaStreamParser.parseIncoming} normalises them to
|
|
34
84
|
* {@link MediaStreamIncoming} events.
|
|
35
|
-
* 3. `'audio'` events: mu-law 8 kHz
|
|
85
|
+
* 3. `'audio'` events: mu-law 8 kHz -> Int16 PCM -> resample -> Float32 -> `'audio'` emit.
|
|
36
86
|
* 4. `'dtmf'` / `'mark'` events are re-emitted as-is for higher-layer handling.
|
|
37
87
|
* 5. `'start'` transitions the transport to `'open'` and sends the optional
|
|
38
88
|
* connection acknowledgment from the parser.
|
|
39
89
|
* 6. `'stop'` or WebSocket close transitions to `'closed'` and emits `'close'`.
|
|
40
90
|
*
|
|
41
|
-
* ## Outbound path (pipeline
|
|
91
|
+
* ## Outbound path (pipeline -> phone)
|
|
42
92
|
* 1. {@link sendAudio} receives an {@link EncodedAudioChunk} (PCM Int16 format assumed).
|
|
43
|
-
* 2. Chunk is resampled from `chunk.sampleRate`
|
|
93
|
+
* 2. Chunk is resampled from `chunk.sampleRate` -> 8 kHz via linear interpolation.
|
|
44
94
|
* 3. Resampled PCM is mu-law encoded via {@link convertPcmToMulaw8k}.
|
|
45
95
|
* 4. {@link MediaStreamParser.formatOutgoing} wraps the bytes for the provider.
|
|
46
96
|
* 5. The formatted payload is sent over the WebSocket.
|
|
47
97
|
*
|
|
48
|
-
*
|
|
49
|
-
* - `'audio'` ({@link AudioFrame})
|
|
50
|
-
* - `'dtmf'` (`{ digit: string; durationMs?: number }`)
|
|
51
|
-
* - `'mark'` (`{ name: string }`)
|
|
52
|
-
* - `'close'` ()
|
|
53
|
-
* - `'error'` (Error)
|
|
98
|
+
* ## Events emitted
|
|
99
|
+
* - `'audio'` ({@link AudioFrame}) -- inbound decoded audio for STT / VAD.
|
|
100
|
+
* - `'dtmf'` (`{ digit: string; durationMs?: number }`) -- caller key-press.
|
|
101
|
+
* - `'mark'` (`{ name: string }`) -- named stream marker.
|
|
102
|
+
* - `'close'` () -- transport has been fully closed.
|
|
103
|
+
* - `'error'` (Error) -- unrecoverable WebSocket or parsing error.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const parser = new TwilioMediaStreamParser();
|
|
108
|
+
* const transport = new TelephonyStreamTransport(ws, parser, { outputSampleRate: 16000 });
|
|
109
|
+
*
|
|
110
|
+
* transport.on('audio', (frame: AudioFrame) => {
|
|
111
|
+
* // Feed to STT engine
|
|
112
|
+
* sttEngine.pushAudio(frame.samples, frame.sampleRate);
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* transport.on('dtmf', ({ digit }) => {
|
|
116
|
+
* console.log(`Caller pressed: ${digit}`);
|
|
117
|
+
* });
|
|
118
|
+
* ```
|
|
54
119
|
*/
|
|
55
120
|
export declare class TelephonyStreamTransport extends EventEmitter implements IStreamTransport {
|
|
56
121
|
private readonly ws;
|
|
57
122
|
private readonly parser;
|
|
58
123
|
/** Stable UUID for this transport connection. */
|
|
59
124
|
readonly id: string;
|
|
125
|
+
/** Internal state -- not directly assignable from outside. */
|
|
60
126
|
private _state;
|
|
61
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Current connection lifecycle state.
|
|
129
|
+
*
|
|
130
|
+
* - `connecting` -- WebSocket is open but the provider's `start` event has not arrived yet.
|
|
131
|
+
* - `open` -- Stream is active; audio can be sent and received.
|
|
132
|
+
* - `closing` -- {@link close} was called; waiting for WS to finish closing.
|
|
133
|
+
* - `closed` -- Stream is fully terminated; no further I/O.
|
|
134
|
+
*/
|
|
62
135
|
get state(): 'connecting' | 'open' | 'closing' | 'closed';
|
|
63
136
|
/** Provider-assigned stream identifier; populated on the 'start' event. */
|
|
64
137
|
private streamSid;
|
|
65
138
|
/** Target sample rate for emitted AudioFrames (pipeline input requirement). */
|
|
66
139
|
private readonly outputSampleRate;
|
|
67
140
|
/**
|
|
141
|
+
* Create a new telephony stream transport.
|
|
142
|
+
*
|
|
143
|
+
* Wires up WebSocket event handlers immediately. The transport starts in
|
|
144
|
+
* `'connecting'` state and transitions to `'open'` when the provider sends
|
|
145
|
+
* its `start` event through the media stream.
|
|
146
|
+
*
|
|
68
147
|
* @param ws - WebSocket-like object (must emit `'message'`, `'close'`, `'error'`
|
|
69
148
|
* and expose `send(data)` and `close(code?, reason?)` methods).
|
|
70
149
|
* @param parser - Provider-specific message parser/formatter.
|
|
@@ -79,18 +158,27 @@ export declare class TelephonyStreamTransport extends EventEmitter implements IS
|
|
|
79
158
|
* signed 16-bit little-endian PCM samples at `chunk.sampleRate`. The audio
|
|
80
159
|
* is resampled to 8 kHz, mu-law encoded, and forwarded via the parser.
|
|
81
160
|
*
|
|
161
|
+
* No-op if the transport is not in the `'open'` state (e.g., before the
|
|
162
|
+
* provider's `start` event or after the stream has closed).
|
|
163
|
+
*
|
|
82
164
|
* @param chunk - Encoded audio chunk from the TTS pipeline.
|
|
83
165
|
*/
|
|
84
166
|
sendAudio(chunk: EncodedAudioChunk): Promise<void>;
|
|
85
167
|
/**
|
|
86
168
|
* Send a JSON control message over the WebSocket.
|
|
87
169
|
*
|
|
170
|
+
* No-op if the transport is not in the `'open'` state.
|
|
171
|
+
*
|
|
88
172
|
* @param message - Server-to-client pipeline protocol message.
|
|
89
173
|
*/
|
|
90
174
|
sendControl(message: ServerTextMessage): Promise<void>;
|
|
91
175
|
/**
|
|
92
176
|
* Initiate graceful closure of the transport.
|
|
93
177
|
*
|
|
178
|
+
* Sets state to `'closing'` and delegates to the underlying WebSocket's
|
|
179
|
+
* `close()` method. The actual transition to `'closed'` happens when the
|
|
180
|
+
* WebSocket's `'close'` event fires.
|
|
181
|
+
*
|
|
94
182
|
* @param code - Optional WebSocket close code (default 1000).
|
|
95
183
|
* @param reason - Optional human-readable close reason.
|
|
96
184
|
*/
|
|
@@ -98,9 +186,13 @@ export declare class TelephonyStreamTransport extends EventEmitter implements IS
|
|
|
98
186
|
/**
|
|
99
187
|
* Linear interpolation resampler for 16-bit signed PCM.
|
|
100
188
|
*
|
|
101
|
-
* Not studio-quality but sufficient for narrow-band voice telephony
|
|
102
|
-
*
|
|
103
|
-
*
|
|
189
|
+
* Not studio-quality but sufficient for narrow-band voice telephony where
|
|
190
|
+
* the source material is already limited to ~3.4 kHz bandwidth by the PSTN.
|
|
191
|
+
* A higher-quality sinc interpolator would add latency and complexity with
|
|
192
|
+
* negligible perceptual improvement at telephone bandwidths.
|
|
193
|
+
*
|
|
194
|
+
* The output length is computed as `round(input.length * toRate / fromRate)`
|
|
195
|
+
* to avoid cumulative rounding drift across many small frames.
|
|
104
196
|
*
|
|
105
197
|
* @param input - Source samples as a signed 16-bit integer array.
|
|
106
198
|
* @param fromRate - Sample rate of the input, in Hz.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelephonyStreamTransport.d.ts","sourceRoot":"","sources":["../../src/voice/TelephonyStreamTransport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"TelephonyStreamTransport.d.ts","sourceRoot":"","sources":["../../src/voice/TelephonyStreamTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAMpC;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,gBAAgB;IAkDlF,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA9CzB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAgB;IAEnC,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAA8D;IAE5E;;;;;;;OAOG;IACH,IAAI,KAAK,IAAI,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAExD;IAMD,2EAA2E;IAC3E,OAAO,CAAC,SAAS,CAAuB;IAExC,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAM1C;;;;;;;;;;;OAWG;gBAEgB,EAAE,EAAE,GAAG,EAAE,8DAA8D;IACvE,MAAM,EAAE,iBAAiB,EAC1C,MAAM,CAAC,EAAE,8BAA8B;IAwFzC;;;;;;;;;;;OAWG;IACG,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxD;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3C;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,QAAQ;CAoBjB"}
|