【JsSIP】JsSIP ua案例分享

以下为UA的各种方法使用,可结合实际的使用情况来进行加工处理

import { UA, WebSocketInterface } from "jssip";

export default class JsSIPWebphone {
  constructor() {
    this.ua = "";
    this.socket = "";
    this.iceServers = "";
  }
  connect = (options) => {
    const socket = new WebSocketInterface(options.host);
    const match = options.host.match(/(?<=(ws|wss):\/\/)[^\/]+/);
    const host = match && match.length ? match[0] : "";
    // console.log(socket, match, host);
    this.socket = socket;
    socket.via_transport = "WS";
    const registerExpires = 300;
    const noAnswerTimeout = options.noAnswerTimeout || 60;
    const configuration = {
      sockets: [socket],
      uri: `${options.user}@${host}`,
      authorization_user: options.user,
      password: options.password,
      user_agent: "Webphone / 0.2.0(YSB)",
      realm: host,
      register: true,
      registrar_server: host,
      register_expires: registerExpires,
      no_answer_timeout: noAnswerTimeout,
    };
    this.ua = new UA(configuration); // 创建
    this.ua.on("connecting", (e) => {
      console.log("ua Connecting(传输连接尝试中)........");
    });
    this.ua.on("connected", (e) => {
      console.log("ua Connected(已连接)........");
    });
    this.ua.on("disconnected", (e) => {
      console.log("ua Disconnected(连接失败)........");
    });
    this.ua.on("registered", (e) => {
      console.log("ua Registered(注册成功)........");
    });
    this.ua.on("unregister", (e) => {
      console.log("ua unregister(注销UA)..........");
    });
    this.ua.on("registrationFailed", (e) => {
      console.log("ua Registration Failed(注册失败).........");
    });
    this.ua.on("registrationExpiring", (e) => {
      console.log("ua Registration Expiring(注册到期).........");
    });
    this.ua.on("newRTCSession", (e) => {
      console.log("Webphone newRTCSession.........");
      console.log(e);
    });
    this.ua.on("newMessage", (e) => {
      console.log("ua New Message(收到新消息)...........");
    });
    this.ua.on("sipEvent", (e) => {
      console.log("ua Receive Notify Request(sip事件)...........", e);
    });
    this.register();
    this.start();
  };
  register = () => {
    // 注册ua,注意:如果在UA配置参数中将register参数设置为true,UA将自动注册
    this.ua.register();
  };
  start = () => {
    // 开始连接
    this.ua.start();
  };
  stop = () => {
    // 保存当前注册状态,并断开连接
    this.ua.stop();
  };
  unregister = () => {
    // 注销UA
    this.ua.unregister({ all: true });
  };
  registrator = () => {
    // 获取 JsSIP.Registrator 注册器实例
    this.ua.registrator();
  };
  call = () => {
    // 拨打呼出多媒体电话
    const target = ""; // 目的地,URI实例
    const options = null; // 参数细节可查看文档
    this.ua.call(target, options);
  };
  sendMessage = () => {
    // 使用SIP message方法发送即时消息。
    const target = ""; //目的地,URI实例
    const body = ""; // 消息内容。表示消息正文的字符串
    const options = null; // 参数细节可查看文档
    this.ua.sendMessage(target, body, options);
  };
  terminateSessions = () => {
    // 用于呼叫终止的RTCSession。
    const options = null;
    this.ua.terminateSessions(options);
  };
  isRegistered = () => {
    // 判断是否已注册
    this.ua.isRegistered();
  };
  isConnected = () => {
    // 判断是否已连接
    this.ua.isConnected();
  };
  getParameter = () => {
    // 检索所配置的参数
    this.ua.get("realm");
  };
  setParameter = () => {
    // 修改指定的参数
    this.ua.set("reaml", "xxxxxvalue");
  };
}

本章节对ua的整体使用进行初步的案例分享,如有不妥之处或者优化建议,还请留言告知,非常感谢!!!

OPC UA是一种通讯协议,它被广泛应用于工业自动化领域,在制造业、能源领域、交通运输领域等行业都有着广泛的应用。而Java作为一种广泛应用的编程语言,也可以用来实现OPC UA通讯。下面将介绍一些OPC UA Java案例。 1、Eclipse Milo Eclipse Milo是一个基于Java的开源OPC UA实现,它提供了一系列的API,可以用来开发OPC UA客户端和服务器。Eclipse Milo提供了完整的OPC UA协议栈,并支持了多种平台,包括Windows、Linux等。Eclipse Milo还提供了一些示例代码以供使用者参考。 2、Prosys OPC UA Java SDK Prosys OPC UA Java SDK是一个商业化的OPC UA Java实现,它提供了一系列的类库和工具,可以用来开发OPC UA客户端和服务器,包括面向对象的API、多种协议支持、安全通讯等功能。Prosys OPC UA Java SDK还提供了示例代码以供使用者参考。 3、OPC UA Java Client OPC UA Java Client是一个Java实现的OPC UA客户端库,可以用于基于Java的应用程序中。它提供了一系列的API,可以用来连接到OPC UA服务器,获取数据等功能。OPC UA Java Client还提供了示例代码以供使用者参考。 4、kOpc-UA SDK kOpc-UA SDK是一个基于Java的OPC UA实现,它提供了一系列的类库和工具,可以用来开发OPC UA客户端和服务器。kOpc-UA SDK具有良好的跨平台性,支持多种协议,包括TCP、HTTPS和WebSocket等。kOpc-UA SDK还提供了一些示例代码以供使用者参考。 总之,目前有许多基于Java的OPC UA实现,这些工具可以用来开发OPC UA客户端和服务器。新增中小企业也可以通过使用这些工具来实现自动化领域的数字化转型,并提高自身竞争力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值