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开发者们造成的麻烦可是巨大的,当程序员们费尽千辛万苦,找到自己错在哪里的时候,绝对会对自己 ...
随机推荐
- tmux用法【常用】
类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键包括: Ctrl+b 激活控制台:此时以下按键生效 系统操作 ? 列出所有快捷键:按q返回 d 脱离当前会话:这样可以暂时返回Shell界面, ...
- ASP.NET MVC 4 (十) 模型验证
模型验证是在模型绑定时检查从HTTP请求接收的数据是否合规以保证数据的有效性,在收到无效数据时给出提示帮助用户纠正错误的数据. 显式模型验证 验证数据最直接的方式就是在action方法中对接收的数据验 ...
- Lua的协程基础
参考:Lua中的协同程序 coroutine http.lua 协同程序(Coroutine): 三个状态:suspended(挂起,协同刚创建完成时或者yield之后).running(运行). ...
- Mac 键盘符号 及VSCode快捷键 说明
Mac 键盘符号说明 ⌘ == Command ⇧ == Shift ⇪ == Caps Lock ⌥ == Option ⌃ == Control ↩ == Return/Enter ⌫ == De ...
- 持续集成CI相关的几个概念
持续集成 https://en.wikipedia.org/wiki/Continuous_integration 为什么要持续? 持续集成, 可以避免集成地狱(由于工作的源码 和 库中的源码的差异导 ...
- Javaweb学习笔记——(十七)——————JDBC的原理、四大核心类、四大参数、预编译、Dao模式、批处理、大数据、时间类型的转换
JDBC入门 *导入jar包:驱动 *加载驱动类:Class.forName("类名"); *给出url.username.password,其中url背下来 *使用DriverM ...
- c++函数解析
1.getline() 用getline读取文本 int main() { string line; getline(cin,line,'$');//'$'can change to other co ...
- 【noip 2012】提高组Day1T3.开车旅行
Description 小A和小B决定利用假期外出旅行,他们将想去的城市从1到N编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i 的海拔高度为Hi,城市i 和城市 ...
- Java EE之Request部分方法使用示例
Description: ApplicationProjectName:MedicineMs login.jsp[action:login|method:get] to loginServlet Ou ...
- 基础的POJ学习
OJ上的一些水题(可用来练手和增加自信)(poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一. ...