[Asterisk-code-review] transport symmetric: Add testsuite test (testsuite[master])
Anonymous Coward
asteriskteam at digium.com
Fri Mar 17 09:41:28 CDT 2017
Anonymous Coward #1000019 has submitted this change and it was merged. ( https://gerrit.asterisk.org/5168 )
Change subject: transport_symmetric: Add testsuite test
......................................................................
transport_symmetric: Add testsuite test
Added tests for INVITE, NOTIFY and OPTIONS.
Also had to tweak sipp.py to allow -oocsf to be passed without
having to specify a full pathname.
Change-Id: I41f52d09eb015659f935af9b2505ad2aa56d13de
---
M lib/python/asterisk/sipp.py
M tests/channels/pjsip/tests.yaml
A tests/channels/pjsip/transport/symmetric/invite/configs/ast1/extensions.conf
A tests/channels/pjsip/transport/symmetric/invite/configs/ast1/pjsip.conf
A tests/channels/pjsip/transport/symmetric/invite/sipp/invite.xml
A tests/channels/pjsip/transport/symmetric/invite/test-config.yaml
A tests/channels/pjsip/transport/symmetric/notify/configs/ast1/pjsip.conf
A tests/channels/pjsip/transport/symmetric/notify/configs/ast1/voicemail.conf
A tests/channels/pjsip/transport/symmetric/notify/sipp/initial_notify.xml
A tests/channels/pjsip/transport/symmetric/notify/sipp/reg_sub.xml
A tests/channels/pjsip/transport/symmetric/notify/test-config.yaml
A tests/channels/pjsip/transport/symmetric/options/configs/ast1/pjsip.conf
A tests/channels/pjsip/transport/symmetric/options/sipp/options.xml
A tests/channels/pjsip/transport/symmetric/options/sipp/register.xml
A tests/channels/pjsip/transport/symmetric/options/test-config.yaml
A tests/channels/pjsip/transport/symmetric/tests.yaml
A tests/channels/pjsip/transport/tests.yaml
17 files changed, 633 insertions(+), 0 deletions(-)
Approvals:
Kevin Harwell: Looks good to me, but someone else must approve
Anonymous Coward #1000019: Verified
Joshua Colp: Looks good to me, approved
diff --git a/lib/python/asterisk/sipp.py b/lib/python/asterisk/sipp.py
index aa0e34b..6b4c811 100644
--- a/lib/python/asterisk/sipp.py
+++ b/lib/python/asterisk/sipp.py
@@ -667,6 +667,10 @@
default_args['-inf'] = ('%s/sipp/%s' % (
self.test_dir, default_args['-inf']))
+ if '-oocsf' in default_args:
+ default_args['-oocsf'] = ('%s/sipp/%s' % (
+ self.test_dir, default_args['-oocsf']))
+
for (key, val) in default_args.items():
sipp_args.extend([key, val])
sipp_args.extend(self.positional_args)
diff --git a/tests/channels/pjsip/tests.yaml b/tests/channels/pjsip/tests.yaml
index 086a61a..7066f00 100644
--- a/tests/channels/pjsip/tests.yaml
+++ b/tests/channels/pjsip/tests.yaml
@@ -20,6 +20,7 @@
- dir: 'statsd'
- dir: 'subscriptions'
- dir: 'transfers'
+ - dir: 'transport'
- dir: 'video_calls'
- test: 'accountcode'
- test: 'acl_call'
diff --git a/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/extensions.conf b/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/extensions.conf
new file mode 100644
index 0000000..1aa59f6
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/extensions.conf
@@ -0,0 +1,6 @@
+[default]
+
+exten => s,1,NoOp()
+same => n,Answer()
+same => n,Dial(PJSIP/alice,,S(1))
+same => n,Hangup()
diff --git a/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/pjsip.conf b/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..61a3430
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/invite/configs/ast1/pjsip.conf
@@ -0,0 +1,21 @@
+[local-transport-5066]
+type=transport
+bind=127.0.0.1:5066
+protocol=udp
+symmetric_transport=yes
+
+[local-transport]
+type=transport
+bind=127.0.0.1
+protocol=udp
+
+[alice]
+type=endpoint
+allow=g722,ulaw,alaw
+context=default
+aors=alice
+
+[alice]
+type=aor
+max_contacts=5
+contact=sip:127.0.0.1:5061\;x-ast-txp=local-transport-5066
diff --git a/tests/channels/pjsip/transport/symmetric/invite/sipp/invite.xml b/tests/channels/pjsip/transport/symmetric/invite/sipp/invite.xml
new file mode 100644
index 0000000..5458d86
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/invite/sipp/invite.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="UAS Test transport">
+
+ <recv request="INVITE">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="1" />
+ </action>
+ </recv>
+
+ <send retrans="500">
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:];tag=[call_number]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ 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
+ a=rtpmap:0 PCMU/8000
+
+ ]]>
+ </send>
+
+ <recv request="ACK">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="2" />
+ </action>
+ </recv>
+
+ <recv request="BYE" crlf="true">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="3" />
+ </action>
+ </recv>
+
+ <send retrans="500">
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:];tag=[call_number]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <Reference variables="1,2,3" />
+</scenario>
diff --git a/tests/channels/pjsip/transport/symmetric/invite/test-config.yaml b/tests/channels/pjsip/transport/symmetric/invite/test-config.yaml
new file mode 100644
index 0000000..e3930b8
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/invite/test-config.yaml
@@ -0,0 +1,47 @@
+testinfo:
+ summary: 'Tests symmetric transport on INVITE'
+ description: |
+ "Two transports are defined, the first on port 5066 and the last
+ (the default) on 5060. Alice has a static contact with
+ x-ast-txp=local-transport-5066 appended to set the transport.
+ The Originator starts the call.
+
+ * Check the INVITE Via specifies 5066 as the port.
+ * Check the ACK Via specifies 5066 as the port.
+ * Check the BYE Via specifies 5066 as the port.
+ "
+
+properties:
+ minversion: '13.15.0'
+ dependencies:
+ - sipp :
+ version : 'v3.0'
+ - python: 'twisted'
+ - python: 'starpy'
+ - asterisk: 'res_pjsip'
+ - asterisk : 'chan_pjsip'
+ - asterisk : 'res_pjsip_session'
+ tags:
+ - pjsip
+
+test-modules:
+ add-test-to-search-path: 'True'
+ test-object:
+ config-section: sipp-config
+ typename: 'sipp.SIPpTestCase'
+ modules:
+ -
+ config-section: originator-alice_invite_recv
+ typename: 'pluggable_modules.Originator'
+
+originator-alice_invite_recv:
+ trigger: 'ami_connect'
+
+sipp-config:
+ reactor-timeout: 15
+ fail-on-any: True
+ test-iterations:
+ -
+ scenarios:
+ - { 'key-args': {'scenario': 'invite.xml',
+ '-p': '5061', '-s': 'alice'}, 'target': '127.0.0.1:5066'}
diff --git a/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/pjsip.conf b/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..803e212
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/pjsip.conf
@@ -0,0 +1,31 @@
+[local-transport-5066]
+type=transport
+bind=127.0.0.1:5066
+protocol=udp
+symmetric_transport=yes
+
+[local-transport]
+type=transport
+bind=127.0.0.1
+protocol=udp
+
+[alice]
+type=endpoint
+allow=g722,ulaw,alaw
+context=default
+aors=alice
+auth=alice
+mailboxes=1000 at default
+mwi_subscribe_replaces_unsolicited=no
+
+[alice]
+type=aor
+max_contacts=5
+mailboxes=1000e at default
+
+[alice]
+type=auth
+auth_type=userpass
+username=alice
+password=password
+
diff --git a/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/voicemail.conf b/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/voicemail.conf
new file mode 100644
index 0000000..253c745
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/notify/configs/ast1/voicemail.conf
@@ -0,0 +1,2 @@
+[default]
+1000 => 4242,Example Mailbox
diff --git a/tests/channels/pjsip/transport/symmetric/notify/sipp/initial_notify.xml b/tests/channels/pjsip/transport/symmetric/notify/sipp/initial_notify.xml
new file mode 100644
index 0000000..c9feaba
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/notify/sipp/initial_notify.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="Out-of-Call NOTIFY after REGISTER">
+
+ <recv request="NOTIFY">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ assign_to="1" />
+ </action>
+ </recv>
+
+ <!-- ereg 'check_it' doesn't work in an out-of-call scenario file because there's
+ no call to mark as failed so we have to explicitly kill sipp if the regex
+ didn't match. -->
+
+ <nop condexec="1" condexec_inverse="true">
+ <action>
+ <exec int_cmd="stop_now" />
+ </action>
+ </nop>
+
+ <send>
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ Content-Length: 0
+
+ ]]>
+ </send>
+</scenario>
diff --git a/tests/channels/pjsip/transport/symmetric/notify/sipp/reg_sub.xml b/tests/channels/pjsip/transport/symmetric/notify/sipp/reg_sub.xml
new file mode 100644
index 0000000..38f27d3
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/notify/sipp/reg_sub.xml
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="REGISTER, SUBSCRIBE, unSUBSCRIBE, unREGISTER">
+ <send>
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: 1 REGISTER
+ Max-Forwards: 70
+ Expires: 60
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="401" auth="true" />
+
+ <send>
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] REGISTER
+ Max-Forwards: 70
+ Expires: 60
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ [authentication]
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true" />
+ <pause milliseconds="500" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ SUBSCRIBE sip:[mbx]@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: <sip:[service]@[remote_ip]:[remote_port]>
+ Contact: <sip:[service]@[local_ip]:[local_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] SUBSCRIBE
+ Max-Forwards: 70
+ Event: presence
+ Expires: 10
+ Supported: replaces, 100rel, timer, norefersub
+ Accept: application/pidf+xml, application/xpidf+xml, application/simple-message-summary
+ Allow-Events: presence, message-summary, refer
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="401" auth="true" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ SUBSCRIBE sip:[mbx]@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: <sip:[service]@[remote_ip]:[remote_port]>
+ Contact: <sip:[service]@[local_ip]:[local_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] SUBSCRIBE
+ Max-Forwards: 70
+ Event: presence
+ Expires: 10
+ Supported: replaces, 100rel, timer, norefersub
+ Accept: application/pidf+xml, application/xpidf+xml, application/simple-message-summary
+ Allow-Events: presence, message-summary, refer
+ [authentication]
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true" />
+
+ <recv request="NOTIFY">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="1" />
+ </action>
+ </recv>
+ <Reference variables="1" />
+
+ <send crlf="true">
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <pause milliseconds="500" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ SUBSCRIBE sip:[mbx]@[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: <sip:[service]@[remote_ip]:[remote_port]>[peer_tag_param]
+ Contact: <sip:[service]@[local_ip]:[local_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] SUBSCRIBE
+ Max-Forwards: 70
+ Event: presence
+ Expires: 0
+ Supported: replaces, 100rel, timer, norefersub
+ Accept: application/pidf+xml, application/xpidf+xml, application/simple-message-summary
+ Allow-Events: presence, message-summary, refer
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" />
+
+ <recv request="NOTIFY">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="2" />
+ </action>
+ </recv>
+ <Reference variables="2" />
+
+ <send crlf="true">
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <pause milliseconds="1000" />
+
+ <send retrans="500">
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] REGISTER
+ Max-Forwards: 70
+ Expires: 0
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="401" auth="true" />
+
+ <send>
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] REGISTER
+ Max-Forwards: 70
+ Expires: 0
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ [authentication]
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" />
+
+ <pause milliseconds="1000" />
+
+</scenario>
diff --git a/tests/channels/pjsip/transport/symmetric/notify/test-config.yaml b/tests/channels/pjsip/transport/symmetric/notify/test-config.yaml
new file mode 100644
index 0000000..154e115
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/notify/test-config.yaml
@@ -0,0 +1,48 @@
+testinfo:
+ summary: 'Tests symmetric transport'
+ description: |
+ "Two transports are defined, the first on port 5066 and the last
+ (the default) on 5060. The endpoint/aor allows mwi subscription
+ and unsolicited mwi.
+
+ * Send REGISTER/auth
+ * In the out-of-call scenario file, check the unsolicited NOTIFY Via
+ specifies 5066 as the port.
+ * Send SUBSCRIBE/auth
+ * check the NOTIFY Via specifies 5066 as the port.
+ * Send unSUBSCRIBE/auth
+ * check the NOTIFY Via specifies 5066 as the port.
+ * Send unREGISTER/auth
+ "
+
+properties:
+ minversion: '13.15.0'
+ dependencies:
+ - sipp :
+ version : 'v3.0'
+ - python: 'twisted'
+ - python: 'starpy'
+ - asterisk: 'res_pjsip'
+ - asterisk: 'res_pjsip_mwi'
+ tags:
+ - pjsip
+
+test-modules:
+ add-test-to-search-path: 'True'
+ test-object:
+ config-section: sipp-config
+ typename: 'sipp.SIPpTestCase'
+
+sipp-config:
+ reactor-timeout: 15
+ fail-on-any: True
+ test-iterations:
+ -
+#
+# The only way to test an unsolicited NOTIFY is in an out-of-call scenario file.
+#
+ scenarios:
+ - { 'key-args': {'scenario': 'reg_sub.xml',
+ '-oocsf': 'initial_notify.xml', '-p': '5061', '-s': 'alice',
+ '-au': 'alice', '-ap': 'password'},
+ 'ordered-args': ['-key', 'mbx', '1000'], 'target': '127.0.0.1:5066'}
diff --git a/tests/channels/pjsip/transport/symmetric/options/configs/ast1/pjsip.conf b/tests/channels/pjsip/transport/symmetric/options/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..c212f55
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/options/configs/ast1/pjsip.conf
@@ -0,0 +1,25 @@
+[global]
+type=global
+max_initial_qualify_time=1
+
+[local-transport-5066]
+type=transport
+bind=127.0.0.1:5066
+protocol=udp
+symmetric_transport=yes
+
+[local-transport]
+type=transport
+bind=127.0.0.1
+protocol=udp
+
+[alice]
+type=endpoint
+allow=g722,ulaw,alaw
+context=default
+aors=alice
+
+[alice]
+type=aor
+max_contacts=5
+qualify_frequency=10
diff --git a/tests/channels/pjsip/transport/symmetric/options/sipp/options.xml b/tests/channels/pjsip/transport/symmetric/options/sipp/options.xml
new file mode 100644
index 0000000..699f5e9
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/options/sipp/options.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="UAS Test transport">
+
+ <!-- ereg 'check_it' doesn't work in an out-of-call scenario file because
+ there's no call to mark as failed so we have to explicitly kill sipp if the
+ regex didn't match. -->
+
+ <recv request="OPTIONS">
+ <action>
+ <ereg regexp="127.0.0.1:5066;rport" search_in="hdr" header="Via"
+ check_it="true" assign_to="1" />
+ </action>
+ </recv>
+ <nop condexec="1" condexec_inverse="true">
+ <action>
+ <exec int_cmd="stop_now" />
+ </action>
+ </nop>
+
+ <send>
+ <![CDATA[
+
+ SIP/2.0 200 OK
+ [last_Via:]
+ [last_From:]
+ [last_To:];tag=[call_number]
+ [last_Call-ID:]
+ [last_CSeq:]
+ Contact: <sip:[local_ip]:[local_port];transport=[transport]>
+ Content-Length: 0
+
+ ]]>
+ </send>
+</scenario>
diff --git a/tests/channels/pjsip/transport/symmetric/options/sipp/register.xml b/tests/channels/pjsip/transport/symmetric/options/sipp/register.xml
new file mode 100644
index 0000000..d288947
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/options/sipp/register.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd">
+
+<scenario name="UAS Test transport">
+
+ <send>
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] REGISTER
+ Max-Forwards: 70
+ Expires: 60
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true" />
+
+ <pause milliseconds="4000"/>
+
+ <send>
+ <![CDATA[
+
+ REGISTER sip:[remote_ip]:[remote_port] SIP/2.0
+ Via: SIP/2.0/[transport] [local_ip]:[local_port];rport;branch=[branch]
+ From: "[service]" <sip:[service]@[local_ip]:[local_port]>;tag=[pid]SIPpTag00[call_number]
+ To: "[service]" <sip:[service]@[remote_ip]:[remote_port]>
+ Call-ID: [call_id]
+ CSeq: [cseq] REGISTER
+ Max-Forwards: 70
+ Expires: 0
+ Contact: <sip:[service]@[local_ip]:[local_port]>;transport=[transport]
+ Subject: Performance Test
+ Content-Length: 0
+
+ ]]>
+ </send>
+
+ <recv response="200" crlf="true" />
+
+</scenario>
+
diff --git a/tests/channels/pjsip/transport/symmetric/options/test-config.yaml b/tests/channels/pjsip/transport/symmetric/options/test-config.yaml
new file mode 100644
index 0000000..6a59f55
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/options/test-config.yaml
@@ -0,0 +1,43 @@
+testinfo:
+ summary: 'Tests symmetric transport on OPTIONS'
+ description: |
+ "Two transports are defined, the first on port 5066 and the last
+ (the default) on 5060. The aor it set to send OPTIONS.
+
+ * Send REGISTER
+ * In the out-of-call scenario file, check the OPTIONS Via
+ specifies 5066 as the port.
+ * Send unREGISTER
+ "
+
+properties:
+ minversion: '13.15.0'
+ dependencies:
+ - sipp :
+ version : 'v3.0'
+ - python: 'twisted'
+ - python: 'starpy'
+ - asterisk: 'res_pjsip'
+ tags:
+ - pjsip
+
+test-modules:
+ add-test-to-search-path: 'True'
+ test-object:
+ config-section: sipp-config
+ typename: 'sipp.SIPpTestCase'
+
+sipp-config:
+ reactor-timeout: 15
+ fail-on-any: True
+ test-iterations:
+ -
+#
+# The only way to test a REGISTER and an OPTIONS is to put the
+# OPTIONS in an out-of-call scenario file.
+#
+ scenarios:
+ - { 'key-args': {'scenario': 'register.xml',
+ '-oocsf': 'options.xml',
+ '-p': '5061', '-s': 'alice', '-au': 'alice', '-ap': 'password'},
+ 'target': '127.0.0.1:5066'}
diff --git a/tests/channels/pjsip/transport/symmetric/tests.yaml b/tests/channels/pjsip/transport/symmetric/tests.yaml
new file mode 100644
index 0000000..4f4a446
--- /dev/null
+++ b/tests/channels/pjsip/transport/symmetric/tests.yaml
@@ -0,0 +1,4 @@
+tests:
+ - test: 'notify'
+ - test: 'invite'
+ - test: 'options'
diff --git a/tests/channels/pjsip/transport/tests.yaml b/tests/channels/pjsip/transport/tests.yaml
new file mode 100644
index 0000000..811f55e
--- /dev/null
+++ b/tests/channels/pjsip/transport/tests.yaml
@@ -0,0 +1,2 @@
+tests:
+ - dir: 'symmetric'
--
To view, visit https://gerrit.asterisk.org/5168
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I41f52d09eb015659f935af9b2505ad2aa56d13de
Gerrit-PatchSet: 2
Gerrit-Project: testsuite
Gerrit-Branch: master
Gerrit-Owner: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Kevin Harwell <kharwell at digium.com>
Gerrit-Reviewer: Mark Michelson <mmichelson at digium.com>
More information about the asterisk-code-review
mailing list