FreeSWITCH异常原因总结
最经在玩FreeSWITCH的时候,遇到很多的问题,特此总结一下,希望以后不要犯类似的错误了:
1、Client端无法注册,但是FS运行正常?
解决办法:查看防火墙是否关闭。/etc/init.d/iptables stop ,这条指令的仅仅是在运行FS的时候关闭一次防火墙,如果想每次开机都关闭防火墙,使用chkconfig iptables off。
2、打开FS的WebSOCKET功能?
解决办法:在/usr/local/freeswitch/conf/sip_profiles/internal.xml中去掉WS的注释即可,该行代码为:<param name="ws-binding" value=":5066"/>
3、修改完FS之后,发现FS并没有按照自己修改的方式进行?
解决办法:在fs_cli 中输入reloadxml,或者重新开启FreeSWITCH。
4、开启FreeSWITCH的常用方法有哪些?
A、/usr/local/freeswitch/bin/freeswtich -nonat
B、/etc/init.d/freeswitch start
C、service freeswitch start
5、如何让FS实现媒体流和SIP信令分开传输,即媒体流实现P2P,SIP信令来维持通话过程的建立?
解决办法:设置FS为媒体绕行方式,默认的是流媒体(RTP包)和SIP 信令是在一起传输,都经过FS,目的是FS做监控或者录音录影的功能。
要让RTP 和SIP 分离,只要在/usr/local/freeswitch/conf/dialplan/default.xml中的Local_Extension中添加如下的代码即可。
<action application="set" data="bypass_media=true"/>
<action application="bridge" data="user/${dialed_extension}@${domain_name}"/>
6、在fs_cli中使用show calls,或者使用 sofia status profile internal reg查看注册账号是,发现已经注销的账号还没有及时更新?
原因:FreeSWITCH分为内核部分(FS Core)和外围两部分。内核使用其内部的队列、哈希表以及外部的SQL数据库,当前,系统的核心数据库使用SQLite,默认村放在db/core.db。
使用外部数据库的好处是:查询数据不用锁定内存数据结构。这样不仅能提供性能,而且降低了死锁的风险,保证了系统的稳定。
系统对数据库操作做了优化,在高并发状态时,核心会尽量将几百条 SQL 一齐执行,这大大提高了性能。show calls 等都是直接从数据库中读取内容并显示,所以在低并发的状态下执行就显得稍微有点慢。
7、从SDP协议应该看到的讯息:(2013/12/25)
A、所要描述的RTP的IP以及端口PORT;
B、编码器的种类,以及是否支持视频;
C、是否支持按键功能
注:很多情况下呼叫不成功都是因为SDP协商不成功导致的
以上是近期遇见问题的一个小结,以后的FS问题和解决方法也会及时的更新。
FreeSWITCH异常原因总结的更多相关文章
- Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...
- HttpClient的CircularRedirectException异常原因及解决办法
HttpClient的CircularRedirectException异常原因及解决办法 这两天在使用我自己爬虫抓取网页的时候总是出现 org.apache.http.client.ClientPr ...
- Java并发编程:Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...
- 【转】Java ConcurrentModificationException异常原因和解决方法
原文网址:http://www.cnblogs.com/dolphin0520/p/3933551.html Java ConcurrentModificationException异常原因和解决方法 ...
- 修改List报ConcurrentModificationException异常原因分析
使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析 在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报jav ...
- 关于fasterxml-jackson发生Can not deserialize instance of异常原因验证
关于fasterxml-jackson发生Can not deserialize instance of异常原因验证 这两天线上有大量的java.lang.IllegalArgumentExcepti ...
- 9、Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u ...
- mysql主从同步异常原因及恢复
mysql主从同步异常原因及恢复 前言 mysql数据库做主从复制,不仅可以为数据库的数据做实时备份,保证数据的完整性,还能做为读写分离,提升数据库的整体性能.但是,mysql主从复制经常会因为某些原 ...
- R文件丢失异常原因汇总
引言: R文件丢失异常在java开发中是个比较常见的异常,造成这个异常的原因可能非常微小,但是给Android开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己 ...
随机推荐
- C语言memmove()函数: 复制内存内容(可以重叠的内存块)
头文件:#include <string.h> memmove() 用来复制内存内容,其原型为: void * memmove(void *dest, const void *src, s ...
- typdef void(*fun)(void)笔记【函数指针/typdef函数指针】
1. 函数指针:返回类型(*函数名)(参数表) 2. 使用typdef void(*fun)(void) typedef的功能是定义新的类型.第一句就是定义了一个MyFun的类型,并定义这种类型为 指 ...
- 流媒体技术学习笔记之(十八)互联网草案HTTP直播流2017年5月
原文地址:https://tools.ietf.org/html/draft-pantos-http-live-streaming-23 1.HTTP直播流介绍 HTTP实时流媒体提供了一个可靠的,成 ...
- tomcat cluster session同步时保存map数据遇到的问题
Tomcat Cluster官网:https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html(tomcat7.0) 场景: tomcat1 ...
- 什么是CMD
cmd是command的缩写.命令提示符是在操作系统中,提示进行命令输入的一种工作提示符.在不同的操作系统环境下,命令提示符各不相同. 在windows环境下,命令行程序为cmd.exe,是一个32位 ...
- 大规模数据导入和导出(oracle)
请期待... http://www.cnblogs.com/xwdreamer/archive/2012/06/08/2541678.html Oracle sqlldr的用法 (这个最完整) htt ...
- 【bzoj 3786】星系探索
Description 物理学家小C的研究正遇到某个瓶颈. 他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球.主星球 ...
- MySQL之数据表的插入内容 空与非空(六)
NULL与NOT NULL mysql> CREATE TABLE tb2( -> usename VARCHAR(20) NOT NULL, -> age TINYINT UNSI ...
- 使用PHP+MySql操作——实现微信投票功能
1. 投票主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...
- html5 缓存实例
html5 有两种缓存 1.localStorage:浏览器关闭后,数据库还存在. 2.sessionStorage:session缓存,浏览器关闭后,数据已经不存在. 实例一:localStorag ...