• 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的传真功能开发者在哪里?

  • 相关阅读:
    【LeetCode】1. Two Sum
    框架
    表单
    JavaScript写计算器
    导航下拉菜单代码
    注册表代码
    简易表格代码
    HTML (超文本标记语言)
    PHP学习目标
    升级python到最新2.7.13
  • 原文地址:https://www.cnblogs.com/yoyotl/p/5422305.html
Copyright © 2020-2023  润新知