diff options
Diffstat (limited to 'pjsip-apps/src/test-pjsua')
3 files changed, 202 insertions, 10 deletions
diff --git a/pjsip-apps/src/test-pjsua/mod_recvfrom.py b/pjsip-apps/src/test-pjsua/mod_recvfrom.py index 259083f5..1510aed1 100644 --- a/pjsip-apps/src/test-pjsua/mod_recvfrom.py +++ b/pjsip-apps/src/test-pjsua/mod_recvfrom.py @@ -1,4 +1,4 @@ -# $Id:$ +# $Id$ import imp import sys import inc_sip as sip @@ -67,15 +67,17 @@ def test_func(test): tname = "" raise TestError("Excluded pattern " + pat + " found" + tname) # Create response - response = dlg.create_response(request, t.resp_code, "Status reason") - # Add headers to response - for h in t.resp_hdr: - response = response + h + "\r\n" - # Add message body if required - if t.body: - response = response + t.body - # Send response - dlg.send_msg(response, src_addr) + if t.resp_code!=0: + response = dlg.create_response(request, t.resp_code, "Status reason") + # Add headers to response + for h in t.resp_hdr: + response = response + h + "\r\n" + # Add message body if required + if t.body: + response = response + t.body + # Send response + dlg.send_msg(response, src_addr) + # Expect something to happen in pjsua if t.expect != "": pjsua.expect(t.expect) diff --git a/pjsip-apps/src/test-pjsua/scripts-sipp/inv_401_retry_after_100.xml b/pjsip-apps/src/test-pjsua/scripts-sipp/inv_401_retry_after_100.xml new file mode 100644 index 00000000..6debd134 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-sipp/inv_401_retry_after_100.xml @@ -0,0 +1,106 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE scenario SYSTEM "sipp.dtd"> + +<!-- This program is free software; you can redistribute it and/or --> +<!-- modify it under the terms of the GNU General Public License as --> +<!-- published by the Free Software Foundation; either version 2 of the --> +<!-- License, or (at your option) any later version. --> +<!-- --> +<!-- This program is distributed in the hope that it will be useful, --> +<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> +<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> +<!-- GNU General Public License for more details. --> +<!-- --> +<!-- You should have received a copy of the GNU General Public License --> +<!-- along with this program; if not, write to the --> +<!-- Free Software Foundation, Inc., --> +<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> +<!-- --> +<!-- --> + +<scenario name="Authorization retry after 1xx response test"> + <!-- Wait for INVITE request --> + <recv request="INVITE" crlf="true"> + </recv> + + <!-- Send 100 Trying --> + <send> + <![CDATA[ + + SIP/2.0 100 Trying + [last_Via:] + [last_From:] + [last_To:] + [last_Call-ID:] + [last_CSeq:] + ]]> + </send> + + <!-- Send 180 Ringing (with tag) --> + <send> + <![CDATA[ + + SIP/2.0 180 Ringing + [last_Via:] + [last_From:] + [last_To:];tag=[call_number] + [last_Call-ID:] + [last_CSeq:] + ]]> + </send> + + <!-- Send 401 Unauthorized --> + <send retrans="500"> + <![CDATA[ + + SIP/2.0 401 Unauthorized + [last_Via:] + [last_From:] + [last_To:];tag=[call_number] + [last_Call-ID:] + [last_CSeq:] + WWW-Authenticate: Digest realm="sipp", nonce="1234" + Content-Length: 0 + ]]> + </send> + + <!-- Wait for ACK --> + <recv request="ACK" + optional="false" + rtd="true" + crlf="true"> + </recv> + + <!-- Wait for INVITE retransmission --> + <recv request="INVITE" crlf="true"> + </recv> + + <!-- Send 500 Test Success to terminate the call --> + <send retrans="500"> + <![CDATA[ + + SIP/2.0 500 Test Success + [last_Via:] + [last_From:] + [last_To:];tag=[call_number] + [last_Call-ID:] + [last_CSeq:] + Content-Length: 0 + ]]> + </send> + + <!-- Wait for ACK --> + <recv request="ACK" + optional="false" + rtd="true" + 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> + diff --git a/pjsip-apps/src/test-pjsua/scripts-sipp/uas-template.xml b/pjsip-apps/src/test-pjsua/scripts-sipp/uas-template.xml new file mode 100644 index 00000000..d51f89c8 --- /dev/null +++ b/pjsip-apps/src/test-pjsua/scripts-sipp/uas-template.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE scenario SYSTEM "sipp.dtd"> + +<!-- This program is free software; you can redistribute it and/or --> +<!-- modify it under the terms of the GNU General Public License as --> +<!-- published by the Free Software Foundation; either version 2 of the --> +<!-- License, or (at your option) any later version. --> +<!-- --> +<!-- This program is distributed in the hope that it will be useful, --> +<!-- but WITHOUT ANY WARRANTY; without even the implied warranty of --> +<!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --> +<!-- GNU General Public License for more details. --> +<!-- --> +<!-- You should have received a copy of the GNU General Public License --> +<!-- along with this program; if not, write to the --> +<!-- Free Software Foundation, Inc., --> +<!-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> +<!-- --> +<!-- Sipp default 'uas' scenario. --> +<!-- --> + +<scenario name="Basic UAS responder"> + <!-- By adding rrs="true" (Record Route Sets), the route sets --> + <!-- are saved and used for following messages sent. Useful to test --> + <!-- against stateful SIP proxies/B2BUAs. --> + <recv request="INVITE" crlf="true"> + </recv> + + <!-- The '[last_*]' keyword is replaced automatically by the --> + <!-- specified header if it was present in the last message received --> + <!-- (except if it was a retransmission). If the header was not --> + <!-- present or if no message has been received, the '[last_*]' --> + <!-- keyword is discarded, and all bytes until the end of the line --> + <!-- are also discarded. --> + <!-- --> + <!-- If the specified header was present several times in the --> + <!-- message, all occurences are concatenated (CRLF seperated) --> + <!-- to be used in place of the '[last_*]' keyword. --> + + <send> + <![CDATA[ + + SIP/2.0 100 Trying + [last_Via:] + [last_From:] + [last_To:];tag=[call_number] + [last_Call-ID:] + [last_CSeq:] + ]]> + </send> + + <send retrans="500"> + <![CDATA[ + + SIP/2.0 301 Redirection + [last_Via:] + [last_From:] + [last_To:];tag=[call_number] + [last_Call-ID:] + [last_CSeq:] + Contact: <sip:target@192.168.254.254> + Content-Length: 0 + ]]> + </send> + + <recv request="ACK" + optional="false" + rtd="true" + crlf="true"> + </recv> + + <!-- Keep the call open for a while in case the 200 is lost to be --> + <!-- able to retransmit it if we receive the BYE again. --> + <pause milliseconds="4000"/> + + + <!-- 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> + |