[Asterisk-code-review] geolocation: Add basic incoming testsuite tests (testsuite[16])

Friendly Automation asteriskteam at digium.com
Thu Sep 22 08:44:29 CDT 2022


Friendly Automation has submitted this change. ( https://gerrit.asterisk.org/c/testsuite/+/19263 )

Change subject: geolocation:  Add basic incoming testsuite tests
......................................................................

geolocation:  Add basic incoming testsuite tests

Change-Id: I1116865b558c566c6a0974096306192cf4f25932
---
A tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/extensions.conf
A tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/geolocation.conf
A tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip.conf
A tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip_wizard.conf
A tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_ca.xml
A tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_gml.xml
A tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_uri.xml
A tests/channels/pjsip/geolocation/incoming/basic/test-config.yaml
A tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/extensions.conf
A tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/geolocation.conf
A tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip.conf
A tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip_wizard.conf
A tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite.xml
A tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_ca.xml
A tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_gml.xml
A tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_uri.xml
A tests/channels/pjsip/geolocation/incoming/profile_precedence/test-config.yaml
A tests/channels/pjsip/geolocation/incoming/tests.yaml
A tests/channels/pjsip/geolocation/tests.yaml
M tests/channels/pjsip/tests.yaml
20 files changed, 1,056 insertions(+), 0 deletions(-)

Approvals:
  Joshua Colp: Looks good to me, but someone else must approve
  George Joseph: Looks good to me, approved
  Michael Bradeen: Looks good to me, but someone else must approve
  Friendly Automation: Approved for Submit




diff --git a/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/extensions.conf b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/extensions.conf
new file mode 100644
index 0000000..8d80158
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/extensions.conf
@@ -0,0 +1,17 @@
+
+[default]
+exten = bob,1,NoOp(Incoming call to ${EXTEN})
+same  = n,Set(mycountry=US)
+same  = n,Set(GEOLOC_PROFILE(location_info_refinement,r)=lang=en-GB,country=$\{mycountry})
+same  = n,UserEvent(Geoloc,LocInfo: "${GEOLOC_PROFILE(effective_location)}")
+same  = n,Busy(0)
+
+exten = charlie,1,NoOp(Incoming call to ${EXTEN})
+same  = n,Set(mycountry=US)
+same  = n,Set(GEOLOC_PROFILE(location_info_refinement,r)=verticalAxis=99.99)
+same  = n,UserEvent(Geoloc,LocInfo: "${GEOLOC_PROFILE(effective_location)}")
+same  = n,Busy(0)
+
+exten = david,1,NoOp(Incoming call to ${EXTEN})
+same  = n,UserEvent(Geoloc,LocInfo: "${GEOLOC_PROFILE(effective_location)}", GeolocRouting: "${GEOLOC_PROFILE(allow_routing_use)}", GeolocSrc: "${GEOLOC_PROFILE(location_source)}")
+same  = n,Busy(0)
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/geolocation.conf b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/geolocation.conf
new file mode 100644
index 0000000..cab5f98
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/geolocation.conf
@@ -0,0 +1 @@
+; Nothing to see here.
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip.conf b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..b992a58
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip.conf
@@ -0,0 +1,10 @@
+[system]
+type=system
+timer_t1=100
+timer_b=6400
+
+[ipv4-tcp]
+type=transport
+protocol=tcp
+bind=127.0.0.1:5060
+symmetric_transport = yes
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip_wizard.conf b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip_wizard.conf
new file mode 100644
index 0000000..eff5133
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/configs/ast1/pjsip_wizard.conf
@@ -0,0 +1,21 @@
+[common](!)
+type = wizard
+has_hint = no
+accepts_registrations = no
+sends_registrations = no
+accepts_auth = no
+sends_auth = no
+aor/max_contacts = 1
+aor/qualify_frequency = 0
+endpoint/identify_by = ip,auth_username,username
+endpoint/context = default
+endpoint/transport = ipv4-tcp
+endpoint/ice_support = false
+endpoint/allow = !all,ulaw
+endpoint/direct_media = false
+
+[alice](common)
+remote_hosts = 127.0.0.2:5060
+endpoint/callerid = Alice <alice>
+endpoint/geoloc_incoming_call_profile = <discard_config>
+
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_ca.xml b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_ca.xml
new file mode 100644
index 0000000..45252f4
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_ca.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+<scenario name="INVITE with Civic Address PIDF-LO">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port]>
+    Subject: Test
+    Geolocation: <cid:target123 at atlanta.example.com>
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: multipart/mixed;boundary=boundary
+    Content-Length: [len]
+
+    --boundary
+    Content-Type: application/pidf+xml
+    Content-ID: <target123 at atlanta.example.com>
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <presence entity="pres:ness at example.com"
+      xmlns="urn:ietf:params:xml:ns:pidf"
+      xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
+      xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+      xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
+      xmlns:gml="http://www.opengis.net/gml"
+      xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
+      xmlns:con="urn:ietf:params:xml:ns:geopriv:conf"
+      xmlns:gs="http://www.opengis.net/pidflo/1.0">
+      <dm:person id="civicaddr">
+        <gp:geopriv>
+        <gp:location-info>
+          <ca:civicAddress xml:lang="en-AU">
+            <ca:country>AU</ca:country>
+            <ca:A1>NSW</ca:A1>
+            <ca:A3>Wollongong</ca:A3>
+            <ca:A4>North Wollongong</ca:A4>
+            <ca:RD>Flinders</ca:RD>
+            <ca:STS>Street</ca:STS>
+            <ca:RDBR>Campbell Street</ca:RDBR>
+            <ca:LMK>Gilligan's Island</ca:LMK>
+            <ca:LOC>Corner</ca:LOC>
+            <ca:NAM> Video Rental Store </ca:NAM>
+            <ca:PC>2500</ca:PC>
+            <ca:ROOM> Westerns and Classics </ca:ROOM>
+            <ca:PLC>store</ca:PLC>
+            <ca:POBOX>Private Box 15</ca:POBOX>
+          </ca:civicAddress>
+          <con:confidence pdf="normal">77</con:confidence>
+        </gp:location-info>
+        <gp:usage-rules>
+          <gp:retransmission-allowed>yes</gp:retransmission-allowed>
+          <gp:ruleset-preference>https:/www/more.com</gp:ruleset-preference>
+          <gp:retention-expires>2007-06-22T20:57:29Z</gp:retention-expires>
+        </gp:usage-rules>
+        </gp:geopriv>
+        <dm:timestamp>2007-06-22T20:57:29Z</dm:timestamp>
+      </dm:person>
+    </presence>
+    --boundary
+    Content-Type: application/sdp
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0
+    a=rtpmap:0 PCMU/8000
+    a=ptime:20
+    a=sendrecv
+
+    --boundary--
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_gml.xml b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_gml.xml
new file mode 100644
index 0000000..acfd08d
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_gml.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+<scenario name="INVITE with Civic Address PIDF-LO">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port]>
+    Subject: Test
+    Geolocation: <cid:target123 at atlanta.example.com>
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: multipart/mixed;boundary=boundary
+    Content-Length: [len]
+
+    --boundary
+    Content-Type: application/pidf+xml
+    Content-ID: <target123 at atlanta.example.com>
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <presence xmlns="urn:ietf:params:xml:ns:pidf"
+    xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
+    xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
+    xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
+    xmlns:gml="http://www.opengis.net/gml"
+    xmlns:gs="http://www.opengis.net/pidflo/1.0"
+    xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+    entity="pres:alice at atlanta.example.com">
+        <dm:device id="target123-1">
+            <gp:geopriv>
+                <gp:location-info>
+                    <gs:Ellipsoid srsName="urn:ogc:def:crs:EPSG::4979">
+                        <gs:orientation uom="urn:ogc:def:uom:EPSG::9102">90</gs:orientation>
+                        <gml:pos>42.5463 -73.2512 26.3</gml:pos>
+                        <gs:semiMajorAxis uom="urn:ogc:def:uom:EPSG::9001">7.7156</gs:semiMajorAxis>
+                        <gs:semiMinorAxis uom="urn:ogc:def:uom:EPSG::9001">3.31</gs:semiMinorAxis>
+                        <gs:verticalAxis uom="urn:ogc:def:uom:EPSG::9001">28.7</gs:verticalAxis>
+                    </gs:Ellipsoid>
+                </gp:location-info>
+                <gp:usage-rules>
+                    <gbp:retransmission-allowed>no
+                    </gbp:retransmission-allowed>
+                    <gbp:retention-expiry>2010-11-14T20:00:00Z
+                    </gbp:retention-expiry>
+                </gp:usage-rules>
+                <gp:method>802.11</gp:method>
+            </gp:geopriv>
+            <dm:deviceID>mac:1234567890ab</dm:deviceID>
+            <dm:timestamp>2010-11-04T20:57:29Z</dm:timestamp>
+        </dm:device>
+    </presence>
+    --boundary
+    Content-Type: application/sdp
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0
+    a=rtpmap:0 PCMU/8000
+    a=ptime:20
+    a=sendrecv
+
+    --boundary--
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_uri.xml b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_uri.xml
new file mode 100644
index 0000000..c9b0b9c
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/sipp/invite_uri.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+
+<scenario name="INVITE with Geolocation URI">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]>
+    Subject: Test
+    Geolocation: <http://something.com;loc-src=www.asterisk.org>
+    Geolocation-Routing: yes
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: application/sdp
+    Content-Length: [len]
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0 101
+    a=rtpmap:0 PCMU/8000
+    a=rtpmap:101 telephone-event/8000
+    a=fmtp:101 0-16
+    a=ptime:20
+    a=sendrecv
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/basic/test-config.yaml b/tests/channels/pjsip/geolocation/incoming/basic/test-config.yaml
new file mode 100644
index 0000000..9117fc4
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/basic/test-config.yaml
@@ -0,0 +1,139 @@
+testinfo:
+    summary: 'Test basic civicAddress, GML and URI parsing.'
+
+    description: |
+        Test civicAddress, GML and URI parsing, the GEOLOC_PROFILE dialplan
+        function, and variable substitution.
+
+        - Sipp sends 3 parallel invites to Asterisk, one for each location
+        info type.  Bob gets civicAddress, Charlie gets GML and David gets URI.
+
+        - The dialplan sets some local variables.
+
+        - The dialplan uses the GEOLOC_PROFILE function to alter fields in
+        the civicAddress and GML documents with the escaped names of the
+        variables just set.
+
+        - The GEOLOC_PROFILE function re-resolves the effective_location
+        which should now contain the values of the variables set earlier.
+
+        - The dialplan sends UserEvents with the new effective_location
+        which we test below.
+
+        - The URI test, doesn't test variable substitution but does test
+        the value of the GeolocationRouting header.
+
+properties:
+    dependencies:
+        - app : 'sipp'
+        - asterisk : 'app_userevent'
+        - asterisk : 'res_geolocation'
+        - asterisk : 'res_pjsip'
+        - asterisk : 'res_pjsip_config_wizard'
+        - asterisk : 'res_pjsip_geolocation'
+    tags:
+        - pjsip
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: sipp.SIPpTestCase
+    modules:
+        -
+            config-section: ami-config
+            typename: 'pluggable_modules.EventActionModule'
+
+test-object-config:
+    reactor-timeout: 15
+    memcheck-delay-stop: 7
+    stop-after-scenarios: false
+    fail-on-any: false
+    test-iterations:
+        -
+             scenarios:
+                - { 'key-args': { 'scenario':'invite_ca.xml', '-i':'127.0.0.2',
+                        '-p':'5060', '-t': 't1', '-s':'alice' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'bob']}
+
+                - { 'key-args': { 'scenario':'invite_gml.xml', '-i':'127.0.0.2',
+                        '-p':'5061', '-t': 't1', '-s':'alice' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'charlie']}
+
+                - { 'key-args': { 'scenario':'invite_uri.xml', '-i':'127.0.0.2',
+                        '-p':'5062', '-t': 't1', '-s':'alice' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'david']}
+
+ami-config:
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    Exten: 'bob'
+            requirements:
+                match:
+#                   In the original request, the language was en-AU
+#                   and the country was AU.
+#                   The GEOLOC_PROFILE dialplan app should have changed
+#                   them to en-GB and US respectively.
+                    LocInfo: "lang=en-GB,country=US,A1=NSW,A3=Wollongong,A4=North Wollongong,RD=Flinders,STS=Street,RDBR=Campbell Street,LMK=Gilligan's Island,LOC=Corner,NAM=Video Rental Store,PC=2500,ROOM=Westerns and Classics,PLC=store,POBOX=Private Box 15"
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    Exten: 'bob'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    Exten: 'charlie'
+            requirements:
+                match:
+#                   In the original request, the verticalAxis was 28.7.
+#                   The GEOLOC_PROFILE dialplan app should have changed
+#                   it to 99.99.
+                    LocInfo: "shape=Ellipsoid,crs=3d,orientation=90 radians,pos=42.5463 -73.2512 26.3,semiMajorAxis=7.7156,semiMinorAxis=3.31,verticalAxis=99.99"
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    Exten: 'charlie'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    Exten: 'david'
+            requirements:
+                match:
+#                   We don't actually change anything fir URI
+#                   We just test for the URI, GeolocationRouting header,
+#                   and the "loc-src" URI parameter.
+                    LocInfo: "URI=http://something.com;loc-src=www.asterisk.org"
+                    GeolocRouting: "yes"
+                    GeolocSrc: "www.asterisk.org"
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    Exten: 'david'
+            count: '1'
+        stop_test:
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/extensions.conf b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/extensions.conf
new file mode 100644
index 0000000..ff3a23f
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/extensions.conf
@@ -0,0 +1,5 @@
+[default]
+exten = alice,1,NoOp(Incoming call from ${CALLERID(all)})
+same  = n,UserEvent(Geoloc,LocInfo: "${GEOLOC_PROFILE(effective_location)}")
+same  = n,UserEvent(Geoloc,LocInfo: "${GEOLOC_PROFILE(effective_location,r)}")
+same  = n,Busy(0)
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/geolocation.conf b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/geolocation.conf
new file mode 100644
index 0000000..e36296f
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/geolocation.conf
@@ -0,0 +1,30 @@
+[charlie-loc]
+type = location
+format = URI
+location_info = URI=http://something.com/${CALLERID(num)}
+
+[charlie]
+type = profile
+profile_precedence = prefer_config
+location_reference = charlie-loc
+
+[david-loc]
+type = location
+format = URI
+location_info = URI=http://something.com/${CALLERID(num)}
+
+[david]
+type = profile
+profile_precedence = prefer_incoming
+location_reference = david-loc
+
+[eddie-loc]
+type = location
+format = URI
+location_info = URI=http://something.com/${CALLERID(num)}
+
+[eddie]
+type = profile
+profile_precedence = prefer_incoming
+location_reference = eddie-loc
+
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip.conf b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip.conf
new file mode 100644
index 0000000..655424b
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip.conf
@@ -0,0 +1,11 @@
+[system]
+type=system
+timer_t1=100
+timer_b=6400
+
+[ipv4-tcp]
+type=transport
+protocol=tcp
+bind=127.0.0.1:5060
+symmetric_transport = yes
+
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip_wizard.conf b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip_wizard.conf
new file mode 100644
index 0000000..005d005
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/configs/ast1/pjsip_wizard.conf
@@ -0,0 +1,36 @@
+
+[common](!)
+type = wizard
+has_hint = no
+accepts_registrations = no
+sends_registrations = no
+accepts_auth = no
+sends_auth = no
+aor/max_contacts = 1
+aor/qualify_frequency = 0
+endpoint/identify_by = ip,auth_username,username
+endpoint/context = default
+endpoint/transport = ipv4-tcp
+endpoint/ice_support = false
+endpoint/allow = !all,ulaw
+endpoint/direct_media = false
+
+[bob](common)
+remote_hosts = 127.0.0.2:5060
+endpoint/callerid = Bob <bob>
+
+[charlie](common)
+remote_hosts = 127.0.0.3:5060
+endpoint/callerid = Charlie <charlie>
+endpoint/geoloc_incoming_call_profile = charlie
+
+[david](common)
+remote_hosts = 127.0.0.4:5060
+endpoint/callerid = David <david>
+endpoint/geoloc_incoming_call_profile = david
+
+[eddie](common)
+remote_hosts = 127.0.0.5:5060
+endpoint/callerid = Eddie <eddie>
+endpoint/geoloc_incoming_call_profile = eddie
+
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite.xml b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite.xml
new file mode 100644
index 0000000..b66838d
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+
+<scenario name="INVITE with Geolocation URI">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]>
+    Subject: Test
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: application/sdp
+    Content-Length: [len]
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0 101
+    a=rtpmap:0 PCMU/8000
+    a=rtpmap:101 telephone-event/8000
+    a=fmtp:101 0-16
+    a=ptime:20
+    a=sendrecv
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_ca.xml b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_ca.xml
new file mode 100644
index 0000000..45252f4
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_ca.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+<scenario name="INVITE with Civic Address PIDF-LO">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port]>
+    Subject: Test
+    Geolocation: <cid:target123 at atlanta.example.com>
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: multipart/mixed;boundary=boundary
+    Content-Length: [len]
+
+    --boundary
+    Content-Type: application/pidf+xml
+    Content-ID: <target123 at atlanta.example.com>
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <presence entity="pres:ness at example.com"
+      xmlns="urn:ietf:params:xml:ns:pidf"
+      xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
+      xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+      xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
+      xmlns:gml="http://www.opengis.net/gml"
+      xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
+      xmlns:con="urn:ietf:params:xml:ns:geopriv:conf"
+      xmlns:gs="http://www.opengis.net/pidflo/1.0">
+      <dm:person id="civicaddr">
+        <gp:geopriv>
+        <gp:location-info>
+          <ca:civicAddress xml:lang="en-AU">
+            <ca:country>AU</ca:country>
+            <ca:A1>NSW</ca:A1>
+            <ca:A3>Wollongong</ca:A3>
+            <ca:A4>North Wollongong</ca:A4>
+            <ca:RD>Flinders</ca:RD>
+            <ca:STS>Street</ca:STS>
+            <ca:RDBR>Campbell Street</ca:RDBR>
+            <ca:LMK>Gilligan's Island</ca:LMK>
+            <ca:LOC>Corner</ca:LOC>
+            <ca:NAM> Video Rental Store </ca:NAM>
+            <ca:PC>2500</ca:PC>
+            <ca:ROOM> Westerns and Classics </ca:ROOM>
+            <ca:PLC>store</ca:PLC>
+            <ca:POBOX>Private Box 15</ca:POBOX>
+          </ca:civicAddress>
+          <con:confidence pdf="normal">77</con:confidence>
+        </gp:location-info>
+        <gp:usage-rules>
+          <gp:retransmission-allowed>yes</gp:retransmission-allowed>
+          <gp:ruleset-preference>https:/www/more.com</gp:ruleset-preference>
+          <gp:retention-expires>2007-06-22T20:57:29Z</gp:retention-expires>
+        </gp:usage-rules>
+        </gp:geopriv>
+        <dm:timestamp>2007-06-22T20:57:29Z</dm:timestamp>
+      </dm:person>
+    </presence>
+    --boundary
+    Content-Type: application/sdp
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0
+    a=rtpmap:0 PCMU/8000
+    a=ptime:20
+    a=sendrecv
+
+    --boundary--
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_gml.xml b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_gml.xml
new file mode 100644
index 0000000..acfd08d
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_gml.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+<scenario name="INVITE with Civic Address PIDF-LO">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port]>
+    Subject: Test
+    Geolocation: <cid:target123 at atlanta.example.com>
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: multipart/mixed;boundary=boundary
+    Content-Length: [len]
+
+    --boundary
+    Content-Type: application/pidf+xml
+    Content-ID: <target123 at atlanta.example.com>
+
+    <?xml version="1.0" encoding="UTF-8"?>
+    <presence xmlns="urn:ietf:params:xml:ns:pidf"
+    xmlns:gp="urn:ietf:params:xml:ns:pidf:geopriv10"
+    xmlns:gbp="urn:ietf:params:xml:ns:pidf:geopriv10:basicPolicy"
+    xmlns:cl="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr"
+    xmlns:gml="http://www.opengis.net/gml"
+    xmlns:gs="http://www.opengis.net/pidflo/1.0"
+    xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model"
+    entity="pres:alice at atlanta.example.com">
+        <dm:device id="target123-1">
+            <gp:geopriv>
+                <gp:location-info>
+                    <gs:Ellipsoid srsName="urn:ogc:def:crs:EPSG::4979">
+                        <gs:orientation uom="urn:ogc:def:uom:EPSG::9102">90</gs:orientation>
+                        <gml:pos>42.5463 -73.2512 26.3</gml:pos>
+                        <gs:semiMajorAxis uom="urn:ogc:def:uom:EPSG::9001">7.7156</gs:semiMajorAxis>
+                        <gs:semiMinorAxis uom="urn:ogc:def:uom:EPSG::9001">3.31</gs:semiMinorAxis>
+                        <gs:verticalAxis uom="urn:ogc:def:uom:EPSG::9001">28.7</gs:verticalAxis>
+                    </gs:Ellipsoid>
+                </gp:location-info>
+                <gp:usage-rules>
+                    <gbp:retransmission-allowed>no
+                    </gbp:retransmission-allowed>
+                    <gbp:retention-expiry>2010-11-14T20:00:00Z
+                    </gbp:retention-expiry>
+                </gp:usage-rules>
+                <gp:method>802.11</gp:method>
+            </gp:geopriv>
+            <dm:deviceID>mac:1234567890ab</dm:deviceID>
+            <dm:timestamp>2010-11-04T20:57:29Z</dm:timestamp>
+        </dm:device>
+    </presence>
+    --boundary
+    Content-Type: application/sdp
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0
+    a=rtpmap:0 PCMU/8000
+    a=ptime:20
+    a=sendrecv
+
+    --boundary--
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_uri.xml b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_uri.xml
new file mode 100644
index 0000000..c9b0b9c
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/sipp/invite_uri.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE scenario SYSTEM "sipp.dtd" [
+<!ENTITY geopriv SYSTEM "geopriv.xml">
+]>
+
+<scenario name="INVITE with Geolocation URI">
+
+    <send retrans="500">
+    <![CDATA[
+
+    INVITE sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
+    From: <sip:[service]@[local_ip]:[local_port]>;tag=[call_number]
+    To: <sip:[dest]@[remote_ip]:[remote_port]>
+    Call-ID: [call_id]
+    CSeq: 1 INVITE
+    Max-Forwards: 70
+    Contact: <sip:[service]@[local_ip]:[local_port];transport=[transport]>
+    Subject: Test
+    Geolocation: <http://something.com;loc-src=www.asterisk.org>
+    Geolocation-Routing: yes
+    Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, PRACK, REGISTER, REFER, MESSAGE
+    User-Agent: Test
+    Content-Type: application/sdp
+    Content-Length: [len]
+
+    v=0
+    o=- 20110306451 20110306451 IN IP[media_ip_type] [media_ip]
+    s=-
+    c=IN IP[media_ip_type] [media_ip]
+    t=0 0
+    m=audio [media_port] RTP/AVP 0 101
+    a=rtpmap:0 PCMU/8000
+    a=rtpmap:101 telephone-event/8000
+    a=fmtp:101 0-16
+    a=ptime:20
+    a=sendrecv
+    ]]>
+
+    </send>
+
+    <recv response="100" optional="true">
+    </recv>
+
+    <recv response="486" rtd="true"/>
+
+    <send>
+    <![CDATA[
+
+    ACK sip:[dest]@[remote_ip]:[remote_port] SIP/2.0
+    [last_Via:]
+    [last_From:]
+    [last_To:]
+    [last_Call-ID:]
+    CSeq: 1 ACK
+    [last_Contact:]
+    [last_Allow:]
+    Content-Length: 0
+
+    ]]>
+    </send>
+
+</scenario>
diff --git a/tests/channels/pjsip/geolocation/incoming/profile_precedence/test-config.yaml b/tests/channels/pjsip/geolocation/incoming/profile_precedence/test-config.yaml
new file mode 100644
index 0000000..893a205
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/profile_precedence/test-config.yaml
@@ -0,0 +1,164 @@
+testinfo:
+    summary: 'Test profile_precedence on incoming requests.'
+
+    description: |
+        Test profile_precedence on incoming requests.
+
+        - Sipp sends 4 parallel invites to Asterisk for various
+        profile precedences.
+
+        - Bob has no geolocation profile at all so his info gets dropped.
+
+        - Charlie has prefer_config set so the incoming info is dropped
+        and the configured info is used.
+
+        - David has prefer_incoming set to the configured info is dropped
+        and the incoming info is used.
+
+        - Eddie also has prefer_incoming set but he's not sending any info
+        in the invite so the configured info gets used.
+
+properties:
+    dependencies:
+        - app : 'sipp'
+        - asterisk : 'app_userevent'
+        - asterisk : 'res_geolocation'
+        - asterisk : 'res_pjsip'
+        - asterisk : 'res_pjsip_config_wizard'
+        - asterisk : 'res_pjsip_geolocation'
+    tags:
+        - pjsip
+
+test-modules:
+    test-object:
+        config-section: test-object-config
+        typename: sipp.SIPpTestCase
+    modules:
+        -
+            config-section: ami-config
+            typename: 'pluggable_modules.EventActionModule'
+
+test-object-config:
+    reactor-timeout: 15
+    memcheck-delay-stop: 7
+    stop-after-scenarios: false
+    fail-on-any: false
+    test-iterations:
+        -
+             scenarios:
+                - { 'key-args': { 'scenario':'invite_ca.xml', '-i':'127.0.0.2',
+                        '-p':'5060', '-t': 't1', '-s':'bob' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'alice']}
+                - { 'key-args': { 'scenario':'invite_uri.xml', '-i':'127.0.0.3',
+                        '-p':'5060', '-t': 't1', '-s':'charlie' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'alice']}
+                - { 'key-args': { 'scenario':'invite_gml.xml', '-i':'127.0.0.4',
+                        '-p':'5060', '-t': 't1', '-s':'david' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'alice']}
+                - { 'key-args': { 'scenario':'invite.xml', '-i':'127.0.0.5',
+                        '-p':'5060', '-t': 't1', '-s':'eddie' },
+                  'ordered-args': [ '-bind_local', '-key', 'dest', 'alice']}
+
+ami-config:
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'bob'
+                    Exten: 'alice'
+            requirements:
+                match:
+#                   Bob has no geoloc profile so there should be nothing here.
+                    LocInfo: "^$"
+            count: '2'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    CallerIDNum: 'bob'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'charlie'
+                    Exten: 'alice'
+                    LocInfo: 'URI=http://something.com/\${CALLERID\(num\)}'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'charlie'
+                    Exten: 'alice'
+                    LocInfo: 'URI=http://something.com/charlie'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    CallerIDNum: 'charlie'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'david'
+                    Exten: 'alice'
+                    LocInfo: "shape=Ellipsoid,crs=3d,orientation=90 radians,pos=42.5463 -73.2512 26.3,semiMajorAxis=7.7156,semiMinorAxis=3.31,verticalAxis=28.7"
+            count: '2'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    CallerIDNum: 'david'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'eddie'
+                    Exten: 'alice'
+                    LocInfo: 'URI=http://something.com/\${CALLERID\(num\)}'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'UserEvent'
+                    UserEvent: 'Geoloc'
+                    CallerIDNum: 'eddie'
+                    Exten: 'alice'
+                    LocInfo: 'URI=http://something.com/eddie'
+            count: '1'
+    -
+        ami-events:
+            type: 'headermatch'
+            conditions:
+                match:
+                    Event: 'Hangup'
+                    CallerIDNum: 'eddie'
+            count: '1'
+        stop_test:
diff --git a/tests/channels/pjsip/geolocation/incoming/tests.yaml b/tests/channels/pjsip/geolocation/incoming/tests.yaml
new file mode 100644
index 0000000..7b45529
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/incoming/tests.yaml
@@ -0,0 +1,4 @@
+# Enter tests here in the order they should be considered for execution:
+tests:
+    - test: 'basic'
+    - test: 'profile_precedence'
diff --git a/tests/channels/pjsip/geolocation/tests.yaml b/tests/channels/pjsip/geolocation/tests.yaml
new file mode 100644
index 0000000..40038e5
--- /dev/null
+++ b/tests/channels/pjsip/geolocation/tests.yaml
@@ -0,0 +1,3 @@
+# Enter tests here in the order they should be considered for execution:
+tests:
+    - dir: 'incoming'
diff --git a/tests/channels/pjsip/tests.yaml b/tests/channels/pjsip/tests.yaml
index bc4424a..b080292 100644
--- a/tests/channels/pjsip/tests.yaml
+++ b/tests/channels/pjsip/tests.yaml
@@ -8,6 +8,7 @@
     - dir: 'configuration'
     - dir: 'dialplan_functions'
     - dir: 'diversion'
+    - dir: 'geolocation'
     - dir: 'history_info'
     - dir: 'headers'
     - dir: 'identify'

-- 
To view, visit https://gerrit.asterisk.org/c/testsuite/+/19263
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: testsuite
Gerrit-Branch: 16
Gerrit-Change-Id: I1116865b558c566c6a0974096306192cf4f25932
Gerrit-Change-Number: 19263
Gerrit-PatchSet: 3
Gerrit-Owner: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Friendly Automation
Gerrit-Reviewer: George Joseph <gjoseph at digium.com>
Gerrit-Reviewer: Joshua Colp <jcolp at sangoma.com>
Gerrit-Reviewer: Michael Bradeen <mbradeen at sangoma.com>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20220922/0429927d/attachment-0001.html>


More information about the asterisk-code-review mailing list