当前位置: 首页 > web >正文

浏览器拨打电话 nginx代理wss (mod_cti基于FreeSWITCH)

文章目录

  • 前言
  • 关于我们
  • nginx配置
  • 中间件修改
    • acl.conf配置文件修改
    • sip配置修改
  • 分机注册


前言

现在的浏览器都已支持webrtc,浏览器可通过webrtc直接注册sip账户到FreeSWITCH,进入实现实现拨打和接听电话。但是从安全角度来看,FreeSWITCH配置SSL证书的步骤有些复杂。如果使用nginx代理wss的方式,就可以跳过一些步骤,实现更加便捷。


关于我们

小何:18270073585 (VX同号)


nginx配置

  1. 修改/etc/nginx/nginx.conf配置文件:
server {listen       443 ssl http2;server_name  _;root         /usr/share/nginx/html;//nginx配置SSL证书的地方。ssl_certificate "/etc/pki/nginx/www.ddcti.com.crt";ssl_certificate_key "/etc/pki/nginx/www.ddcti.com.key";ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;error_page 404 /404.html;location = /40x.html {}error_page 500 502 503 504 /50x.html;location = /50x.html {}//wss转发的配置location ^~ /sip {proxy_pass http://192.168.31.213:8000/;     //这里的IP修改成服务器的内网IP,端口与中间件配置的ws端口一致。proxy_http_version 1.1;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_read_timeout 60s;proxy_set_header Upgrade websocket;proxy_set_header Connection Upgrade;}}
  1. 检查配置文件的格式是否正确,SSH控制台执行命令:nginx -t
    如果输出结果如以下所示,说明文件的格式没有问题:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

中间件修改

acl.conf配置文件修改

CCAdmin-Web->呼叫中心->配置文件设置->找到acl.conf配置文件->新增以下配置:

        <list name="mylan" default="deny"></list>

在这里插入图片描述

sip配置修改

  1. CCAdmin-Web->呼叫中心->SIP设置->找到internal配置->按要求修改以下参数:

    • local-network-acl:修改成mylan。
    • ws-binding:内网IP:ws端口。例:192.168.31.213:8000,ws端口与nginx中的转发配置的端口一致。
      在这里插入图片描述
  2. CCAdmin-Web->运维调试->FS终端->执行命令:reload mod_sofia,使sip配置生效。

分机注册

浏览器访问地址:https://www.ddrj.com/jssip/index.html,开始注册分机:

  • 用户名:分机号。
  • 密码:分机密码。
  • WSS:域名/sip。(注意:这里的域名后面需要带sip路径)
    在这里插入图片描述
http://www.xdnf.cn/news/14363.html

相关文章:

  • 山东大学软件学院创新项目实训开发日志——第十六周
  • 【Python打卡Day40】训练与测试的规范写法 @浙大疏锦行
  • LeCun破局:大模型与人类思考的本质分野
  • 快速学习GO语言总结
  • JNDI注入入门
  • jetson nano 无法启动排查实录:使用i2c误写 EEPROM (地址 0x50)引发的修复经历
  • RT1176 QDEC引脚全解析:精准定位编码器接口资源
  • 内容风控概念基础
  • 前端基础知识CSS系列 - 03(em/px/rem/vh/vw)
  • WiFi7无线桌面式AP天线系统设计
  • 【CATIA的二次开发29】抽象对象Document涉及文档标识的属性
  • MLLM常见概念通俗解析(五)
  • Vue3 实现老虎机抽奖游戏
  • linux-进程管理
  • 人工智能学习18-Pandas-按标签选择
  • CH579 CH573 CH582 CH592 蓝牙主机(Central)实例应用讲解(二)——Central消息事件机制初探
  • Ansible
  • leetcode 2566. 替换一个数字后的最大差值 简单
  • ESP32的spi通讯(Arduino)
  • Ubuntu 实现 sudo 免密码关键步骤
  • 启动springboot项目提示没有主清单属性
  • C++ 内存泄露
  • 以下是 NumPy 在统计与矩阵运算中的核心用法总结
  • linux msyql8 允许远程连接
  • java中扩展运算符
  • 《开窍》读书笔记8
  • 无线USB转换器TOS-WLink露面1个月以来总结
  • Cesium快速入门到精通系列教程九:Cesium 中高效添加和管理图标/标记的标准方式​​
  • Verilog自适应位宽与指定位宽不同导致模块无法正常执行
  • csharp设计方法