mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 18:55:19 +00:00 
			
		
		
		
	
		
			
	
	
		
			332 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
		
		
			
		
	
	
			332 lines
		
	
	
		
			7.7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
|   | <?xml version="1.0" encoding="UTF-8" ?> | ||
|  | <!DOCTYPE scenario SYSTEM "sipp.dtd"> | ||
|  | <scenario name="INVITE (optional auth), re-INVITE to T38 and send a Fax, Walter Doekes 2012-2013"> | ||
|  | 
 | ||
|  |   <!--
 | ||
|  | 
 | ||
|  |   NOTE: Creating a sipp-sendfax.pcap is as easy as: | ||
|  |   - receive a fax with asterisk | ||
|  |   - get the incoming side of the spansdp.log (use 'fax set debug on', | ||
|  |     check your logger.conf) | ||
|  |   - feed it to spandspflow2pcap.py | ||
|  | 
 | ||
|  |   NOTE: sipp-sendfax.xml requires image pcap play support in SIPp. This | ||
|  |   means a version above 3.5.0, or the master git branch from | ||
|  |   https://github.com/SIPp/sipp. | ||
|  | 
 | ||
|  |   --> | ||
|  | 
 | ||
|  |   <label id="invite"/> | ||
|  | 
 | ||
|  |   <send retrans="500" start_txn="invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       INVITE sip:[tel]@[remote_ip]:[remote_port] SIP/2.0 | ||
|  |       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] | ||
|  |       From: sip:[service]@[local_ip]:[local_port];tag=[pid]SIPpTag00[call_number] | ||
|  |       To: sip:[tel]@[remote_ip]:[remote_port] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] INVITE | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Type: application/sdp | ||
|  |       Content-Length: [len] | ||
|  | 
 | ||
|  |       v=0 | ||
|  |       o=- 144969 144969 IN IP[local_ip_type] [local_ip] | ||
|  |       s=- | ||
|  |       c=IN IP[media_ip_type] [media_ip] | ||
|  |       t=0 0 | ||
|  |       m=audio [media_port] RTP/AVP 8 0 | ||
|  |       a=rtpmap:8 PCMA/8000 | ||
|  |       a=rtpmap:0 PCMU/8000 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <recv response="100" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="180" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="181" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="183" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="200" optional="true" rrs="true" response_txn="invite" next="invite-ack"/> | ||
|  | 
 | ||
|  |   <recv response="401" optional="true" rrs="true" next="invite-with-auth" auth="true" rrs="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="407" auth="true" rrs="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <label id="invite-with-auth"/> | ||
|  | 
 | ||
|  |   <send ack_txn="invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       ACK sip:[tel]@[remote_ip]:[remote_port] SIP/2.0 | ||
|  |       [last_Via:] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] ACK | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <send retrans="500" start_txn="invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       INVITE sip:[tel]@[remote_ip]:[remote_port] SIP/2.0 | ||
|  |       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] | ||
|  |       From: sip:[service]@[local_ip]:[local_port];tag=[pid]SIPpTag00[call_number] | ||
|  |       To: sip:[tel]@[remote_ip]:[remote_port] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       [authentication] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] INVITE | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Type: application/sdp | ||
|  |       Content-Length: [len] | ||
|  | 
 | ||
|  |       v=0 | ||
|  |       o=- 144969 144969 IN IP[local_ip_type] [local_ip] | ||
|  |       s=- | ||
|  |       c=IN IP[media_ip_type] [media_ip] | ||
|  |       t=0 0 | ||
|  |       m=audio [media_port] RTP/AVP 8 0 | ||
|  |       a=rtpmap:8 PCMA/8000 | ||
|  |       a=rtpmap:0 PCMU/8000 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <recv response="100" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="180" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="181" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="183" optional="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <recv response="200" rrs="true" response_txn="invite"/> | ||
|  | 
 | ||
|  |   <label id="invite-ack"/> | ||
|  | 
 | ||
|  |   <send ack_txn="invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       ACK [next_url] SIP/2.0 | ||
|  |       [last_Via:] | ||
|  |       [routes] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] ACK | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <!-- Send a bit of noise to start the RTP. You may need to use
 | ||
|  |        the -i MY_IP command line option. --> | ||
|  |   <pause milliseconds="500"/> | ||
|  | 
 | ||
|  |   <nop> | ||
|  |     <action> | ||
|  |       <exec play_pcap_audio="g711a.pcap"/> | ||
|  |     </action> | ||
|  |   </nop> | ||
|  | 
 | ||
|  |   <pause milliseconds="500"/> | ||
|  | 
 | ||
|  | 
 | ||
|  |   <!-- *****************************************************************
 | ||
|  | 
 | ||
|  |   Initiate re-INVITE to T38. | ||
|  | 
 | ||
|  |   ****************************************************************** --> | ||
|  | 
 | ||
|  |   <send start_txn="t38invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       INVITE [next_url] SIP/2.0 | ||
|  |       Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch] | ||
|  |       [routes] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] INVITE | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Type: application/sdp | ||
|  |       Content-Length: [len] | ||
|  | 
 | ||
|  |       v=0 | ||
|  |       o=- 145280 145280 IN IP[local_ip_type] [local_ip] | ||
|  |       s=- | ||
|  |       c=IN IP[media_ip_type] [media_ip] | ||
|  |       t=0 0 | ||
|  |       m=image [media_port] udptl t38 | ||
|  |       a=T38FaxVersion:0 | ||
|  |       a=T38MaxBitRate:14400 | ||
|  |       a=T38FaxRateManagement:transferredTCF | ||
|  |       a=T38FaxMaxBuffer:200 | ||
|  |       a=T38FaxMaxDatagram:200 | ||
|  |       a=T38FaxUdpEC:t38UDPRedundancy | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <recv response="100" optional="true" response_txn="t38invite"/> | ||
|  | 
 | ||
|  |   <recv response="488" optional="true" response_txn="t38invite" next="abort"/> | ||
|  | 
 | ||
|  |   <recv response="200" response_txn="t38invite"/> | ||
|  | 
 | ||
|  |   <send ack_txn="t38invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       ACK [next_url] SIP/2.0 | ||
|  |       [last_Via:] | ||
|  |       [routes] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] ACK | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <!-- Enable the nop/action below to replay the FAX image. You may need to use
 | ||
|  |        the -i MY_IP command line option. --> | ||
|  |   <pause milliseconds="500"/> | ||
|  | 
 | ||
|  |   <nop> | ||
|  |     <action> | ||
|  |       <exec play_pcap_image="sipp-sendfax.pcap"/> | ||
|  |     </action> | ||
|  |   </nop> | ||
|  | 
 | ||
|  | 
 | ||
|  |   <!-- *****************************************************************
 | ||
|  | 
 | ||
|  |   Wait for re-INVITE back to audio. | ||
|  | 
 | ||
|  |   ****************************************************************** --> | ||
|  | 
 | ||
|  |   <recv request="INVITE"/> | ||
|  | 
 | ||
|  |   <send retrans="500"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       SIP/2.0 200 OK | ||
|  |       [last_Via:] | ||
|  |       [last_Record-Route:] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       [last_Call-ID:] | ||
|  |       [last_CSeq:] | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Type: application/sdp | ||
|  |       Content-Length: [len] | ||
|  | 
 | ||
|  |       v=0 | ||
|  |       o=- 146312 146312 IN IP[local_ip_type] [local_ip] | ||
|  |       s=- | ||
|  |       c=IN IP[media_ip_type] [media_ip] | ||
|  |       t=0 0 | ||
|  |       m=audio [media_port] RTP/AVP 8 0 | ||
|  |       a=rtpmap:8 PCMA/8000 | ||
|  |       a=rtpmap:0 PCMU/8000 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <recv request="ACK"/> | ||
|  | 
 | ||
|  |   <recv request="BYE"/> | ||
|  | 
 | ||
|  |   <send next="done"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       SIP/2.0 200 OK | ||
|  |       [last_Via:] | ||
|  |       [last_Record-Route:] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       [last_Call-ID:] | ||
|  |       [last_CSeq:] | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  | 
 | ||
|  |   <!-- *****************************************************************
 | ||
|  | 
 | ||
|  |   Abort the call ourselves | ||
|  | 
 | ||
|  |   ****************************************************************** --> | ||
|  | 
 | ||
|  |   <label id="abort"/> | ||
|  | 
 | ||
|  |   <send ack_txn="t38invite"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       ACK [next_url] SIP/2.0 | ||
|  |       [last_Via:] | ||
|  |       [routes] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] ACK | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <send start_txn="bye"> | ||
|  |     <![CDATA[ | ||
|  | 
 | ||
|  |       BYE [next_url] SIP/2.0 | ||
|  |       [last_Via:] | ||
|  |       [routes] | ||
|  |       [last_From:] | ||
|  |       [last_To:] | ||
|  |       Contact: sip:[service]@[local_ip]:[local_port] | ||
|  |       Call-ID: [call_id] | ||
|  |       CSeq: [cseq] BYE | ||
|  |       Max-Forwards: 70 | ||
|  |       Content-Length: 0 | ||
|  | 
 | ||
|  |     ]]> | ||
|  |   </send> | ||
|  | 
 | ||
|  |   <recv response="200" response_txn="bye" next="done"/> | ||
|  | 
 | ||
|  | 
 | ||
|  |   <!-- *****************************************************************
 | ||
|  | 
 | ||
|  |   Finalize | ||
|  | 
 | ||
|  |   ****************************************************************** --> | ||
|  | 
 | ||
|  |   <label id="done"/> | ||
|  | 
 | ||
|  |   <!-- Keep call open to be able to retransmit stuff --> | ||
|  |   <timewait milliseconds="2000"/> | ||
|  | 
 | ||
|  | </scenario><!-- vim: set ts=8 sw=2 sts=2 et ai: --> |