From f965c84184c655a7d391ec79dced6906f4a2a8a9 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 22 Mar 2013 11:27:29 +0100 Subject: [PATCH] Fix sip address detection --- res/values/non_localizable_custom.xml | 2 +- src/org/linphone/LinphoneUtils.java | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index a981094e4..0b8446b57 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -34,7 +34,7 @@ true false true - true + true true false diff --git a/src/org/linphone/LinphoneUtils.java b/src/org/linphone/LinphoneUtils.java index 822a3fbe7..97af9bda3 100644 --- a/src/org/linphone/LinphoneUtils.java +++ b/src/org/linphone/LinphoneUtils.java @@ -29,13 +29,12 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneCall; import org.linphone.core.LinphoneCall.State; import org.linphone.core.LinphoneCore; +import org.linphone.core.LinphoneCoreFactory; import org.linphone.mediastream.Log; import org.linphone.mediastream.Version; import org.linphone.mediastream.video.capture.hwconf.Hacks; @@ -68,19 +67,15 @@ public final class LinphoneUtils { private LinphoneUtils(){} private static boolean preventVolumeBarToDisplay = false; - private static final String sipAddressRegExp = "^(sip:)?(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}(:[0-9]{2,5})?$"; - private static final String strictSipAddressRegExp = "^sip:(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$"; + //private static final String sipAddressRegExp = "^(sip:)?(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}(:[0-9]{2,5})?$"; + //private static final String strictSipAddressRegExp = "^sip:(\\+)?[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\\.-][a-z0-9]+)*)+\\.[a-z]{2,}$"; public static boolean isSipAddress(String numberOrAddress) { - Pattern p = Pattern.compile(sipAddressRegExp); - Matcher m = p.matcher(numberOrAddress); - return m != null && m.matches(); + return LinphoneCoreFactory.instance().createLinphoneAddress(numberOrAddress) != null; } public static boolean isStrictSipAddress(String numberOrAddress) { - Pattern p = Pattern.compile(strictSipAddressRegExp); - Matcher m = p.matcher(numberOrAddress); - return m != null && m.matches(); + return isSipAddress(numberOrAddress) && numberOrAddress.startsWith("sip:"); } public static String getUsernameFromAddress(String address) {