opensips-js 0.1.51 → 0.1.53
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/index.d.ts +111 -6
- package/dist/opensips-js.cjs.js +49 -47
- package/dist/opensips-js.es.js +5166 -4268
- package/dist/opensips-js.iife.js +52 -50
- package/dist/opensips-js.umd.js +58 -56
- package/package.json +1 -1
- package/src/types/listeners.d.ts +31 -1
- package/src/types/msrp.d.ts +13 -0
- package/src/types/rtc.d.ts +1 -0
- package/src/types/webrtcmetrics.d.ts +23 -4
package/dist/index.d.ts
CHANGED
|
@@ -506,6 +506,7 @@ export declare interface IOpenSIPSJSOptions {
|
|
|
506
506
|
pnExtraHeaders?: ExtraContactParams
|
|
507
507
|
msrpDomain?: string
|
|
508
508
|
msrpWs?: boolean
|
|
509
|
+
msrpReconnectInterval?: number
|
|
509
510
|
}
|
|
510
511
|
|
|
511
512
|
export declare interface IRoom {
|
|
@@ -599,6 +600,9 @@ declare const MODULES: {
|
|
|
599
600
|
|
|
600
601
|
declare type Modules = AudioModuleName | VideoModuleName | MSRPModuleName
|
|
601
602
|
|
|
603
|
+
/** Max caption length after trim, matching server-side `m.upload.request` contract. */
|
|
604
|
+
export declare const MSRP_CAPTION_MAX_LENGTH = 1024;
|
|
605
|
+
|
|
602
606
|
export declare const MSRP_EVT: {
|
|
603
607
|
readonly CREATE: "m.conversation.create";
|
|
604
608
|
readonly MESSAGE: "m.conversation.message";
|
|
@@ -606,6 +610,10 @@ export declare const MSRP_EVT: {
|
|
|
606
610
|
readonly CLOSED: "m.conversation.closed";
|
|
607
611
|
readonly REOPEN: "m.conversation.reopen";
|
|
608
612
|
readonly DELETE: "m.conversation.delete";
|
|
613
|
+
readonly MESSAGE_HIDE: "m.message.hide";
|
|
614
|
+
readonly CONVERSATION_TAG: "m.conversation.tag";
|
|
615
|
+
readonly MESSAGE_TAG: "m.message.tag";
|
|
616
|
+
readonly ERROR: "m.error";
|
|
609
617
|
readonly SYNC: "m.sync";
|
|
610
618
|
readonly UPLOAD_REQUEST: "m.upload.request";
|
|
611
619
|
readonly UPLOAD_RESPONSE: "m.upload.response";
|
|
@@ -659,6 +667,11 @@ export declare interface MSRPConversationState {
|
|
|
659
667
|
created_at: number
|
|
660
668
|
updated_at: number
|
|
661
669
|
status?: string
|
|
670
|
+
/**
|
|
671
|
+
* Shared conversation tags from `m.sync` / `m.conversation.tag`.
|
|
672
|
+
* Compared by normalized (lowercase, trimmed) `name`.
|
|
673
|
+
*/
|
|
674
|
+
tags?: MSRPTag[]
|
|
662
675
|
}
|
|
663
676
|
|
|
664
677
|
declare interface MSRPConversationState_2 {
|
|
@@ -684,13 +697,32 @@ declare interface MSRPConversationState_2 {
|
|
|
684
697
|
created_at: number
|
|
685
698
|
updated_at: number
|
|
686
699
|
status?: string
|
|
700
|
+
/**
|
|
701
|
+
* Shared conversation tags from `m.sync` / `m.conversation.tag`.
|
|
702
|
+
* Compared by normalized (lowercase, trimmed) `name`.
|
|
703
|
+
*/
|
|
704
|
+
tags?: MSRPTag_2[]
|
|
687
705
|
}
|
|
688
706
|
|
|
707
|
+
declare type msrpConversationTaggedListener = (payload: {
|
|
708
|
+
conversation_id?: number
|
|
709
|
+
action: 'add' | 'remove'
|
|
710
|
+
tag: MSRPTag_2
|
|
711
|
+
actorUri: string
|
|
712
|
+
updatedAt: number
|
|
713
|
+
}) => void
|
|
714
|
+
|
|
689
715
|
declare type msrpConversationUpdatedListener = (payload: {
|
|
690
716
|
conversation_id?: number
|
|
691
717
|
patch: Partial<MSRPConversationState_2>
|
|
692
718
|
}) => void
|
|
693
719
|
|
|
720
|
+
declare type msrpErrorListener = (payload: {
|
|
721
|
+
conversation_id?: number
|
|
722
|
+
error: string
|
|
723
|
+
event: unknown
|
|
724
|
+
}) => void
|
|
725
|
+
|
|
694
726
|
declare type MSRPInitializingListener = (value: boolean) => void
|
|
695
727
|
|
|
696
728
|
export declare type MSRPMemberRole = 'in_charge' | 'manager' | 'assigned'
|
|
@@ -741,12 +773,27 @@ export declare type MSRPMessageEventType = {
|
|
|
741
773
|
session: MSRPSessionExtended_2
|
|
742
774
|
}
|
|
743
775
|
|
|
776
|
+
declare type msrpMessageHiddenListener = (payload: {
|
|
777
|
+
conversation_id?: number
|
|
778
|
+
eventId: string
|
|
779
|
+
updatedAt: number
|
|
780
|
+
}) => void
|
|
781
|
+
|
|
744
782
|
declare type MSRPMessageListener = (event: MSRPMessageEventType) => void;
|
|
745
783
|
|
|
746
784
|
export declare type MSRPMessageStatus = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
|
|
747
785
|
|
|
748
786
|
declare type MSRPMessageStatus_2 = 'pending' | 'sent' | 'delivered' | 'read' | 'failed'
|
|
749
787
|
|
|
788
|
+
declare type msrpMessageTaggedListener = (payload: {
|
|
789
|
+
conversation_id?: number
|
|
790
|
+
eventId: string
|
|
791
|
+
action: 'add' | 'remove'
|
|
792
|
+
tag: MSRPTag_2
|
|
793
|
+
actorUri: string
|
|
794
|
+
updatedAt: number
|
|
795
|
+
}) => void
|
|
796
|
+
|
|
750
797
|
declare class MSRPModule {
|
|
751
798
|
private context;
|
|
752
799
|
private msrpSession;
|
|
@@ -791,6 +838,9 @@ declare class MSRPModule {
|
|
|
791
838
|
private buildTextMessageEvent;
|
|
792
839
|
private buildEditMessageEvent;
|
|
793
840
|
private buildDeleteMessageEvent;
|
|
841
|
+
private buildHideMessageEvent;
|
|
842
|
+
private buildConversationTagEvent;
|
|
843
|
+
private buildMessageTagEvent;
|
|
794
844
|
private buildMediaMessageEvent;
|
|
795
845
|
private buildMemberEvent;
|
|
796
846
|
private buildCloseConversationEvent;
|
|
@@ -817,12 +867,37 @@ declare class MSRPModule {
|
|
|
817
867
|
* may delete; the backend marks it `is_deleted` and fans out the deletion.
|
|
818
868
|
*/
|
|
819
869
|
deleteMessage(conversationRef: MSRPConversationRef, targetEventId: string): boolean;
|
|
870
|
+
/**
|
|
871
|
+
* Hide a message from the current agent's timeline only. Any joined
|
|
872
|
+
* SIP/assistant member may hide any `m.conversation.message` (own,
|
|
873
|
+
* others', or internal_note). There is no undo in V1.
|
|
874
|
+
*/
|
|
875
|
+
hideMessage(conversationRef: MSRPConversationRef, targetEventId: string): boolean;
|
|
876
|
+
/**
|
|
877
|
+
* Add a shared free-text tag to a conversation. Duplicate names on the
|
|
878
|
+
* same conversation are ignored by the server.
|
|
879
|
+
*/
|
|
880
|
+
tagConversation(conversationRef: MSRPConversationRef, name: string, color?: string): boolean;
|
|
881
|
+
/** Remove a conversation tag by name (compared case-insensitively). */
|
|
882
|
+
untagConversation(conversationRef: MSRPConversationRef, name: string): boolean;
|
|
883
|
+
/**
|
|
884
|
+
* Add a shared free-text tag to a specific message. Duplicate names on
|
|
885
|
+
* the same message are ignored by the server.
|
|
886
|
+
*/
|
|
887
|
+
tagMessage(conversationRef: MSRPConversationRef, targetEventId: string, name: string, color?: string): boolean;
|
|
888
|
+
/** Remove a message tag by name (compared case-insensitively). */
|
|
889
|
+
untagMessage(conversationRef: MSRPConversationRef, targetEventId: string, name: string): boolean;
|
|
820
890
|
/**
|
|
821
891
|
* Forward the text of an existing message into another conversation.
|
|
822
892
|
* The caller owns `forwardedFromLabel`; when omitted the raw sender URI
|
|
823
893
|
* of the source message is used. The SDK never invents a display name.
|
|
824
894
|
*/
|
|
825
895
|
forwardMessage(sourceMessage: any, targetConversationRef: MSRPConversationRef, forwardedFromLabel?: string): boolean;
|
|
896
|
+
/**
|
|
897
|
+
* Emit a client-side media `m.conversation.message`. Prefer
|
|
898
|
+
* {@link uploadFile} — with server-side media commit the server
|
|
899
|
+
* creates the timeline event after the file POST.
|
|
900
|
+
*/
|
|
826
901
|
sendMediaMessage(conversationRef: MSRPConversationRef, uploadResult: MSRPUploadResult, caption?: string): boolean;
|
|
827
902
|
sendReaction(conversationRef: MSRPConversationRef, targetEventId: string, emoji: string, action?: MSRPReactionAction): boolean;
|
|
828
903
|
/** Convenience wrapper to remove a previously added reaction. */
|
|
@@ -864,16 +939,20 @@ declare class MSRPModule {
|
|
|
864
939
|
* Ask the server for a presigned upload URL. Resolves with the upload
|
|
865
940
|
* metadata once the matching `m.upload.response` arrives, or rejects
|
|
866
941
|
* after `uploadRequestTimeoutMs`.
|
|
942
|
+
*
|
|
943
|
+
* Optional `caption` is stored on the upload token (server-side media
|
|
944
|
+
* commit). Whitespace-only is treated as absent. Max 1024 chars after trim.
|
|
867
945
|
*/
|
|
868
|
-
requestUploadUrl(conversationRef: MSRPConversationRef, filename: string, mimeType: string, fileSize: number): Promise<MSRPUploadResult>;
|
|
946
|
+
requestUploadUrl(conversationRef: MSRPConversationRef, filename: string, mimeType: string, fileSize: number, caption?: string): Promise<MSRPUploadResult>;
|
|
869
947
|
/**
|
|
870
948
|
* Ask the server for a one-shot download URL. Resolves with the URL,
|
|
871
949
|
* rejects on timeout or explicit server error.
|
|
872
950
|
*/
|
|
873
951
|
requestFileAccess(conversationRef: MSRPConversationRef, eventId: string): Promise<string>;
|
|
874
952
|
/**
|
|
875
|
-
* High-level helper: request a presigned URL
|
|
876
|
-
*
|
|
953
|
+
* High-level helper: request a presigned URL and POST the file to it.
|
|
954
|
+
* The server commits the media (and optional caption) as a single
|
|
955
|
+
* `m.conversation.message` — do not send a separate text event.
|
|
877
956
|
*/
|
|
878
957
|
uploadFile(conversationRef: MSRPConversationRef, file: File, caption?: string): Promise<MSRPUploadResult>;
|
|
879
958
|
private processIncomingMSRPMessage;
|
|
@@ -882,6 +961,10 @@ declare class MSRPModule {
|
|
|
882
961
|
private handleIncomingConversationCreate;
|
|
883
962
|
private handleIncomingConversationMessage;
|
|
884
963
|
private handleIncomingMessageDelete;
|
|
964
|
+
private handleIncomingMessageHide;
|
|
965
|
+
private handleIncomingConversationTag;
|
|
966
|
+
private handleIncomingMessageTag;
|
|
967
|
+
private handleIncomingError;
|
|
885
968
|
private handleIncomingConversationReopen;
|
|
886
969
|
private handleIncomingPresence;
|
|
887
970
|
private handleIncomingConversationClosed;
|
|
@@ -1115,6 +1198,7 @@ export declare interface MSRPSessionExtended extends MSRPSession_2 {
|
|
|
1115
1198
|
_late_sdp: string
|
|
1116
1199
|
_status: number
|
|
1117
1200
|
_remote_identity: string
|
|
1201
|
+
_userTerminated?: boolean
|
|
1118
1202
|
target_addr: Array<string>
|
|
1119
1203
|
answer(options?: any): void
|
|
1120
1204
|
_init_incomeing(): void
|
|
@@ -1138,6 +1222,7 @@ declare interface MSRPSessionExtended_2 extends MSRPSession_2 {
|
|
|
1138
1222
|
_late_sdp: string
|
|
1139
1223
|
_status: number
|
|
1140
1224
|
_remote_identity: string
|
|
1225
|
+
_userTerminated?: boolean
|
|
1141
1226
|
target_addr: Array<string>
|
|
1142
1227
|
answer(options?: any): void
|
|
1143
1228
|
_init_incomeing(): void
|
|
@@ -1152,6 +1237,22 @@ declare type msrpSyncCompletedListener = (payload: {
|
|
|
1152
1237
|
messagesByConversation: { [key: string]: any[] }
|
|
1153
1238
|
}) => void
|
|
1154
1239
|
|
|
1240
|
+
export declare interface MSRPTag {
|
|
1241
|
+
name: string
|
|
1242
|
+
color?: string
|
|
1243
|
+
added_by?: string
|
|
1244
|
+
added_at?: number
|
|
1245
|
+
}
|
|
1246
|
+
|
|
1247
|
+
declare interface MSRPTag_2 {
|
|
1248
|
+
name: string
|
|
1249
|
+
color?: string
|
|
1250
|
+
added_by?: string
|
|
1251
|
+
added_at?: number
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1254
|
+
export declare type MSRPTagAction = 'add' | 'remove';
|
|
1255
|
+
|
|
1155
1256
|
declare type msrpTypingListener = (payload: {
|
|
1156
1257
|
conversation_id?: number
|
|
1157
1258
|
sender: string
|
|
@@ -1241,6 +1342,10 @@ export declare interface OpenSIPSEventMap extends UAEventMap {
|
|
|
1241
1342
|
msrpTyping: msrpTypingListener
|
|
1242
1343
|
msrpMessageEdited: msrpMessageEditedListener
|
|
1243
1344
|
msrpMessageDeleted: msrpMessageDeletedListener
|
|
1345
|
+
msrpMessageHidden: msrpMessageHiddenListener
|
|
1346
|
+
msrpConversationTagged: msrpConversationTaggedListener
|
|
1347
|
+
msrpMessageTagged: msrpMessageTaggedListener
|
|
1348
|
+
msrpError: msrpErrorListener
|
|
1244
1349
|
msrpPresence: msrpPresenceListener
|
|
1245
1350
|
// JANUS
|
|
1246
1351
|
conferenceStart: conferenceStartListener
|
|
@@ -1282,9 +1387,9 @@ declare class OpenSIPSJS extends UAExtended {
|
|
|
1282
1387
|
isWaitingForSessionHangup(): boolean;
|
|
1283
1388
|
stopSessionAfterWaiting(): void;
|
|
1284
1389
|
private get hasActiveSessions();
|
|
1285
|
-
on<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>):
|
|
1286
|
-
off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>):
|
|
1287
|
-
emit(type: ListenersKeyType, args: any):
|
|
1390
|
+
on<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): any;
|
|
1391
|
+
off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): any;
|
|
1392
|
+
emit(type: ListenersKeyType, args: any): any;
|
|
1288
1393
|
get sipDomain(): string;
|
|
1289
1394
|
use(plugin: BaseNewStreamPlugin | BaseProcessStreamPlugin): void;
|
|
1290
1395
|
getPlugin(name: string): BaseNewStreamPlugin | BaseProcessStreamPlugin;
|