<h3>Description</h3>
<p>I am using kamailio with Python scripting and TOPOS module to hide topology.<br>
The issue is that I cannot skip topology hiding for internal network.<br>
Documentation says:</p>
<pre><code>It is executed before doing topology stripping processing for an outgoing SIP message. If 'drop' is executed inside the event route, then the module skips doing the topology hiding.

event_route[topos:msg-outgoing] {
  if($sndto(ip)=="10.1.1.10") {
    drop;
  }
}
</code></pre>
<p>My code is:</p>
<pre><code>    def ksr_topos_event(self, msg, evname):
        if evname == "topos:msg-outgoing":
            to_ip = KSR.pv.get("$sndto(ip)")
            node = self.__configuration.freeswitch_nodes.get(to_ip)

            if node:
                KSR.drop()

        return 1
</code></pre>
<p>I see in the log file that KSR.drop() method is called. But with no effect, headers of INVITE message to internal infrastructure were modified by TOPOS module.</p>
<h4>Configuration file</h4>
<pre><code>
#!KAMAILIO
debug=4
#log_stderror=yes

memdbg=5
memlog=5

log_facility=LOG_LOCAL0
log_prefix="{$mt $hdr(CSeq) $ci} "

/* number of SIP routing processes */
children=8

/* uncomment the next line to disable TCP (default on) */
disable_tcp=yes

/* uncomment the next line to disable the auto discovery of local aliases
 * based on reverse DNS on IPs (default on) */
auto_aliases=no

/* uncomment and configure the following line if you want Kamailio to
 * bind on a specific interface/port/proto (default bind on all available) */
listen=udp:10.164.0.10:5060 advertise 35.204.224.219:5060

port=5060

####### Modules Section ########

/* set paths to location of modules */
# mpath="/usr/lib/x86_64-linux-gnu/kamailio/modules/"

loadmodule "ctl.so"
loadmodule "tm.so"
loadmodule "corex.so"
loadmodule "sl.so"
loadmodule "pv.so"
loadmodule "maxfwd.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "sanity.so"
loadmodule "auth.so"
loadmodule "dispatcher.so"
loadmodule "db_sqlite.so"
loadmodule "app_python.so"
loadmodule "htable.so"
loadmodule "rr.so"
loadmodule "dialog.so"
#loadmodule "rtpengine.so"
loadmodule "topos.so"
# ----------------- setting module-specific parameters ---------------

# auto-discard branches from previous serial forking leg
modparam("tm", "failure_reply_mode", 3)
# default retransmission timeout: 30sec
modparam("tm", "fr_timer", 3000)
# default invite retransmission timeout after 1xx: 120sec
modparam("tm", "fr_inv_timer", 120000)
modparam("tm", "contacts_avp", "tm_contacts")
modparam("tm", "contact_flows_avp", "tm_contact_flows")
modparam("tm", "remap_503_500", 0)

modparam("dispatcher", "list_file", "/opt/balancer/dispatcher.conf")
modparam("dispatcher", "flags", 2)
modparam("dispatcher", "dst_avp", "$avp(AVP_DST)")
modparam("dispatcher", "grp_avp", "$avp(AVP_GRP)")
modparam("dispatcher", "cnt_avp", "$avp(AVP_CNT)")
#set next two parameters if you want to enable balance alg. no. 10
#modparam("dispatcher", "dstid_avp", "$avp(dsdstid)")
#modparam("dispatcher", "ds_hash_size", 8)
modparam("dispatcher", "ds_ping_interval", 120)
modparam("dispatcher", "ds_ping_from", "sip:kamailio@simberry.com")
#modparam("dispatcher", "ds_ping_method", "INFO")
modparam("dispatcher", "ds_probing_mode", 1)
modparam("dispatcher", "ds_probing_threshold", 1)
#configure codes or classes of SIP replies to list only allowed replies (i.e. when temporarily unavailable=480)
modparam("dispatcher", "ds_ping_reply_codes", "class=2;code=480;code=404")

modparam("htable", "htable", "a=>size=12;autoexpire=3600;dbmode=1;dbtable=htable")
modparam("htable", "db_url", "sqlite:///opt/balancer/kamailio.sqlite")
modparam("htable", "db_expires", 1)
modparam("htable", "fetch_rows", 1000)
modparam("htable", "timer_interval", 5)
modparam("htable", "timer_procs", 1)

modparam("dialog", "dlg_flag", 5)
modparam("dialog", "db_url", "sqlite:///opt/balancer/kamailio.sqlite")
modparam("dialog", "db_mode", 1)
#modparam("dialog", "db_update_period", 30)
modparam("dialog", "db_fetch_rows", 1000)
modparam("dialog", "default_timeout", 7500)
modparam("dialog", "early_timeout", 400)
modparam("dialog", "end_timeout", 60)

modparam("topos", "db_url", "sqlite:///opt/balancer/kamailio.sqlite")
modparam("topos", "clean_interval", 300)
modparam("topos", "event_callback", "ksr_topos_event")

#modparam("rtpengine", "rtpengine_sock", "udp:localhost:2223")

#
####### Routing Logic ########

modparam("app_python", "script_name", "/opt/balancer/load_balancer.py")

cfgengine "python"

</code></pre>
<h4>Log Messages</h4>
<pre><code>Apr  8 09:38:40 vp-balancer-dev-01 /usr/sbin/kamailio[26752]: {1 1 INVITE 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE} DEBUG: topos [topos_mod.c:477]: tps_execute_event_route(): executing event_route[topos:...] (-1)
Apr  8 09:38:40 vp-balancer-dev-01 /usr/sbin/kamailio[26752]: {1 1 INVITE 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE} DEBUG: app_python [apy_kemi.c:776]: sr_apy_kemi_f_pv_get_mode(): pv get: $sndto(ip)
Apr  8 09:38:40 vp-balancer-dev-01 /usr/sbin/kamailio[26752]: {1 1 INVITE 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE} DEBUG: <core> [core/pvapi.c:395]: pv_cache_lookup(): pvar [$sndto(ip)] found in cache
Apr  8 09:38:40 vp-balancer-dev-01 /usr/sbin/kamailio[26752]: {1 1 INVITE 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE} DEBUG: app_python [apy_kemi.c:213]: sr_apy_kemi_exec_func(): execution of method: .drop
Apr  8 09:38:40 vp-balancer-dev-01 /usr/sbin/kamailio[26752]: {1 1 INVITE 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE} DEBUG: app_python [apy_kemi.c:122]: sr_kemi_config_engine_python(): execution of route type 513 with name [ksr_topos_event] returned 1
</code></pre>
<h4>SIP Traffic</h4>
<p>10.x.x.x - internal network IP addresses<br>
95.79.44.x - external network IP addresses</p>
<p>95.79.44.125 - SIP Phone<br>
10.164.0.10 - Kamailio (external IP 35.204.224.219)<br>
10.166.0.2 - Freeswitch<br>
95.79.44.126 - Gateway</p>
<pre><code>*** 95.79.44.125 -> 10.164.0.10
INVITE sip:79200204544@35.204.224.219 SIP/2.0
Via: SIP/2.0/UDP 95.79.44.125:5060;branch=z9hG4bK-524287-1---fc4d9360f0b3d218;rport
Max-Forwards: 70
Contact: <sip:testin2@95.79.44.125:5060>
To: <sip:79200204544@35.204.224.219>
From: <sip:testin2@35.204.224.219>;tag=8035856a
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
Allow: OPTIONS, SUBSCRIBE, NOTIFY, INVITE, ACK, CANCEL, BYE, REFER, INFO
Content-Type: application/sdp
Supported: replaces
User-Agent: X-Lite release 5.4.0 stamp 94385
Content-Length: 210

v=0
o=- 1554716320712461 1 IN IP4 95.79.44.125
s=X-Lite release 5.4.0 stamp 94385
c=IN IP4 95.79.44.125
t=0 0
m=audio 55414 RTP/AVP 8 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

*** 10.164.0.10 -> 95.79.44.125
SIP/2.0 100 trying -- your call is important to us
Via: SIP/2.0/UDP 95.79.44.125:5060;branch=z9hG4bK-524287-1---fc4d9360f0b3d218;rport=5060;received=95.79.44.125
To: <sip:79200204544@35.204.224.219>
From: <sip:testin2@35.204.224.219>;tag=8035856a
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
Server: kamailio (5.1.7 (x86_64/linux))
Content-Length: 0

*** 10.164.0.10 -> 10.166.0.2
INVITE sip:79200204544@10.166.0.2:5060 SIP/2.0
Via: SIP/2.0/UDP 35.204.224.219:5060;branch=z9hG4bK9e01.c28fe550f8dd384f5b591612c5abf080.0
Max-Forwards: 70
To: <sip:79200204544@35.204.224.219>
From: <sip:testin2@35.204.224.219>;tag=8035856a
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
Allow: OPTIONS, SUBSCRIBE, NOTIFY, INVITE, ACK, CANCEL, BYE, REFER, INFO
Content-Type: application/sdp
Supported: replaces
User-Agent: X-Lite release 5.4.0 stamp 94385
Content-Length: 210
X-Equipment-ID: 6741
X-Equipment-IP: 95.79.44.125
X-Equipment-Port: 5060
Contact: <sip:btpsh-5cab164e-6880-1@35.204.224.219>

v=0
o=- 1554716320712461 1 IN IP4 95.79.44.125
s=X-Lite release 5.4.0 stamp 94385
c=IN IP4 95.79.44.125
t=0 0
m=audio 55414 RTP/AVP 8 0 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv

*** 10.166.0.2 -> 10.164.0.10
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 35.204.224.219:5060;branch=z9hG4bK9e01.c28fe550f8dd384f5b591612c5abf080.0;received=10.164.0.10
From: <sip:testin2@35.204.224.219>;tag=8035856a
To: <sip:79200204544@35.204.224.219>
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.8.5+git-20190227T164909Z~cb1f3ab6f2~64bit
Content-Length: 0

*** 10.166.0.2 -> 10.164.0.10
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 35.204.224.219:5060;branch=z9hG4bK9e01.c28fe550f8dd384f5b591612c5abf080.0;received=10.164.0.10
From: <sip:testin2@35.204.224.219>;tag=8035856a
To: <sip:79200204544@35.204.224.219>;tag=pDr153DcQr0tB
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
Contact: <sip:79200204544@10.166.0.2:5060;transport=udp>
User-Agent: FreeSWITCH-mod_sofia/1.8.5+git-20190227T164909Z~cb1f3ab6f2~64bit
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 216
Remote-Party-ID: "79200204544" <sip:79200204544@35.204.224.219>;party=calling;privacy=off;screen=no

v=0
o=FreeSWITCH 1554690954 1554690955 IN IP4 10.166.0.2
s=FreeSWITCH
c=IN IP4 10.166.0.2
t=0 0
m=audio 25366 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

*** 10.166.0.2 -> 10.164.0.10
INVITE sip:79200204544@10.164.0.10:5060 SIP/2.0
Via: SIP/2.0/UDP 10.166.0.2;rport;branch=z9hG4bKt1B9UyKUa3vgD
Max-Forwards: 70
From: "" <sip:testin2@10.166.0.2>;tag=QpHt7yyFm1pDQ
To: <sip:79200204544@10.164.0.10:5060>
Call-ID: ef3258bd-d484-1237-cfbc-42010aa60002
CSeq: 2804368 INVITE
Contact: <sip:gw+kamailio@10.166.0.2:5060;transport=udp;gw=kamailio>
User-Agent: FreeSWITCH-mod_sofia/1.8.5+git-20190227T164909Z~cb1f3ab6f2~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 346
X-Equipment-ID: 6742
X-FS-Support: update_display,send_info
Remote-Party-ID: <sip:"testin2"@10.166.0.2>;party=calling;screen=yes;privacy=off

v=0
o=FreeSWITCH 1554694904 1554694905 IN IP4 10.166.0.2
s=FreeSWITCH
c=IN IP4 10.166.0.2
t=0 0
m=audio 21416 RTP/AVP 18 0 8 102 103 4 101
a=rtpmap:18 G729/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:102 SPEEX/8000
a=rtpmap:103 L16/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

*** 10.164.0.10 -> 10.166.0.2
SIP/2.0 100 trying -- your call is important to us
Via: SIP/2.0/UDP 10.166.0.2;rport=5060;branch=z9hG4bKt1B9UyKUa3vgD;received=10.166.0.2
From: "" <sip:testin2@10.166.0.2>;tag=QpHt7yyFm1pDQ
To: <sip:79200204544@10.164.0.10:5060>
Call-ID: ef3258bd-d484-1237-cfbc-42010aa60002
CSeq: 2804368 INVITE
Server: kamailio (5.1.7 (x86_64/linux))
Content-Length: 0


*** 10.164.0.10 -> 95.79.44.125
SIP/2.0 183 Session Progress
From: <sip:testin2@35.204.224.219>;tag=8035856a
To: <sip:79200204544@35.204.224.219>;tag=pDr153DcQr0tB
Call-ID: 94385YjUxNjIwNzgxNmQ3N2NkNjdhYTNmZDc0OGUxOTQ0NGE
CSeq: 1 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.8.5+git-20190227T164909Z~cb1f3ab6f2~64bit
Accept: application/sdp
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 216
Remote-Party-ID: "79200204544" <sip:79200204544@35.204.224.219>;party=calling;privacy=off;screen=no
Via: SIP/2.0/UDP 95.79.44.125:5060;received=95.79.44.125;branch=z9hG4bK-524287-1---fc4d9360f0b3d218;rport=5060
Contact: <sip:atpsh-5cab164e-6880-1@35.204.224.219>

v=0
o=FreeSWITCH 1554690954 1554690955 IN IP4 10.166.0.2
s=FreeSWITCH
c=IN IP4 10.166.0.2
t=0 0
m=audio 25366 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

*** 10.164.0.10 -> 95.79.44.126
INVITE sip:79200204544@95.79.44.126:5060 SIP/2.0
Via: SIP/2.0/UDP 35.204.224.219:5060;branch=z9hG4bK03b2.9008b440cc6f02db12a9949bd46ba9ff.0
Max-Forwards: 70
From: "" <sip:testin2@10.166.0.2>;tag=QpHt7yyFm1pDQ
To: <sip:79200204544@10.164.0.10:5060>
Call-ID: ef3258bd-d484-1237-cfbc-42010aa60002
CSeq: 2804368 INVITE
User-Agent: FreeSWITCH-mod_sofia/1.8.5+git-20190227T164909Z~cb1f3ab6f2~64bit
Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY
Supported: timer, path, replaces
Allow-Events: talk, hold, conference, refer
Content-Type: application/sdp
Content-Disposition: session
Content-Length: 346
X-FS-Support: update_display,send_info
Remote-Party-ID: <sip:"testin2"@10.166.0.2>;party=calling;screen=yes;privacy=off
Contact: <sip:btpsh-5cab164e-6884-1@35.204.224.219>

v=0
o=FreeSWITCH 1554694904 1554694905 IN IP4 10.166.0.2
s=FreeSWITCH
c=IN IP4 10.166.0.2
t=0 0
m=audio 21416 RTP/AVP 18 0 8 102 103 4 101
a=rtpmap:18 G729/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:102 SPEEX/8000
a=rtpmap:103 L16/8000
a=rtpmap:4 G723/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20

*** 95.79.44.126 -> 10.164.0.10
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 35.204.224.219:5060;branch=z9hG4bK03b2.9008b440cc6f02db12a9949bd46ba9ff.0
From: "" <sip:testin2@10.166.0.2>;tag=QpHt7yyFm1pDQ
To: <sip:79200204544@10.164.0.10:5060>
Call-ID: ef3258bd-d484-1237-cfbc-42010aa60002
CSeq: 2804368 INVITE
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,REGISTER,PRACK,INFO,NOTIFY,REFER,SUBSCRIBE
Cisco-Guid: 32268-2874933264-2348313813-1719855771
User-Agent: TELES CELLX Plus 20.5.36.1 58216060749209
Content-Length: 0

</code></pre>
<h3>Additional Information</h3>
<ul>
<li>
<p><strong>Kamailio Version</strong> - output of <code>kamailio -v</code><br>
version: kamailio 5.1.7 (x86_64/linux)<br>
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES<br>
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144 MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB<br>
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.<br>
id: unknown<br>
compiled with gcc 6.3.0</p>
</li>
<li>
<p><strong>Operating System</strong>:<br>
Linux vp-balancer-dev-01 4.9.0-8-amd64 <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="31891578" data-permission-text="Issue title is private" data-url="https://github.com/kamailio/kamailio/issues/1" data-hovercard-type="issue" data-hovercard-url="/kamailio/kamailio/issues/1/hovercard" href="https://github.com/kamailio/kamailio/issues/1">#1</a> SMP Debian 4.9.144-3 (2019-02-02) x86_64 GNU/Linux</p>
</li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/issues/1924">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AF36ZTPxPLBBJZlOFgzCHtd9OHEUwi3Fks5vexU2gaJpZM4chy1m">mute the thread</a>.<img src="https://github.com/notifications/beacon/AF36ZQ2zqG--v_UMxiMhU0POckVqmN4Gks5vexU2gaJpZM4chy1m.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/kamailio/kamailio","title":"kamailio/kamailio","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/kamailio/kamailio"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"KSR.drop() from python script does not take effect for TOPOS module  (#1924)"}],"action":{"name":"View Issue","url":"https://github.com/kamailio/kamailio/issues/1924"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/1924",
"url": "https://github.com/kamailio/kamailio/issues/1924",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>