[OpenSIPS-Users] issue with trusted addresses listed with grp=0
Andrew Pogrebennyk
andrew.pogrebennyk at portaone.com
Thu Jul 8 23:12:29 CEST 2010
Hello,
I am using the address table to keep the trusted IPs like this:
# check trusted IPs
$var(group) = get_source_group();
if ($var(group) == 32) { # use grp=32 as trusted indication
xlog("L_INFO", "Call from trusted peer - M=$rm RURI=$ru F=$fu T=$tu
IP=$si ID=$ci\n");
# do something stupid
} else {
if(!proxy_authorize("", "subscriber")) {
proxy_challenge("", "0");
exit;
}
# process the call
}
Something strange happens when the INVITE source IP comes from the
address listed with grp=0 - the call seems to get stuck and never gets
to digest challenge:
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:permissions:get_source_group: Looking for <df59f95c, 55518> in address table
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:permissions:get_source_group: Found <0>
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:next_state_dlg: unref dlg 0xb4c2c944 with 1 -> 2
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:next_state_dlg: dialog 0xb4c2c944 changed from state 1 to state 5, due event 1
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:dlg_onreply: dialog 0xb4c2c944 failed (negative reply)
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:unref_dlg: unref dlg 0xb4c2c944 with 1 -> 1
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:unref_dlg: unref dlg 0xb4c2c944 with 1 -> 0
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:unref_dlg: ref <=0 for dialog 0xb4c2c944
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:destroy_dlg: destroing dialog 0xb4c2c944
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:dialog:destroy_dlg: dlg expired or not in list - dlg 0xb4c2c944 [2039:572707183] with clid 'ZmNmMjkxZjlhZmU4MzU4ZThhOWJlNTZmYzY2YjM4NTQ.' and tags 'f9383040' 'NULL'
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:core:destroy_avp_list: destroying list 0xb4c28240
> Jul 8 16:20:49 dev01 /usr/local/sbin/opensips[24667]: DBG:core:receive_msg: cleaning up
> Jul 8 16:20:50 dev01 /usr/local/sbin/opensips[24675]: DBG:tm:timer_routine: timer routine:2,tl=0xb4c2dda0 next=(nil), timeout=70
> Jul 8 16:20:50 dev01 /usr/local/sbin/opensips[24675]: DBG:tm:wait_handler: removing 0xb4c2dd58 from table
> Jul 8 16:20:50 dev01 /usr/local/sbin/opensips[24675]: DBG:tm:delete_cell: delete transaction 0xb4c2dd58
> Jul 8 16:20:50 dev01 /usr/local/sbin/opensips[24675]: DBG:tm:wait_handler: done
It looks as if something was wrong with script variables operation
because with any grp!=0 there is a comparison operation after the
"Found" line:
> Jul 8 16:22:31 dev01 /usr/local/sbin/opensips[25047]: DBG:permissions:get_source_group: Found <1>
> Jul 8 16:22:31 dev01 /usr/local/sbin/opensips[25047]: DBG:core:comp_scriptvar: int 20 : 1 / 32
However I can give up an idea that I am doing something stupid, else
with 0 being default value much more people would have noticed this
problem before. Any ideas?
--
Sincerely,
Andrew Pogrebennyk
More information about the Users
mailing list