zoukankan      html  css  js  c++  java
  • 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的传真功能开发者在哪里?

  • 相关阅读:
    docker for windows 中挂载文件到容器
    docker for windows 中 镜像 microsoft/donet 的文件结构
    window7下docker toolbox 启用数据卷报错: Error response from daemon: invalid mode:
    无法创建虚拟目录
    docker 内时区和宿主机差8个小时,怎么办?
    多线程之同时更改数据问题--启用lock
    Linux shell Bash的基本功能1
    Linux shell 脚本执行方式
    Linux vim编辑器使用技巧
    Linux vim编辑器命令
  • 原文地址:https://www.cnblogs.com/yoyotl/p/5422305.html
Copyright © 2011-2022 走看看