Beispiel #1
0
        public static string GetValidPhoneNumber(string uri)
        {
            string result2;

            if (uri != null && (uri.StartsWith("sip:") || uri.StartsWith("sip:") || uri.StartsWith("tel:")))
            {
                SipUri sipUri = new SipUri(uri);
                if (sipUri.isValid())
                {
                    string userName = sipUri.getUserName();
                    if (userName != null)
                    {
                        try
                        {
                            string scheme = sipUri.getScheme();
                            if (scheme != null && scheme.Equals("tel"))
                            {
                                userName = userName.Replace("-", "");
                            }
                            long result = System.Convert.ToInt64(userName.StartsWith("+") ? userName.Substring(1) : userName);
                            if (result < 1000000000000L)
                            {
                                result2 = userName;
                                return(result2);
                            }
                        }
                        catch (System.FormatException)
                        {
                        }
                        catch (System.Exception e)
                        {
                            UriUtils.LOG.Error(e);
                        }
                    }
                }
                sipUri.Dispose();
            }
            else
            {
                try
                {
                    uri = uri.Replace("-", "");
                    long result = System.Convert.ToInt64(uri.StartsWith("+") ? uri.Substring(1) : uri);
                    if (result < 1000000000000L)
                    {
                        result2 = uri;
                        return(result2);
                    }
                }
                catch (System.FormatException)
                {
                }
                catch (System.Exception e)
                {
                    UriUtils.LOG.Error(e);
                }
            }
            result2 = null;
            return(result2);
        }
Beispiel #2
0
        // very dirty
        public static String GetValidPhoneNumber(String uri)
        {
            if (uri != null && (uri.StartsWith("sip:") || uri.StartsWith("sip:") || uri.StartsWith("tel:")))
            {
                SipUri sipUri = new SipUri(uri);
                if (sipUri.isValid())
                {
                    String userName = sipUri.getUserName();
                    if (userName != null)
                    {
                        try
                        {
                            String scheme = sipUri.getScheme();
                            if (scheme != null && scheme.Equals("tel"))
                            {
                                userName = userName.Replace("-", "");
                            }

                            long result = Convert.ToInt64(userName.StartsWith("+") ? userName.Substring(1) : userName);
                            if (result < UriUtils.MAX_PHONE_NUMBER)
                            {
                                return(userName);
                            }
                        }
                        catch (FormatException) { }
                        catch (Exception e)
                        {
                            LOG.Error(e);
                        }
                    }
                }
                sipUri.Dispose();
            }
            else
            {
                try
                {
                    uri = uri.Replace("-", "");
                    long result = Convert.ToInt64(uri.StartsWith("+") ? uri.Substring(1) : uri);
                    if (result < UriUtils.MAX_PHONE_NUMBER)
                    {
                        return(uri);
                    }
                }
                catch (FormatException) { }
                catch (Exception e)
                {
                    LOG.Error(e);
                }
            }
            return(null);
        }
Beispiel #3
0
        public static string GetUserName(string uri)
        {
            string userName = null;

            if (!string.IsNullOrEmpty(uri))
            {
                SipUri sipUri = new SipUri(uri);
                if (sipUri.isValid())
                {
                    userName = sipUri.getUserName();
                }
                sipUri.Dispose();
            }
            return((userName == null) ? uri : userName);
        }
Beispiel #4
0
        public static String GetDisplayName(String uri)
        {
            String displayname = null;

            if (!String.IsNullOrEmpty(uri))
            {
                Contact contact = UriUtils.ServiceManager.ContactService.ContactFind(uri);
                if (contact != null && (displayname = contact.DisplayName) != null)
                {
                    return(displayname);
                }

                SipUri sipUri = new SipUri(uri);
                if (sipUri.isValid())
                {
                    displayname = sipUri.getUserName();
                }
                sipUri.Dispose();
            }

            return(displayname == null ? uri : displayname);
        }
Beispiel #5
0
        private rlsservices CreateRLSDocument()
        {
            rlsservices rls = new rlsservices();

            rls.service = new serviceType[]
            {
                // RCS service
                this.CreatePresenceService(SpecialNames.SHARED_RCS),
                // OMA services
                this.CreatePresenceService(SpecialNames.SHARED_OMA_BUDDYLIST),
                this.CreatePresenceService(SpecialNames.SHARED_OMA_POCBUDDYLIST)
            };

            String documentUrl;

            lock (this.xcapSelector)
            {
                this.xcapSelector.reset();
                this.xcapSelector.setAUID(XcapService.XCAP_AUID_IETF_RLS_SERVICES_ID);
                documentUrl = this.xcapSelector.getString();
            }

            byte[]        payload     = this.Serialize(rls, true, true, this.GetSerializerNSFromAUID(XcapService.XCAP_AUID_IETF_RLS_SERVICES_ID));
            MyXcapMessage xcapMessage = this.xcapStack.PutDocument(documentUrl, payload, (uint)payload.Length, XcapService.XCAP_AUID_IETF_RLS_SERVICES_MIME_TYPE);

            if (xcapMessage != null)
            {
                if (XcapService.IsSuccessCode(xcapMessage.Code))
                {
                    return(rls);
                }
                else if (xcapMessage.Content != null && xcapMessage.Code == 409 /*Conflict*/ || xcapMessage.Code == 415 /*Unsupported Media Type*/)
                {
                    object    content = this.Deserialize(xcapMessage.Content, typeof(xcaperror));
                    xcaperror xerror;

                    if (content != null && ((xerror = content as xcaperror) != null))
                    {
                        LOG.Error(String.Format("XCAP Error={0}", xerror.ErrorPhrase));
                        if (xerror.ErrorType == xcaperror.xcaperrorItemType.ErrorElementUniquenessfailure)
                        {
                            xcaperrorErrorelementUniquenessfailure errorUniquenessfailure = xerror.Item as xcaperrorErrorelementUniquenessfailure;
                            if (errorUniquenessfailure != null && errorUniquenessfailure.exists != null && errorUniquenessfailure.exists.Length > 0)
                            {
                                xcaperrorErrorelementUniquenessfailureExists errorUniquenessfailureExists = errorUniquenessfailure.exists[0];
                                if (errorUniquenessfailureExists != null)
                                {
                                    String field    = errorUniquenessfailureExists.field;
                                    String altvalue = (errorUniquenessfailureExists.altvalue != null && errorUniquenessfailureExists.altvalue.Length > 0) ? errorUniquenessfailureExists.altvalue[0] : null;

                                    if (String.IsNullOrEmpty(altvalue))
                                    {
                                        SipUri sipUri = new SipUri(this.xcapStack.XUI);
                                        if (sipUri.isValid())
                                        {
                                            altvalue = String.Format(CultureInfo.CurrentCulture,
                                                                     "{0}:{1}_alt{2}",
                                                                     sipUri.getScheme(), sipUri.getUserName(), DateTime.Now.Ticks);
                                        }
                                        else
                                        {
                                            altvalue = "sip:[email protected]";
                                        }
                                    }
                                    rls.service[0].uri = altvalue;

                                    payload     = this.Serialize(rls, true, true, this.GetSerializerNSFromAUID(XcapService.XCAP_AUID_IETF_RLS_SERVICES_ID));
                                    xcapMessage = this.xcapStack.PutDocument(documentUrl, payload, (uint)payload.Length, XcapService.XCAP_AUID_IETF_RLS_SERVICES_MIME_TYPE);
                                    if (xcapMessage != null && XcapService.IsSuccessCode(xcapMessage.Code))
                                    {
                                        return(rls);
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(null);
        }
Beispiel #6
0
 public static bool IsValidSipUri(string uri)
 {
     return(SipUri.isValid(uri));
 }
Beispiel #7
0
 public bool TransferCall(string transferUri)
 {
     return(!string.IsNullOrEmpty(transferUri) && SipUri.isValid(transferUri) && this.mSession.transfer(transferUri));
 }