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
freeswitch使用说明
密码就是123456
C:\Program Files\FreeSWITCH\conf\vars.xml
如果在本机运行修改为本地ip 默认是一个网络外网地址 如果可以通过外网ip访问的可以不改 服务器上不用修改次参数
修改C:\Program Files\FreeSWITCH\conf\autoload_configs\modules.conf.xml
cd C:\Program Files\FreeSWITCH
FreeSwitchConsole -nonat
查询:sofia status 为本地ip 正常
freeswitch 本地ip配置不能通话
关闭防火墙
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定义。