Linux-SIPp3.3测试FreeSwitch-(六)注意事项

上一篇 / 下一篇  2013-11-28 16:23:59 / 个人分类:sipp

# Author:fairylly

1、系统配置

如果您的系统不支持足够的文件描述符,使用TCP/ TLS模式进行多人同时通话时,可能会遇到问题。

你有两种方法来克服这个限制:要么使用-max_socket的命令行选项,或更改你的系统的限制。

增大文件描述符限制:

 

# vi /etc/security/limits.conf

增加:

soft nofile 1024

hard nofile 65535

 

# vi /etc/pam.d/login 

增加:

session required /lib/security/pam_limits.so

 

echo 65535> /proc/sys/fs/file-max

ulimit -n unlimited

退出连接再重新登录,使设置生效;

 

2、regsiter注册

注册时,from/to要设置一样,否则会注册不成功;

 

3、pcap语音数据包

1)nop后要增加对应的pause时间

  <nop>

    <action>

      <exec play_pcap_audio="pcap/cc.pcap"/>

    </action>

  </nop>

 

 <pause milliseconds="15000"/>

 

pcap/cc.pcap录音文件播放需要多长时间,接下去的pause设置多少时间;如果未设置或设置太短,有可能未播放或播放不完整;

 

2)录制pcap文件时注意开始及结束时间

使用wireshark进行抓包,抓包过滤规则:udp and src host 192.168.134.120

目的是只抓192.168.134.120发出来的包。

 

已经建立起通话连接后,再开始抓包;

关闭通话连接前,先结束抓包;

这样抓的包才全是rtp数据包;

如果提前开始或延后结束,vi查看抓包文件,头部或结尾会有sip协议数据;

 

4、errors.log日志中的NOTIFY

查看errors.log日志,里面有很多针对NOTIFY的错误,如下:

 

2013-11-22      16:53:22:929    1385110402.929208: Discarding message which can't be mapped to a known SIPp call:

NOTIFY sip:19002@192.168.146.101:12346 SIP/2.0

Via: SIP/2.0/UDP 192.168.148.43;rport;branch=z9hG4bKSKpUm8BB4pa1S

Route: <sip:19002@192.168.146.101:12346>

Max-Forwards: 70

From: <sip:19002@192.168.148.43>;tag=cSpHa5BgB3pHD

To: <sip:19002@192.168.148.43>

Call-ID: 9ce1be85-cdf6-1231-91b1-005056b07ef2

CSeq: 52219186 NOTIFY

Contact: <sip:mod_sofia@192.168.148.43:5060>

User-Agent: FreeSWITCH-mod_sofia/1.2.13+git~20131007T141815Z~cbdb174965

Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE

Supported: timer, precondition, path, replaces

Event: message-summary

Allow-Events: talk, hold, conference, presence, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer

Subscription-State: terminated;reason=noresource

Content-Type: application/simple-message-summary

Content-Length: 67

Messages-Waiting: no

Message-Account: sip:19002@192.168.148.43

 

这个是因为sippxml脚本未对接收到的NOTIFY进行处理,可以在启动sipp时,使用-aa参数,自动对NOTIFY进行回复;

./sipp -h

说明如下:

-aa : Enable automatic 200 OK answer for INFO, UPDATE and NOTIFY messages.

 

5、407进行ack确认后,还一直接收到407消息

发送第一个INVITE后,会接收407要求认证,发送ACK进行确认,后再发送第二个带认证信息的INVITE

但后续还一直收到服务端发送的407

 

原因是ACK数据包设置的via为:

Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]

修改为:

[last_Via:]

后正常;

 

branch=[branch]这个会重新生成一个branch,但ACK是要对接收的407进行确认,所以branch要和407数据包的branch相同,所以使用[last_Via:]

 

注意:第二INVITE后,对接收到的200进行ACK时,也是一样设置:[last_Via:]

 

6、Send数据包中的CSeq设置

Send的数据包,CSeq每个都递增,例:

       CSeq: 1 REGISTER

       CSeq: 2 REGISTER

        CSeq: 3 INVITE

        CSeq: 4 ACK

        CSeq: 5 INVITE

        CSeq: 6 ACK

        CSeq: 7 BYE

 

会出现如下错误:

Reason: SIP;cause=408;text="ACK Timeout"

Aborting call on an unexpected BYE for call: 1-3328@192.168.146.101.

 

修改为下述内容后正常:

       CSeq: 1 REGISTER

       CSeq: 2 REGISTER

        CSeq: 1 INVITE

        CSeq: 1 ACK

        CSeq: 2 INVITE

        CSeq: 2 ACK

        CSeq: 2 BYE(这个用1会出现500错误,用23正常,不太确认原因)

 

7、UAS流程中的注册操作

UAC流程中,可以把注册和呼叫流程放在一个xml场景文件中;

UAS流程中,放在一起,会出现invite无法正常接收的问题,

日志:Discarding message which can't be mapped to a known SIPp call

所以uas中,要把注册流程写在一个xml场景中,被叫流程写在另一个xml场景中。



TAG: freeswitch Linux linux sipp SIPP 测试 注意事项

 

评分:0

我来说两句

Open Toolbar