sip.js
Version:
A SIP library for JavaScript
55 lines (54 loc) • 2.06 kB
TypeScript
import { Subscription } from "../../subscription/subscription.js";
import { IncomingRequest } from "../incoming-request.js";
import { IncomingResponse } from "../incoming-response.js";
import { OutgoingRequest, OutgoingRequestDelegate } from "../outgoing-request.js";
import { IncomingNotifyRequest } from "./notify.js";
/**
* Incoming SUBSCRIBE request.
* @public
*/
export interface IncomingSubscribeRequest extends IncomingRequest {
}
/**
* Incoming SUBSCRIBE response.
* @public
*/
export interface IncomingSubscribeResponse extends IncomingResponse {
}
/**
* Outgoing SUBSCRIBE request.
* @public
*/
export interface OutgoingSubscribeRequest extends OutgoingRequest {
/** Delegate providing custom handling of this outgoing SUBSCRIBE request. */
delegate?: OutgoingSubscribeRequestDelegate;
/** Stop waiting for an inital subscription creating NOTIFY. */
waitNotifyStop(): void;
}
/**
* Delegate providing custom handling of outgoing SUBSCRIBE requests.
* @public
*/
export interface OutgoingSubscribeRequestDelegate extends OutgoingRequestDelegate {
/**
* Received the initial subscription creating NOTIFY in response to this request.
* Called for out of dialog SUBSCRIBE requests only (not called for re-SUBSCRIBE requests).
* @param request - Incoming NOTIFY request (including a Subscription).
*/
onNotify?(request: IncomingRequestWithSubscription): void;
/**
* Timed out waiting to receive the initial subscription creating NOTIFY in response to this request.
* Called for out of dialog SUBSCRIBE requests only (not called for re-SUBSCRIBE requests).
*/
onNotifyTimeout?(): void;
}
/**
* Incoming NOTIFY request with associated {@link Subscription}.
* @public
*/
export interface IncomingRequestWithSubscription {
/** The NOTIFY request which established the subscription. */
readonly request: IncomingNotifyRequest;
/** If subscription state is not "terminated", then the subscription. Otherwise undefined. */
readonly subscription?: Subscription;
}