FreeSwitch(十):基本技能

一、通话设置

1、安装freeswitch,启动控制台,用sofia status命令查看freeswitch监听的IP和本电脑ip。

2、软电话设置freeswitch的ip.口令1234.

FreeSwitch(十):基本技能_第1张图片

3、 FreeSwitch配置文件设置电脑IP。

   
   
   
   

4、拨号计划:

 
 

 
  

 

二、调试

1、show channels命令来找到当前通话的 Channel的UUD。

show channels

2、使用 uuid debug media命令查看调试输出。其中,该命令的第一个参数是Channel的UUID,接下来是欲调试的方向。方向有read和 write两种(即读和写,也即收和发,都是相对于 FREESWITCH而言的,下同),也可以使用both参数表示双向都调试。最后一个参数是on或of,分别表示打开或关闭调试。

uuid_debug_media ID号 both on

3、直接使用如下回拨命令进行录音,如果一切正常,说明Aice端没有问题了。

freeswitch> originate user/1002 &record(/tmp/test. wav)

4、FREESWITCH也支持现场抓包,使用下列命令可以在 FREESWITCH控制台上实时看到SIP消息,如:

freeswitch> sofia profile internal siptrace on
freeswitch> sofia profile external siptrace on

上面的命令可以开启不同 Profile的SIP抓包。当a-leg和b-leg分别在不同的 Profile上时可以分别来看,避免消息太多造成干扰。当然,初学者可能不知道实际的SIP消息应该走哪个 Profile,这时可以使用以下命令打开所有 Profile I的抓包

freeswitch> sofia global siptrace on

当然,也可以随时关闭抓包

freeswitch> sofia global siptrace off

5、SIP协议栈底层的问题(那么可能是SIP兼容性的问题或 FREESWITCH本身的BUG),就要打开底层协议栈的调试信息。开启 Sofia协议栈底层的调试器的方法是使用以下命令

freeswitch> sofia loglevel all 9

可以使用以下命令关闭所有底层的调试:

freeswitch> sofia loglevel all 0

Sofia层的日志信息会有很多,如果你比较熟悉的话(一般是开发者),也可以仅打开某一类的日志,如:

freeswitch> sofia loglevel nua 9

三、 使用外部工具抓包

1、打开电话机1001,拨通1002.

2、freeswitch 端口9021  文件路径/usr/local/freeswitch/conf/autoload_configs/,所以在服务器中开启cli控制台:

    fs_cli -P 9021

3、tcpdump抓包

(1)ifconfig查看本机网卡:ens33

(2)tcpdump是经典的抓包工具。比如下面的命令可以仅抓取5060端口上的SIP包:
         tcpdump -ng-s0-a-vvv-i etho port 5060
其中,-n、q表示不进行域名翻译及减少输出内容;-80表示不限制包长,即争取抓最大的长度;-A表示以ASCI方式输出,这样用眼看起来比较直观;-v表示显示的详细程度,“v”越多则越详细;-i表示使用指定的网卡;por5060表示过滤器,这里我们只关心5060
端口上的SIP包。另外,可以使用-w将结果写入文件中,如下列命令将结果写入/mp/dump.pcap文件中

         tcpdump-ng-s 0-i etho -w/tmp/dump pcap port 5060
(3)当还需要分析RTP流时,可以将port5060简单改成udp,这样就可以抓取所有的
UDP包:
        tcpdump-nq-s0-i etho -w/tmp/dump pcap udp
        有时候,如果你是在服务器上抓包,并想只抓某个用户的包,可以根据用户的IP地址来进行过滤。当然这需要先找到用户实际的IP地址,通过如下命令可以找到用户1002的Contact地址:
        freeswitchlocalhost> sofia status profile internal reg 1002

四、wireShark抓包 

1、

你可能感兴趣的:(FreeSwitch)