@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.
Files changed (44) hide show
  1. package/dist/voice/CallManager.d.ts.map +1 -1
  2. package/dist/voice/CallManager.js +9 -1
  3. package/dist/voice/CallManager.js.map +1 -1
  4. package/dist/voice/MediaStreamParser.d.ts +115 -6
  5. package/dist/voice/MediaStreamParser.d.ts.map +1 -1
  6. package/dist/voice/MediaStreamParser.js +44 -0
  7. package/dist/voice/MediaStreamParser.js.map +1 -1
  8. package/dist/voice/TelephonyStreamTransport.d.ts +112 -20
  9. package/dist/voice/TelephonyStreamTransport.d.ts.map +1 -1
  10. package/dist/voice/TelephonyStreamTransport.js +136 -30
  11. package/dist/voice/TelephonyStreamTransport.js.map +1 -1
  12. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts +64 -6
  13. package/dist/voice/parsers/PlivoMediaStreamParser.d.ts.map +1 -1
  14. package/dist/voice/parsers/PlivoMediaStreamParser.js +67 -6
  15. package/dist/voice/parsers/PlivoMediaStreamParser.js.map +1 -1
  16. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts +55 -8
  17. package/dist/voice/parsers/TelnyxMediaStreamParser.d.ts.map +1 -1
  18. package/dist/voice/parsers/TelnyxMediaStreamParser.js +60 -9
  19. package/dist/voice/parsers/TelnyxMediaStreamParser.js.map +1 -1
  20. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts +73 -11
  21. package/dist/voice/parsers/TwilioMediaStreamParser.d.ts.map +1 -1
  22. package/dist/voice/parsers/TwilioMediaStreamParser.js +81 -12
  23. package/dist/voice/parsers/TwilioMediaStreamParser.js.map +1 -1
  24. package/dist/voice/providers/plivo.d.ts +108 -12
  25. package/dist/voice/providers/plivo.d.ts.map +1 -1
  26. package/dist/voice/providers/plivo.js +106 -9
  27. package/dist/voice/providers/plivo.js.map +1 -1
  28. package/dist/voice/providers/telnyx.d.ts +110 -20
  29. package/dist/voice/providers/telnyx.d.ts.map +1 -1
  30. package/dist/voice/providers/telnyx.js +111 -20
  31. package/dist/voice/providers/telnyx.js.map +1 -1
  32. package/dist/voice/providers/twilio.d.ts +91 -13
  33. package/dist/voice/providers/twilio.d.ts.map +1 -1
  34. package/dist/voice/providers/twilio.js +94 -14
  35. package/dist/voice/providers/twilio.js.map +1 -1
  36. package/dist/voice/twiml.d.ts +70 -12
  37. package/dist/voice/twiml.d.ts.map +1 -1
  38. package/dist/voice/twiml.js +70 -12
  39. package/dist/voice/twiml.js.map +1 -1
  40. package/dist/voice/types.d.ts +142 -15
  41. package/dist/voice/types.d.ts.map +1 -1
  42. package/dist/voice/types.js +34 -3
  43. package/dist/voice/types.js.map +1 -1
  44. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CallManager.d.ts","sourceRoot":"","sources":["../../src/voice/CallManager.ts"],"names":[],"mappings":"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"}
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 does NOT trigger a state transition call stays in current state
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
- /** Inbound audio chunk encoded as mu-law 8-bit 8 kHz PCM. */
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
- /** DTMF tone detected by the provider during the call. */
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
- /** Stream successfully started; metadata about the call is available. */
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
- /** Call ended or stream was explicitly stopped. */
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
- /** Named marker injected into the audio stream for synchronisation. */
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;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAEjE;;;;;;;OAOG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAElE;;;;;;;OAOG;IACH,eAAe,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,6DAA6D;IAC7D,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,0DAA0D;IAC1D,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,yEAAyE;IACzE,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,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC"}
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 bridges a telephony WebSocket media
2
+ * @fileoverview TelephonyStreamTransport -- bridges a telephony WebSocket media
3
3
  * stream to the AgentOS streaming voice pipeline.
4
4
  *
5
- * Incoming mu-law 8 kHz audio from the phone network is decoded to Int16 PCM,
6
- * resampled to the pipeline's preferred sample rate, normalised to Float32, and
7
- * emitted as {@link AudioFrame} events. Outbound {@link EncodedAudioChunk}
8
- * payloads are resampled from the pipeline's sample rate back to 8 kHz, encoded
9
- * to mu-law, and forwarded through the provider-specific {@link MediaStreamParser}.
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 pipeline)
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 Int16 PCM resample Float32 `'audio'` emit.
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 phone)
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` 8 kHz via linear interpolation.
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
- * Emits:
49
- * - `'audio'` ({@link AudioFrame}) inbound decoded audio for STT / VAD.
50
- * - `'dtmf'` (`{ digit: string; durationMs?: number }`) caller key-press.
51
- * - `'mark'` (`{ name: string }`) named stream marker.
52
- * - `'close'` () transport has been fully closed.
53
- * - `'error'` (Error) unrecoverable WebSocket or parsing 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
- /** Current connection lifecycle state. */
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. The
102
- * output length is computed as `round(input.length * toRate / fromRate)` to
103
- * avoid cumulative rounding drift across many small frames.
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;;;;;;;;;;;GAWG;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;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,wBAAyB,SAAQ,YAAa,YAAW,gBAAgB;IAoClF,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAhCzB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAgB;IAEnC,OAAO,CAAC,MAAM,CAA8D;IAE5E,0CAA0C;IAC1C,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;;;;;OAKG;gBAEgB,EAAE,EAAE,GAAG,EAAE,8DAA8D;IACvE,MAAM,EAAE,iBAAiB,EAC1C,MAAM,CAAC,EAAE,8BAA8B;IA6EzC;;;;;;;;OAQG;IACG,SAAS,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5D;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAS3C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ;CAkBjB"}
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"}