No subject
Sun Jul 19 19:54:31 CDT 2009
There are three test cases run. In each, SIPp is used to place a call to Asterisk, playback one or multiple pcap files and then send a BYE. The test.lua script is set to run a handler for each VarSet manager event that is received. In the handler, we compare the received DTMF digits to what we expected to receive and fail if there is a discrepancy.
The pcap files that I used for playing DTMF could not be attached, so I will include a brief description of them here:
dtmf_2833_*.pcap: These are the RFC2833 DTMF pcap files included in the distribution of SIPp. Strangely, they do not include a '0' DTMF digit.
dtmf_2833_*_noend.pcap: These are generated from the original DTMF pcap files by chopping off the end frames.
broken_dtmf.pcap: This is a series of digits that was collected from the reporter of Mantis issue 15811 who was having a problem with duplicate DTMF being detected. The quirk with the DTMF here is that there are out-of-order frames received.
If more information is required regarding the tests run, see
tests/rfc2833_dtmf_detect/test-config.yaml
Review: https://reviewboard.asterisk.org/r/560
Added:
asterisk/trunk/tests/rfc2833_dtmf_detect/
asterisk/trunk/tests/rfc2833_dtmf_detect/configs/
asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/run-test (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1_noend.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2_noend.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3_noend.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4_noend.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_5.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_6.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_7.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_8.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_9.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_pound.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_star.pcap (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml (with props)
asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua (with props)
Modified:
asterisk/trunk/tests/tests.yaml
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf Thu Mar 25 11:27:08 2010
@@ -1,0 +1,6 @@
+[dtmf_test]
+
+exten => test,1,Answer
+exten => test,n,Noop(Read test)
+exten => test,n,Read(READRESULT,,0,1,5)
+exten => test,n,Hangup
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/extensions.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf Thu Mar 25 11:27:08 2010
@@ -1,0 +1,9 @@
+[general]
+udpbindaddr=127.0.0.1:5060
+canreinvite=no
+
+[test1]
+type=friend
+host=dynamic
+dtmf=rfc2833
+context=dtmf_test
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/configs/sip.conf
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/run-test
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/run-test?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/run-test (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/run-test Thu Mar 25 11:27:08 2010
@@ -1,0 +1,4 @@
+#!/bin/bash -e
+
+asttest -a / -s tests/rfc2833_dtmf_detect
+
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/run-test
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/run-test
------------------------------------------------------------------------------
svn:executable = *
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/run-test
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/run-test
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml Thu Mar 25 11:27:08 2010
@@ -1,0 +1,102 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="DTMF TEST 1">
+ <send retrans="500">
+ <![CDATA[
+
+ INVITE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: 1 INVITE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Type: application/sdp
+ Content-Length: [len]
+
+ v=0
+ o=user1 53655765 2353687637 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 0 101
+ a=rtpmap:0 PCMU/8000
+ a=rtpmap:101 telephone-event/8000
+
+ ]]>
+ </send>
+
+ <recv response="100"
+ optional="true">
+ </recv>
+
+ <recv response="180" optional="true">
+ </recv>
+
+ <recv response="183" optional="true">
+ </recv>
+
+ <recv response="200" rtd="true">
+ </recv>
+
+ <send>
+ <![CDATA[
+
+ ACK sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 1 ACK
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <!-- Brief pause before sending DTMF... -->
+ <pause milliseconds="500" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/broken_dtmf.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <!-- Also, we have enough time to retrieve the value read -->
+ <pause milliseconds="1500" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ BYE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:[test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 2 BYE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true">
+ </recv>
+
+ <!-- definition of the response time repartition table (unit is ms) -->
+ <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+ <!-- definition of the call length repartition table (unit is ms) -->
+ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/broken_dtmf.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1_noend.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1_noend.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1_noend.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_1_noend.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2_noend.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2_noend.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2_noend.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_2_noend.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3_noend.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3_noend.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3_noend.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_3_noend.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4_noend.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4_noend.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4_noend.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_4_noend.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_5.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_5.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_5.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_5.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_6.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_6.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_6.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_6.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_7.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_7.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_7.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_7.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_8.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_8.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_8.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_8.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_9.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_9.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_9.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_9.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_pound.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_pound.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_pound.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_pound.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_star.pcap
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_star.pcap?view=auto&rev=143
==============================================================================
Binary file - no diff available.
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_star.pcap
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_2833_star.pcap
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml Thu Mar 25 11:27:08 2010
@@ -1,0 +1,182 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="DTMF TEST 1">
+ <send retrans="500">
+ <![CDATA[
+
+ INVITE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: 1 INVITE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Type: application/sdp
+ Content-Length: [len]
+
+ v=0
+ o=user1 53655765 2353687637 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 0 101
+ a=rtpmap:0 PCMU/8000
+ a=rtpmap:101 telephone-event/8000
+
+ ]]>
+ </send>
+
+ <recv response="100"
+ optional="true">
+ </recv>
+
+ <recv response="180" optional="true">
+ </recv>
+
+ <recv response="183" optional="true">
+ </recv>
+
+ <recv response="200" rtd="true">
+ </recv>
+
+ <send>
+ <![CDATA[
+
+ ACK sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 1 ACK
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <!-- Brief pause before sending DTMF... -->
+ <pause milliseconds="500" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_1.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_2.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_3.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_4.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_5.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_6.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_7.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_8.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_9.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_star.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ BYE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 2 BYE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true">
+ </recv>
+
+ <!-- definition of the response time repartition table (unit is ms) -->
+ <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+ <!-- definition of the call length repartition table (unit is ms) -->
+ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml
------------------------------------------------------------------------------
svn:executable = *
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_baseline.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml Thu Mar 25 11:27:08 2010
@@ -1,0 +1,127 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="DTMF TEST 1">
+ <send retrans="500">
+ <![CDATA[
+
+ INVITE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: 1 INVITE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Type: application/sdp
+ Content-Length: [len]
+
+ v=0
+ o=user1 53655765 2353687637 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 0 101
+ a=rtpmap:0 PCMU/8000
+ a=rtpmap:101 telephone-event/8000
+
+ ]]>
+ </send>
+
+ <recv response="100"
+ optional="true">
+ </recv>
+
+ <recv response="180" optional="true">
+ </recv>
+
+ <recv response="183" optional="true">
+ </recv>
+
+ <recv response="200" rtd="true">
+ </recv>
+
+ <send>
+ <![CDATA[
+
+ ACK sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 1 ACK
+ Contact: test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <!-- Brief pause before sending DTMF... -->
+ <pause milliseconds="500" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_1_noend.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_2_noend.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_3_noend.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+
+ <nop>
+ <action>
+ <exec play_pcap_audio="sipp/dtmf_2833_4.pcap" />
+ </action>
+ </nop>
+
+ <!-- This pause gives enough time to play the DTMF -->
+ <pause milliseconds="160" />
+ <send retrans="500">
+ <![CDATA[
+
+ BYE sip:test@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test <sip:test@[remote_ip]:[remote_port]>[peer_tag_param]
+ Call-ID: [call_id]
+ CSeq: 2 BYE
+ Contact: sip:test1@[local_ip]:[local_port]
+ Max-Forwards: 70
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true">
+ </recv>
+
+ <!-- definition of the response time repartition table (unit is ms) -->
+ <ResponseTimeRepartition value="10, 20, 30, 40, 50, 100, 150, 200"/>
+
+ <!-- definition of the call length repartition table (unit is ms) -->
+ <CallLengthRepartition value="10, 50, 100, 500, 1000, 5000, 10000"/>
+
+</scenario>
+
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/dtmf_noend.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml Thu Mar 25 11:27:08 2010
@@ -1,0 +1,29 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<!--
+This scenario will execute a sip register with the given parameters.
+-->
+
+
+<scenario name="Register">
+ <send retrans="500">
+ <![CDATA[
+
+ REGISTER sip:test1@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+ From: test1 <sip:test1@[local_ip]:[local_port]>;tag=[call_number]
+ To: test1 <sip:test1@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: 1 REGISTER
+ Contact: sip:test1@[local_ip]:[local_port]
+ Content-Length: 0
+ Expires: 120
+
+ ]]>
+ </send>
+
+ <recv response="100" optional="true" />
+ <recv response="200"/>
+
+</scenario>
+
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/sipp/register.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml Thu Mar 25 11:27:08 2010
@@ -1,0 +1,29 @@
+testinfo:
+ summary: 'Test RFC2833 DTMF detection'
+ description: |
+ "This test places several calls to Asterisk using SIPp. SIPp,
+ upon receiving an answer, will use its capability to play pcap
+ files to play a set of DTMF tones toward Asterisk. The Read()
+ dialplan application is used to detect the tones. Afterward, a
+ comparison is made to determine if the detected DTMF is what we
+ expected. The test consists of three calls and three sets of DTMF
+ to be detected.
+
+ Test 1: The RFC2833 DTMF has no oddities to it. This is a basic detection
+ test.
+
+ Test 2: The RFC2833 DTMF has out-of-order packets, thus possibly
+ triggering the false detection of duplicate tones.
+
+ Test 3: The first three DTMF digits contain no end frames. Asterisk
+ should be able to properly handle the situation and still log the
+ DTMF presses.
+ issues:
+ - mantis : '15811'
+
+properties:
+ minversion: '1.4'
+ dependencies:
+ - app : 'bash'
+ - app : 'sipp'
+ - app : 'asttest'
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test-config.yaml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua
URL: http://svnview.digium.com/svn/testsuite/asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua?view=auto&rev=143
==============================================================================
--- asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua (added)
+++ asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua Thu Mar 25 11:27:08 2010
@@ -1,0 +1,106 @@
+function sipp_exec(scenario, name, local_port)
+ return proc.exec_io("sipp",
+ "127.0.0.1",
+ "-m", "1",
+ "-sf", scenario,
+ "-i", "127.0.0.1",
+ "-p", local_port,
+ "-timeout", "30",
+ "-trace_err"
+ )
+end
+
+function sipp_exec_and_wait(scenario, name, local_port)
+ return sipp_check_error(sipp_exec(scenario, name, local_port), scenario)
+end
+
+function sipp_check_error(p, scenario)
+ local res, err = p:wait()
+
+ if not res then error(err) end
+ if res ~= 0 then
+ error("error while executing " .. scenario .. " sipp scenario (sipp exited with status " .. res .. ")\n" .. p.stderr:read("*a"))
+ end
+
+ return res, err
+end
+
+function varset_event_one(event)
+ if (event["Variable"] == "READRESULT") then
+ if (event["Value"] ~= "123456789*") then
+ fail("DTMF not detected properly. Expected '123456789*' but received " .. event["Value"])
+ end
+ end
+end
+
+function varset_event_two(event)
+ if (event["Variable"] == "READRESULT") then
+ if (event["Value"] ~= "1000") then
+ fail("DTMF not detected properly. Expected '1000' but received " .. event["Value"])
+ end
+ end
+end
+
+function varset_event_three(event)
+ if (event["Variable"] == "READRESULT") then
+ if (event["Value"] ~= "1234") then
+ fail("DTMF not detected properly. Expected '1234' but received " .. event["Value"])
+ end
+ end
+end
+
+function manager_setup(a)
+ m,err = a:manager_connect()
+ if not m then
+ fail("error connecting to asterisk: " .. err)
+ end
+
+ login = ast.manager.action:new("login")
+ login["Username"] = "asttest"
+ login["Secret"] = "asttest"
+
+ local r = m(login)
+ if not r then
+ fail("error logging in to the manager: " .. err)
+ end
+
+ if r["Response"] ~= "Success" then
+ fail("error authenticating: " .. r["Message"])
+ end
+end
+
+function test_call(scenario, handler, name, local_port)
+ m:register_event("VarSet", handler)
+ local t1 = sipp_exec(scenario, name, local_port)
+
+ --wait for everything to finish
+ sipp_check_error(t1, scenario)
+ posix.sleep(1)
+ local res, err = m:pump_messages()
+ if not res then
+ fail("error pumping manager messages: " .. err)
+ end
+ m:process_events()
+ m:unregister_event("VarSet", handler)
+end
+
+function do_dtmf_and_check_results(name)
+ local a = ast.new()
+ a:load_config("configs/sip.conf")
+ a:load_config("configs/extensions.conf")
+ a:generate_manager_conf()
+ a:spawn()
+
+ manager_setup(a)
+
+ --register our peer
+ sipp_exec_and_wait("sipp/register.xml", name, "5061")
+
+ test_call("sipp/dtmf_baseline.xml", varset_event_one, name, "5061")
+ test_call("sipp/broken_dtmf.xml", varset_event_two, name, "5061")
+ test_call("sipp/dtmf_noend.xml", varset_event_three, name, "5061")
+
+ a:term_or_kill()
+end
+
+do_dtmf_and_check_results("test1")
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: asterisk/trunk/tests/rfc2833_dtmf_detect/test.lua
------------------------------------------------------------------------------
[... 13 lines stripped ...]
More information about the asterisk-commits
mailing list