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

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 =
bindaddr = 0.0.0.0
tcpbindaddr = 0.0.0.0
tcpenable = yes []
type = friend
callerid = User One
secret =
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox =
disallow = all
allow = ulaw
transport = udp []
type = friend
callerid = User Two
secret =
host = dynamic
canreinvite = no
dtmfmode = rfc2833
mailbox =
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 => ,,Answer()
exten => ,n,Dial(SIP/,,tr)
exten => ,n,Hangup exten => ,,Answer()
exten => ,n,Dial(SIP/,,tr)
exten => ,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

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

  1. 用 Asterisk 搭建自己的免费 VoIP 服务器

    原文 http://www.yaoblog.info/?p=5021 1. 这里以 Debian 为例子,安装 Asterisk apt-get update apt-get install aste ...

  2. 永久免费云服务器搭建国内Moon服务加速ZeroTier

    ZeroTier One本身的服务器都在国外访问速度很慢.可以通过搭建国内Moon服务加速解决连接慢的问题. 但是需要有固定外网IP的服务器,可以注册sanfengyun账号申请免费云服务器. 下面是 ...

  3. 利用服务器+jsDelivr+GitHub搭建咱的免费图床

    前言 有人就问了你这个标题写错了?不应该是PicGo+jsDelivr+GitHub搭建咱的免费图床吗? 2333,是一个上传程序啊,不系写错了. 程序介绍 目前程序已实现两种模式上传到GitHub或 ...

  4. 通过ProGet搭建一个内部的Nuget服务器

    .NET Core项目完全使用Nuget 管理组件之间的依赖关系,Nuget已经成为.NET 生态系统中不可或缺的一个组件,从项目角度,将项目中各种组件的引用统统交给NuGet,添加组件/删除组件/以 ...

  5. SAE搭建WordPress教程 免费建WordPress博客站

    SAE搭建WordPress教程 免费建WordPress博客站 WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志.当然,用户也可以 ...

  6. Windows 7下 搭建 基于 ssh 的sftp 服务器

    Windows  xp 下 搭建 基于  ssh 的sftp 服务器,服务器端可以用 freesshd,F-secure server等,filezilla server不可用,之前傻乎乎的用file ...

  7. 搭建Jetbrains家族IDE授权服务器

    虽然VS号称宇宙第一IDE但是也有不方便的地方,如果你也是C#码农我不得不向你推荐一个强大的插件ReSharper,他会是你的开发更加便捷,大大加快了开发的速度以及开发的乐趣.但是ReSharper并 ...

  8. SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册

    SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册 提示: (1)CSDN 博客左边有操作工具条上有文章目录 (2)SSM 指 Spring,Spring MVC,MyBatis Mav ...

  9. 搭建并配置本地GitLab服务器教程

    由于工作单位不一定能够方便使用外部网络,现以下载rpm包来搭建一套本地GitLab服务器. 1. 系统准备 系统:redhat 7.3 2. 下载所需安装包 去官网下rpm包,下载地址,ce是免费的社 ...

随机推荐

  1. LeetCode OJ--Add Two Numbers

    http://oj.leetcode.com/problems/add-two-numbers/ 将用链表表示的两个数相加,(2 -> 4 -> 3) + (5 -> 6 -> ...

  2. Django REST framework 的TokenAuth认证及外键Serializer基本实现

    一,Models.py中,ForeignKey记得要有related_name属性,已实现关联对象反向引用. app_name = models.ForeignKey("cmdb.App&q ...

  3. CSS兼容IE6 IE7 IE8 IE9 Firefox的总结

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 001为什么Linux使用~作为家目录?为什么vim用hjkl作为方向键?

  5. 洛谷——P1126 机器人搬重物

    P1126 机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格,有 ...

  6. Xamarin XAML语言教程对象元素的声明方式

    Xamarin XAML语言教程对象元素的声明方式 XAML的对象元素的声明有两种形式,分别为包含属性的特性语法形式以及对象元素语法形式.在1.4小节中,我们看到了其中一种对XAML对象元素的声明方式 ...

  7. SQLite的sqlite_master表

    SQLite的sqlite_master表   sqlite_master表是SQLite的系统表.该表记录该数据库中保存的表.索引.视图.和触发器信息.每一行记录一个项目.在创建一个SQLIte数据 ...

  8. 从源码解析 Spring JDBC 异常抽象

    初入学习 JDBC 操作数据库,想必大家都写过下面的代码: 数据库为:H2 如果需要处理特定 SQL 异常,比如 SQL 语句错误,这个时候我们应该怎么办? 查看 SQLException 源码,我们 ...

  9. javascript 对象初探 (六)--- call()和apply()初探

    在javascript中,每个函数都具有call()和apply()两个方法,您可以用她们来触发函数,并指定相关的调用参数. 此外,这两个方法还有另一个功能,就是她可以让一个对象去‘借用‘另一个对象的 ...

  10. Andriod PopupWindow 键盘冲突

    调起键盘的时候,弹出PopupWindow,但是键盘没有隐藏. private void init() { View contentView = LayoutInflater.from(mContex ...