Freeswitch功能非常多, 还有一些常用功能

企业常用的电话转接, 代接等

压力测试, 安全等

1.转接和代接

来电转接分

    盲转(Blind Transfer)

    协商转(Attended Transfer)

盲转:

    将来电直接转到某一分机, 用于电话已经接听的情况

        A呼叫B, B接听 A与B通话, A要求转C,

        B转接到C C开始振铃, B挂断 C接听, A与C通话

    默认Dialplan的Local_extensions

        <action application="bind_meta_app" data="1 b s execute_extension::dx XML features" />



        有电话打入后,如果是最终路由到一个内部分机, 就执行这一行,来话是a-leg, 还没有b-leg

        bind_meta_app,会在本次通话上绑定参数中的"1",后续由"*1"激活,

        b表示绑定到b-leg,s表示same,在哪条腿收到按键就在哪条腿上执行

        execute_extension表示在Dialplan找extension去执行,最终执行bridge(user/B),A与B桥接并开始通话

        answer保证电话时应答状态, read表示等待用户按键,等待用户输入分机号,输入后, B开始拨号

        is_transfer判断B输入的号是不是合法,如果是执行transfer 进行转移

        C开始振铃, 如果C接听, A就与C通话, A被转走, B就自己挂断

协商转:

    如果C长时间不应答, 则转接失败, A需要重新呼叫B转接

        A与B通话中, B转接C , A播放等待音乐, 如果C呼叫失败, B仍可与A通话, C长时间不应答, B可以取消呼叫

        如果C接通后, B与C通话, B询问C是否愿意接听, 如果C不愿意则C挂机, B与A继续通话, 如果C接受则B挂机

        如果B不挂机, 按3则形成3方通话,

        B还可以随时与A, 与C通话

代接

    A电话响铃, A不在座位, B代替A接听电话

    当分机有振铃, 另外的话机直接按866就能接听, 同时响铃结束

    拨**1001, 接听正在振铃的1001分机上电话

2.共享线路呈现

在自己话机上监视其他话机的状态, 知道另一个电话是否处于忙或闲的状态

有人想打秘书电话找老板, 秘书转播老板电话, 恰好老板正在占线, 就导致转接失败, 如果秘书事前知道老板电话在忙, 就可以判断是否要转接, 或告诉用户先等等

3.使用组播功能做网络广播

拿起电话拨打一个号码, 就可以对一大群人喊话, 广播功能可以大大提高工作效率

广播也可以用会议实现, 简单发起N路通话加入一个会议也能起到广播的效果

    但建立N路通话消耗太多网络资源, 也无法保证对方即使接听, 影响信息送达

最经济的实现方式:

    组播(Multicast),只向组播地址发送一个RTP流, 监听该组播地址的所有主机都能收到

    esf_page_group有三个参数:

        组播地址, 默认为224.168.168.168

        端口号, 默认为35467

        控制端口号,默认为6001

在Freeswitch默认配置中, 拨打号码7243就直接向该地址发送组播

    <extension name="rtp_multicast_page">

        <condition field="destination_number" expression="^pagegroups$|^7243$">

            <action application="answer"/>

            <action application="esf_page_group"/>

        </condition>

    <extension>

如果你想发送到其他地址, 可以配置相关参数,如下配置可以将RTP包发送到组播地址224.0.0.100

    <action application="esf_page_group" data="esf_page_group 224.0.0.100 34567 6001"/>

    与普通的IP地址不同, 组播需要配置组播地址, 组播地址从224.0.0.0到239.255.255.255,

    实际用到组播的业务很少, 在有些系统需要配置组播路由,

    在Linux的eth0配置组播路由:

        ip route add 224.0.0.0/4 dev etho src 192.168.5.2