import { UA, UAConfigurationParams, WebSocketInterface } from '@krivega/jssip'; import { TJsSIP } from '../types'; export type TUAConfig = { configuration: UAConfigurationParams; helpers: { socket: WebSocketInterface; getUri: (id: string) => string; }; }; export type TCreateUAParameters = UAConfigurationParams & { remoteAddress?: string; extraHeaders?: string[]; }; type TParametersCreateUaConfig = { sipServerUrl: string; displayName: string; sipServerIp: string; user?: string; register?: boolean; password?: string; sessionTimers?: boolean; registerExpires?: number; connectionRecoveryMinInterval?: number; connectionRecoveryMaxInterval?: number; userAgent?: string; }; export default class UAFactory { private readonly JsSIP; constructor(JsSIP: TJsSIP); static isRegisteredUA(ua?: UA): boolean; private static validateParametersConnection; private static resolveAuthorizationUser; private static buildExtraHeaders; createConfiguration({ user, password, sipServerUrl, displayName, sipServerIp, register, sessionTimers, registerExpires, // 5 minutes in sec connectionRecoveryMinInterval, connectionRecoveryMaxInterval, userAgent, }: TParametersCreateUaConfig): TUAConfig; createUA({ remoteAddress, extraHeaders, ...parameters }: TCreateUAParameters): UA; /** * Создает UA с полным жизненным циклом - конфигурация + создание + настройка событий */ createUAWithConfiguration(parameters: TParametersCreateUaConfig & { remoteAddress?: string; extraHeaders?: string[]; }, events: { eachTriggers: (callback: (trigger: (...args: unknown[]) => void, eventName: string) => void) => void; }): { ua: UA; helpers: TUAConfig['helpers']; }; } export {};