Android freeswitch使用说明

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: FreeSWITCH 是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。

freeswitch是什么



FreeSWITCH 是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。


FreeSWITCH 支持多种通讯技术标准,包括 SIP, H.323, IAX2 以及 GoogleTalk FreeSWITCH 支持许多高级的 SIP 特性,例如 presence/BLF/SLA 、TCP TLS 和 sRTP FreeSWITCH的是一个跨平台的开源电话交换平台,具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。它创建于2006年,填补了许多商业解决方案的的空白。 FreeSWITCH也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发的。


FreeSWITCH 是一个开源的电话交换平台,从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能。能原生地运行于Windows、Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台。可以用作一个简单的交换引擎、一个PBX,一个媒体网关或媒体支持IVR的服务器等。


freeswitch不能通话



一定是在局域网,自己手机开的热点哟有点问题,最好不用,使用路由器的。


一般是192.168.1.XXX



image.png


freeswitch使用说明



密码就是123456

C:\Program Files\FreeSWITCH\conf\vars.xml


image.png


如果在本机运行修改为本地ip 默认是一个网络外网地址 如果可以通过外网ip访问的可以不改 服务器上不用修改次参数


image.png


修改C:\Program Files\FreeSWITCH\conf\autoload_configs\modules.conf.xml


image.png

image.png

cd   C:\Program Files\FreeSWITCH

FreeSwitchConsole -nonat


查询:sofia status 为本地ip 正常


image.png


image.png


freeswitch 本地ip配置不能通话



关闭防火墙


image.png


freeswitch 是什么



FreeSWITCH 是一个电话的软交换解决方案,包括一个软电话和软交换机用以提供语音和聊天的产品驱动。FreeSWITCH 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。


SIP、RTP、RTSP协议



在流媒体中常见的三种协议是SIP、RTP、RTSP协议。他们分别的网络中不同的层,为实时流媒体传播提供可能。下面这张图展示了他们所在的网络层次


SIP

SIP在应用层,是和HTTP相似的文本传输协议


那么像SIP和HTTP协议到底是什么?


功能:客户端和服务器之间的应答标准,客户端是终端用户,服务器是网站

用户代理:通过应用软件,客户端向服务器的指定端口(默认为80)发起一个HTTP请求


源服务器:应答服务器中存储着一些资源(比如HTML文档),我们称这个应答服务器为源服务器


SIP协议


用来支持视频通信


SIP(session initiation proto):会话初始协议

session:回话,指用户之间的数据交换,数据可以是文本、音视频也可以是游戏,内容多种多样

采用基于文本的编码方式(和HTTP、smtp相似)


组成

用户代理

用户代理客户机(客户端UAC)和用户代理服务器(服务器UAS)

UAC用来发起请求

UAS用来相应请求


sip代理服务器(sip proxy server)

中间服务器


过程

UAC发送一个请求

SIP代理服务器接受请求

由SIP决定下一跳服务器的地址,代理UAC向下一跳服务器发出请求


重定向服务器(Redirect server)


规划呼叫路径的服务器

在得到下一跳服务器的地址后向上一个服务器通知下一跳服务器的地址,自己退出这个对这个呼叫的控制


sip注册服务器(SIP register server)


对UAS的注册,系统中所有的UAS都需要注册到这个服务器中,以便UAC能够通过服务器找到UAS

SIP呼叫建立过程


RTP


RTP在传输层,由TCP/UDP发送号,由RTP传输音频或者视频数据

RTP是基于UDP的传输协议


什么是RTP:


RTP:real time transport protocol

RTP协议作用:为IP网络上的音视频提供端到端的实时传输协议。

配套的相关协议:RTCP(real-time transport control protocol)

RTP为实时传输提供时间信息和同步信息,不保证服务质量

RTCP为实时传输提供质量保证

数据在发送时,先将数据封装成RTP数据,在接收端,将数据从RTP中提取出来。


RTP格式解析


V= 2,版本号,两位,用来标识RTP版本

P,填充位,一位,若该位置位,则RTP的最后有填充字节

X,扩展位,一位,若该位置位,则RTP固定头部后面跟一个扩展头部

CC,CSRC计数器,四位,表示RTP固定头部后面的CSRC的数量

M,标记位,一位,由配置文档解释其作用

PT,载荷类型,七位,表示载荷的类型

SN,序列号,十六位,用来恢复包的序列以及检测丢包。序列号的初始值随机,每次发包序列号进行加一操作。


TimeStamp,时间戳,32位,用来获得数据包的时序,记录了该包数据的第一个字节的采样时间。时间戳是随着时间不断增加的,和有没有发送数据无关。记录的是相对时间

SSRC,同步信息源,32位,用来同步音视频,在同一个RTP传输中不能出现两个相同的SSRC。

CSRC,贡献源列表,0-15项,每项32位,用来标志对一个RTP混合器产生的新包有贡献的所有RTP包的源


RTCP


功能:服务质量的监视与反馈、媒体间的同步,以及多播组中成员的标识

在一个RTP传送期间,各参与者周期性发送RTCP信息。

内容:已发送的数据包的数量、丢失的数据包的数量

作用:各参与者根据反馈信息实时调整传输速率、载荷类型

RTP和RTCP协同作用以有效的反馈和最少的开销获得最大的传输效率。

RTP和RTCP都是基于UDP传输的

RTCP只携带控制信息,比较短小(短小君)


过程解析


流媒体:通过流式传输实现。


流式传输:边下载边观看。internet上的传输是分组传输的,且是基于不稳定的UDP协议。接收端的数据往往有延迟和乱序,因此流式传播需要解决延迟和乱序的问题。

延迟:在发送发对视频进行预处理,降低视频质量、对视频进行压缩处理


乱序:在接收方设置接收缓冲和播放缓冲


接收缓冲:将接受到的数据包缓存起来,然后根据时间戳和序列号对数据进行重排


播放缓冲:由于网络带宽不稳定,如果将重排好的数据直接播放,抖动现象可能会比较严重,为了解决这个问题,需要设置一个播放缓冲,将所有的数据放入到播放缓冲区内,按稳定的速度播放。


RTP的传输过程


当应用程序建立一个RTP会话时,需要确定一对目的传输地址

每个传输地址中存储一个网络地址以及一对端口地址,网络地址为IP号,端口地址有RTP端口和RTCP端口

RTP端口和RTCP端口分别使用偶数端口和奇数端口


发送过程


封装:RTP从上层接受流媒体信息码流(H264),封装成RTP信息流,RTCP从上层接受控制信息,封装成RTCP信息流

传输:将RTP数据包发往UDP中的偶数端口,将RTCP数据发往UDP中的奇数端口

接受过程

接受:从UDP中的偶数端口接受RTP数据包,从奇数端口接受RTCP数据包

解封装:将RTCP数据解封装为控制信息,将RTP数据解封装为码流,得到视频和音频文件


RTSP


RTSP和SIP都在应用层

RTSP(real-time transport streaming protocol)以C/S模式工作,实现用户在播放时的暂停、继续、后退、前进等操作。


stun



STUN(Session Traversal Utilities for NAT,NAT会话穿越应用程序)是一种网络协议,它允许位于NAT(或多重NAT)后的客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口。这些信息被用来在两个同时处于NAT路由器之后的主机之间创建UDP通信。该协议由RFC 5389定义。



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
Java Android开发
Android 启动优化(三) - AnchorTask 使用说明
Android 启动优化(三) - AnchorTask 使用说明
|
XML Android开发 数据格式
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(二)
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(二)
771 0
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(二)
|
存储 算法 Android开发
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(一)
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(一)
395 0
【Android 安装包优化】7z 文件压缩格式 ( 7z 格式简介 | 7z 命令使用说明 )(一)
|
Android开发
Android中使用官方提供好的功能使用说明(比如系统图库获取),也作为延生学习的学习文档
这篇文章最核心的就是去学习如何学习Android,如何去使用Android文档。 我们一般在刚开始接触开发的时候,如果遇到无法解决的问题,常常会百度,或者google去寻找答案,比如有个需求是获取系统中的图片,你可能会直接去搜索这个功能相关的码,如果需求再后来发生了变更,可能还回去网上找代码,万一你遇到的问题在网上找不到呢? 我们还是拿获取系统图片这个需求来举例说明,我们不去网上根据关键词搜索,如果只是查API,你会怎么解决这个问题呢? 有以下解决方法: 1.自己写一个实现。
1352 0
|
XML Android开发 数据格式
Android TableLayout中的使用说明
TableLayout特点:       1)TableLayout和我们平时在网页上见到的Table有所不同,TableLayout没有边框的       2)它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。
906 0
|
8天前
|
编解码 Java Android开发
通义灵码:在安卓开发中提升工作效率的真实应用案例
本文介绍了通义灵码在安卓开发中的应用。作为一名97年的聋人开发者,我在2024年Google Gemma竞赛中获得了冠军,拿下了很多项目竞赛奖励,通义灵码成为我的得力助手。文章详细展示了如何安装通义灵码插件,并通过多个实例说明其在适配国际语言、多种分辨率、业务逻辑开发和编程语言转换等方面的应用,显著提高了开发效率和准确性。