Hello,
I'm running kamailio 5.1.4 and running into a issue with htable. I use it to store some dialog data so i can use it in a http route. When i use the callid as a key it creates a issue for callid's starting with eq. Here some example code that i use to reproduce the issue:
modparam("htable", "htable", "ht_test=>size=16;autoexpire=10")
$var(htable-val) = $_s($dlg(h_entry)) + "::" + $_s($dlg(h_id)) + "::" + $Ts; xlog("L_WARN", "HT_TEST: Adding $var(htable-val) to ht_test with key eq1234"); $var(htid) = "eq1234"; $sht(ht_test=>$var(htid)) = $var(htable-val); $var(htable-val) = $null;
if ($shtcn(ht_test=>$var(htid)) > 0) { xlog("L_WARN", "HT_TEST: Key eq1234 found!"); } else { xlog("L_WARN", "HT_TEST: Key eq1234 NOT found!"); } $var(htid) = $null;
Results in :
Oct 16 09:36:31 sip03 /usr/sbin/kamailio[22344]: WARNING: <script>: HT_TEST: Adding 531::926::1539675391 to ht_test with key eq1234 Oct 16 09:36:31 sip03 /usr/sbin/kamailio[22344]: WARNING: <script>: HT_TEST: Key eq1234 NOT found!
When i prefix eq with a 1 it works fine:
modparam("htable", "htable", "ht_test=>size=16;autoexpire=10")
$var(htable-val) = $_s($dlg(h_entry)) + "::" + $_s($dlg(h_id)) + "::" + $Ts; xlog("L_WARN", "HT_TEST: Adding $var(htable-val) to ht_test with key eq1234"); $var(htid) = "1eq1234"; $sht(ht_test=>$var(htid)) = $var(htable-val); $var(htable-val) = $null;
if ($shtcn(ht_test=>$var(htid)) > 0) { xlog("L_WARN", "HT_TEST: Key eq1234 found!"); } else { xlog("L_WARN", "HT_TEST: Key eq1234 NOT found!"); } $var(htid) = $null;
Results in:
Oct 16 09:37:25 sip03 /usr/sbin/kamailio[22555]: WARNING: <script>: HT_TEST: Adding 3050::1098::1539675445 to ht_test with key eq1234 Oct 16 09:37:25 sip03 /usr/sbin/kamailio[22555]: WARNING: <script>: HT_TEST: Key eq1234 found!
Am i running into a bug? Or are there some restrictions on the key's i can use? I'm still going trough the logs to check if there are more callid's that have a issue with matching.
Thanks,
Jan Hazenberg