<p>Michael Kuron has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.asterisk.org/c/testsuite/+/19464">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">res_pjsip_aoc: Tests for AOC-D and AOC-E<br><br>ASTERISK-21502<br><br>Change-Id: I061a250b477593c4f07441a3d811e9981feb17b2<br>---<br>M configs/manager.conf<br>A tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/sipp/callee.xml<br>A tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/test-config.yaml<br>A tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/sipp/caller.xml<br>A tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/test-config.yaml<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/sipp/callee.xml<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/test-config.yaml<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/sipp/callee.xml<br>A tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/test-config.yaml<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/sipp/caller.xml<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/test-config.yaml<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/extensions.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/pjsip.conf<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/sipp/caller.xml<br>A tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/test-config.yaml<br>A tests/channels/pjsip/aoc/tests.yaml<br>M tests/channels/pjsip/tests.yaml<br>27 files changed, 1,121 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.asterisk.org:29418/testsuite refs/changes/64/19464/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/configs/manager.conf b/configs/manager.conf</span><br><span>index 993c8da..09cf8de 100644</span><br><span>--- a/configs/manager.conf</span><br><span>+++ b/configs/manager.conf</span><br><span>@@ -9,6 +9,6 @@</span><br><span> [user]</span><br><span> secret = mysecret</span><br><span> read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan,test,agi</span><br><span style="color: hsl(0, 100%, 40%);">-write = system,call,agent,user,config,command,reporting,originate,agi,message</span><br><span style="color: hsl(120, 100%, 40%);">+write = system,call,agent,user,config,command,reporting,originate,agi,message,aoc</span><br><span> </span><br><span> #include "manager.users.conf.inc"</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..af317af</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e7065cc</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=callee</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:callee@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/sipp/callee.xml b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/sipp/callee.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..13d8eaa</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/sipp/callee.xml</span><br><span>@@ -0,0 +1,100 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-D on inbound call"></span><br><span style="color: hsl(120, 100%, 40%);">+ <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+ header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+ search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+ check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+ assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INFO"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-d></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>subtotal</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.042</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-d></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: [cseq] INFO</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:user1@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: callee <sip:callee@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To:[$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/test-config.yaml b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..ccab6b4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_callee_in_info/test-config.yaml</span><br><span>@@ -0,0 +1,68 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-D to callee'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-D</span><br><span style="color: hsl(120, 100%, 40%);">+ event, generating a SIP INFO message sent to the</span><br><span style="color: hsl(120, 100%, 40%);">+ callee.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'callee.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'FullyBooted'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'Originate'</span><br><span style="color: hsl(120, 100%, 40%);">+ ActionID: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee'</span><br><span style="color: hsl(120, 100%, 40%);">+ Exten: 'echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ Context: 'default'</span><br><span style="color: hsl(120, 100%, 40%);">+ Priority: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ CallerID: 'echo <echo>'</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'D'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 42</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'SubTotal'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..af317af</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..feb5ba0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=caller</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:caller@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/sipp/caller.xml b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/sipp/caller.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..45c2724</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/sipp/caller.xml</span><br><span>@@ -0,0 +1,100 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-D on outbound call"></span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ INVITE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="100" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="180" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ ACK sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INFO"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-d></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>subtotal</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.042</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-d></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: [cseq] INFO</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ BYE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 2 BYE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/test-config.yaml b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..07bbfff</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_d_to_caller_in_info/test-config.yaml</span><br><span>@@ -0,0 +1,54 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-D to caller'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-D</span><br><span style="color: hsl(120, 100%, 40%);">+ event, generating a SIP INFO message sent to the</span><br><span style="color: hsl(120, 100%, 40%);">+ caller.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'caller.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/caller-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'D'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 42</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'SubTotal'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..af317af</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e7065cc</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=callee</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:callee@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/sipp/callee.xml b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/sipp/callee.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..4b211ee</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/sipp/callee.xml</span><br><span>@@ -0,0 +1,87 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-E on inbound call hung up by us"></span><br><span style="color: hsl(120, 100%, 40%);">+ <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+ header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+ search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+ check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+ assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <pause milliseconds="2000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ BYE sip:[service]@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: callee <sip:callee@[local_ip]:[local_port]>;tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To:[$remote_tag]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: [cseq] BYE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>total</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.314</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/test-config.yaml b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..6b759e7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_200/test-config.yaml</span><br><span>@@ -0,0 +1,68 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-E to callee who hangs up'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-E</span><br><span style="color: hsl(120, 100%, 40%);">+ event, adding to the 200 message sent in reply to</span><br><span style="color: hsl(120, 100%, 40%);">+ the callee's BYE message.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'callee.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'FullyBooted'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'Originate'</span><br><span style="color: hsl(120, 100%, 40%);">+ ActionID: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee'</span><br><span style="color: hsl(120, 100%, 40%);">+ Exten: 'echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ Context: 'default'</span><br><span style="color: hsl(120, 100%, 40%);">+ Priority: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ CallerID: 'echo <echo>'</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'E'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 314</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'Total'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f7b9b0e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,4 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Wait(2)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..e7065cc</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=callee</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[callee]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:callee@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/sipp/callee.xml b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/sipp/callee.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..d50a8c7</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/sipp/callee.xml</span><br><span>@@ -0,0 +1,85 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-E on inbound call hung up by the other side"></span><br><span style="color: hsl(120, 100%, 40%);">+ <Global variables="remote_tag" /></span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="INVITE" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ <!-- Save the from tag. We'll need it when we send our BYE --></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp=".*(;tag=.*)"</span><br><span style="color: hsl(120, 100%, 40%);">+ header="From:"</span><br><span style="color: hsl(120, 100%, 40%);">+ search_in="hdr"</span><br><span style="color: hsl(120, 100%, 40%);">+ check_it="true"</span><br><span style="color: hsl(120, 100%, 40%);">+ assign_to="remote_tag"/></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 180 Ringing</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=user1 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio [media_port] RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="ACK" /></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="BYE"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>total</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.314</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>\ No newline at end of file</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/test-config.yaml b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..3441945</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_callee_in_bye/test-config.yaml</span><br><span>@@ -0,0 +1,79 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-E to callee after caller hangs up'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-E</span><br><span style="color: hsl(120, 100%, 40%);">+ event, adding to the BYE message sent to the callee.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'callee.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'FullyBooted'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'Originate'</span><br><span style="color: hsl(120, 100%, 40%);">+ ActionID: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee'</span><br><span style="color: hsl(120, 100%, 40%);">+ Exten: 'echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ Context: 'default'</span><br><span style="color: hsl(120, 100%, 40%);">+ Priority: '1'</span><br><span style="color: hsl(120, 100%, 40%);">+ CallerID: 'echo <echo>'</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Wait'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'E'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 314</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'Total'</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/callee-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'Hangup'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..af317af</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,3 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..feb5ba0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=caller</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:caller@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/sipp/caller.xml b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/sipp/caller.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..0a22a30</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/sipp/caller.xml</span><br><span>@@ -0,0 +1,86 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-E on outbound call hung up by us"></span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ INVITE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="100" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="180" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ ACK sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <pause milliseconds="2000"/></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ BYE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 2 BYE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Subject: Test</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" crlf="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>total</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.314</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/test-config.yaml b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..6482fd5</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_200/test-config.yaml</span><br><span>@@ -0,0 +1,54 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-E to caller who hangs up'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-E</span><br><span style="color: hsl(120, 100%, 40%);">+ event, adding to the 200 message sent in reply to</span><br><span style="color: hsl(120, 100%, 40%);">+ the caller's BYE message.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'caller.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/caller-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'E'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 314</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'Total'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/extensions.conf b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/extensions.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..f7b9b0e</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/extensions.conf</span><br><span>@@ -0,0 +1,4 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[default]</span><br><span style="color: hsl(120, 100%, 40%);">+exten => echo,1,Answer()</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Wait(2)</span><br><span style="color: hsl(120, 100%, 40%);">+same => n,Echo()</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/pjsip.conf b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/pjsip.conf</span><br><span>new file mode 100644</span><br><span>index 0000000..feb5ba0</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/configs/ast1/pjsip.conf</span><br><span>@@ -0,0 +1,25 @@</span><br><span style="color: hsl(120, 100%, 40%);">+[system]</span><br><span style="color: hsl(120, 100%, 40%);">+type=system</span><br><span style="color: hsl(120, 100%, 40%);">+timer_t1=100</span><br><span style="color: hsl(120, 100%, 40%);">+timer_b=6400</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[local-transport-udp]</span><br><span style="color: hsl(120, 100%, 40%);">+type=transport</span><br><span style="color: hsl(120, 100%, 40%);">+bind=127.0.0.1</span><br><span style="color: hsl(120, 100%, 40%);">+protocol=udp</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=endpoint</span><br><span style="color: hsl(120, 100%, 40%);">+aors=caller</span><br><span style="color: hsl(120, 100%, 40%);">+context=default</span><br><span style="color: hsl(120, 100%, 40%);">+allow=!all,ulaw</span><br><span style="color: hsl(120, 100%, 40%);">+rewrite_contact=yes</span><br><span style="color: hsl(120, 100%, 40%);">+direct_media=no</span><br><span style="color: hsl(120, 100%, 40%);">+send_aoc=yes</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+[caller]</span><br><span style="color: hsl(120, 100%, 40%);">+type=aor</span><br><span style="color: hsl(120, 100%, 40%);">+max_contacts=1</span><br><span style="color: hsl(120, 100%, 40%);">+minimum_expiration=5</span><br><span style="color: hsl(120, 100%, 40%);">+default_expiration=30</span><br><span style="color: hsl(120, 100%, 40%);">+contact=sip:caller@127.0.0.1:5062</span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/sipp/caller.xml b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/sipp/caller.xml</span><br><span>new file mode 100644</span><br><span>index 0000000..36b65b4</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/sipp/caller.xml</span><br><span>@@ -0,0 +1,82 @@</span><br><span style="color: hsl(120, 100%, 40%);">+<?xml version="1.0" encoding="ISO-8859-1" ?></span><br><span style="color: hsl(120, 100%, 40%);">+<!DOCTYPE scenario SYSTEM "sipp.dtd"></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+<scenario name="Receive AOC-E on outbound call hung up by the other side"></span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ INVITE sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]></span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 INVITE</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Type: application/sdp</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: [len]</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ v=0</span><br><span style="color: hsl(120, 100%, 40%);">+ o=phoneA 53655765 2353687637 IN IP[local_ip_type] [local_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ s=-</span><br><span style="color: hsl(120, 100%, 40%);">+ c=IN IP[media_ip_type] [media_ip]</span><br><span style="color: hsl(120, 100%, 40%);">+ t=0 0</span><br><span style="color: hsl(120, 100%, 40%);">+ m=audio 6000 RTP/AVP 0</span><br><span style="color: hsl(120, 100%, 40%);">+ a=rtpmap:0 PCMU/8000</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="100" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="180" optional="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv response="200" rtd="true"></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <send></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ ACK sip:echo@[remote_ip]:[remote_port] SIP/2.0</span><br><span style="color: hsl(120, 100%, 40%);">+ Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]</span><br><span style="color: hsl(120, 100%, 40%);">+ From: caller <sip:caller@[local_ip]:[local_port]>;tag=[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ To: echo <sip:echo@[remote_ip]:[remote_port]>[peer_tag_param]</span><br><span style="color: hsl(120, 100%, 40%);">+ Call-ID: [call_id]</span><br><span style="color: hsl(120, 100%, 40%);">+ CSeq: 1 ACK</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:caller@[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Max-Forwards: 70</span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ <recv request="BYE"></span><br><span style="color: hsl(120, 100%, 40%);">+ <action></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="application/vnd.etsi\.aoc\+xml" header="Content-Type:" search_in="hdr" check_it="true" assign_to="_"/></span><br><span style="color: hsl(120, 100%, 40%);">+ <ereg regexp="<\?xml version="1\.0" encoding="UTF-8"\?></span><br><span style="color: hsl(120, 100%, 40%);">+<aoc xmlns="http://uri\.etsi\.org/ngn/params/xml/simservs/aoc"></span><br><span style="color: hsl(120, 100%, 40%);">+ <aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+ <charging-info>total</charging-info></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ <recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-id>EUR</currency-id></span><br><span style="color: hsl(120, 100%, 40%);">+ <currency-amount>0\.314</currency-amount></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-currency-units></span><br><span style="color: hsl(120, 100%, 40%);">+ </recorded-charges></span><br><span style="color: hsl(120, 100%, 40%);">+ </aoc-e></span><br><span style="color: hsl(120, 100%, 40%);">+</aoc>" check_it="true" search_in="body" assign_to="_" /></span><br><span style="color: hsl(120, 100%, 40%);">+ </action></span><br><span style="color: hsl(120, 100%, 40%);">+ </recv></span><br><span style="color: hsl(120, 100%, 40%);">+ </span><br><span style="color: hsl(120, 100%, 40%);">+ <send retrans="500"></span><br><span style="color: hsl(120, 100%, 40%);">+ <![CDATA[</span><br><span style="color: hsl(120, 100%, 40%);">+ SIP/2.0 200 OK</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Via:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_From:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_To:];tag=[pid]SIPpTag01[call_number]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_Call-ID:]</span><br><span style="color: hsl(120, 100%, 40%);">+ [last_CSeq:]</span><br><span style="color: hsl(120, 100%, 40%);">+ Contact: <sip:[local_ip]:[local_port];transport=[transport]></span><br><span style="color: hsl(120, 100%, 40%);">+ Content-Length: 0</span><br><span style="color: hsl(120, 100%, 40%);">+ ]]></span><br><span style="color: hsl(120, 100%, 40%);">+ </send></span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</scenario></span><br><span>diff --git a/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/test-config.yaml b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/test-config.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..006bf3b</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/aoc_e_to_caller_in_bye/test-config.yaml</span><br><span>@@ -0,0 +1,67 @@</span><br><span style="color: hsl(120, 100%, 40%);">+info:</span><br><span style="color: hsl(120, 100%, 40%);">+ summary: 'Test AOC-E to caller after callee hangs up'</span><br><span style="color: hsl(120, 100%, 40%);">+ description: |</span><br><span style="color: hsl(120, 100%, 40%);">+ This uses an AOCMessage AMI to generate an AOC-E</span><br><span style="color: hsl(120, 100%, 40%);">+ event, adding to the BYE message sent to the caller'.</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ test-object:</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: test-object-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: sipp.SIPpTestCase</span><br><span style="color: hsl(120, 100%, 40%);">+ modules:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ config-section: ami-config</span><br><span style="color: hsl(120, 100%, 40%);">+ typename: 'pluggable_modules.EventActionModule'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+test-object-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ memcheck-delay-stop: 7</span><br><span style="color: hsl(120, 100%, 40%);">+ fail-on-any: True</span><br><span style="color: hsl(120, 100%, 40%);">+ test-iterations:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ scenarios:</span><br><span style="color: hsl(120, 100%, 40%);">+ - { 'key-args': { 'scenario': 'caller.xml', '-i': '127.0.0.1', '-p': '5062' } }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ami-config:</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/caller-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Wait'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'AOCMessage'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+ MsgType: 'E'</span><br><span style="color: hsl(120, 100%, 40%);">+ ChargeType: 'Currency'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyAmount: 314</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyName: 'EUR'</span><br><span style="color: hsl(120, 100%, 40%);">+ CurrencyMultiplier: 'OneThousandth'</span><br><span style="color: hsl(120, 100%, 40%);">+ TotalType: 'Total'</span><br><span style="color: hsl(120, 100%, 40%);">+ expected:</span><br><span style="color: hsl(120, 100%, 40%);">+ Response: 'Success'</span><br><span style="color: hsl(120, 100%, 40%);">+ -</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-events:</span><br><span style="color: hsl(120, 100%, 40%);">+ type: 'headermatch'</span><br><span style="color: hsl(120, 100%, 40%);">+ conditions:</span><br><span style="color: hsl(120, 100%, 40%);">+ match:</span><br><span style="color: hsl(120, 100%, 40%);">+ Event: 'Newexten'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: 'PJSIP/caller-.*'</span><br><span style="color: hsl(120, 100%, 40%);">+ Application: 'Echo'</span><br><span style="color: hsl(120, 100%, 40%);">+ ami-actions:</span><br><span style="color: hsl(120, 100%, 40%);">+ action:</span><br><span style="color: hsl(120, 100%, 40%);">+ Action: 'Hangup'</span><br><span style="color: hsl(120, 100%, 40%);">+ Channel: '{channel}'</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+properties:</span><br><span style="color: hsl(120, 100%, 40%);">+ dependencies:</span><br><span style="color: hsl(120, 100%, 40%);">+ - sipp :</span><br><span style="color: hsl(120, 100%, 40%);">+ version : 'v3.0'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'chan_pjsip'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'res_pjsip_aoc'</span><br><span style="color: hsl(120, 100%, 40%);">+ - asterisk : 'app_dial'</span><br><span style="color: hsl(120, 100%, 40%);">+ tags:</span><br><span style="color: hsl(120, 100%, 40%);">+ - PJSIP</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/tests/channels/pjsip/aoc/tests.yaml b/tests/channels/pjsip/aoc/tests.yaml</span><br><span>new file mode 100644</span><br><span>index 0000000..136a141</span><br><span>--- /dev/null</span><br><span>+++ b/tests/channels/pjsip/aoc/tests.yaml</span><br><span>@@ -0,0 +1,8 @@</span><br><span style="color: hsl(120, 100%, 40%);">+# Enter tests here in the order they should be considered for execution:</span><br><span style="color: hsl(120, 100%, 40%);">+tests:</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_d_to_callee_in_info'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_d_to_caller_in_info'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_e_to_callee_in_200'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_e_to_callee_in_bye'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_e_to_caller_in_200'</span><br><span style="color: hsl(120, 100%, 40%);">+ - test: 'aoc_e_to_caller_in_bye'</span><br><span>diff --git a/tests/channels/pjsip/tests.yaml b/tests/channels/pjsip/tests.yaml</span><br><span>index 858e063..2b8be77 100644</span><br><span>--- a/tests/channels/pjsip/tests.yaml</span><br><span>+++ b/tests/channels/pjsip/tests.yaml</span><br><span>@@ -2,6 +2,7 @@</span><br><span> tests:</span><br><span> - dir: 'allow_sending_180_after_183'</span><br><span> - dir: 'ami'</span><br><span style="color: hsl(120, 100%, 40%);">+ - dir: 'aoc'</span><br><span> - dir: 'auth'</span><br><span> - dir: 'basic_calls'</span><br><span> - dir: 'config_wizard'</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/c/testsuite/+/19464">change 19464</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/testsuite/+/19464"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: testsuite </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I061a250b477593c4f07441a3d811e9981feb17b2 </div>
<div style="display:none"> Gerrit-Change-Number: 19464 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Michael Kuron <m.kuron@gmx.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>