FreeSWITCH常用知识点

1、FreeSWITCH控制台快捷键(4.4)

2、FreeSWITCH目录结构(5.2)

 sounds目录  、 storage目录  、 conf目录 

  3、配置文件(5.3 & 3.3)

  4、vars.xml —— FreeSWITCH 中默认的全局变量(5.3.2)

                                                                                                                                                                                      注:这里除了 global_getvar,还有常用指令:eval ${base_dir} 、eval ${local_ip_v4} ——进行查看这些变量的值

其他的一些变量对应的值:(1)${domain}、${domain_name}、${local_ip_v4} —— 192.168.67.124 ;  (2)${hostname} —— DESKTOP-NKI3BLU ;(3) ${base_dir} —— C:/Program Files/FreeSWITCH ; (4)${sounds_dir} —— C:/Program Files/FreeSWITCH/sounds ; (6) $ {hold_music} —— local_stream://moh ; (7)  (8)(9)(10)

 

5、默认号码及说明(3.2.2)

 6、API 与 App 的本质区别(4.6)

API(命令) 列举:originate、uuid_bridge、version、status、

App(程序) 列举:answer、 echo(还有 park、hold、bridge) 、info(把该通道的所有的变量(通道变量)都打印到log中)、log(其作用是将信息写到日志(Log)中)、

7、正则表达式(6.1.3)

     

                                                                                                                                             注:regex 要匹配的字符串 | 正则表达式  —— 测试所写的正则表达式是否正确。          

 8、日志Log的级别(6.1.4)

 快捷键: F7:console loglevel 0 —— 设置后,对应 

                F8:console loglevel 7 —— 设置后,对应

 

   9、部分Info中显示的变量与通道变量的对应关系

 10、Dialplan 中的测试条件

 11、常用的 Dialplan(6.4)

 更多见6.4。

12、判断FreeSWITCH是否运行

13、FreeSWITCH中与编码相关的主要命令

14、关于呼叫中设置声音的操作

第1例:(3.4 - FreeSWITCH用作软电话)

设置好FreeSWITCH软电话后,从分机上进行呼叫。

在C:\Program Files\FreeSWITCH\conf\autoload_configs\portaudio.conf.xml 文件中,进行如下修改/添加:

  注意格式!!!

需要注意的是:修改了声音文件后,reloadxml后,进行呼叫,但是实现不了修改(而重启FreeSWITCH就可以了);

如果直接写: <param name="ring-file" value="test1_3.wav"/> 

同时把该声音文件放在C:/Program Files/FreeSWITCH/sounds/en/us/callie/下,运行,显示错误:[ERR] mod_portaudio.c:355 Cannot open test1_3.wav, disabling ring file!

 

第2 例:通过originate指令呼叫用户:

originate user/1234 &playback($${sounds_dir}/test1_2.wav) —— 可以指定声音(拨通后才会听到指定的声音,其实何时听到声音以及何时拨通,取决于动作 action application="answer"/> 和 动作 <action application="playback"  data="${sounds_dir}/test1_3.wav" />的先后顺序,也就是执行顺序,而且,音乐是要播放完的)

如果直接写:

originate user/1234 &playback(test1_2.wav)

则:要把该声音文件放在C:/Program Files/FreeSWITCH/sounds/en/us/callie/下,否则检测不到!!!

 

第3例:通过拨号计划指定声音

如:

<extension name="Test_zhou_2">
        <condition field="destination_number" expression="^11\d+$">
            <!-- 以下这种方式,要把该声音文件放在C:/Program Files/FreeSWITCH/sounds/en/us/callie/下,否则检测不到!! -->
            <!-- <action application=" playback "  data=" test2.wav " /> -->
            <!-- 或者 -->
            <action application="playback"  data="${sounds_dir}/test3.wav" />
            
            <action application="answer" />
            <action application="echo" />
        </condition>
    </extension>

注意的是:1)如果直接写:" test2.wav ",那么要把该声音文件放在C:/Program Files/FreeSWITCH/sounds/en/us/callie/下,否则检测不到!!!

另外,关于录音设置的,参考:10.1.1

15、RTP协议

 

 

     

 

          

 16、录音record (11.5)

 输入指令:originate  user/1234 &record (C:/test2/1.wav) —— 可以进行录音

但是改变路径后:

originate user/1234 &record(C:/Program Files/FreeSWITCH/test/1.wav)

又或者:originate user/1234 &record(C:/Program Files/FreeSWITCH/recordings/1.wav)

会正常建立通话,但是没有生成录音文件。(C:/Program Files/FreeSWITCH路径下不可以保存???可能是权限问题)

另外:

呼叫一个rec开头的号码,会出现 FreeSWITCH 直接退出的情况。

将expression="^rec(.*)$" 改为 expression="^16\d+$"后就可以正常录音了。

以上

将录音的保存路径改为C:/Program Files/FreeSWITCH下时,不会生成对应的录音文件,但是会在C盘下生成 名为 Program.PCMU的文件。

上面说的是单腿录音,下面介绍一下 对两条腿进行录音(参考11.5.2):

首先,输入指令: originate user/1234 &echo —— 接通后会生成对应的uuid

然后,输入指令:uuid_record <channel_uuid> start C:/test/1.wav —— 对正在进行的通话录音(需要事先知道相关channel的UUID)

如果决定不录音了,可以输入以下指令:uuid_record <channel_uuid> stop C:/test/1.wav

 

同单腿录音,当改变录音的保存路径为 C:/Program Files/FreeSWITCH文件下时,不会生成对应的录音文件,但是会在C盘下,生成对应 Program-in.PCMUProgram-out.PCMU 两个文件。

 

最后,可以对所生成的录音进行playback测试:

即在Dialplan中正常进行设置:

              <action application="playback" data="C:/test/1.wav"/>

而且对于上面不按规定路径生成的文件(单腿录音):Program.PCMU ,也可以通过playback直接播放(只要在播放时不带扩展名

在Dialplan中的设置如下 :

            <action application="playback" data="C:/Program"/>       

双腿录音,同理。

 

(注:.PCMU 文件称为原生格式的文件,可以最大限度地节省系统资源,具体参考11.5.5-原生格式

单腿录音时,要想将声音生成录制成原生格式,只需在录音时不提供录音文件的扩展名即可。

如:

     originate user/1009 &record(C:/test/12)  —— 就会在对应文件夹下生成12.PCMU文件

双腿录音同理,输入指令:

            uuid_record a0983b53-c93f-4f9e-92b6-15231ca8d131 start C:/test/zhou —— 就会生成zhou-in.PCMU 和 zhou-out.PCMU两个文件       )

17、相关模块

(1)mod_portaudio —— 支持本地的音频设备(默认不编译)

(2)mod_native_file —— 为了最大限度地节省系统资源,可以将声音文件录制成原生(Native)格式。这种格式就是由mod_native_file 模块提供的。

Native 格式:

  

(3)mod_shout —— 实现了对MP3文件的支持

(4)mod_local_stream —— 该模块实现了一些Stream,即“流”(如:实现了local_stream)

(5)mod_flite —— 是FreeSWITCH基于Flite语音合成引擎的一个TTS模块。目前该模块仅支持英文

(6)mod_fifo —— 实现一些简单的ACD(Automatic Call Distribution,自动电话分配)功能

(7)

(8)

(9)

(10)

18、Say能读的数据类型

       

 

 

 

 具体参考11.6.3。

19、playback的参数

(具体参考11.6.1)

1、声音文件

2、local_stream

3、silence_stream

4、tone_stream

5、file_string

6、其他接口参数

 

20、Dilplan中 action application 和data 的对应关系

参考:11.6.1或者11.7.1小节

如:11.7.1

 

 这两种写法是等价的。

 

 再如:11.6.1-6

21、fifo相关的通信变量

          详细参考12.1.3。

        

22、mod_callcenter中动态管理队列和座席的相关指令

(以及mod_fifo 中的动态坐席的配置)

(具体参考12.2.2)

mod_callcenter提供了一个callcenter_comfig的API命令,用于管理与该模块相关的各种资源。

(1) callcenter_config agent set status 1005@default 'Available' —— (在座席已正确配置的基础上)把座席的状态变成Available,该座席就准备好接听电话了

(2)callcenter_config agent set status 1005@default 'Logged out' —— (同上)不会再有电话分配到该座席

(3)callcenter_config agent list —— 列出当前所有的坐席

        如果座席本身没有在配置文件中配置,也可以使用,命令添加:

(4)callcenter_config agent add 1007@default callback ——  添加一个名字为1007@default的座席

         当然,还需要用下列命令给它设置相关的参数,如contract:

(5)callcenter_config agent set contract 1007@default user/1007

(6)callcenter_config queu list —— 列出当前的队列

(7)callcenter_config tier list —— 列出当前的梯队

 

 另外:关于mod_fifo模块中,提供了一个fifo_member 命令用于动态坐席的配置:

(1)fifo_member add user/1007  —— 增加一个座席

(2)fifo_member del user/1008    —— 删除一个座席

....

23、FreeSWITCH支持的媒体编码

FreeSWITCH支持的媒体编码默认是在conf/vars.xml文件中定义的,如:(参考:8.1.3&12.4.1)

 

 注意:修改上述文件实际上修改的是全局变量,一般来说需要重启FreeSWITCH才能使之生效。

(12.4.1给出了不需要重启FreeSWITCH就能是使之生效的一个技巧(以UNIX类平台为例))

 

posted @ 2023-01-04 17:28  阿风小子  阅读(1351)  评论(0编辑  收藏  举报