sipp basic call 脚本

  1
  2
  3 
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22  
 23      24 
 25       INVITE sip:[field3]@[field1] SIP/2.0
 26       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
 27       From: ;tag=[call_number]
 28       To:
 29       Call-ID: [call_id]
 30       CSeq: 1 INVITE
 31       Contact: sip:[field0]@[local_ip]:[local_port]
 32       Max-Forwards: 7
 33       Subject: Performance Test
 34       User-Agent: Sipp
 35       X-cid: [call_id]
 36       Content-Type: application/sdp
 37       Content-Length: [len]
 38 
 39       v=0
 40       o=[local_ip] 53655765 2353687637 IN IP[local_ip_type] [local_ip]
 41       s=-
 42       c=IN IP[local_ip_type] [local_ip]
 43       t=0 0
 44       m=audio [rtpstream_audio_port] RTP/AVP 8 0 101
 45       a=rtpmap:0 PCMU/8000
 46       a=rtpmap:101 telephone-event/8000
 47       a=fmtp:101 0-16
 48       a=sendrecv
 49     ]]>
 50  

 51 
 52  
 53  

 54 
 55  
56      
 57          58               search_in="hdr"
 59               header="Via: "
 60               assign_to="8"/>
 61    

 62  

 63 
 64  
 65  
 66  
 67  
 68  
 69  
 70      71 
 72       ACK sip:[field3]@[field1]:[remote_port] SIP/2.0
 73       Via: SIP/2.0/[transport] [local_ip]:[local_port];[$8]
 74       From: ;tag=[call_number]
 75       To:  [peer_tag_param]
 76       Call-ID: [call_id]
 77       CSeq: 1 ACK
 78       Contact: sip:[field0]@[local_ip]:[local_port]
 79       Max-Forwards: 7
 80       User-Agent: Sipp
 81       X-cid: [call_id]
 82       Subject: Performance Test
 83       Content-Length: 0
 84     ]]>
 85  

 86 
 87 
 88  
 89      90 
 91       INVITE sip:[field3]@[field1]:[remote_port] SIP/2.0
 92       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
 93       From: ;tag=[call_number]
 94       To:
 95       Call-ID: [call_id]
 96       CSeq: 2 INVITE
 97       Contact: ; expires=600
 98       [field2]
 99       Max-Forwards: 7
100       Subject: Performance Test
101       User-Agent: Sipp
102       X-cid: [call_id]
103       Content-Type: application/sdp
104       Content-Length: [len]
105       Expires: 600
106 
107       v=0
108       o=[local_ip] 53655765 2353687637 IN IP[local_ip_type] [local_ip]
109       s=-
110       c=IN IP[local_ip_type] [local_ip]
111       t=0 0
112       m=audio [rtpstream_audio_port] RTP/AVP 8 0 101
113       a=rtpmap:0 PCMU/8000
114       a=rtpmap:101 telephone-event/8000
115       a=fmtp:101 0-16
116       a=sendrecv
117     ]]>
118  

119 
120 
121  
122  

123 
124  
125  

126 
127  
128  

129 
130  
131  
132  
133     134 
135       ACK sip:[field3]@[field1]:[remote_port] SIP/2.0
136       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
137       From: ;tag=[call_number]
138       To: [peer_tag_param]
139       Route:
140       Call-ID: [call_id]
141       CSeq: 2 ACK
142       Contact: sip:[field0]@[local_ip]:[local_port]
143       Max-Forwards: 7
144       Subject: Performance Test
145       User-Agent: Sipp
146       X-cid: [call_id]
147       Content-Length: 0
148     ]]>
149  

150 
151
158 
159  
160    
161        
162    

163  

164 
165 
166 
167  
168  
169 
170 
171  
172  
173     174 
175       BYE sip:[field3]@[field1]:[remote_port]; SIP/2.0
176       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
177       From: ;tag=[call_number]
178       To:  [peer_tag_param]
179       Route:
180       Call-ID: [call_id]
181       CSeq: 2 BYE
182       Contact: sip:[field0]@[local_ip]:[local_port]
183       Max-Forwards: 7
184       Subject: Performance Test
185       User-Agent: Sipp
186       X-cid: [call_id]
187       Content-Length: 0
188     ]]>
189  

190 
191  
192  

193 
194  
195  
196

197 
 

使用pcap 模式发送RTP 包,效率并不高,会有大量的软中断,不能支持大并发测试,

因为使用pcap 发送RTP的模式中, SIPP client 协商出的RTP  端口号是一个(不管有多少路),也即auto_media_port

没有为每一路分配单独的RTP 端口。

而且为了操作方便,每一路通话,SIPP 都创建了一个RAW socket, 这些socket 都绑定在一个端口上,

在高并发中,例如2000路并发,就有2000个raw socket 绑定在一个端口收发,这个软中断非常高。

为什么软中断比较高,可以参考raw socket 接收数据流程理解。

 

所以使用rtp_stream 方式会好很多。使用这种方式, 每一路都有自己的单独的RTP 端口。还有一个好处是

如果使用pcap的话, 这个wireshark 包大小需要自己控制, sipp并不能循环播放这个pcap包,但是使用rtp_stream

的话,就可以测试长时间通话了。

你可能感兴趣的:(SIP,sipp)