Thanks for the replies guys!
I will probably add a length test to invalidate too short numbers!
By the way, I had a quick look in the ITU recommendation (https://www.itu.int/rec/T-REC-E.164/en) and looks like the short numbers are for local purposes only being part of the "Non-ITU-T E.164 numbers" section, so I guess the function should return false in this case. Also it seems the + sign is recommended but not mandatory for a E.164 number, which is quite confusing.....

Kind regards,
Patrick Wakano


On Tue, 4 Dec 2018 at 08:57, Henning Westerholt <hw@kamailio.org> wrote:
Am Montag, 3. Dezember 2018, 06:08:27 CET schrieb Patrick Wakano:
> I am using the is_e164() function to validate the number we receive, and I
> come to see that the number +555 was accepted....
> After some googling it looks like(it is not very clear though) that 7
> digits are the minimum we could have for e164 numbers but after checking
> the source code, I saw it accepts anything starting with + and having
> between 2 and 16 numbers. So is it really valid to have a number with just
> 2 digits? What is the case?

Hello Patrick,

I think the implementation was done with a pragmatic approach, to make sure
that we don't reject numbers that are used in the field. The ITU standard
Amendment A mentions the possibility to use national short numbers, for
example. The standard mentions that the maximal length should be 15, but I
think in this case this was also implemented a bit more relaxed.

The original implementation from the enum module allows even longer numbers, I
will check if this should be synchronized.

Best regards,

Henning


--
Henning Westerholt - https://skalatan.de/blog/
Kamailio services - https://skalatan.de/services
Kamailio security assessment - https://skalatan.de/de/assessment