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 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, POST the file to it, then
876
- * send the resulting media message into the conversation in one go.
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>): this;
1286
- off<T extends ListenersKeyType>(type: T, listener: ListenerCallbackFnType<T>): this;
1287
- emit(type: ListenersKeyType, args: any): boolean;
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;