FreeSWITCH的传真发送
详细的学习请参考:https://wiki.freeswitch.org/wiki/Mod_spandsp
我只说说WIKI上没有直接写出来却又很实用的东西。
一、传真收发
环境大致如下:
FreeSWITCH<------------>讯时网关(mx8)<------------->电话外线(模拟线)<---------------->公网交换网络<-------------->电话外线(模拟线)<------------------>传真机
实现传真的发送:
1 originate sofia/gateway/tomx8/010xxxxxxxx &txfax(/home/123.tiff)
实现传真的接收:
1 <?xml version="1.0" encoding="UTF-8"?>2 <include>3 <extension name="fax_receive">4 <condition expression="^999$" field="destination_number"> 5 <action application="answer"/> 6 <action application="playback" data="silence_stream://2000"/> 7 <action application="rxfax" data="/home/recvFax/${caller_id_number}_${uuid}.tif"/> 8 <action application="hangup"/> 9 </condition> 10 </extension> 11 </include>
很快就实现了两地的传真相互收发。
二、哪里有这么简单
环境改变了,只是小小的改变,却引出一大片问题。
出局的网关换了,由讯时的换成了另外一款产品。
然而既不能收也不能发!
三、原因分析
抓包分析,流程大大出乎我的意料啊!
此处需要流程图(新版本的Wireshark截的太小了!)
花费了近2天的时间,抓包,测试,甚至下载了ITU的T.38标准来查看!
最后只需要增加简单几个参数,就实现了标准的T.38协议收发。
四、T.38的传真发送
1 originate {fax_enable_t38=true,fax_enable_t38_request=true}sofia/gateway/tomx8/010xxxxxxxx &txfax(/home/123.tiff)
五、T.38的传真接收
在步骤一的路由配置中增加两行条件。
1 <action application="set" data="fax_enable_t38=true"/> 2 <action application="set" data="execute_on_answer=t38_gateway peer"/>
六、结束语
增加了这几处参数,流程终于和预期的一样了。
但是之前的“怪异”流程是怎么回事呢?似乎又要暂时放一放了,
或者,有传真领域的专家能分享一下吗?
再或者,讯时网关mx8的传真功能开发者在哪里?
FreeSWITCH的传真发送相关推荐
- FreeSwitch 的初始化及其模块加载过程
FS 主函数main() Freeswitch的主函数是在文件switch.c中定义的,该文件的260行是整个程序的入口,主函数主要完成的功能是包括,命令行解析,初始化apr库,构建全局内存池,模块加 ...
- FreeSWITCH快速录音
一.背景 测试人员反映FreeSWITCH录音不及时,需要大约5秒的时间才能捕获到RTP流. 二.原因及解决 查了下资料,FreeSWITCH默认的录音参数配置是开启缓冲的, 即RTP流大小到达655 ...
- FreeSWITCH IVR中lua调用并执行nodejs代码
一.功能需求: 通过FreeSWITCH的IVR按键调用相应的脚本文件:nodejs提供很多的模组,可以方便的与其它系统或者进行任何形式的通讯,我的应用是通过nodejs发送http post请求: ...
- FreeSWITCH配置文件详解
为什么80%的码农都做不了架构师?>>> 配置文件默认的目录是 /usr/local/freeswitch/conf 一.freeswitch.xml freeswitch.x ...
- FreeSWITCH在呼叫失败的情况下如何播放语音提示
看到好多网友问到这个问题.一般我们在打电话时会听到"您拨的电话正在通话中,请稍后再拨....",或"电话无应答..."之类的提示,我们在 freeswitch ...
- [转载]freeSwitch基本操作(转载)
什么是 FreeSWITCH ? FreeSWITCH 是一个开源的电话交换平台,它具有很强的可伸缩性--从一个简单的软电话客户端到运营商级的软交换设备几乎无所不能.能原生地运行于Windows. M ...
- FreeSwitch自带的电话会议
FreeSwitch 默认带有电话会议的例子功能,是通过 conference 拨码计划实现的 打开\conf\dialplan\default.xml ,在里面有一段代码 <extension ...
- FreeSWITCH异常原因总结
最经在玩FreeSWITCH的时候,遇到很多的问题,特此总结一下,希望以后不要犯类似的错误了: 1.Client端无法注册,但是FS运行正常? 解决办法:查看防火墙是否关闭./etc/init.d/i ...
- freeswitch 按键采集_《FreeSWITCH 1.2》:支持页面呼叫控制
相对比较新的一个模块mod_httapi 可以支持用户更加动态控制IVR和其他的应用程序.配合这个模块,通过用户输入的不同可以生成自定义的IVR.FreeSWITCH的mod_httapi采用了一个简 ...
最新文章
- mysql数据库优化命令_MySQL数据库优化总结
- 小型云台用的是什么电机_盘一下目前国内主流的电动汽车都用什么电机
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
- Win7+Ubuntu双系统结构下,Ubuntu克隆至新硬盘,启动成功
- c语言进程间通信架构,构建微服务之:微服务架构中的进程间通信
- jvm虚拟机 基于栈_守护基于JVM的应用程序
- 修改npm全局安装模式的路径
- VC++中忽略所有默认库纯Win32 API编译及链接 - 计算机软件编程 - Wangye's Space
- 微信小程序通用功能设计和实现
- Python学习【第2篇】:基本数据类型(详解)
- 蜂考数据结构c语言版答案
- 利用社交网络数据进行推荐
- stm32 4g模块使用步骤
- 科技论文的种类_如何快速对科技论文分类
- 直流电机/步进电机/伺服电机 简介
- 菜鸟教程 http://www.runoob.com/
- 毕业设计——登录界面设计
- 二自由度云台扫描算法_基于HuskyLens人脸识别的二自由度自动跟踪云台
- [阿里DIN] 从论文源码学习 之 embedding层如何自动更新
- 生日没给女友送礼物,如何用 Python 哄女票开心
热门文章
- typora 有道云笔记_利用神器Typora+PicGo,实现有道云不用会...
- 阅读笔记20141202
- 如何让大脑更强大?打造最强大脑的5个关键要素
- 例题5-3安迪的第一个字典 UVa10815--C++STL库映射set的应用
- Ubuntu18.04局域网共享文件夹,实现win7和Ubuntu本地访问
- 计算机中的数学【费马大定理】 数学史上最著名的定理: x^n + y^n = z^n(n 2时,没有正整数解)...
- arduino+三引脚蜂鸣器YL-44(3pins)的简单使用
- 2017服务器cpu性能排行,2017年手机处理器排名_CPU排行榜名单
- 流量主头像组合微信小程序源码下载支持多种分类并支持姓氏头像制作生成
- linux如何备份内核,Linux 中我该如何备份系统