用 ASTERISK 搭建自己的免费 VOIP 服务器

2023-11-08


服务器别闲着,博主又要给大家带来新的玩法咯

1. 这里以 Debian 为例子,安装 Asterisk

apt-get update
apt-get install asterisk

2. 预设置 Asterisk,修改 sip.conf 和 extensions.conf 文件,是为了创建两个可供测试的 SIP 账号

nano /etc/asterisk/sip.conf

在文件的开头部分添加如下信息:

[general]
context = default
bindport = 5060
bindaddr = 0.0.0.0
tcpbindaddr = 0.0.0.0
tcpenable = yes

[1001]
type = friend
callerid = User One 
secret = 1001
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = 1001
disallow = all
allow = ulaw
transport = udp

[1002]
type = friend 
callerid = User Two 
secret = 1002
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox = 1002
disallow = all
allow = ulaw
transport = udp

这里的意思是,Asterisk 会听取来自所有 IP 的请求,监听端口为 5060,并且启用 TCP 协议的支持。然后定义了两个分机号码,分别给了 User One 和 User Two 两个潜在用户。

nano /etc/asterisk/extensions.conf

在文件的开头部分添加如下信息:

[general]
static=yes
writeprotect=no

[default]
exten => 1001,1,Answer()
exten => 1001,n,Dial(SIP/1001,20,tr)
exten => 1001,n,Hangup

exten => 1002,1,Answer()
exten => 1002,n,Dial(SIP/1002,20,tr)
exten => 1002,n,Hangup

这里的意思是,确认这两个分机号码的存在。

3. 重启 Asterisk

/etc/init.d/asterisk restart

4. 配置客户端程序,这里分别用 X-Lite,Blink,CSipSimple 做演示,教你如何设置

所有的参数都来源于 sip.conf 文件:

  • Account name / Display name = callerid
  • User ID / Authorization name = 分机号码 (方括号里面的 e.g. 1001)
  • Password = secret
  • The Domain = Server IP Address

配置 X-Lite: 菜单 Softphone – Account Settings

配置 Blink: 菜单 Blink – Accounts – Add account

配置 CSipSimple (Android): 菜单 Accounts – Add account – Generic wizards – Basic

5. 拨打 VoIP 的方式就是直接在客户端程序里输入对方的分机号码即可

6. 就这么多了,如果有连通问题,请注意防火墙的设置

转自:https://www.yaoblog.info/?p=5021
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用 ASTERISK 搭建自己的免费 VOIP 服务器 的相关文章

  • Python爬虫可以干什么?Python入门必看!

    在爬虫领域 Python几乎是霸主地位 虽然C Java GO等编程语言也可以写爬虫 但Python更具优势 不仅拥有优秀的第三方库 还可以为我们做很多的事情 那么Python爬虫可以干什么 Python爬虫有什么用 想必很多人都比较好奇
  • 【机考】华为OD2022.11.01机考题目思路与代码

    题目一 描述 输入一个长度为4的倍数的字符串 字符串中仅包含WASD四个字母 将这个字符串中的连续子串用同等长度的仅包含WASD的字符串替换 如果替换后整个字符串中WASD四个字母出现的频数相同 那么我们称替换后的字符串是 完美走位 求子串
  • keil5如何打开智能提示

    在使用keil中需要敲上许多重复代码 并且经常需要调用别人写好的包 这时候我们总不能每句代码都重复的敲一遍 这样不仅没有效率 还要去花时间记住许多自己或许不常用的代码 这时候就需要智能提示来帮助我们了 第一步 打开编辑Edit 目录里找到设
  • Kubernetes(k8s)安装和搭建集群时kubeadm init失败

    Kubernetes k8s 按官方文档描述安装和搭建集群遇到kubelet状态异常 环境 Cenots 7 9 2009 adm64 我在搭建master节点时通过以下命令安装了docker kubelet kubectl kubeadm
  • 建立实体-关系模型(案例)

    一 标识实体 通常有用户 角色这两个实体 二 标识关系 用户与角色间为多对多的互相拥有关系 三 标识实体 关系的属性 不仅仅是实体有属性 关系同样也有属性 这些属性在实体间建立关系时才会存在 有时属性太多 无法在图上一一列出 可以用表格 在
  • AndroidStudio运行项目时的Run/debug configurations问题

    今天遇到的问题一个接一个 在调试项目时突然不能调试 但并没有报代码出错 看Logcat提示的是Android SDK没配置 还有一个明显不同之处 就是右上角那个显示当前项目名称的地方 显示的是app还有一个红叉 根据提示是配置Android
  • Spring Cloud Bus消息总线

    目录 一 概述简介 1 1 Bus是什么 1 2 Bus能干嘛 1 3 为何被称为总线 二 RabbitMQ环境配置 2 1 windows下载与安装 2 2 使用RabbitMQ 三 Bus动态刷新全局广播 3 1 Bus设计思想 3 2
  • PHP 获取当天凌晨时间戳

    总结几种PHP 获取当天凌晨时间戳方法 首先设置时区 header Content type text html charset utf 8 设置北京时间为默认时区 date default timezone set PRC 方法一 当天的
  • Django Error——Requested setting INSTALLED_APPS, but settings are not configured.

    django core exceptions ImproperlyConfigured Requested setting INSTALLED APPS but settings are not configured You must ei
  • jupyter notebook主题、字体、字号管理工具

    jupyter notebook编写 调试代码非常方便 但是其默认主题和字体实在是太难看了 因此大家一般都有修改主题的想法 感谢GitHub上的大神提供了一款主题管理工具 网上已经有文章提出其使用方法 如 jupyter notebook
  • Servlet基础_0500_Application

    一 application概念 application即ServletContext 能够被所有的客户端页面共享 不同的浏览器 不同电脑上的浏览器 演示 ServletContextTest java package com servlet
  • docker下使用apt install报错E: Unable to locate package

    解决方法 方法1 方法2 问题背景 由于docker环境是独立的 gcc vim等需要重新安装 输入安装命令 sudo apt install gcc 7 报错 E Unable to locate package gcc 7 原因是软件源
  • airpods固件更新方法_AirPods Pro迎来首个固件更新,检查耳机版本及更新方法

    airpods pro AirPods Pro推出了一段时间 获得一致好评 但有不少bug存在 针对此 苹果推出了airpods Pro的Firmware 固件 更新 早前购买的AirPods Pro都是 2B584 版本 在11月15日
  • Linux网络发送流程概述

    Linux网络的数据发送 本文主要是学习一下有关Linux 基于Linux3 10 网络层数据写入的流程 在Linux中通过网络写入的数据是如何发送到设备层 socket数据写入 在应用层一般写入的往已经创建好的连接进行数据发送的都会使用s
  • ubuntu20.04下载谷歌浏览器

    第一步 打开终端输入 wget https dl google com linux direct google chrome stable current amd64 deb 第二步 在终端中输入 sudo apt install goog
  • 关于临时表空间问题总结

    oracle经常需要查数据库临时表空间大小 使用率 加表空间等 这里总结临时表空间相关的语句 0 查看实例的临时表空间 SELECT FROM dba tablespaces t where t CONTENTS TEMPORARY SEL
  • 移动端通用404页面

  • 【分享NVIDIA GTC 23大会干货】在 GPU 上使用 Video Codec SDK,CV-CUDA 和 TensorRT 加速现代云上视频应用 [SE51229]

    在 GPU 上使用 Video Codec SDK CV CUDA 和 TensorRT 加速现代云上视频应用 前言 基于现代 的视频流水线架构与运用场景 NVIDIA 视频处理的工具集 1 视频编解码工具 2 前后处理部分 CV CUDA
  • Python中的魔术方法详解

    介绍 在Python中 所有以 双下划线包起来的方法 都统称为 Magic Method 中文称 魔术方法 例如类的初始化方法 init Python中所有的魔术方法均在官方文档中有相应描述 但是对于官方的描述比较混乱而且组织比较松散 很难
  • Llama2 指令精调脚本

    指令精调脚本 重要提示 该代码仅适用于特定PEFT版本 运行脚本前请从源码安装commit id为13e53fc的Peft 如果使用其他版本的PEFT或修改部分训练参数设置 如不使用deepspeed 不能保证模型可以正常训练 运行前确保拉

随机推荐

  • 独显和集显设置,双显卡工作及cuda计算

    有时候我们会碰到插上独显后 想用集显却不显示了 不是电脑出问题了 需要在BIOS中进行设置 1 确保在BIOS中设置集显和独显都予以使用 部分板卡可能不支持 2 此时显示器可以接在集显上 独显单独做计算 确保都有合适的驱动 3 多显卡计算时
  • redis 消息的发布与订阅 持久化

    12 redis 消息的发布与订阅 12 1 发布信息 命令 publish channle message 12 2 订阅信息 命令 subscribe channle1 channel2 12 3 注意 一 接收消息 必须先订阅消息 二
  • QT添加图标、打包应用程序

    1 添加应用程序图标 为可执行文件添加 icon 图标的方法很简单 将事先准备好的 icon 图标拷贝到程序对应的文件夹中 然后在 pro 工程文件内添加如下指令 RC ICONS logo ico 其中 logo ico 是图标文件的名称
  • adworld web训练营刷题总结1

    a d w o r l d adworld adworld
  • 网络编程之什么是计算机网络

    引入 1 地球村 也译为世界村 global village 对地球的一种比喻说法 现代科技的迅速发展 缩小了地球上的时空距离 国际交往日益频繁便利 因而整个地球就如同是茫茫宇宙中的一个小村落 地球村的说法表示现代科技的迅速发展 2 信件
  • 递归完成斐波拉契--函数递归与栈

    什么是递归 递归是一种重要的程序设计方法 简单的说 若在一个函数 过程或数据结构的定义中又应用了它自身 则这个函数 过程或数据结构称为是递归定义的 简称递归 什么是栈 栈是一种数据结构 略 栈与递归的关系 使用计算机实现递归 其实是一种栈的
  • 【项目仿真】温湿度智能监控系统设计(Proteus仿真)

    将单片机项目仿真 温湿度智能监控系统设计分享出来 如有不足 敬请指出 实验图片 实验视频 项目仿真 温湿度智能监控系统设计 Proteus仿真 目录 一 设计要求 二 程序软件 三 资料链接 四 关于作者 一 设计要求 通过Proteus仿
  • 科大讯飞、博世、蔚来、华为实习面试总结

    实习面试总结 为了给自己的秋招先铺铺路 找了一些公司实习面试 需要注意 华为实习很看学历 本科基本上过不了简历 苏州科大讯飞 挂 岗位 硬件实习生 问题 1 PCB板子上对外输出电流的时候是不是需要对电流的开关进行控制 如果需要的话 用什么
  • 4378 选取数对(递推)

    1 问题描述 给定一个长度为 n 的整数数列 a1 a2 an 请你选择 k 个数对 l1 r1 l2 r2 lk rk 要求所选数对满足 1 l1 r1 lt l2 r2 lt lt lk rk n 对于 1 i k ri li 1 m
  • Highly recommend using Dart Sass.

    为什么要替换 1 因为node sass和node js版本关联太紧了 如果这两个版本不匹配 就会起冲突 导致项目无法运行 但是dart sass 安装没有兼容性问题 2 sass官网团队也强烈建议使用dart sass sass团队强烈建
  • LNMP部署及搭建论坛

    目录 前言 一 LNMP架构的部署 理论 1 1 LNMP架构概述 1 2 MySQL安装配置 1 3 PHP解析环境的安装 1 4 配置Ngnx支持PHP环境 二 LNMP应用部署 实操 2 1 Nginx安装 2 1 1 编译安装步骤
  • HDLbits Popcount3的一点疑问

    题目 A population count circuit counts the number of 1 s in an input vector Build a population count circuit for a 3 bit i
  • FFmpeg从RTSP获取流时:h264、h265 判断 I 帧的方法

    H264中 I 帧的判断 这是用ffmpeg接口 av read frame 从IPC摄像头获取得到每一帧数据的前几十个字节 一般00 00 00 01分割之后的下一个字节就是NALU类型 NALU类型是可以用来判断帧的类型是I帧 还是P帧
  • Flask-SQLAlchemy(一) 一对一关系

    前言 课程中经常需要进行web开发 往往是采用Flask框架 建立数据库时就避免不了Flask SQLAlchemy的使用 此文章将记录创建关系表的过程 方便日后回顾以及大家交流讨论 一对一关系 下面的一对一关系以用户和身份证为例 首先创建
  • c++ 友元的三种形式和声明方式

    1 成员函数做友元 include
  • HDU 1716 排列2

    测试数据都能过但是WA 求帮看哪里出了问题 题目链接 Hdu 1716 使用STL的next permutation 函数求解 include
  • 消息驱动 微服务器,消息驱动的微服务 - Spring Cloud Alibaba RocketMQ

    引入MQ后的架构演进 MQ的选择 消息队列对比参照表 RocketMQ vs ActiveMQ vs Kafka 参考至 CentOS7上搭建RocketMQ 环境要求 CentOS 7 2 64位JDK1 8 4G 的可用磁盘空间 1 下
  • VIM工具设置步骤

    VIM工具设置步骤入门 引子 找到配置文件 修改配置文件 引子 VIM作为常用的文本编辑器有很多可以设置项 比如我们打开一个文件以后在命令行模式输入set nu来显示行号 但是这个是针对当前打开的这个文件有效 有时候我们想对所有用vim打开
  • Integer. valueOf()的用法

    Integer valueOf 作用 将基本类型int转换为包装类型Integer 或者将String转换成Integer String如果为Null或 都会报错 Integer valueOf 方法实现如下 public static I
  • 用 ASTERISK 搭建自己的免费 VOIP 服务器

    服务器别闲着 博主又要给大家带来新的玩法咯 1 这里以 Debian 为例子 安装 Asterisk apt get update apt get install asterisk 2 预设置 Asterisk 修改 sip conf 和