@ipcom/asterisk-ari 0.0.17 → 0.0.19
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/cjs/index.cjs +705 -50
- package/dist/cjs/index.cjs.map +4 -4
- package/dist/esm/index.js +700 -49
- package/dist/esm/index.js.map +4 -4
- package/dist/types/ari-client/ariClient.d.ts +218 -23
- package/dist/types/ari-client/ariClient.d.ts.map +1 -1
- package/dist/types/ari-client/baseClient.d.ts +20 -0
- package/dist/types/ari-client/baseClient.d.ts.map +1 -1
- package/dist/types/ari-client/interfaces/asterisk.types.d.ts +39 -0
- package/dist/types/ari-client/interfaces/asterisk.types.d.ts.map +1 -0
- package/dist/types/ari-client/interfaces/channels.types.d.ts +54 -5
- package/dist/types/ari-client/interfaces/channels.types.d.ts.map +1 -1
- package/dist/types/ari-client/interfaces/index.d.ts +8 -0
- package/dist/types/ari-client/interfaces/index.d.ts.map +1 -0
- package/dist/types/ari-client/interfaces/playbacks.types.d.ts +11 -0
- package/dist/types/ari-client/interfaces/playbacks.types.d.ts.map +1 -0
- package/dist/types/ari-client/interfaces/sounds.types.d.ts +11 -0
- package/dist/types/ari-client/interfaces/sounds.types.d.ts.map +1 -0
- package/dist/types/ari-client/resources/asterisk.d.ts +37 -0
- package/dist/types/ari-client/resources/asterisk.d.ts.map +1 -1
- package/dist/types/ari-client/resources/channels.d.ts +125 -26
- package/dist/types/ari-client/resources/channels.d.ts.map +1 -1
- package/dist/types/ari-client/resources/playbacks.d.ts +28 -0
- package/dist/types/ari-client/resources/playbacks.d.ts.map +1 -1
- package/dist/types/ari-client/resources/sounds.d.ts +21 -0
- package/dist/types/ari-client/resources/sounds.d.ts.map +1 -1
- package/dist/types/index.d.ts +5 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../node_modules/exponential-backoff/src/options.ts", "../../node_modules/exponential-backoff/src/jitter/full/full.jitter.ts", "../../node_modules/exponential-backoff/src/jitter/no/no.jitter.ts", "../../node_modules/exponential-backoff/src/jitter/jitter.factory.ts", "../../node_modules/exponential-backoff/src/delay/delay.base.ts", "../../node_modules/exponential-backoff/src/delay/skip-first/skip-first.delay.ts", "../../node_modules/exponential-backoff/src/delay/always/always.delay.ts", "../../node_modules/exponential-backoff/src/delay/delay.factory.ts", "../../node_modules/exponential-backoff/src/backoff.ts", "../../src/index.ts", "../../src/ari-client/ariClient.ts", "../../src/ari-client/baseClient.ts", "../../src/ari-client/resources/applications.ts", "../../src/ari-client/resources/channels.ts", "../../src/ari-client/resources/endpoints.ts", "../../src/ari-client/websocketClient.ts"],
|
|
4
|
-
"sourcesContent": [null, null, null, null, null, null, null, null, null, "// Exporta a classe principal AriClient\nexport { AriClient } from \"./ari-client/ariClient.js\";\n\n// Exporta as classes dos recursos, caso o usu\u00E1rio precise us\u00E1-las diretamente\nexport { Channels } from \"./ari-client/resources/channels.js\";\n\n// Exporta interfaces importantes para tipagem\nexport type { AriClientConfig } from \"./ari-client/interfaces/requests.js\";\nexport type { Channel } from \"./ari-client/interfaces/channels.types.js\";\n", "import { type IBackOffOptions, backOff } from \"exponential-backoff\";\nimport { BaseClient } from \"./baseClient.js\";\nimport type {\n Application,\n ApplicationDetails,\n} from \"./interfaces/applications.types\";\nimport type { Channel, OriginateRequest } from \"./interfaces/channels.types\";\nimport type {\n Endpoint,\n EndpointDetails,\n} from \"./interfaces/endpoints.types.js\";\nimport type { AriApplication, AriClientConfig } from \"./interfaces/requests.js\";\nimport { Applications } from \"./resources/applications.js\";\nimport { Channels } from \"./resources/channels.js\";\nimport { Endpoints } from \"./resources/endpoints\";\nimport { WebSocketClient } from \"./websocketClient.js\";\n\nexport class AriClient {\n private wsClient: WebSocketClient | null = null;\n private readonly baseClient: BaseClient;\n private isReconnecting = false;\n\n public channels: Channels;\n public endpoints: Endpoints;\n public applications: Applications;\n\n constructor(private config: AriClientConfig) {\n const httpProtocol = config.secure ? \"https\" : \"http\";\n const normalizedHost = config.host.replace(/^https?:\\/\\//, \"\");\n const baseUrl = `${httpProtocol}://${normalizedHost}:${config.port}/ari`;\n\n this.baseClient = new BaseClient(baseUrl, config.username, config.password);\n this.channels = new Channels(this.baseClient);\n this.endpoints = new Endpoints(this.baseClient);\n this.applications = new Applications(this.baseClient);\n }\n\n /**\n * Connects to the ARI WebSocket for a specific application.\n *\n * @param app - The application name to connect to.\n * @returns {Promise<void>} Resolves when the WebSocket connects successfully.\n */\n async connectWebSocket(app: string): Promise<void> {\n if (!app) {\n throw new Error(\n \"The 'app' parameter is required to connect to the WebSocket.\",\n );\n }\n\n if (this.isReconnecting) {\n console.warn(\"Already attempting to reconnect. Skipping this attempt.\");\n return;\n }\n\n this.isReconnecting = true;\n\n const protocol = this.config.secure ? \"wss\" : \"ws\";\n const wsUrl = `${protocol}://${encodeURIComponent(this.config.username)}:${encodeURIComponent(this.config.password)}@${\n this.config.host\n }:${this.config.port}/ari/events?app=${app}`;\n\n const backoffOptions: IBackOffOptions = {\n delayFirstAttempt: false,\n startingDelay: 1000,\n timeMultiple: 2,\n maxDelay: 30000,\n numOfAttempts: 10,\n jitter: \"full\",\n retry: (error: any, attemptNumber: number) => {\n console.warn(`Tentativa ${attemptNumber} falhou: ${error.message}`);\n return !this.wsClient?.isConnected();\n },\n };\n\n this.wsClient = new WebSocketClient(wsUrl);\n\n try {\n await backOff(async () => {\n if (!this.wsClient) {\n throw new Error(\"WebSocketClient instance is null.\");\n }\n await this.wsClient.connect();\n console.log(`WebSocket conectado para o app: ${app}`);\n await this.ensureAppRegistered(app); // Verifica e registra o aplicativo\n }, backoffOptions);\n } catch (err) {\n console.error(\n \"N\u00E3o foi poss\u00EDvel conectar ao WebSocket ap\u00F3s m\u00FAltiplas tentativas:\",\n err,\n );\n throw err;\n } finally {\n this.isReconnecting = false;\n }\n }\n\n /**\n * Ensures the ARI application is registered.\n *\n * @param app - The application name to ensure is registered.\n * @returns {Promise<void>}\n */\n async ensureAppRegistered(app: string): Promise<void> {\n try {\n const apps = await this.baseClient.get<AriApplication[]>(\"/applications\");\n const appExists = apps.some((a: { name: string }) => a.name === app);\n\n if (!appExists) {\n console.log(`Registrando o aplicativo ARI: ${app}`);\n await this.baseClient.post(\"/applications\", { app });\n console.log(`Aplicativo ${app} registrado com sucesso.`);\n } else {\n console.log(`Aplicativo ${app} j\u00E1 est\u00E1 registrado.`);\n }\n } catch (error) {\n console.error(`Erro ao garantir o registro do aplicativo ${app}:`, error);\n throw error;\n }\n }\n\n /**\n * Checks if the WebSocket connection is active.\n *\n * @returns {boolean} True if connected, false otherwise.\n */\n isWebSocketConnected(): boolean {\n return this.wsClient ? this.wsClient.isConnected() : false;\n }\n\n /**\n * Registers a callback for a specific WebSocket event.\n *\n * @param event - The WebSocket event to listen for.\n * @param callback - The callback function to execute when the event occurs.\n */\n onWebSocketEvent(event: string, callback: (data: any) => void): void {\n if (!this.wsClient) {\n throw new Error(\"WebSocket is not connected.\");\n }\n this.wsClient.on(event, callback);\n }\n\n /**\n * Closes the WebSocket connection.\n */\n closeWebSocket(): void {\n if (this.wsClient) {\n this.wsClient.close();\n this.wsClient = null;\n }\n }\n /**\n * Retrieves a list of active channels from the Asterisk ARI.\n *\n * @returns {Promise<Channel[]>} A promise resolving to the list of active channels.\n */\n async listChannels(): Promise<Channel[]> {\n return this.channels.list();\n }\n\n /**\n * Initiates a new channel on the Asterisk server.\n *\n * @param data - The parameters for creating the new channel.\n * @returns {Promise<Channel>} A promise resolving to the new channel's details.\n */\n async originateChannel(data: OriginateRequest): Promise<Channel> {\n return this.channels.originate(data);\n }\n\n /**\n * Retrieves details of a specific channel.\n *\n * @param channelId - The unique identifier of the channel.\n * @returns {Promise<Channel>} A promise resolving to the details of the channel.\n */\n async getChannelDetails(channelId: string): Promise<Channel> {\n return this.channels.getDetails(channelId);\n }\n\n /**\n * Hangs up a specific channel.\n *\n * @param channelId - The unique identifier of the channel to hang up.\n * @returns {Promise<void>}\n */\n async hangupChannel(channelId: string): Promise<void> {\n return this.channels.hangup(channelId);\n }\n\n /**\n * Continues the dialplan for a specific channel.\n *\n * @param channelId - The unique identifier of the channel.\n * @param context - Optional. The context to continue in the dialplan.\n * @param extension - Optional. The extension to continue in the dialplan.\n * @param priority - Optional. The priority to continue in the dialplan.\n * @param label - Optional. The label to continue in the dialplan.\n * @returns {Promise<void>}\n */\n async continueChannelDialplan(\n channelId: string,\n context?: string,\n extension?: string,\n priority?: number,\n label?: string,\n ): Promise<void> {\n return this.channels.continueDialplan(\n channelId,\n context,\n extension,\n priority,\n label,\n );\n }\n\n /**\n * Moves a channel to another Stasis application.\n *\n * @param channelId - The unique identifier of the channel.\n * @param app - The name of the Stasis application to move the channel to.\n * @param appArgs - Optional arguments for the Stasis application.\n * @returns {Promise<void>}\n */\n async moveChannelToApplication(\n channelId: string,\n app: string,\n appArgs?: string,\n ): Promise<void> {\n return this.channels.moveToApplication(channelId, app, appArgs);\n }\n\n // M\u00E9todos relacionados a endpoints:\n\n /**\n * Lists all endpoints.\n *\n * @returns {Promise<Endpoint[]>} A promise resolving to the list of endpoints.\n */\n async listEndpoints(): Promise<Endpoint[]> {\n return this.endpoints.list();\n }\n\n /**\n * Retrieves details of a specific endpoint.\n *\n * @param technology - The technology of the endpoint.\n * @param resource - The resource name of the endpoint.\n * @returns {Promise<EndpointDetails>} A promise resolving to the details of the endpoint.\n */\n async getEndpointDetails(\n technology: string,\n resource: string,\n ): Promise<EndpointDetails> {\n return this.endpoints.getDetails(technology, resource);\n }\n\n /**\n * Sends a message to an endpoint.\n *\n * @param technology - The technology of the endpoint.\n * @param resource - The resource name of the endpoint.\n * @param body - The message body to send.\n * @returns {Promise<void>} A promise resolving when the message is sent.\n */\n async sendMessageToEndpoint(\n technology: string,\n resource: string,\n body: any,\n ): Promise<void> {\n return this.endpoints.sendMessage(technology, resource, body);\n }\n\n // M\u00E9todos relacionados a applications\n /**\n * Lists all applications.\n *\n * @returns {Promise<Application[]>} A promise resolving to the list of applications.\n */\n async listApplications(): Promise<Application[]> {\n return this.applications.list();\n }\n\n /**\n * Retrieves details of a specific application.\n *\n * @param appName - The name of the application.\n * @returns {Promise<ApplicationDetails>} A promise resolving to the application details.\n */\n async getApplicationDetails(appName: string): Promise<ApplicationDetails> {\n return this.applications.getDetails(appName);\n }\n\n /**\n * Sends a message to a specific application.\n *\n * @param appName - The name of the application.\n * @param body - The message body to send.\n * @returns {Promise<void>} A promise resolving when the message is sent successfully.\n */\n async sendMessageToApplication(appName: string, body: any): Promise<void> {\n return this.applications.sendMessage(appName, body);\n }\n}\n", "import axios, { type AxiosInstance } from \"axios\";\n\nexport class BaseClient {\n private client: AxiosInstance;\n\n constructor(baseUrl: string, username: string, password: string) {\n this.client = axios.create({\n baseURL: baseUrl,\n auth: { username, password },\n });\n }\n\n async get<T>(path: string): Promise<T> {\n const response = await this.client.get<T>(path);\n return response.data;\n }\n\n async post<T>(path: string, data?: unknown): Promise<T> {\n const response = await this.client.post<T>(path, data);\n return response.data;\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n Application,\n ApplicationDetails,\n} from \"../interfaces/applications.types.js\";\n\nexport class Applications {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all applications.\n *\n * @returns A promise that resolves to an array of Application objects representing all registered applications.\n * @throws {Error} If the API response is not an array.\n */\n async list(): Promise<Application[]> {\n const applications = await this.client.get<unknown>(\"/applications\");\n\n if (!Array.isArray(applications)) {\n throw new Error(\"Resposta da API /applications n\u00E3o \u00E9 um array.\");\n }\n\n return applications as Application[];\n }\n\n /**\n * Retrieves details of a specific application.\n *\n * @param appName - The unique name of the application.\n * @returns A promise that resolves to an ApplicationDetails object containing the details of the specified application.\n */\n async getDetails(appName: string): Promise<ApplicationDetails> {\n return this.client.get<ApplicationDetails>(`/applications/${appName}`);\n }\n\n /**\n * Sends a message to a specific application.\n *\n * @param appName - The unique name of the application.\n * @param body - The message body to send.\n * @returns A promise that resolves when the message is sent successfully.\n */\n async sendMessage(appName: string, body: any): Promise<void> {\n await this.client.post<void>(`/applications/${appName}/messages`, body);\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n Channel,\n OriginateRequest,\n} from \"../interfaces/channels.types.js\";\n\nexport class Channels {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all active channels.\n * \n * @returns A promise that resolves to an array of Channel objects representing all active channels.\n * @throws {Error} If the API response is not an array.\n */\n async list(): Promise<Channel[]> {\n const channels = await this.client.get<unknown>(\"/channels\");\n\n if (!Array.isArray(channels)) {\n throw new Error(\"Resposta da API /channels n\u00E3o \u00E9 um array.\");\n }\n\n return channels as Channel[];\n }\n\n /**\n * Creates a new channel.\n * \n * @param data - The OriginateRequest object containing the necessary data to create a new channel.\n * @returns A promise that resolves to a Channel object representing the newly created channel.\n */\n async originate(data: OriginateRequest): Promise<Channel> {\n return this.client.post<Channel>(\"/channels\", data);\n }\n\n /**\n * Retrieves details of a specific channel.\n * \n * @param channelId - The unique identifier of the channel.\n * @returns A promise that resolves to a Channel object containing the details of the specified channel.\n */\n async getDetails(channelId: string): Promise<Channel> {\n return this.client.get<Channel>(`/channels/${channelId}`);\n }\n\n /**\n * Hangs up (terminates) a specific channel.\n * \n * @param channelId - The unique identifier of the channel to be hung up.\n * @returns A promise that resolves when the channel has been successfully hung up.\n */\n async hangup(channelId: string): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/hangup`);\n }\n\n /**\n * Continues the dialplan for a specific channel.\n * \n * @param channelId - The unique identifier of the channel.\n * @param context - Optional. The context to continue in the dialplan.\n * @param extension - Optional. The extension to continue in the dialplan.\n * @param priority - Optional. The priority to continue in the dialplan.\n * @param label - Optional. The label to continue in the dialplan.\n * @returns A promise that resolves when the dialplan continuation has been successfully initiated.\n */\n async continueDialplan(\n channelId: string,\n context?: string,\n extension?: string,\n priority?: number,\n label?: string,\n ): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/continue`, {\n context,\n extension,\n priority,\n label,\n });\n }\n\n /**\n * Moves the channel to another Stasis application.\n * \n * @param channelId - The unique identifier of the channel to be moved.\n * @param app - The name of the Stasis application to move the channel to.\n * @param appArgs - Optional. Arguments to be passed to the Stasis application.\n * @returns A promise that resolves when the channel has been successfully moved to the new application.\n */\n async moveToApplication(\n channelId: string,\n app: string,\n appArgs?: string,\n ): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/move`, {\n app,\n appArgs,\n });\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type { Endpoint, EndpointDetails } from \"../interfaces/endpoints.types\";\n\nexport class Endpoints {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all available endpoints.\n *\n * @returns A promise that resolves to an array of Endpoint objects representing all available endpoints.\n * @throws {Error} If the API response is not an array.\n */\n async list(): Promise<Endpoint[]> {\n const endpoints = await this.client.get<unknown>(\"/endpoints\");\n\n if (!Array.isArray(endpoints)) {\n throw new Error(\"Resposta da API /endpoints n\u00E3o \u00E9 um array.\");\n }\n\n return endpoints as Endpoint[];\n }\n\n /**\n * Retrieves details of a specific endpoint.\n *\n * @param technology - The technology of the endpoint (e.g., \"PJSIP\").\n * @param resource - The specific resource name of the endpoint (e.g., \"9001\").\n * @returns A promise that resolves to an EndpointDetails object containing the details of the specified endpoint.\n */\n async getDetails(\n technology: string,\n resource: string,\n ): Promise<EndpointDetails> {\n return this.client.get<EndpointDetails>(\n `/endpoints/${technology}/${resource}`,\n );\n }\n\n /**\n * Sends a message to a specific endpoint.\n *\n * @param technology - The technology of the endpoint (e.g., \"PJSIP\").\n * @param resource - The specific resource name of the endpoint (e.g., \"9001\").\n * @param message - The message payload to send to the endpoint.\n * @returns A promise that resolves when the message has been successfully sent.\n */\n async sendMessage(\n technology: string,\n resource: string,\n message: Record<string, unknown>,\n ): Promise<void> {\n await this.client.post<void>(\n `/endpoints/${technology}/${resource}/sendMessage`,\n message,\n );\n }\n}\n", "import WebSocket from \"ws\";\n\nexport class WebSocketClient {\n private ws: WebSocket | null = null;\n private isClosedManually = false; // Para evitar reconex\u00F5es autom\u00E1ticas quando fechado manualmente\n private isReconnecting = false; // Para evitar reconex\u00F5es paralelas\n\n constructor(private url: string) {}\n\n async connect(): Promise<void> {\n if (this.isReconnecting) return; // Evita m\u00FAltiplas reconex\u00F5es simult\u00E2neas\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.on(\"open\", () => {\n console.log(\"WebSocket conectado.\");\n this.isClosedManually = false;\n this.isReconnecting = false;\n resolve();\n });\n\n this.ws.on(\"error\", (err) => {\n console.error(\"Erro na conex\u00E3o WebSocket:\", err);\n reject(err);\n });\n\n this.ws.on(\"close\", (code, reason) => {\n console.warn(`WebSocket desconectado: ${code} - ${reason}`);\n this.isReconnecting = false; // Libera novas reconex\u00F5es\n });\n });\n }\n\n async reconnect(): Promise<void> {\n if (this.isClosedManually || this.isReconnecting) return;\n\n console.log(\"Tentando reconectar ao WebSocket...\");\n this.isReconnecting = true;\n try {\n await this.connect();\n console.log(\"Reconex\u00E3o bem-sucedida.\");\n } catch (err) {\n console.error(\"Erro ao tentar reconectar:\", err);\n } finally {\n this.isReconnecting = false;\n }\n }\n\n isConnected(): boolean {\n return this.ws?.readyState === WebSocket.OPEN;\n }\n\n on(event: string, callback: (data: any) => void): void {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket n\u00E3o est\u00E1 conectado.\");\n }\n\n if (event === \"message\") {\n this.ws.on(event, (data) => {\n try {\n const decodedData = JSON.parse(data.toString());\n callback(decodedData); // Retorna o JSON j\u00E1 decodificado\n } catch (err) {\n console.error(\"Erro ao decodificar mensagem do WebSocket:\", err);\n callback(data); // Retorna o buffer original em caso de erro\n }\n });\n } else {\n this.ws.on(event, callback);\n }\n }\n\n send(data: any): void {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket n\u00E3o est\u00E1 conectado.\");\n }\n\n this.ws.send(data, (err) => {\n if (err) {\n console.error(\"Erro ao enviar dados pelo WebSocket:\", err);\n }\n });\n }\n\n close(): void {\n if (this.ws) {\n this.isClosedManually = true;\n this.ws.close();\n console.log(\"WebSocket fechado manualmente.\");\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["exports", "exports", "exports", "exports", "Delay", "exports", "SkipFirstDelay", "exports", "AlwaysDelay", "exports", "exports", "backOff", "exports", "BackOff", "axios", "WebSocket"]
|
|
3
|
+
"sources": ["../../node_modules/exponential-backoff/src/options.ts", "../../node_modules/exponential-backoff/src/jitter/full/full.jitter.ts", "../../node_modules/exponential-backoff/src/jitter/no/no.jitter.ts", "../../node_modules/exponential-backoff/src/jitter/jitter.factory.ts", "../../node_modules/exponential-backoff/src/delay/delay.base.ts", "../../node_modules/exponential-backoff/src/delay/skip-first/skip-first.delay.ts", "../../node_modules/exponential-backoff/src/delay/always/always.delay.ts", "../../node_modules/exponential-backoff/src/delay/delay.factory.ts", "../../node_modules/exponential-backoff/src/backoff.ts", "../../src/index.ts", "../../src/ari-client/ariClient.ts", "../../src/ari-client/baseClient.ts", "../../src/ari-client/resources/applications.ts", "../../src/ari-client/resources/asterisk.ts", "../../src/ari-client/resources/channels.ts", "../../src/ari-client/resources/endpoints.ts", "../../src/ari-client/resources/playbacks.ts", "../../src/ari-client/resources/sounds.ts", "../../src/ari-client/websocketClient.ts"],
|
|
4
|
+
"sourcesContent": [null, null, null, null, null, null, null, null, null, "// Exporta a classe principal AriClient\nexport { AriClient } from \"./ari-client/ariClient.js\";\n\n// Exporta as classes dos recursos, caso o usu\u00E1rio precise us\u00E1-las diretamente\nexport { Channels } from \"./ari-client/resources/channels.js\";\nexport { Endpoints } from \"./ari-client/resources/endpoints.js\";\nexport { Applications } from \"./ari-client/resources/applications.js\";\nexport { Sounds } from \"./ari-client/resources/sounds.js\";\nexport { Playbacks } from \"./ari-client/resources/playbacks.js\";\n\n// Exporta interfaces importantes para tipagem\nexport type {\n AriClientConfig,\n Channel,\n Endpoint,\n Playback,\n Application,\n Sound,\n AsteriskInfo,\n Module,\n Logging,\n Variable,\n} from \"./ari-client/interfaces/index.js\";\n", "import { type IBackOffOptions, backOff } from \"exponential-backoff\";\nimport { BaseClient } from \"./baseClient.js\";\nimport type {\n Application,\n ApplicationDetails,\n} from \"./interfaces/applications.types\";\nimport type {\n AsteriskInfo,\n Logging,\n Module,\n Variable,\n} from \"./interfaces/asterisk.types\";\nimport type {\n Channel,\n ChannelPlayback,\n ChannelVar,\n ExternalMediaOptions,\n OriginateRequest,\n PlaybackOptions,\n RTPStats,\n RecordingOptions,\n SnoopOptions,\n} from \"./interfaces/channels.types\";\nimport type {\n Endpoint,\n EndpointDetails,\n} from \"./interfaces/endpoints.types.js\";\nimport type {\n Playback as APIPlayback,\n PlaybackControlRequest,\n} from \"./interfaces/playbacks.types\";\nimport type { AriApplication, AriClientConfig } from \"./interfaces/requests.js\";\nimport type { Sound, SoundListRequest } from \"./interfaces/sounds.types\";\nimport { Applications } from \"./resources/applications.js\";\nimport { Asterisk } from \"./resources/asterisk\";\nimport { Channels } from \"./resources/channels.js\";\nimport { Endpoints } from \"./resources/endpoints\";\nimport { Playbacks } from \"./resources/playbacks\";\nimport { Sounds } from \"./resources/sounds\";\nimport { WebSocketClient } from \"./websocketClient.js\";\n\nexport class AriClient {\n private wsClient: WebSocketClient | null = null;\n private readonly baseClient: BaseClient;\n private isReconnecting = false;\n\n public channels: Channels;\n public endpoints: Endpoints;\n public applications: Applications;\n public playbacks: Playbacks;\n public sounds: Sounds;\n public asterisk: Asterisk;\n\n constructor(private config: AriClientConfig) {\n const httpProtocol = config.secure ? \"https\" : \"http\";\n const normalizedHost = config.host.replace(/^https?:\\/\\//, \"\");\n const baseUrl = `${httpProtocol}://${normalizedHost}:${config.port}/ari`;\n\n this.baseClient = new BaseClient(baseUrl, config.username, config.password);\n this.channels = new Channels(this.baseClient);\n this.endpoints = new Endpoints(this.baseClient);\n this.applications = new Applications(this.baseClient);\n this.playbacks = new Playbacks(this.baseClient);\n this.sounds = new Sounds(this.baseClient);\n this.asterisk = new Asterisk(this.baseClient);\n }\n\n /**\n * Connects to the ARI WebSocket for a specific application.\n *\n * @param app - The application name to connect to.\n * @returns {Promise<void>} Resolves when the WebSocket connects successfully.\n */\n async connectWebSocket(app: string): Promise<void> {\n if (!app) {\n throw new Error(\n \"The 'app' parameter is required to connect to the WebSocket.\",\n );\n }\n\n if (this.isReconnecting) {\n console.warn(\"Already attempting to reconnect. Skipping this attempt.\");\n return;\n }\n\n this.isReconnecting = true;\n\n const protocol = this.config.secure ? \"wss\" : \"ws\";\n const wsUrl = `${protocol}://${encodeURIComponent(this.config.username)}:${encodeURIComponent(this.config.password)}@${\n this.config.host\n }:${this.config.port}/ari/events?app=${app}`;\n\n const backoffOptions: IBackOffOptions = {\n delayFirstAttempt: false,\n startingDelay: 1000,\n timeMultiple: 2,\n maxDelay: 30000,\n numOfAttempts: 10,\n jitter: \"full\",\n retry: (error: any, attemptNumber: number) => {\n console.warn(`Tentativa ${attemptNumber} falhou: ${error.message}`);\n return !this.wsClient?.isConnected();\n },\n };\n\n this.wsClient = new WebSocketClient(wsUrl);\n\n try {\n await backOff(async () => {\n if (!this.wsClient) {\n throw new Error(\"WebSocketClient instance is null.\");\n }\n await this.wsClient.connect();\n console.log(`WebSocket conectado para o app: ${app}`);\n await this.ensureAppRegistered(app); // Verifica e registra o aplicativo\n }, backoffOptions);\n } catch (err) {\n console.error(\n \"N\u00E3o foi poss\u00EDvel conectar ao WebSocket ap\u00F3s m\u00FAltiplas tentativas:\",\n err,\n );\n throw err;\n } finally {\n this.isReconnecting = false;\n }\n }\n\n /**\n * Ensures the ARI application is registered.\n *\n * @param app - The application name to ensure is registered.\n * @returns {Promise<void>}\n */\n async ensureAppRegistered(app: string): Promise<void> {\n try {\n const apps = await this.baseClient.get<AriApplication[]>(\"/applications\");\n const appExists = apps.some((a: { name: string }) => a.name === app);\n\n if (!appExists) {\n console.log(`Registrando o aplicativo ARI: ${app}`);\n await this.baseClient.post(\"/applications\", { app });\n console.log(`Aplicativo ${app} registrado com sucesso.`);\n } else {\n console.log(`Aplicativo ${app} j\u00E1 est\u00E1 registrado.`);\n }\n } catch (error) {\n console.error(`Erro ao garantir o registro do aplicativo ${app}:`, error);\n throw error;\n }\n }\n\n /**\n * Checks if the WebSocket connection is active.\n *\n * @returns {boolean} True if connected, false otherwise.\n */\n isWebSocketConnected(): boolean {\n return this.wsClient ? this.wsClient.isConnected() : false;\n }\n\n /**\n * Registers a callback for a specific WebSocket event.\n *\n * @param event - The WebSocket event to listen for.\n * @param callback - The callback function to execute when the event occurs.\n */\n onWebSocketEvent(event: string, callback: (data: any) => void): void {\n if (!this.wsClient) {\n throw new Error(\"WebSocket is not connected.\");\n }\n this.wsClient.on(event, callback);\n }\n\n /**\n * Closes the WebSocket connection.\n */\n closeWebSocket(): void {\n if (this.wsClient) {\n this.wsClient.close();\n this.wsClient = null;\n }\n }\n /**\n * Retrieves a list of active channels from the Asterisk ARI.\n *\n * @returns {Promise<Channel[]>} A promise resolving to the list of active channels.\n */\n /**\n * Lists all active channels.\n */\n async listChannels(): Promise<Channel[]> {\n return this.channels.list();\n }\n\n /**\n * Creates a new channel.\n */\n async originateChannel(data: OriginateRequest): Promise<Channel> {\n return this.channels.originate(data);\n }\n\n /**\n * Retrieves details of a specific channel.\n */\n async getChannelDetails(channelId: string): Promise<Channel> {\n return this.channels.getDetails(channelId);\n }\n\n /**\n * Hangs up a specific channel.\n */\n async hangupChannel(channelId: string): Promise<void> {\n return this.channels.hangup(channelId);\n }\n\n /**\n * Continues the dialplan for a specific channel.\n */\n async continueChannelDialplan(\n channelId: string,\n context?: string,\n extension?: string,\n priority?: number,\n label?: string,\n ): Promise<void> {\n return this.channels.continueDialplan(\n channelId,\n context,\n extension,\n priority,\n label,\n );\n }\n\n /**\n * Moves a channel to another Stasis application.\n */\n async moveChannelToApplication(\n channelId: string,\n app: string,\n appArgs?: string,\n ): Promise<void> {\n return this.channels.moveToApplication(channelId, app, appArgs);\n }\n\n /**\n * Sets a channel variable.\n */\n async setChannelVariable(\n channelId: string,\n variable: string,\n value: string,\n ): Promise<void> {\n return this.channels.setVariable(channelId, variable, value);\n }\n\n /**\n * Gets a channel variable.\n */\n async getChannelVariable(\n channelId: string,\n variable: string,\n ): Promise<ChannelVar> {\n return this.channels.getVariable(channelId, variable);\n }\n\n /**\n * Plays a media file to a channel.\n */\n async playMediaToChannel(\n channelId: string,\n media: string,\n options?: PlaybackOptions,\n ): Promise<ChannelPlayback> {\n return this.channels.playMedia(channelId, media, options);\n }\n\n /**\n * Starts music on hold for a channel.\n */\n async startChannelMusicOnHold(channelId: string): Promise<void> {\n return this.channels.startMusicOnHold(channelId);\n }\n\n /**\n * Stops music on hold for a channel.\n */\n async stopChannelMusicOnHold(channelId: string): Promise<void> {\n return this.channels.stopMusicOnHold(channelId);\n }\n\n /**\n * Starts playback of a media file on a channel.\n */\n async startChannelPlayback(\n channelId: string,\n media: string,\n options?: PlaybackOptions,\n ): Promise<ChannelPlayback> {\n return this.channels.startPlayback(channelId, media, options);\n }\n\n /**\n * Stops playback of a media file on a channel.\n */\n async stopChannelPlayback(\n channelId: string,\n playbackId: string,\n ): Promise<void> {\n return this.channels.stopPlayback(channelId, playbackId);\n }\n\n /**\n * Pauses playback of a media file on a channel.\n */\n async pauseChannelPlayback(\n channelId: string,\n playbackId: string,\n ): Promise<void> {\n return this.channels.pausePlayback(channelId, playbackId);\n }\n\n /**\n * Resumes playback of a media file on a channel.\n */\n async resumeChannelPlayback(\n channelId: string,\n playbackId: string,\n ): Promise<void> {\n return this.channels.resumePlayback(channelId, playbackId);\n }\n\n /**\n * Rewinds playback of a media file on a channel.\n */\n async rewindChannelPlayback(\n channelId: string,\n playbackId: string,\n skipMs: number,\n ): Promise<void> {\n return this.channels.rewindPlayback(channelId, playbackId, skipMs);\n }\n\n /**\n * Fast-forwards playback of a media file on a channel.\n */\n async fastForwardChannelPlayback(\n channelId: string,\n playbackId: string,\n skipMs: number,\n ): Promise<void> {\n return this.channels.fastForwardPlayback(channelId, playbackId, skipMs);\n }\n\n /**\n * Records audio from a channel.\n */\n async recordAudio(\n channelId: string,\n options: RecordingOptions,\n ): Promise<Channel> {\n return this.channels.record(channelId, options);\n }\n\n /**\n * Starts snooping on a channel.\n */\n async snoopChannel(\n channelId: string,\n options: SnoopOptions,\n ): Promise<Channel> {\n return this.channels.snoopChannel(channelId, options);\n }\n\n /**\n * Starts snooping on a channel with a specific snoop ID.\n */\n async snoopChannelWithId(\n channelId: string,\n snoopId: string,\n options: SnoopOptions,\n ): Promise<Channel> {\n return this.channels.snoopChannelWithId(channelId, snoopId, options);\n }\n\n /**\n * Dials a created channel.\n */\n async dialChannel(\n channelId: string,\n caller?: string,\n timeout?: number,\n ): Promise<void> {\n return this.channels.dial(channelId, caller, timeout);\n }\n\n /**\n * Retrieves RTP statistics for a channel.\n */\n async getRTPStatistics(channelId: string): Promise<RTPStats> {\n return this.channels.getRTPStatistics(channelId);\n }\n\n /**\n * Creates a channel to an external media source/sink.\n */\n async createExternalMedia(options: ExternalMediaOptions): Promise<Channel> {\n return this.channels.createExternalMedia(options);\n }\n\n /**\n * Redirects a channel to a different location.\n */\n async redirectChannel(channelId: string, endpoint: string): Promise<void> {\n return this.channels.redirectChannel(channelId, endpoint);\n }\n\n /**\n * Answers a channel.\n */\n async answerChannel(channelId: string): Promise<void> {\n return this.channels.answerChannel(channelId);\n }\n\n /**\n * Sends a ringing indication to a channel.\n */\n async ringChannel(channelId: string): Promise<void> {\n return this.channels.ringChannel(channelId);\n }\n\n /**\n * Stops ringing indication on a channel.\n */\n async stopRingChannel(channelId: string): Promise<void> {\n return this.channels.stopRingChannel(channelId);\n }\n\n /**\n * Sends DTMF to a channel.\n */\n async sendDTMF(\n channelId: string,\n dtmf: string,\n options?: {\n before?: number;\n between?: number;\n duration?: number;\n after?: number;\n },\n ): Promise<void> {\n return this.channels.sendDTMF(channelId, dtmf, options);\n }\n\n /**\n * Mutes a channel.\n */\n async muteChannel(\n channelId: string,\n direction: \"both\" | \"in\" | \"out\" = \"both\",\n ): Promise<void> {\n return this.channels.muteChannel(channelId, direction);\n }\n\n /**\n * Unmutes a channel.\n */\n async unmuteChannel(\n channelId: string,\n direction: \"both\" | \"in\" | \"out\" = \"both\",\n ): Promise<void> {\n return this.channels.unmuteChannel(channelId, direction);\n }\n\n /**\n * Puts a channel on hold.\n */\n async holdChannel(channelId: string): Promise<void> {\n return this.channels.holdChannel(channelId);\n }\n\n /**\n * Removes a channel from hold.\n */\n async unholdChannel(channelId: string): Promise<void> {\n return this.channels.unholdChannel(channelId);\n }\n\n /**\n * Creates a new channel using the provided originate request data.\n *\n * @param data - The originate request data containing channel creation parameters.\n * @returns A promise that resolves to the created Channel object.\n */\n async createChannel(data: OriginateRequest): Promise<Channel> {\n return this.channels.createChannel(data);\n }\n\n /**\n * Hangs up a specific channel.\n *\n * @param channelId - The unique identifier of the channel to hang up.\n * @param options - Optional parameters for the hangup operation.\n * @param options.reason_code - An optional reason code for the hangup.\n * @param options.reason - An optional textual reason for the hangup.\n * @returns A promise that resolves when the hangup operation is complete.\n */\n async hangup(\n channelId: string,\n options?: { reason_code?: string; reason?: string },\n ): Promise<void> {\n return this.channels.hangup(channelId, options);\n }\n\n /**\n * Originates a new channel with a specified ID using the provided originate request data.\n *\n * @param channelId - The desired unique identifier for the new channel.\n * @param data - The originate request data containing channel creation parameters.\n * @returns A promise that resolves to the created Channel object.\n */\n async originateWithId(\n channelId: string,\n data: OriginateRequest,\n ): Promise<Channel> {\n return this.channels.originateWithId(channelId, data);\n }\n\n // M\u00E9todos relacionados a endpoints:\n\n /**\n * Lists all endpoints.\n *\n * @returns {Promise<Endpoint[]>} A promise resolving to the list of endpoints.\n */\n async listEndpoints(): Promise<Endpoint[]> {\n return this.endpoints.list();\n }\n\n /**\n * Retrieves details of a specific endpoint.\n *\n * @param technology - The technology of the endpoint.\n * @param resource - The resource name of the endpoint.\n * @returns {Promise<EndpointDetails>} A promise resolving to the details of the endpoint.\n */\n async getEndpointDetails(\n technology: string,\n resource: string,\n ): Promise<EndpointDetails> {\n return this.endpoints.getDetails(technology, resource);\n }\n\n /**\n * Sends a message to an endpoint.\n *\n * @param technology - The technology of the endpoint.\n * @param resource - The resource name of the endpoint.\n * @param body - The message body to send.\n * @returns {Promise<void>} A promise resolving when the message is sent.\n */\n async sendMessageToEndpoint(\n technology: string,\n resource: string,\n body: any,\n ): Promise<void> {\n return this.endpoints.sendMessage(technology, resource, body);\n }\n\n // M\u00E9todos relacionados a applications\n /**\n * Lists all applications.\n *\n * @returns {Promise<Application[]>} A promise resolving to the list of applications.\n */\n async listApplications(): Promise<Application[]> {\n return this.applications.list();\n }\n\n /**\n * Retrieves details of a specific application.\n *\n * @param appName - The name of the application.\n * @returns {Promise<ApplicationDetails>} A promise resolving to the application details.\n */\n async getApplicationDetails(appName: string): Promise<ApplicationDetails> {\n return this.applications.getDetails(appName);\n }\n\n /**\n * Sends a message to a specific application.\n *\n * @param appName - The name of the application.\n * @param body - The message body to send.\n * @returns {Promise<void>} A promise resolving when the message is sent successfully.\n */\n async sendMessageToApplication(appName: string, body: any): Promise<void> {\n return this.applications.sendMessage(appName, body);\n }\n\n // M\u00E9todos relacionados a playbacks\n /**\n * Retrieves details of a specific playback.\n *\n * @param playbackId - The unique identifier of the playback.\n * @returns {Promise<Playback>} A promise resolving to the playback details.\n */\n async getPlaybackDetails(playbackId: string): Promise<APIPlayback> {\n return this.playbacks.getDetails(playbackId);\n }\n\n /**\n * Controls a specific playback.\n *\n * @param playbackId - The unique identifier of the playback.\n * @param controlRequest - The PlaybackControlRequest containing the control operation.\n * @returns {Promise<void>} A promise resolving when the control operation is successfully executed.\n */\n async controlPlayback(\n playbackId: string,\n controlRequest: PlaybackControlRequest,\n ): Promise<void> {\n return this.playbacks.control(playbackId, controlRequest);\n }\n\n /**\n * Stops a specific playback.\n *\n * @param playbackId - The unique identifier of the playback.\n * @returns {Promise<void>} A promise resolving when the playback is successfully stopped.\n */\n async stopPlayback(playbackId: string): Promise<void> {\n return this.playbacks.stop(playbackId);\n }\n\n /**\n * Lists all available sounds.\n *\n * @param params - Optional parameters to filter the list of sounds.\n * @returns {Promise<Sound[]>} A promise resolving to the list of sounds.\n */\n async listSounds(params?: SoundListRequest): Promise<Sound[]> {\n return this.sounds.list(params);\n }\n\n /**\n * Retrieves details of a specific sound.\n *\n * @param soundId - The unique identifier of the sound.\n * @returns {Promise<Sound>} A promise resolving to the sound details.\n */\n async getSoundDetails(soundId: string): Promise<Sound> {\n return this.sounds.getDetails(soundId);\n }\n\n /**\n * Retrieves information about the Asterisk server.\n */\n async getAsteriskInfo(): Promise<AsteriskInfo> {\n return this.asterisk.getInfo();\n }\n\n /**\n * Lists all loaded modules in the Asterisk server.\n */\n async listModules(): Promise<Module[]> {\n return this.asterisk.listModules();\n }\n\n /**\n * Manages a specific module in the Asterisk server.\n */\n async manageModule(\n moduleName: string,\n action: \"load\" | \"unload\" | \"reload\",\n ): Promise<void> {\n return this.asterisk.manageModule(moduleName, action);\n }\n\n /**\n * Retrieves all configured logging channels.\n */\n async listLoggingChannels(): Promise<Logging[]> {\n return this.asterisk.listLoggingChannels();\n }\n\n /**\n * Adds or removes a log channel in the Asterisk server.\n */\n async manageLogChannel(\n logChannelName: string,\n action: \"add\" | \"remove\",\n configuration?: { type?: string; configuration?: string },\n ): Promise<void> {\n return this.asterisk.manageLogChannel(\n logChannelName,\n action,\n configuration,\n );\n }\n\n /**\n * Retrieves the value of a global variable.\n */\n async getGlobalVariable(variableName: string): Promise<Variable> {\n return this.asterisk.getGlobalVariable(variableName);\n }\n\n /**\n * Sets a global variable.\n */\n async setGlobalVariable(variableName: string, value: string): Promise<void> {\n return this.asterisk.setGlobalVariable(variableName, value);\n }\n}\n", "import axios, { type AxiosInstance } from \"axios\";\n\nexport class BaseClient {\n private client: AxiosInstance;\n\n constructor(baseUrl: string, username: string, password: string) {\n this.client = axios.create({\n baseURL: baseUrl,\n auth: { username, password },\n });\n }\n\n /**\n * Executes a GET request.\n * @param path - The API endpoint path.\n */\n async get<T>(path: string): Promise<T> {\n const response = await this.client.get<T>(path);\n return response.data;\n }\n\n /**\n * Executes a POST request.\n * @param path - The API endpoint path.\n * @param data - Optional payload to send with the request.\n */\n async post<T>(path: string, data?: unknown): Promise<T> {\n const response = await this.client.post<T>(path, data);\n return response.data;\n }\n\n /**\n * Executes a PUT request.\n * @param path - The API endpoint path.\n * @param data - Payload to send with the request.\n */\n async put<T>(path: string, data: unknown): Promise<T> {\n const response = await this.client.put<T>(path, data);\n return response.data;\n }\n\n /**\n * Executes a DELETE request.\n * @param path - The API endpoint path.\n */\n async delete<T>(path: string): Promise<T> {\n const response = await this.client.delete<T>(path);\n return response.data;\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n Application,\n ApplicationDetails,\n} from \"../interfaces/applications.types.js\";\n\nexport class Applications {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all applications.\n *\n * @returns A promise that resolves to an array of Application objects representing all registered applications.\n * @throws {Error} If the API response is not an array.\n */\n async list(): Promise<Application[]> {\n const applications = await this.client.get<unknown>(\"/applications\");\n\n if (!Array.isArray(applications)) {\n throw new Error(\"Resposta da API /applications n\u00E3o \u00E9 um array.\");\n }\n\n return applications as Application[];\n }\n\n /**\n * Retrieves details of a specific application.\n *\n * @param appName - The unique name of the application.\n * @returns A promise that resolves to an ApplicationDetails object containing the details of the specified application.\n */\n async getDetails(appName: string): Promise<ApplicationDetails> {\n return this.client.get<ApplicationDetails>(`/applications/${appName}`);\n }\n\n /**\n * Sends a message to a specific application.\n *\n * @param appName - The unique name of the application.\n * @param body - The message body to send.\n * @returns A promise that resolves when the message is sent successfully.\n */\n async sendMessage(appName: string, body: any): Promise<void> {\n await this.client.post<void>(`/applications/${appName}/messages`, body);\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n AsteriskInfo,\n Logging,\n Module,\n Variable,\n} from \"../interfaces/asterisk.types.js\";\n\nfunction toQueryParams<T>(options: T): string {\n return new URLSearchParams(\n Object.entries(options as Record<string, string>)\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => [key, String(value)]),\n ).toString();\n}\n\nexport class Asterisk {\n constructor(private client: BaseClient) {}\n\n /**\n * Retrieves information about the Asterisk server.\n */\n async getInfo(): Promise<AsteriskInfo> {\n return this.client.get<AsteriskInfo>(\"/asterisk/info\");\n }\n\n /**\n * Lists all loaded modules in the Asterisk server.\n */\n async listModules(): Promise<Module[]> {\n return this.client.get<Module[]>(\"/asterisk/modules\");\n }\n\n /**\n * Manages a specific module in the Asterisk server.\n */\n async manageModule(\n moduleName: string,\n action: \"load\" | \"unload\" | \"reload\",\n ): Promise<void> {\n return this.client.post<void>(\n `/asterisk/modules/${moduleName}?action=${encodeURIComponent(action)}`,\n );\n }\n\n /**\n * Retrieves all configured logging channels.\n */\n async listLoggingChannels(): Promise<Logging[]> {\n return this.client.get<Logging[]>(\"/asterisk/logging\");\n }\n\n /**\n * Adds or removes a log channel in the Asterisk server.\n */\n async manageLogChannel(\n logChannelName: string,\n action: \"add\" | \"remove\",\n configuration?: { type?: string; configuration?: string },\n ): Promise<void> {\n const queryParams = toQueryParams(configuration || {});\n return this.client.post<void>(\n `/asterisk/logging/${logChannelName}?action=${encodeURIComponent(action)}&${queryParams}`,\n );\n }\n\n /**\n * Retrieves the value of a global variable.\n */\n async getGlobalVariable(variableName: string): Promise<Variable> {\n return this.client.get<Variable>(\n `/asterisk/variables?variable=${encodeURIComponent(variableName)}`,\n );\n }\n\n /**\n * Sets a global variable.\n */\n async setGlobalVariable(variableName: string, value: string): Promise<void> {\n return this.client.post<void>(\n `/asterisk/variables?variable=${encodeURIComponent(variableName)}&value=${encodeURIComponent(value)}`,\n );\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n Channel,\n ChannelPlayback,\n ChannelVar,\n ExternalMediaOptions,\n OriginateRequest,\n PlaybackOptions,\n RTPStats,\n RecordingOptions,\n SnoopOptions,\n} from \"../interfaces/channels.types.js\";\n\nfunction toQueryParams<T>(options: T): string {\n return new URLSearchParams(\n Object.entries(options as Record<string, string>) // Convers\u00E3o expl\u00EDcita\n .filter(([, value]) => value !== undefined)\n .map(([key, value]) => [key, value as string]), // Garante que value \u00E9 string\n ).toString();\n}\n\nexport class Channels {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all active channels.\n */\n async list(): Promise<Channel[]> {\n const channels = await this.client.get<unknown>(\"/channels\");\n\n if (!Array.isArray(channels)) {\n throw new Error(\"Resposta da API /channels n\u00E3o \u00E9 um array.\");\n }\n\n return channels as Channel[];\n }\n\n /**\n * Creates a new channel.\n */\n async originate(data: OriginateRequest): Promise<Channel> {\n return this.client.post<Channel>(\"/channels\", data);\n }\n\n /**\n * Retrieves details of a specific channel.\n */\n async getDetails(channelId: string): Promise<Channel> {\n return this.client.get<Channel>(`/channels/${channelId}`);\n }\n\n /**\n * Creates a channel and places it in a Stasis app without dialing it.\n */\n async createChannel(data: OriginateRequest): Promise<Channel> {\n return this.client.post<Channel>(\"/channels/create\", data);\n }\n\n /**\n * Creates a new channel with a specific ID and originates a call.\n */\n async originateWithId(\n channelId: string,\n data: OriginateRequest,\n ): Promise<Channel> {\n return this.client.post<Channel>(`/channels/${channelId}`, data);\n }\n\n /**\n * Hangs up (terminates) a specific channel.\n */\n /**\n * Hangs up a specific channel with optional reason or reason code.\n */\n async hangup(\n channelId: string,\n options?: { reason_code?: string; reason?: string },\n ): Promise<void> {\n const queryParams = new URLSearchParams({\n ...(options?.reason_code && { reason_code: options.reason_code }),\n ...(options?.reason && { reason: options.reason }),\n });\n\n return this.client.delete<void>(\n `/channels/${channelId}?${queryParams.toString()}`,\n );\n }\n\n /**\n * Continues the dialplan for a specific channel.\n */\n async continueDialplan(\n channelId: string,\n context?: string,\n extension?: string,\n priority?: number,\n label?: string,\n ): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/continue`, {\n context,\n extension,\n priority,\n label,\n });\n }\n\n /**\n * Moves the channel to another Stasis application.\n */\n async moveToApplication(\n channelId: string,\n app: string,\n appArgs?: string,\n ): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/move`, {\n app,\n appArgs,\n });\n }\n\n /**\n * Sets a channel variable.\n */\n async setVariable(\n channelId: string,\n variable: string,\n value: string,\n ): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/variable`, {\n variable,\n value,\n });\n }\n\n /**\n * Gets a channel variable.\n */\n async getVariable(channelId: string, variable: string): Promise<ChannelVar> {\n return this.client.get<ChannelVar>(\n `/channels/${channelId}/variable?variable=${encodeURIComponent(variable)}`,\n );\n }\n\n /**\n * Plays a media file to a channel.\n */\n async playMedia(\n channelId: string,\n media: string,\n options?: PlaybackOptions,\n ): Promise<ChannelPlayback> {\n const queryParams = options\n ? `?${new URLSearchParams(options as Record<string, string>).toString()}`\n : \"\";\n\n return this.client.post<ChannelPlayback>(\n `/channels/${channelId}/play${queryParams}`,\n { media },\n );\n }\n\n /**\n * Starts music on hold (MOH) for a channel.\n */\n async startMusicOnHold(channelId: string): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/moh`);\n }\n\n /**\n * Stops music on hold (MOH) for a channel.\n */\n async stopMusicOnHold(channelId: string): Promise<void> {\n return this.client.delete<void>(`/channels/${channelId}/moh`);\n }\n\n /**\n * Starts playback of a media file on a channel.\n */\n async startPlayback(\n channelId: string,\n media: string,\n options?: PlaybackOptions,\n ): Promise<ChannelPlayback> {\n const queryParams = options\n ? `?${new URLSearchParams(options as Record<string, string>).toString()}`\n : \"\";\n\n return this.client.post<ChannelPlayback>(\n `/channels/${channelId}/play${queryParams}`,\n { media },\n );\n }\n\n /**\n * Stops playback of a media file on a channel.\n */\n async stopPlayback(channelId: string, playbackId: string): Promise<void> {\n return this.client.delete<void>(\n `/channels/${channelId}/play/${playbackId}`,\n );\n }\n\n /**\n * Pauses playback of a media file on a channel.\n */\n async pausePlayback(channelId: string, playbackId: string): Promise<void> {\n return this.client.post<void>(\n `/channels/${channelId}/play/${playbackId}/pause`,\n );\n }\n\n /**\n * Resumes playback of a media file on a channel.\n */\n async resumePlayback(channelId: string, playbackId: string): Promise<void> {\n return this.client.delete<void>(\n `/channels/${channelId}/play/${playbackId}/pause`,\n );\n }\n\n /**\n * Rewinds playback of a media file on a channel.\n */\n async rewindPlayback(\n channelId: string,\n playbackId: string,\n skipMs: number,\n ): Promise<void> {\n return this.client.post<void>(\n `/channels/${channelId}/play/${playbackId}/rewind`,\n { skipMs },\n );\n }\n\n /**\n * Fast-forwards playback of a media file on a channel.\n */\n async fastForwardPlayback(\n channelId: string,\n playbackId: string,\n skipMs: number,\n ): Promise<void> {\n return this.client.post<void>(\n `/channels/${channelId}/play/${playbackId}/forward`,\n { skipMs },\n );\n }\n\n /**\n * Records audio from a channel.\n */\n async record(channelId: string, options: RecordingOptions): Promise<Channel> {\n // Converte RecordingOptions para URLSearchParams, garantindo compatibilidade\n const queryParams = new URLSearchParams(\n Object.entries(options as unknown as Record<string, string>).filter(\n ([, value]) => value !== undefined,\n ),\n );\n\n return this.client.post<Channel>(\n `/channels/${channelId}/record?${queryParams.toString()}`,\n );\n }\n\n /**\n * Starts snooping on a channel.\n */\n async snoopChannel(\n channelId: string,\n options: SnoopOptions,\n ): Promise<Channel> {\n const queryParams = toQueryParams(options);\n\n return this.client.post<Channel>(\n `/channels/${channelId}/snoop?${queryParams}`,\n );\n }\n\n /**\n * Starts snooping on a channel with a specific snoop ID.\n */\n async snoopChannelWithId(\n channelId: string,\n snoopId: string,\n options: SnoopOptions,\n ): Promise<Channel> {\n const queryParams = new URLSearchParams(options as Record<string, string>);\n return this.client.post<Channel>(\n `/channels/${channelId}/snoop/${snoopId}?${queryParams.toString()}`,\n );\n }\n\n /**\n * Dials a created channel.\n */\n async dial(\n channelId: string,\n caller?: string,\n timeout?: number,\n ): Promise<void> {\n const queryParams = new URLSearchParams({\n ...(caller && { caller }),\n ...(timeout && { timeout: timeout.toString() }),\n });\n return this.client.post<void>(\n `/channels/${channelId}/dial?${queryParams.toString()}`,\n );\n }\n\n /**\n * Retrieves RTP statistics for a channel.\n */\n async getRTPStatistics(channelId: string): Promise<RTPStats> {\n return this.client.get<RTPStats>(`/channels/${channelId}/rtp_statistics`);\n }\n\n /**\n * Creates a channel to an external media source/sink.\n */\n async createExternalMedia(options: ExternalMediaOptions): Promise<Channel> {\n const queryParams = new URLSearchParams(options as Record<string, string>);\n return this.client.post<Channel>(\n `/channels/externalMedia?${queryParams.toString()}`,\n );\n }\n\n /**\n * Redirects the channel to a different location.\n */\n async redirectChannel(channelId: string, endpoint: string): Promise<void> {\n return this.client.post<void>(\n `/channels/${channelId}/redirect?endpoint=${encodeURIComponent(endpoint)}`,\n );\n }\n\n /**\n * Answers a channel.\n */\n async answerChannel(channelId: string): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/answer`);\n }\n\n /**\n * Sends a ringing indication to a channel.\n */\n async ringChannel(channelId: string): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/ring`);\n }\n\n /**\n * Stops ringing indication on a channel.\n */\n async stopRingChannel(channelId: string): Promise<void> {\n return this.client.delete<void>(`/channels/${channelId}/ring`);\n }\n\n /**\n * Sends DTMF to a channel.\n */\n async sendDTMF(\n channelId: string,\n dtmf: string,\n options?: {\n before?: number;\n between?: number;\n duration?: number;\n after?: number;\n },\n ): Promise<void> {\n const queryParams = new URLSearchParams({\n dtmf,\n ...(options?.before && { before: options.before.toString() }),\n ...(options?.between && { between: options.between.toString() }),\n ...(options?.duration && { duration: options.duration.toString() }),\n ...(options?.after && { after: options.after.toString() }),\n });\n\n return this.client.post<void>(\n `/channels/${channelId}/dtmf?${queryParams.toString()}`,\n );\n }\n\n /**\n * Mutes a channel.\n */\n async muteChannel(\n channelId: string,\n direction: \"both\" | \"in\" | \"out\" = \"both\",\n ): Promise<void> {\n return this.client.post<void>(\n `/channels/${channelId}/mute?direction=${direction}`,\n );\n }\n\n /**\n * Unmutes a channel.\n */\n async unmuteChannel(\n channelId: string,\n direction: \"both\" | \"in\" | \"out\" = \"both\",\n ): Promise<void> {\n return this.client.delete<void>(\n `/channels/${channelId}/mute?direction=${direction}`,\n );\n }\n\n /**\n * Puts a channel on hold.\n */\n async holdChannel(channelId: string): Promise<void> {\n return this.client.post<void>(`/channels/${channelId}/hold`);\n }\n\n /**\n * Removes a channel from hold.\n */\n async unholdChannel(channelId: string): Promise<void> {\n return this.client.delete<void>(`/channels/${channelId}/hold`);\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type { Endpoint, EndpointDetails } from \"../interfaces/endpoints.types\";\n\nexport class Endpoints {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all available endpoints.\n *\n * @returns A promise that resolves to an array of Endpoint objects representing all available endpoints.\n * @throws {Error} If the API response is not an array.\n */\n async list(): Promise<Endpoint[]> {\n const endpoints = await this.client.get<unknown>(\"/endpoints\");\n\n if (!Array.isArray(endpoints)) {\n throw new Error(\"Resposta da API /endpoints n\u00E3o \u00E9 um array.\");\n }\n\n return endpoints as Endpoint[];\n }\n\n /**\n * Retrieves details of a specific endpoint.\n *\n * @param technology - The technology of the endpoint (e.g., \"PJSIP\").\n * @param resource - The specific resource name of the endpoint (e.g., \"9001\").\n * @returns A promise that resolves to an EndpointDetails object containing the details of the specified endpoint.\n */\n async getDetails(\n technology: string,\n resource: string,\n ): Promise<EndpointDetails> {\n return this.client.get<EndpointDetails>(\n `/endpoints/${technology}/${resource}`,\n );\n }\n\n /**\n * Sends a message to a specific endpoint.\n *\n * @param technology - The technology of the endpoint (e.g., \"PJSIP\").\n * @param resource - The specific resource name of the endpoint (e.g., \"9001\").\n * @param message - The message payload to send to the endpoint.\n * @returns A promise that resolves when the message has been successfully sent.\n */\n async sendMessage(\n technology: string,\n resource: string,\n message: Record<string, unknown>,\n ): Promise<void> {\n await this.client.post<void>(\n `/endpoints/${technology}/${resource}/sendMessage`,\n message,\n );\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type {\n Playback,\n PlaybackControlRequest,\n} from \"../interfaces/playbacks.types.js\";\n\nexport class Playbacks {\n constructor(private client: BaseClient) {}\n\n /**\n * Retrieves details of a specific playback.\n *\n * @param playbackId - The unique identifier of the playback.\n * @returns A promise that resolves to a Playback object containing the details of the specified playback.\n */\n async getDetails(playbackId: string): Promise<Playback> {\n return this.client.get<Playback>(`/playbacks/${playbackId}`);\n }\n\n /**\n * Controls a specific playback (e.g., pause, resume, rewind, forward, stop).\n *\n * @param playbackId - The unique identifier of the playback to control.\n * @param controlRequest - The PlaybackControlRequest containing the control operation.\n * @returns A promise that resolves when the control operation is successfully executed.\n */\n async control(\n playbackId: string,\n controlRequest: PlaybackControlRequest,\n ): Promise<void> {\n await this.client.post<void>(\n `/playbacks/${playbackId}/control`,\n controlRequest,\n );\n }\n\n /**\n * Stops a specific playback.\n *\n * @param playbackId - The unique identifier of the playback to stop.\n * @returns A promise that resolves when the playback is successfully stopped.\n */\n async stop(playbackId: string): Promise<void> {\n await this.client.post<void>(`/playbacks/${playbackId}/stop`);\n }\n}\n", "import type { BaseClient } from \"../baseClient.js\";\nimport type { Sound, SoundListRequest } from \"../interfaces/sounds.types.js\";\n\nexport class Sounds {\n constructor(private client: BaseClient) {}\n\n /**\n * Lists all available sounds.\n *\n * @param params - Optional parameters to filter the list of sounds.\n * @returns A promise that resolves to an array of Sound objects.\n * @throws {Error} If the API response is not an array.\n */\n async list(params?: SoundListRequest): Promise<Sound[]> {\n const query = params\n ? `?${new URLSearchParams(params as Record<string, string>).toString()}`\n : \"\";\n\n const sounds = await this.client.get<unknown>(`/sounds${query}`);\n\n if (!Array.isArray(sounds)) {\n throw new Error(\"Resposta da API /sounds n\u00E3o \u00E9 um array.\");\n }\n\n return sounds as Sound[];\n }\n\n /**\n * Retrieves details of a specific sound.\n *\n * @param soundId - The unique identifier of the sound.\n * @returns A promise that resolves to a Sound object containing the details of the specified sound.\n */\n async getDetails(soundId: string): Promise<Sound> {\n return this.client.get<Sound>(`/sounds/${soundId}`);\n }\n}\n", "import WebSocket from \"ws\";\n\nexport class WebSocketClient {\n private ws: WebSocket | null = null;\n private isClosedManually = false; // Para evitar reconex\u00F5es autom\u00E1ticas quando fechado manualmente\n private isReconnecting = false; // Para evitar reconex\u00F5es paralelas\n\n constructor(private url: string) {}\n\n async connect(): Promise<void> {\n if (this.isReconnecting) return; // Evita m\u00FAltiplas reconex\u00F5es simult\u00E2neas\n\n return new Promise((resolve, reject) => {\n this.ws = new WebSocket(this.url);\n\n this.ws.on(\"open\", () => {\n console.log(\"WebSocket conectado.\");\n this.isClosedManually = false;\n this.isReconnecting = false;\n resolve();\n });\n\n this.ws.on(\"error\", (err) => {\n console.error(\"Erro na conex\u00E3o WebSocket:\", err);\n reject(err);\n });\n\n this.ws.on(\"close\", (code, reason) => {\n console.warn(`WebSocket desconectado: ${code} - ${reason}`);\n this.isReconnecting = false; // Libera novas reconex\u00F5es\n });\n });\n }\n\n async reconnect(): Promise<void> {\n if (this.isClosedManually || this.isReconnecting) return;\n\n console.log(\"Tentando reconectar ao WebSocket...\");\n this.isReconnecting = true;\n try {\n await this.connect();\n console.log(\"Reconex\u00E3o bem-sucedida.\");\n } catch (err) {\n console.error(\"Erro ao tentar reconectar:\", err);\n } finally {\n this.isReconnecting = false;\n }\n }\n\n isConnected(): boolean {\n return this.ws?.readyState === WebSocket.OPEN;\n }\n\n on(event: string, callback: (data: any) => void): void {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket n\u00E3o est\u00E1 conectado.\");\n }\n\n if (event === \"message\") {\n this.ws.on(event, (data) => {\n try {\n const decodedData = JSON.parse(data.toString());\n callback(decodedData); // Retorna o JSON j\u00E1 decodificado\n } catch (err) {\n console.error(\"Erro ao decodificar mensagem do WebSocket:\", err);\n callback(data); // Retorna o buffer original em caso de erro\n }\n });\n } else {\n this.ws.on(event, callback);\n }\n }\n\n send(data: any): void {\n if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {\n throw new Error(\"WebSocket n\u00E3o est\u00E1 conectado.\");\n }\n\n this.ws.send(data, (err) => {\n if (err) {\n console.error(\"Erro ao enviar dados pelo WebSocket:\", err);\n }\n });\n }\n\n close(): void {\n if (this.ws) {\n this.isClosedManually = true;\n this.ws.close();\n console.log(\"WebSocket fechado manualmente.\");\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["exports", "exports", "exports", "exports", "Delay", "exports", "SkipFirstDelay", "exports", "AlwaysDelay", "exports", "exports", "backOff", "exports", "BackOff", "axios", "toQueryParams", "WebSocket"]
|
|
7
7
|
}
|