UNPKG

sip.js

Version:

A SIP library for JavaScript

82 lines (81 loc) 4.03 kB
import { URI } from "../../grammar/uri.js"; import { IncomingInviteRequest, OutgoingResponseWithSession } from "../messages/methods/invite.js"; import { IncomingRequestDelegate } from "../messages/incoming-request.js"; import { IncomingRequestMessage } from "../messages/incoming-request-message.js"; import { OutgoingResponse, ResponseOptions } from "../messages/outgoing-response.js"; import { UserAgentCore } from "../user-agent-core/user-agent-core.js"; import { UserAgentServer } from "./user-agent-server.js"; /** * INVITE UAS. * @remarks * 13 Initiating a Session * https://tools.ietf.org/html/rfc3261#section-13 * 13.1 Overview * https://tools.ietf.org/html/rfc3261#section-13.1 * 13.3 UAS Processing * https://tools.ietf.org/html/rfc3261#section-13.3 * @public */ export declare class InviteUserAgentServer extends UserAgentServer implements IncomingInviteRequest { protected core: UserAgentCore; /** The confirmed dialog, if any. */ private confirmedDialog; /** The early dialog, if any. */ private earlyDialog; constructor(core: UserAgentCore, message: IncomingRequestMessage, delegate?: IncomingRequestDelegate); dispose(): void; /** * 13.3.1.4 The INVITE is Accepted * The UAS core generates a 2xx response. This response establishes a * dialog, and therefore follows the procedures of Section 12.1.1 in * addition to those of Section 8.2.6. * https://tools.ietf.org/html/rfc3261#section-13.3.1.4 * @param options - Accept options bucket. */ accept(options?: ResponseOptions): OutgoingResponseWithSession; /** * 13.3.1.1 Progress * If the UAS is not able to answer the invitation immediately, it can * choose to indicate some kind of progress to the UAC (for example, an * indication that a phone is ringing). This is accomplished with a * provisional response between 101 and 199. These provisional * responses establish early dialogs and therefore follow the procedures * of Section 12.1.1 in addition to those of Section 8.2.6. A UAS MAY * send as many provisional responses as it likes. Each of these MUST * indicate the same dialog ID. However, these will not be delivered * reliably. * * If the UAS desires an extended period of time to answer the INVITE, * it will need to ask for an "extension" in order to prevent proxies * from canceling the transaction. A proxy has the option of canceling * a transaction when there is a gap of 3 minutes between responses in a * transaction. To prevent cancellation, the UAS MUST send a non-100 * provisional response at every minute, to handle the possibility of * lost provisional responses. * https://tools.ietf.org/html/rfc3261#section-13.3.1.1 * @param options - Progress options bucket. */ progress(options?: ResponseOptions): OutgoingResponseWithSession; /** * 13.3.1.2 The INVITE is Redirected * If the UAS decides to redirect the call, a 3xx response is sent. A * 300 (Multiple Choices), 301 (Moved Permanently) or 302 (Moved * Temporarily) response SHOULD contain a Contact header field * containing one or more URIs of new addresses to be tried. The * response is passed to the INVITE server transaction, which will deal * with its retransmissions. * https://tools.ietf.org/html/rfc3261#section-13.3.1.2 * @param contacts - Contacts to redirect to. * @param options - Redirect options bucket. */ redirect(contacts: Array<URI>, options?: ResponseOptions): OutgoingResponse; /** * 13.3.1.3 The INVITE is Rejected * A common scenario occurs when the callee is currently not willing or * able to take additional calls at this end system. A 486 (Busy Here) * SHOULD be returned in such a scenario. * https://tools.ietf.org/html/rfc3261#section-13.3.1.3 * @param options - Reject options bucket. */ reject(options?: ResponseOptions): OutgoingResponse; }