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