sip.js
Version:
A SIP library for JavaScript
102 lines (101 loc) • 2.62 kB
TypeScript
import { URI } from "../../grammar/uri.js";
import { LoggerFactory } from "../log/logger-factory.js";
import { DigestAuthentication } from "../messages/digest-authentication.js";
import { Transport } from "../transport.js";
/**
* Contact.
* @remarks
* https://tools.ietf.org/html/rfc3261#section-8.1.1.8
* This is ported from UA.contact.
* FIXME: TODO: This is not a great rep for Contact
* and is used in a kinda hacky way herein.
* @public
*/
export interface Contact {
pubGruu: URI | undefined;
tempGruu: URI | undefined;
uri: URI;
toString: (options?: {
anonymous?: boolean;
outbound?: boolean;
register?: boolean;
}) => string;
}
/**
* User Agent Core configuration.
* @public
*/
export interface UserAgentCoreConfiguration {
/**
* Address-of-Record (AOR).
* @remarks
* https://tools.ietf.org/html/rfc3261#section-6
*/
aor: URI;
/**
* Contact.
* @remarks
* https://tools.ietf.org/html/rfc3261#section-8.1.1.8
*/
contact: Contact;
/**
* From header display name.
*/
displayName: string;
/**
* Logger factory.
*/
loggerFactory: LoggerFactory;
/**
* Force Via header field transport to TCP.
*/
hackViaTcp: boolean;
/**
* Preloaded route set.
*/
routeSet: Array<string>;
/**
* Unique instance id.
*/
sipjsId: string;
/**
* Option tags of supported SIP extensions.
*/
supportedOptionTags: Array<string>;
/**
* Option tags of supported SIP extensions.
* Used in responses.
* @remarks
* FIXME: Make this go away.
*/
supportedOptionTagsResponse: Array<string>;
/**
* User-Agent header field value.
* @remarks
* https://tools.ietf.org/html/rfc3261#section-20.41
*/
userAgentHeaderFieldValue: string | undefined;
/**
* Force use of "rport" Via header field parameter.
* @remarks
* https://www.ietf.org/rfc/rfc3581.txt
*/
viaForceRport: boolean;
/**
* Via header field host name or network address.
* @remarks
* The Via header field indicates the path taken by the request so far
* and indicates the path that should be followed in routing responses.
*/
viaHost: string;
/**
* DEPRECATED
* Authentication factory function.
*/
authenticationFactory(): DigestAuthentication | undefined;
/**
* DEPRECATED: This is a hack to get around `Transport`
* requiring the `UA` to start for construction.
*/
transportAccessor(): Transport | undefined;
}