Hello all,

It seems that the phonenum module in at least 5.1.2 (haven't tried previous versions) is behaving somewhat erratically. More specifically, if there are any references to any phn PVs with the key other than "number":

if ( phonenum_match("1-484-555-8888", "src") ) {
xlog("number norm: $phn(src=>number)\n");
xlog("number country: $phn(src=>country)\n");
dbg_pv_dump(30, "L_ERR");
}

kamailio will not start:

Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) DEBUG: <core> [core/pvapi.c:494]: pv_spec_lookup(): PV <$phn(src=>country)> is not in cache
Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) DEBUG: phonenum [phonenum_pv.c:160]: pv_parse_phonenum_name(): phonenum [src] - key [country]
Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) ERROR: phonenum [phonenum_pv.c:205]: pv_parse_phonenum_name(): error at PV phonenum name: src=>country
Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) ERROR: <core> [core/pvapi.c:951]: pv_parse_spec2(): pvar "phn" has an invalid name param [src=>country]
Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) ERROR: <core> [core/pvapi.c:1106]: pv_parse_spec2(): wrong char [)/41] in [$phn(src=>country)] at [17 (5)]
Mar 19 20:06:49 modcom-sbc-dev1 kamailio[5042]:  0(5044) ERROR: xlog [xlog.c:513]: xdbg_fixup_helper(): wrong format[number country: $phn(src=>country)


If I comment the offending line, all is well, but when dumping PVs with dbg_pv_dump(30, "L_ERR");, only $phn(src=>number) is listed, not the other keys (country, operator, region according to the docs)

However, what is more disturbing is that phn(src=>number) always contains the string provided to phonenum_match() function, even if invalid characters are included, with no normalization. For example:

phonenum_match("14~8%^88", "src")

will result in dbg_pv_dump reporting:

"$phn(src=>number)": "14~8%^88"

Please note that I'm using sipwise's debian repository for stretch for kamailio, and debian's stable stretch repository for libphonenumnber (currently at 7.1.0-5+b1). I have also tried building current libphonenumber myself (version v8.9.2), but the result is the same.

Is this a bug? Or am I missing something? Thanks!

BR,
George