freeswitch笔记(2)-voip初体验
上一篇学习了如何安装freeswitch,接下来我们利用2个voip软件来体验如何互打电话(注:仍然是mac环境,windows用户可参考mac上的做法,原理相通)
一、安装yateclient及zoiper
voip软件有很多种,这里选用yate及zoiper这二种免费而且跨平台的客户端。
yate下载地址: https://yate.en.softonic.com/mac
zoiper下载地址:https://zoiper.en.softonic.com/mac
这二款软件大致长这样:
二、启动freeswitch
cd /usr/local/freeswitch/bin
./freeswitch
注:启用freeswitch前,要先保证zoiper及yateclient这类软件完全退出,否则可能会占用默认端口5060,最终导致voip client账号登录失败。
启用成功后,可以用lsof -i:5060之类的工具,查看下端口是否正常。
重要提示:freeswitch默认会启用ipv6,参见上图中的TYPE,有2条记录是Ipv6,另外二条是Ipv4,目前ipv6的支持还不完善,可能导致一些client连接不上freeswitch,建议关闭ipv6功能。
方法如下:
(如果本机的fw尚在运行中)先在freeswitch终端输入shutdown关闭fw。然后
/usr/local/freeswitch/conf/sip_profiles 会看到二个文件:
external-ipv6.xml
internal-ipv6.xml
将这2个文件改名为:
external-ipv6.xml.deactive
internal-ipv6.xml.deactive
然后重新启动freeswitch,成功后仍然可以用lsof -i:5060之类的验证下:
顺利的话,会发现IPV6的那二行不见了。
三、client配置账号
YateClient:
Settings->Accounts
freeswitch默认内置了20个账号,用户名从1000,1001...依次递增,密码均为1234,参考上图,这里配置了2个账号1002,1004,顺利的话,status这里会显示成online.
同时在freeswitch的console控制终端上,输入:
sofia status profile internal reg (即:查看internal这个profile的用户注册情况)
可以看到1002/1004这2个账号,已经注册成功。
类似的在zoiper 中,再配置另外2个账号:1000、1010
zoiper主界面上,可以切换这2个账号:
freeswitch的console终端上,建议也确认下是否注册成功:
四、拨打电话
先来热热身,在freeswitch的console里输入 originate user/1000 &echo
即:呼叫zoiper上的1000用户,稍等一会儿,zoiper会弹出提醒来电,参考下图
点击accept就接通了,注意:在命令最后部分,使用了&echo,这是一个回音测试功能,类似于你在山谷里大叫“你好”,然后山谷给你传来回音“你好”一样。所以最终的效果是接通后,如果你对着mac麦克风说话,扬声器里放你自己的声音(即:你说啥,fs回应啥。)-友情提醒:在本机测试时,由于回音环绕,可能会有严重的嚣叫声。
也可以用yateclient来呼叫zoiper, 如下图:yateclient上选择用户1002,然后拨打1000,zoiper上会弹出来电提醒,接通后,就能相互通话了。
除了echo,还有几个常用的功能,大家可以尝试把&echo,换成:
&park 这个相当于接通后,fs把通话给hold住,啥反应都不给。有点类似对方拿起听筒,但是一句话也不说,也不挂断。park的用途后面的文章会介绍。
&playback(/tmp/music.wav) 这个相当于接通后,给用户放一遍音乐,音乐文件的地址是/tmp/music.wav,当然这个路径也可以是远程路径,比如http://www.xxx.com/music.wav
&endless_playback(/tmp/music.wav) 与&playback的区别是,playback只放一遍,而endless_playback会一直不停的反复放,特别适合400电话场景,客服很忙时,先放段音乐让用户等待。
更多时候,对于开发人员来讲,更希望通过代码方式来与freeswitch交互,下一篇学习esl的使用
参考:
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+echo
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+park
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+playback
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+endless_playback
freeswitch笔记(2)-voip初体验的更多相关文章
- Kubernetes 笔记 02 demo 初体验
本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复「1024」即可领取,欢迎大家关注,二维码文末可以扫. 从前面的文章我 ...
- [开发笔记]-Jqplot图表初体验
文章内容为初次使用Jqplot图表插件的测试代码,仅供参考. <html xmlns="http://www.w3.org/1999/xhtml"> <head& ...
- 云中沙箱学习笔记2-ECS之初体验
1.1 背景知识 云服务器(Elastic Compute Service, 简称ECS),是一种简单高效,处理能力可以弹性伸缩的计算服务.ECS的相关术语说明如下: --实例(Instance):是 ...
- VSTO学习笔记(十五)Office 2013 初体验
原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 201 ...
- Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用[z]
前言 早在去年就简单的使用了一下Spring Boot,当时就被其便捷的功能所震惊.但是那是也没有深入的研究,随着其在业界被应用的越来越广泛,因此决定好好地深入学习一下,将自己的学习心得在此记录,本文 ...
- 数据结构(逻辑结构,物理结构,特点) C#多线程编程的同步也线程安全 C#多线程编程笔记 String 与 StringBuilder (StringBuffer) 数据结构与算法-初体验(极客专栏)
数据结构(逻辑结构,物理结构,特点) 一.数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关.逻辑结构包括: 集合 数 ...
- django初体验 学习笔记
django环境搭建 1.安装Python 2.ipython sudo apt-get install ipython sudo pip instal ...
- python--爬虫入门(七)urllib库初体验以及中文编码问题的探讨
python系列均基于python3.4环境 ---------@_@? --------------------------------------------------------------- ...
- grunt 构建工具(build tool)初体验
操作环境:win8 系统,建议使用 git bash (window下的命令行工具) 1,安装node.js 官网下载:https://nodejs.org/ 直接点击install ,会根据你的操 ...
- protobuf(Protocol Buffers)java初体验
因为项目须要所以简单的研究了下protobuf.我也是參照网上的博客,所以大部分内容我也就不反复造轮子了.首先protobuf介绍点击这里,使用介绍点击这里,使用demo看这里. 我个人的第一个样例也 ...
随机推荐
- 【记录】IDA|IDA设置text view为默认,并解决IDA7.6打开新固件卡顿的问题
版本:IDA Pro 7.6 Graph View(控制流视图)其实我真的看得很少,因为遇到分析难题时总是是因为间接调用,它根本分析不出来.但是一开IDA它就自动分析这个特别卡.所以今天想彻底解决一下 ...
- Dify 架构全景:从模块设计到部署实践的完整指南
项目概述 Dify 是一个开源的 LLM 应用开发平台,提供直观的界面,结合了AI Agent工作流.RAG 管道.智能体能力.模型管理和可观察性功能等,使用户能够快速从原型转向生产环境.Dify 允 ...
- AI 技术发展简史
AI 智能体开发指南 AI技术发展简史 一.AI的定义与核心目标 人工智能(Artificial Intelligence,AI)自诞生以来,一直是计算机科学和软件工程领域的重要研究方向.随着计算能力 ...
- lovelymem梭哈solar内存取证---Alex4nd3r
内存取证1 请找到rdp连接的跳板地址 flag{192.168.60.220} 内存取证2 请找到攻击者下载黑客工具的IP地址 控制台信息 flag{155.94.204.67} 内存取证3 攻击者 ...
- codeup之C语言10.1+C语言10.2(指针
Description 输入a和b两个整数,按先大后小的顺序输出a和b.注意请使用指针变量的方式进行比较和输出. Input 两个用空格隔开的整数a和b. Output 按先大后小的顺序输出a和b,用 ...
- 取余(rem)和取模(mod)的区别
设 A rem B || A mod B 生成机制 取余:采取fix()函数,向0方向取整 取模:采取floor()函数,向无穷小方向取整 当A,B异号时(其实同号也是这个规律-) 取余:结果和A同号 ...
- 推荐一个Elasticsearch ES可视化客户端工具:ES-King
ES-King:开源免费,一个现代.实用的ES GUI客户端,支持多平台. 下载地址:https://github.com/Bronya0/ES-King 功能清单 详尽的集群信息:节点信息.堆内存占 ...
- SQL解析工具JSQLParser
一.引言 JSQLParser(GitHub:https://github.com/JSQLParser/JSqlParser)是一个Java语言的SQL语句解析工具,功能十分强大,它可以将SQL语句 ...
- 信创迁移必看!X86 迁 Arm 竟能全自动适配?
在信创技术转型的背景下,X86 到 Arm 架构的迁移确实是不少企业面临的实际挑战.最近在和客户对接信创项目时,我们也深度接触了这类场景,原本基于 X86 架构构建的容器应用,在迁移至 Arm 服务器 ...
- DataOps不是工具,而是帮助企业实现数据价值的最佳实践
2008年,"大数据"一词在<大数据时代>中被首次提出,距今已有整整14个年头.在这14年中,许多人亲眼见证了数据的力量,以及目睹它如何改变世界.大部分企业的决策者都明 ...