KR20130051990A - 목적지-어드레스 제안들을 제공하는 방법 및 장치 - Google Patents

목적지-어드레스 제안들을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20130051990A
KR20130051990A KR1020137004587A KR20137004587A KR20130051990A KR 20130051990 A KR20130051990 A KR 20130051990A KR 1020137004587 A KR1020137004587 A KR 1020137004587A KR 20137004587 A KR20137004587 A KR 20137004587A KR 20130051990 A KR20130051990 A KR 20130051990A
Authority
KR
South Korea
Prior art keywords
communication
counts
addresses
list
communications
Prior art date
Application number
KR1020137004587A
Other languages
English (en)
Other versions
KR101361768B1 (ko
Inventor
콜린 깁스
가브리엘 코헨
다이스케 미야카와
다니엘 레흐만
Original Assignee
구글 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20130051990A publication Critical patent/KR20130051990A/ko
Application granted granted Critical
Publication of KR101361768B1 publication Critical patent/KR101361768B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/26Devices for calling a subscriber
    • H04M1/27Devices whereby a plurality of signals may be stored simultaneously
    • H04M1/274Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc
    • H04M1/2745Devices whereby a plurality of signals may be stored simultaneously with provision for storing more than one subscriber number at a time, e.g. using toothed disc using static electronic memories, e.g. chips
    • H04M1/27453Directories allowing storage of additional subscriber data, e.g. metadata
    • H04M1/2746Sorting, e.g. according to history or frequency of use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/48Message addressing, e.g. address format or anonymous messages, aliases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Library & Information Science (AREA)
  • Tourism & Hospitality (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephone Function (AREA)
  • Telephonic Communication Services (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

새로운 통신을 위한 목적지-어드레스 제안들을 제공하기 위한 방법 및 장치가 개시된다. 다양한 통신 어드레스들 각각에 대하여, 그 통신 어드레스에 대한 복수의 사용 카운트들이 보유되며, 각각의 카운트는 각각의 통신 유형 및/또는 각각의 어플리케이션 클래스에 대한 것이다. 특정 유형 혹은 특정 클래스의 어플리케이션에 의해서 새로운 통신이 확립 중인 때, 통신 어드레스들은 통신 유형 및/또는 어플리케이션 클래스에 특유한 카운트들에 기초하는 순서대로 정렬되어, 목적지-어드레스 제안들로서 표시된다. 또한, 이러한 순위-정렬은 가령, 소스 페르소나, 시간 및 위치 등과 같은 다른 팩터들을 고려할 수 있다.

Description

목적지-어드레스 제안들을 제공하는 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING DESTINATION-ADDRESS SUGGESTIONS}
본 발명은 새로운 통신을 위해 이용될 어드레스를 선택함에 있어서 사용자를 보조하도록 목적지-어드레스 제안들을 통신 디바이스 상에 제공하는 방법 및 장치에 관한 발명이다.
본 명세서에서 달리 언급되지 않는 한, 본 섹션에 서술된 내용들은 청구항들에 대한 종래 기술이 아니며 그리고 본 섹션에 포함됨으로써 종래 기술이라고 인정되지 않는다.
현대의 통신 디바이스들은 사용자가 목적지 어드레스를 특정 혹은 선택할 수 있는 매커니즘을 제공하는 것이 일반적인데, 목적지 어드레스는 새로운 통신을 위해서 이용되는 가령, 전화번호, 이메일 어드레스, 기타 등등과 같은 것이다. 특히, 통신 디바이스는 사용자 인터페이스를 포함할 수 있는데, 사용자는 사용자 인터페이스를 통하여 원하는 어드레스를 명시적으로 타이핑할 수 있거나 및/또는 디바이스에 의해서 제시되는 어드레스들의 리스트로부터 원하는 어드레스를 선택할 수 있다. 예를 들어, 디바이스는 디스플레이를 포함할 수 있으며, 디스플레이는 사용자가 목적지 어드레스를 타이핑할 수 있는 텍스트 필드를 정의하는 그래픽 사용자 인터페이스(GUI)를 제공한다.
사용자가 어드레스를 타이핑하기 시작함에 따라, 디바이스는 소정 개수의 문자가 입력된 이후에, 그 지점까지 타이핑된 텍스트에 매칭되는 어드레스들의 리스트를 GUI 내에 자동으로 제공한다. 이후, 사용자는 제공된 이들 어드레스들 중에서 어드레스를 선택할 수 있다. 또 다른 일례로서, 디바이스는 주소록 혹은 다양한 어드레스들이 열거되어 있는 통신 기록을 제공할 수도 있으며, 그리고 사용자는 상기 리스트를 검색하여 원하는 어드레스를 선택한 후 새로운 통신을 개시할 수 있다.
본 발명은 새로운 통신을 위해 이용될 어드레스를 선택함에 있어서 사용자를 보조하도록 목적지-어드레스 제안들을 통신 디바이스 상에 제공하는 방법 및 장치에 관한 발명이다.
본 발명의 일 양상에 따르면, 예컨대, 프로그램 명령들이 저장되어 있는 비일시적인(non-transitory) 컴퓨터 판독가능한 매체가 개시되어 있는바, 이러한 프로그램 명령들은 목적지-어드레스 제안들을 제공하기 위한 다양한 기능들을 수행하도록 프로세서에 의해서 실행될 수 있다. 일례로, 상기 기능들은 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 단계를 포함할 수 있으며, 여기서 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 1 통신 유형인 통신들 각각의 수량(quantity)에 기초한다. 또한, 상기 기능들은, 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 단계를 포함할 수 있으며, 여기서 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 2 통신 유형인 통신들 각각의 수량에 기초한다. 그리고 제 1 통신 유형과 제 2 통신 유형은 상호 배타적일 수 있다.
다음으로 상기 기능들은, 복수의 목적지-어드레스 제안들에 대한 제 1 요청을 검출하는 단계를 포함할 수 있으며, 제 1 요청은 제 1 어플리케이션 프로그램으로부터 수신되고 그리고 제1의 새로운 통신에 관련되며, 그리고 제1의 새로운 통신은 제 1 통신 유형이다. 다음으로, 상기 기능들은, 제 1 요청에 응답하여, 복수의 통신 어드레스들을 포함하는 제 1 리스트를 전송하는 단계를 포함하며, 제1의 새로운 통신이 제 1 통신 유형이라는 점에 응답하여, 제 1 리스트 내의 복수의 통신 어드레스들은 복수의 제 1 카운트들에 적어도 일부분 기초하는 제1의 순위-정렬에 따라 정렬된다. 또한, 상기 복수의 제 1 카운트들 중에서 적어도 하나의 카운트는, 제 1 어플리케이션 프로그램과는 다른 제 2 어플리케이션 프로그램에 의해서 적어도 설정된 하나 이상의 통신들에 적어도 일부분 기초한다.
이들 기능들을 이용하여, 제 1 어플리케이션 프로그램은 디스플레이에서의 출력을 위하여 제 1 리스트를 전송할 수 있다. 이후 사용자는 제1의 새로운 통신을 위해 이용될 예정인 디스플레이된 목적지-어드레스들 중에서 하나를 편리하게 선택할 수 있다.
본 발명의 다른 양상에 따르면, 복수의 제 1 카운트들과 복수의 제 2 카운트들을 결정하는 단계 이외에도, 상기 기능들은, 새로운 통신을 위한 목적지-어드레스 제안들에 대한 요청을 검출하는 단계를 포함할 수 있으며, 그리고 이러한 요청에 응답하여, (i) 만일 상기 새로운 통신이 제 1 통신 유형이라면, 사용자 인터페이스로 하여금, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅(sorting: 이하, '쏘팅')되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하며, 그리고 (ii) 만일 상기 새로운 통신이 제 2 통신 유형이라면, 사용자 인터페이스로 하여금, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계를 포함할 수 있다.
본 발명의 다른 양상에 따르면, 목적지-어드레스 제안들을 표시하기 위한 방법이 개시된다. 상기 방법은, 통신 디바이스가 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 단계를 포함하며, 여기서 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 1 통신 유형인 통신들 각각의 수량에 기초한다. 또한, 상기 방법은, 통신 디바이스가 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 단계를 포함하며, 여기서 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 2 통신 유형인 통신들 각각의 수량에 기초한다. 그리고 제 1 통신 유형과 제 2 통신 유형은 상호 배타적일 수 있다.
다음으로 상기 방법은, 상기 통신 디바이스가 새로운 통신을 위한 목적지-어드레스 제안들에 대한 요청을 검출하는 단계를 포함하며 그리고 상기 요청에 응답하여, (i) 만일 상기 새로운 통신이 제 1 통신 유형이라면, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 상기 통신 디바이스가 사용자 인터페이스 상에 표시하며, 그리고 (ii) 만일 상기 새로운 통신이 제 2 통신 유형이라면, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 상기 통신 디바이스가 상기 사용자 인터페이스 상에 표시하는 단계를 포함한다.
대안적으로 혹은 부가적으로, 상기 방법은, 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 1 카운트들을 컴퓨터 프로세서가 결정하는 단계를 포함하며, 여기서 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해서 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들 각각의 수량에 기초한다. 그리고 상기 방법은, 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 2 카운트들을 상기 컴퓨터 프로세서가 결정하는 단계를 포함하며, 여기서 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해서 상기 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들 각각의 수량에 기초한다.
다음으로 상기 방법은, 복수의 목적지-어드레스 제안들에 대한 제 1 요청을 상기 컴퓨터 프로세서가 검출하는 단계를 포함하며, 상기 제 1 요청은 제 1 어플리케이션으로부터 수신되고 그리고 제1의 새로운 통신에 관련되며, 상기 제 1 어플리케이션은 상기 제 1 어플리케이션 클래스의 멤버이다. 또한, 상기 방법은, 상기 제 1 요청에 응답하여, 상기 컴퓨터 프로세서가 사용자 인터페이스로 하여금 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하는 단계를 포함하며, 여기서 상기 제 1 어플리케이션이 상기 제 1 어플리케이션 클래스의 멤버임에 응답하여, 상기 제 1 리스트 내의 상기 복수의 통신 어드레스들은 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하는 제1의 순위-정렬에 따라 정렬된다.
또한, 상기 방법은 상기 컴퓨터 프로세서가 복수의 목적지-어드레스 제안들에 대한 제 2 요청을 검출하는 단계를 포함하며, 상기 제 2 요청은 제 2 어플리케이션으로부터 수신되고 그리고 제2의 새로운 통신에 관련되며, 상기 제 2 어플리케이션은 상기 제 2 어플리케이션 클래스의 멤버이다. 그리고 상기 방법은, 상기 제 2 요청에 응답하여, 상기 컴퓨터 프로세서가 사용자 인터페이스로 하여금 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계를 포함하며, 상기 제 2 어플리케이션이 상기 제 2 어플리케이션 클래스의 멤버임에 응답하여, 상기 제 2 리스트 내의 상기 복수의 통신 어드레스들은 상기 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 2 카운트들에 적어도 일부분 기초하는 제2의 순위-정렬에 따라 정렬되며, 상기 제2의 순위-정렬은 상기 제1의 순위-정렬과 다르다.
본 발명의 이러한 양상들 뿐만 아니라, 본 발명의 다른 양상들, 장점들 및 대안예들은 다음의 발명의 상세한 설명들과 첨부된 도면들을 참고하면 해당 기술분야의 당업자들에게 명백해질 것이다. 또한, 본 섹션 부분 및 본 명세서의 임의의 곳에 제공된 설명들은 본 발명에 따른 방법 및 장치를 단지 예시적으로 설명하기 위해 의도된 것임을 유의해야 하며, 본 발명을 제한하고자 의도된 것이 아니다.
도1은 본 발명에 따른 방법과 함께 동작가능한 통신 디바이스에 대한 간략화된 블록도이다.
도2는 대표적인 비-일시적 데이터 저장장치의 보다 상세한 도면이다.
도3은 서로 다른 통신 분류들에 대한 사용-카운트 데이터의 일례를 도시한다.
도4는 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시한 순서도이다.
도5는 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시한 또 다른 순서도이다.
도6은 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시한 또 다른 순서도이다.
도7은 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시한 또 다른 순서도이다.
도8(파트 A 및 파트 B)은 본 방법에 따라 제공될 수 있는 그래픽 사용자 인터페이스를 예시한다.
다음의 상세한 설명은 본 명세서의 일부를 구성하는 첨부된 도면들을 참조한다. 도면들에서, 유사한 참조번호들은 명시적으로 달리 표현되지 않는 한 유사한 구성요소들을 나타낸다. 상세한 설명, 도면 및 청구항들에 서술된 예시적인 실시예들은 본 발명을 제한하고자 의도된 것이 아니다. 다른 실시예들도 이용될 수 있으며, 그리고 본 발명의 기술적 사상의 범위를 벗어남이 없이 변경들이 가해질 수도 있다. 본 명세서에 일반적으로 서술되고 그리고 도면들에 예시된 바와 같은 본 발명의 여러 양상들은, 그 모든 것들이 본 명세서에서 명시적으로 고려되는 매우 넓은 범위의 다양한 서로 다른 구성요소들과 함께 배열, 대치, 결합, 분리 및 설계될 수 있음이 능히 이해될 것이다.
1. 개관(Overview)
본 발명에 따른 방법의 예시적인 구현예는 복수의 어드레스들의 각각의 어드레스에 대하여, 상기 어드레스에 대해 설정된 통신들의 복수의 개별 카운트들을 확립하는 것을 포함하며, 각각의 카운트는 통신의 각각의 유형 또는 통신 어플리케이션들의 클래스에 대응한다. 다음으로, 특정 유형의 새로운 통신이 혹은 특정 클래스의 어플리케이션에 의한 새로운 통신이 확립중인 때, 본 방법은 상기 특정 통신 유형 혹은 어플리케이션 클래스에 대한 통신들의 상기 카운트들에 기초하여 순위-정렬된 어드레스들을 포함하는 리스트를 제공하는 것을 포함한다. 그 결과, 만일, 당해(at issue) 통신이 특정 유형이거나 혹은 특정 클래스의 어플리케이션에 의해서 확립중이라면, 소정 세트의 어드레스들이 소정의 순위 순서대로(rank order) 사용자에게 제공될 수 있다. 하지만, 상기 통신이 다른 유형이거나 혹은 다른 클래스의 어플리케이션에 의해서 확립중이라면, 동일한 세트의 어드레스들은, 전혀 다른 순위 순서대로 사용자에게 제공될 수 있다. 또한, 특정한 통신 유형 혹은 어플리케이션 클래스에 대해서 순위 정렬을 확립하기 위한 기초(basis: 이하, '기초' 혹은 '베이스')로서 이용되는 하나 이상의 카운트들 그 자체는, 복수의 통신 어플리케이션들에 의한 상기 어드레스의 총 사용(aggregate use)에 기초할 수도 있다.
유용하게도, 이러한 프로세스는, 소정의 어드레스들이 복수의 서로 다른 유형의 통신들을 위해서 이용되거나 및/또는 복수의 서로 다른 클래스들의 어플리케이션들에 의해서 이용되고 그리고 상기 어드레스들에 대한 사용자의 상대적인 사용 빈도가 통신 유형 또는 어플리케이션 클래스에 따라 서로 다른 상황에 대해 편의를 제공하는데 도움을 줄 수 있다.
이러한 것의 좋은 일례는, 예컨대, 북미 전화번호 계획(North American Numbering Plan)에 부합하는 통상적인 전화번호인데, 이는 지역 코드, 교환 코드 그리고 가입자 번호를 포함한다. 이러한 번호들은 전화 호출을 위한 목적지 어드레스로서 이용되지만, 많은 경우에 있어서 동일한 번호들이 텍스트 메시지, 기타 등등을 위한 목적지 어드레스로 또한 이용될 수 있다. 이러한 전화번호들의 세트에 대해서, 사용자는 전화 호출을 위해서 소정 번호를 더 많이 이용할 수 있으며 그리고 텍스트 메시징에 대해서는 다른 번호를 더 많이 이용할 수 있다. 예를 들어, 전화번호 A 및 B에 대해서, 사용자는 B 번호 보다 A 번호로 더 자주 전화를 걸 수 있는 반면에, 사용자는 A 번호 보다는 B 번호로 텍스트 메시지를 더 자주 전송할 수 있다.
새로운 통신을 위한 목적지 어드레스 제안으로서 전화번호 A 및 B를 제공하는 경우, 본 발명에 따른 방법은, 확립중인 통신의 유형을 결정하고 그리고 결정된 유형에 기초하여 순위-정렬된(rank-ordered) 전화번호들을 제공함으로서, 이러한 시나리오에 편의를 제공할 수 있다. 예를 들어, 통신이 전화 호출이라면, 상기 방법은 A-B 순서로 정렬된 전화번호들을 제공하는 것을 포함할 수 있으며, 따라서 전화 호출을 위해 보다 일반적으로 이용되는 전화번호(따라서 새로운 전화 호출에 대해서도 아마도 좀더 선택가능성이 높은 전화번호)가 목록의 첫번째에 있게 될 것이다. 반면에, 통신이 텍스트 메시징이라면, 상기 방법은 B-A 순서로 정렬된 전화번호들을 제공하는 것을 포함할 수 있으며, 따라서 텍스트 메시지를 위해 보다 일반적으7로 이용되는 전화번호(따라서 새로운 텍스트 메시징에 대해서도 아마도 좀더 선택가능성이 높은 전화번호)가 목록의 첫번째에 있게 될 것이다.
목적지-어드레스 제안들의 차별화된 순위-정렬을 용이하게 하기 위하여, 본 방법은, 각각의 어드레스에 대하여 어드레스의 이용에 대한 여러 개의 카운트들을 결정하는 것을 포함하는데, 여기서 각각의 카운트는 가령, 통신의 특정 유형 혹은 통신 어플리케이션의 특정 클래스(class) 등과 같은, 각각의 분류(classification)에 대한 것이다.
전술한 일례에서, 예컨대, 전화 호출들(telephone calls)은 "호출들(calls)" , "실시간 연결들" 혹은 단순히 "전화 호출들" 이라는 통신 유형에 속한다고 간주될 수 있으며, 그리고 텍스트 메시지들은 "메시지" ,"비-실시간 통신들" 혹은 단순히 "텍스트 메시지들" 이라는 통신 유형에 속한다고 간주될 수 있다. 이와 유사하게, 전화 호출들은, 가령, "호출 어플리케이션들" , "실-시간 호출 어플리케이션들", 혹은 단순히 "전화 어플리케이션들" 등과 같은 클래스에 속하는 것으로 간주되는 어플리케이션들을 이용하여 수행될 수 있으며, 그리고 텍스트 메시징은 "메시징 어플리케이션" , "비-실시간 통신 어플리케이션" 혹은 단순히 "텍스트 메시징 어플리케이션" 등과 같은 클래스에 속하는 것으로 간주되는 어플리케이션들을 이용하여 수행될 수 있다.
다음으로 본 방법은 각각의 전화번호(예컨대, A 및 B)에 대해서, 하나의 분류에 대한 제 1 카운트와 다른 분류에 대한 제 2 카운트를 각각 결정하는 것을 포함한다. 예를 들어, 상기 방법은 각각의 전화번호에 대해서, 그 번호로 걸려진 전화 호출들의 제 1 카운트와 그 번호로 걸려진(전송된) 텍스트 메시지들의 제 2 카운트를 각각 결정하는 것을 포함한다. 다른 일례로서, 본 방법은 각각의 전화번호에 대해서, 호출 어플리케이션들을 이용하여 그 번호로 걸려진 통신들의 제 1 카운트와 그리고 메시지 어플리케이션들을 이용하여 그 번호로 걸려진 통신들의 제 2 카운트를 각각 결정하는 것을 포함한다.
특정 유형의 새로운 통신이 확립중인 경우 혹은 특정 클래스의 어플리케이션에 의해서 새로운 통신이 확립중인 경우, 본 방법은, 분류를 결정하고 그리고 결정된 분류에 따라 서로 다른 순위-정렬이 제공되도록, 적절히 순위-정렬된 전화번호들을 포함하는 리스트를 제공하는 것을 포함할 수 있다. 예를 들면, 전화 호출이 개시되고 있는 중이라면, 본 방법은 상기 제 1 카운트에 기초하여 순위-정렬된 전화번호들(예컨대, 전화 호출을 위해서 이용된 빈도 혹은 호출 어플리케이션들에 의해서 이용된 빈도에 따른 순서)을 제공하는 것을 포함할 수 있다. 반면에, 텍스트 메시징이 개시되고 있는 경우에는, 본 방법은 제 2 카운트에 기초하여 순위-정렬된 같은 번호들(예컨대, 텍스트 메시징을 위해서 혹은 메시징 어플리케이션들에 의해서 이용된 빈도에 따른 순서)을 제공하는 것을 포함할 수 있다.
본 발명에 따른 방법으로부터 이득을 얻을 수 있는 어드레스의 유형에 관한 또 다른 일례는 이메일 어드레스인데, 이는 이메일 어드레스들이 여러 개의 서로 다른 유형들의 통신들을 위한 목적지 어드레스들로 유사하게 이용될 수 있으며 및/또는 여러 개의 서로 다른 클래스들의 어플리케이션들에 의해서 이용될 수 있기 때문이다. 예를 들어, 이메일 어드레스는, 간략화된 메일 전송 프로토콜(Simplified Mail Transfer Protocol: SMTP)을 따르는 이메일 메시지들을 위한 목적지 어드레스로서 혹은 "이메일" 어플리케이션들에 의한 통신들을 위해서 통상적으로 이용되는 반면에, 많은 경우에 있어서, 동일한 이메일 어드레스들은 또한, 텍스트 메시지들 등등을 위한 목적지 어드레스로서 이용될 수도 있으며 혹은 "텍스팅(texting)" 어플리케이션들에 의해서 이용될 수도 있다. 또한, 사용자는 텍스트 메시징 보다는 이메일 메시징을 대하여 이메일 어드레스들의 그룹에 대한 서로 다른 상대적인 사용 빈도를 가질 수도 있다.
이러한 시나리오에서, 본 발명에 따른 방법은 앞서와 유사하게 각각의 이메일 어드레스에 대해서, 복수개의 사용 카운트들을 결정하는 것을 포함할 수 있는데, 가령, 하나의 사용 카운트는 이메일 메시징에 대한 것이고 다른 하나의 사용 카운트는 텍스트 메시징에 대한 것이 될 수 있으며, 혹은 하나의 사용 카운트는 이메일 어플리케이션들에 의한 메시징에 대한 것이며 다른 하나의 사용 카운트는 텍스팅 어플리케이션들에 의한 메시징에 대한 것이 될 수 있다. 새로운 통신이 확립중인 때, 상기 통신이 이메일 메시지인 경우 혹은 이메일 어플리케이션에 의해서 생성되는 경우라면, 본 방법은, 이메일 메시징에 대한 사용 카운트에 기초하여 순위-정렬된 어드레스들을 제공하는 것을 포함할 수 있다. 이와 달리, 만일 상기 통신이 텍스트 메시지이거나 혹은 텍스팅 어플리케이션에 의해서 생성되는 경우에는, 본 발명은 텍스트 메시징에 대한 사용 카운트에 기초하여 순위-정렬된 어드레스들을 제공하는 것을 포함할 수 있다.
다음을 유의해야 하는바, 본 명세서에 서술된 통신 어드레스들의 유형들, 통신들의 유형들, 그리고 통신 어플리케이션들의 클래스들은 단지 일례일 뿐이며, 그리고 본 발명은 다양한 다른 유형들 및 클래스들을 이용하는 것에도 또한 적용될 수 있다.
일반성의 상실 없이(without loss of generality), 예컨대, 통신 유형들의 다른 일례들은, 다른 무엇들 보다도 음성 통신, 비디오 통신, 이미지 통신, 텍스트 통신, 회선-교환 통신, 패킷-교환 통신, 지상선 통신(landline communication), 특정한 어플리케이션 계층 프로토콜을 이용하는 통신, 특정한 전송 포트를 이용하는 통신, 특정한 데이터 링크 계층 프로토콜을 이용하는 통신, 특정한 물리 계층 프로토콜 혹은 인터페이스를 이용하는 통신, 특정한 디바이스 혹은 어플리케이션 세팅을 이용하는 통신, 소셜 네트워킹 통신, 단문 메시징 서비스(Short Messaging Service : SMS) 통신, 멀티미디어 메시징 서비스(Multimedia Messaging Service : MMS) 통신, 유니캐스트 통신, 및 브로드캐스트 혹은 그룹-목적지 통신(가령, 친구 그룹 혹은 써클에 대한 통신)을 포함한다.
이와 유사하게, 일반성의 상실 없이, 어플리케이션들의 클래스들의 다른 일례들은, 다른 무엇들 보다도 회선-교환 통신 어플리케이션들, 패킷-교환 통신 어플리케이션들(예컨대, 보이스-오버 인터넷 프로토콜 : VoIP), 오디오 채팅 어플리케이션들, 화상 회의(video conference) 어플리케이션들, 소셜 네트워킹 통신 어플리케이션들, 그리고 스트리밍 매체 재생기 어플리케이션들을 포함한다.
또한, 목적지-어드레스 제안들로서 제시하기 위하여 통신 어드레스들을 순위-정렬함에 있어서, 본 발명에 따른 방법은, 당해(at issue) 통신 유형 혹은 어플리케이션 클래스에 대해 특정되는 사용-카운트 이외에도 추가의 팩터들을 더 고려할 수도 있다. 대안적으로, 이들 추가의 팩터들은 통신의 유형 혹은 어플리케이션 클래스를 정의하거나 혹은 통신의 유형 혹은 어플리케이션 클래스의 속성들이라고 간주될 수 있으며 따라서, 통신의 유형 혹은 어플리케이션 클래스에 기초하여 순위-정렬에 통합될 수 있다.
일례로서, 본 방법은, 여러 개가 있을 수도 있는 소스 페르소나들(source personas) 중에서 어떤 것이 과거의 통신들을 위해 이용되었는지 그리고 새로운 통신을 위해 이용되는지를 고려할 수도 있으며, 그리고 새로운 통신을 위해 이용중인 소스 페르소나와 동일한 소스 페르소나로부터의 통신에 대해서 목적지 어드레스들이 더 자주 이용되었는지 혹은 덜 자주 이용되었는지의 여부에 기초하여, 상기 목적지 어드레스들에게 더 많거나 혹은 더 적은 가중치를 부여할 수 있다(즉, 순위를 상승시키거나 혹은 하강시킨다).
예를 들면, 소정의 통신 디바이스 및/또는 통신 디바이스 상에서 구동되는 아마도 하나 이상의 어플리케이션들은, 통신들이 설정될 수 있는 다양한 소스 페르소나들 하에서 사용자가 선택적으로 조작하는 것을 허용할 수 있다. 각각의 소스 페르소나는 디바이스 상의 각각의 프로파일-세팅(profile-setting)에 의해서 정의될 수 있으며 그리고 각각의 소스 어드레스를 가질 수 있는데, 각각의 소스 어드레스로부터 상기 디바이스는 통신들을 설정할 것이다. 예를 들어, 사용자는 비즈니스(business) 페르소나를 가질 수 있는데 비즈니스 페르소나는 비즈니스 이메일 어드레스를 특정하며, 비즈니스 이메일 어드레스로부터 통신들이 전송될 수 있다. 또한, 사용자는 개인용(personal) 페르소나를 가질 수 있는데, 개인용 페르소나는 이로부터 통신들이 설정될 수 있는 개인용 이메일 어드레스를 특정한다. 상기 디바이스는 사용자에게 설정 옵션을 제공할 수도 있는데, 설정 옵션을 통하여 사용자는 하나의 프로필 혹은 다른 하나의 프로필을 사용하도록 디바이스를 세팅할 수 있다. 대안적으로 혹은 부가적으로, 개별적인 통신 어플리케이션들은, 예컨대, 이용가능한 "From" 어드레스들의 리스트로부터 "From" 어드레스를 선택함으로써, 새로운 통신을 위해 이용하도록 사용자가 소스 페르소나를 선택하는 것을 허용할 수도 있다.
소정 유형의 새로운 통신이 소정 클래스의 어플리케이션에 의해서 생성중이고 그리고 상기 새로운 통신이 소정의 소스 페르소나를 이용하여 설정중인 때, 본 발명에 따른 방법은 상기 소정의 통신 유형 및/또는 소정의 어플리케이션 클래스에 기초하여, 또한 소정의 소스 페르소나에 기초하여 사용 빈도 순서대로인 목적지-어드레스들의 리스트를 제공하는 것을 포함할 수 있다.
예를 들어, 어드레스들의 순위 결정이, 기본적인 사항으로서(as a basic matter), 소정의 통신 유형 혹은 소정의 어플리케이션 클래스에 대한 이들의 사용-카운트들의 순서대로 어드레스들을 쏘팅함으로써 수행된다면, 본 방법은 상기 소정의 소스 페르소나를 이용하여 설정된 이러한 각각의 통신을 식별하는 것과 그리고 이러한 통신을 2번씩(twice) 카운트하는 것 혹은 다른 스케일-업 팩터로 카운트하는 것을 포함할 수 있다. 이런 식으로, 만일, 소정 유형의 통신들 혹은 소정의 어플리케이션 클래스에 의한 통신들이 다른 소스 페르소나들을 이용하는 경우에 비하여 상기 소정의 소스 페르소나를 이용하는 경우에서 그 어드레스에 대해서 더 자주 설정되었다면, 소정의 어드레스는 더 높게 랭크될 것이며 그리고 소정 유형의 통신들 혹은 소정의 어플리케이션 클래스에 의한 통신들이 다른 소스 페르소나들을 이용하는 경우에 비하여 상기 소정의 소스 페르소나를 이용하는 경우에서 그 어드레스에 대해서 덜 자주 드물게 설정되었다면, 소정의 어드레스는 더 낮게 랭크될 것이다.
또 다른 일례로서, 소스 페르소나에 기초하는 순위결정은, 사용 인스턴스들(instances of use)(따라서, 사용-카운트들)을 그 각각이 각각의 소스 페르소나에 대응하는 버킷들(buckets)로 분류하고(categorizing)하고 그리고 현재 당해(at issue) 페르소나에 관련된 사용 인스턴스들에게 최상위 우선권을 부여하는 것을 포함할 수 있다. 예를 들어, 3개의 페르소나들 P1, P2, P3가 존재하고 그리고 소정 유형의 새로운 통신 혹은 소정의 어플리케이션 클래스에 의한 새로운 통신이 페르소나 P2를 이용하여 확립중이라면, 본 발명에 따른 방법은, (i) 통신 유형 및/또는 어플리케이션 클래스에 특유한 카운트들에 기초하여, 페르소나 P2가 이용되었던 통신들에 대해서 통신 어드레스들의 제 1 순위-정렬을 확립하고, (ii) 통신 유형 및/또는 어플리케이션 클래스에 특유한 카운트들에 기초하여, 임의의 다른 페르소나가 이용되었던 통신들에 대해서 통신 어드레스들의 제 2 순위-정렬을 확립하고(즉, 페르소나 P1 및 P2 하에서의 사용들에 대한 복합 순위-정렬), 그리고 (iii) 목적지 어드레스들의 순위-정렬된 리스트로서 상기 제 1 순위-정렬과 이에 후속하여 상기 제 2 순위-정렬을 제공하는 것을 포함할 수 있다. 순위-정렬 프로세스에서 소스 페르소나를 고려하는 다른 방식들이 또한 가능할 수 있다.
목적지-어드레스들의 순위-정렬을 조절하기 위한 기초로서 고려될 수 있는 다른 팩터들은, 통신들의 시간 및 통신들의 위치(location)(적용할 수 있다면)를 포함한다.
일례로서, 본 발명에 따른 방법은, 과거의 통신들이 발생한 시간(time of day)과 새로운 통신이 생성중인 시간을 고려할 수도 있으며 그리고 동일하거나 유사한 시간(예컨대, 아침, 점심, 저녁, 평일, 주말 등등의 시간 범위)에서의 통신들에 대해서 상기 어드레스들이 새로운 통신으로서 더 자주 혹은 덜 자주 이용되었는지에 따라, 더 많거나 혹은 더 적은 가중치를 목적지 어드레스들에게 부여할 수 있다. 예를 들어, 어드레스들의 순위결정이, 기본적인 사항으로서, 소정의 통신 유형 혹은 소정의 어플리케이션 클래스에 대한 그들의 사용 카운트들의 순서대로 어드레스들을 쏘팅시킴에 의해서 수행된다면, 본 발명에 따른 방법은, 생성중인 새로운 통신에 대해서 현재 시간을 판별하고 그리고 유사한 시간대에서 설정된 과거의 각각의 통신들에 대해서 카운트를 스케일링 업하는 것을 포함할 수 있다. 또한, 본 방법은 시간 상으로 현재 시간에 더 가까운 통신들에 대해서 더 큰 스케일링 혹은 더 많은 가중치를 적용할 수 있으며, 그리고 시간 상으로 현재 시간으로부터 더 먼 통신들에 대해서 더 작은 스케일링 혹은 더 적은 가중치를 적용할 수 있다.
또한, 본 방법은 과거의 통신들이 얼마나 최근에 발생했는지를 순위-정렬을 조절하기 위한 베이스로서 고려할 수도 있는바, 따라서 다른 것들보다 더 최근에 이용되었던 통신 어드레스들은 더 상위에 랭크된다. 과거 통신들의 최신성(recency)(즉, 과거의 통신이 얼마나 최근에 발생했는지)을 인자화(factoring)하는 것은, 전술한 바와 같은 과거 통신들의 소스 페르소나의 인자화와 거의 동일한 방식으로 달성될 수 있다.
일례로서, 어드레스들의 순위결정이, 기본적인 사항으로서, 소정의 통신 유형 혹은 소정의 어플리케이션 클래스에 대한 그들의 사용-카운트들의 순서대로 어드레스들을 쏘팅시킴에 의해서 수행된다면, 본 방법은, 과거의 통신들 각각이 얼마나 최근에 있었는지를 판별하고, 그리고 이에 따라 상기 통신에 대한 카운트를 스케일링하는 것을 포함할 수 있다. 예를 들면, 매우 최근에 발생한 통신은 2배로 혹은 몇몇 다른 스케일-업 팩터로 카운트될 수 있으며, 반면에 매우 오래 전에 발생한 통신은 절반으로 혹은 몇몇 다른 스케일-다운 팩터로 카운트될 수 있다. 이와 같은 방식으로, 소정의 어드레스는 상위에 랭크될 것인 바, 이는 소정 유형 혹은 소정의 어플리케이션 클래스에 의한 통신들이 그 어드레스에 대해서 최근에 더 많이 설정되었기 때문이며, 그리고 소정의 어드레는 하위에 랭크될 것인바, 이는 소정 유형의 통신들이 그 어드레스에 대해서 최근에 더 적게 설정되었기 때문이다.
또 다른 일례로서, 사용 인스턴스들(따라서, 사용-카운트들)을 그 각각이 최신성(recency)의 각각의 레벨에 대응하는 "버킷들(buckets)"로 분류함에 의해서, 최신성이 순위-정렬에 인자화(factoring)될 수 있는데, 이러한 버킷들은 가령, (a) 최근 3일 전까지의 통신들에 대한 하나의 버킷, (b) 4일 전부터 1주일 전까지의 통신들에 대한 하나의 버킷, (c) 8일 전부터 1달 전까지의 통신들에 대한 하나의 버킷, 그리고 (d) 1달 보다 오래된 통신들에 대한 하나의 버킷이 될 수 있다. 각각의 버킷에 대하여, 본 발명에 따른 방법은, 당해(at issue) 통신 유형 혹은 어플리케이션 클래스에 대해 특정되는 카운트들에 기초하여, 그리고 아마도 하나 이상의 다른 팩터들에 기초하여, 전술한 바와 같은 순위-정렬된 리스트를 확립하는 것을 포함할 수 있다. 그리고 본 발명은, 순위-정렬된 리스트를 최신성의 순서대로 쏘팅하는 것을 포함할 수 있는바, 따라서 가장 최근의 과거 통신들에 기초하는 순위-정렬된 목록이 첫번째에 위치하며(즉, 최상위 우선권을 가짐), 가장 최근 다음의 과거 통신들에 기초하는 순위-정렬된 목록은 첫번째 다음에 위치하며(최상위 다음의 우선권을 가짐), 나머지 것들도 기타 등등의 식으로 위치된다.
이러한 방식으로, 소정 유형 혹은 소정의 어플리케이션 클래스에 의한 통신들이 소정의 어드레스에 대해서 현재 시간과 유사한 시간에서 더 자주 설정되었다면 상기 소정의 어드레스는 더 상위에 랭크될 수 있다. 그리고 소정 유형 혹은 소정의 어플리케이션 클래스에 의한 통신들이 소정의 어드레스에 대해서 현재 시간과 유사한 시간에서 덜 자주 설정되었다면 상기 소정의 어드레스는 더 하위에 랭크될 수 있다.
이와 유사하게, 본 발명에 따른 방법은, 과거의 통신들이 설정되었던 위치들과 새로운 통신이 생성되고 있는 위치를 고려할 수도 있으며, 그리고 동일하거나 유사한 위치들에서 새로운 위치로서 설정된 통신들에 대해서 그 어드레스들이 더 자주 혹은 덜 자주 사용되었는지의 여부에 기초하여, 더 많거나 혹은 더 적은 가중치를 목적지 어드레스들에게 부여할 수 있다. 예를 들어, 어드레스들의 순위 결정이, 기본적인 사항으로서, 소정의 통신 유형 혹은 소정의 어플리케이션 클래스에 대한 이들의 사용-카운트들의 순서대로 어드레스들을 쏘팅함으로써 수행된다면, 본 방법은, 새로운 통신을 위한 현재 위치를 판별하고 그리고 유사한 위치에서 설정된 과거의 각각의 통신들에 대한 카운트를 스케일링 업하는 것을 포함할 수 있다. 또한, 본 방법에서는, 과거 통신들의 최신성(recency)과 관련하여 전술한 바와 같이, 가령, 서로 다른 스케일링 팩터들 혹은 버킷들을 적용함에 의해서, 현재 위치에 더 가까운 위치의 통신들에 대해서는 더 많은 가중치를 적용하고 그리고 현재 위치에서 더 먼 위치의 통신들에 대해서는 더 적은 가중치를 적용할 수 있다.
이러한 방식으로, 소정 유형 혹은 소정의 어플리케이션 클래스에 의한 통신들이 소정의 어드레스에 대해서 현재 위치와 유사한 위치에서 더 자주 설정되었다면 상기 소정의 어드레스는 더 상위에 랭크될 수 있다. 그리고 소정 유형 혹은 소정의 어플리케이션 클래스에 의한 통신들이 소정의 어드레스에 대해서 현재 위치와 유사한 위치에서 덜 자주 설정되었다면 상기 소정의 어드레스는 더 하위에 랭크될 수 있다.
또한, 다음을 유의해야 하는바, 통신 어드레스들의 주어진 세트에 대해서, 통신 어드레스들의 서로 다른 적절한 서브세트들과 관련하여 다양한 카운트들이 확립될 수 있으며, 따라서 목적지-어드레스 제안들의 순위-정렬된 리스트로서 제시되는 어드레스들의 서브세트는 통신 유형 및/또는 어플리케이션 클래스에 따라 다를 수 있다.
예를 들면, 10개의 통신 어드레스들 A1 ~ A10이 있는 경우, 오직 A1 ~ A8 어드레스들만이 제 1 유형의 통신을 위해 이용되었으며, 오직 A3 ~ A10 어드레스들만이 제 2 유형의 통신을 위해 이용되었다고 가정할 수 있다. 이러한 시나리오에서, 제 1 유형의 통신들에 대한 카운트들은 오직 어드레스 A1 ~ A8에 대해서만 결정될 수 있으며, 그리고 제 2 유형의 통신들에 대한 카운트들은 오직 어드레스 A3 ~ A10에 대해서만 결정될 수 있다. 제 1 유형의 새로운 통신이 확립중인 경우, 본 방법은, 이들의 사용-카운트들에 기초하는 순위대로 어드레스 A1 ~ A8을 제시하는 것을 포함할 수 있다. 반면에, 제 2 유형의 새로운 통신이 확립중인 경우, 본 방법은, 이들의 사용-카운트들에 기초하는 순위대로 어드레스 A3 ~ A10을 제시하는 것을 포함할 수 있다. 하지만, 실제로는, 서브세트들은 상호 배타적(mutually exclusive)이지 않을 것이며 따라서, 하나의 서브세트에는 다른 서브세트에도 있는 적어도 하나의 어드레스가 존재할 것이다
이러한 일례에서, 어드레스 A3 ~ A8 각각은 복수의 사용 카운트들을 갖는데, 하나의 카운트는 제 1 유형의 통신에 대한 것이고, 하나의 카운트는 제 2 유형의 통신에 대한 것임을 유의해야 한다. 따라서, 목적지 어드레스 제안들의 리스트는 당해(at issue) 통신 유형에 특정되는 카운트들에 기초하여 순위-정렬된 어드레스들 A3 ~ A8를 포함할 수 있다. 그럼에도 불구하고, 목적지 어드레스 제안들의 리스트는 또한, 추가 어드레스들을 포함할 수도 있다. 예를 들어, 새로운 통신이 제 1 유형의 통신이라면, 목적지 어드레스 제안들의 리스트는 어드레스 A1 및 A2를 또한 포함할 수 있다. 그리고, 만일, 새로운 통신이 제 2 유형의 통신이라면, 목적지 어드레스 제안들의 리스트는 어드레스 A9 및 A10을 또한 포함할 수 있다.
또한, 본 발명에 따른 방법의 일부 구현예에서, 특정한 통신 유형의 통신들 및/또는 특정한 어플리케이션 클래스에 의한 통신들이 설정되지 않았던 어드레스는, 상기 특정한 통신 유형 및/또는 상기 특정한 어플리케이션 클래스에 의한 새로운 통신을 위해서 제시되는 순위-정렬된 리스트로부터 완전히 배제될 수 있다. 대안적으로는, 이러한 비-사용(non-use)은 순위-정렬을 위한 목적으로 카운트 0으로 간주될 수 있는데, 이는 제시된 리스트의 맨 밑에 상기 통신 어드레스가 놓이게 할 것이다.
2. 예시적인 아키텍처
일반적으로, 본 방법은, 다양한 유형의 통신들을 가능하게 하거나 및/또는 사용자가 통신을 설정할 수 있는 다양한 통신 어플리케이션들을 갖는 통신 디바이스에 의해서 구현될 수 있다. 본 방법은 상기 디바이스 상의 프로그램 로직을 포함하는바, 프로그램 로직은 복수의 통신 어드레스들 각각에 대하여 상기 어드레스에 대해 설정된 통신들의 복수의 카운트들을 확립하며, 여기서 각각의 카운트는 각각의 통신 유형 및/또는 어플리케이션에 관한 것이며 그리고 복수의 어플리케이션들에 의한 통신들에 기초할 수도 있다. 또한, 상기 방법은 소정 유형 및/또는 소정의 어플리케이션 클래스에 의한 통신이 확립중인지를 검출하는 프로그램 로직을 포함하며, 그리고 프로그램 로직은 이에 응답하여, 소정 유형 및/또는 소정의 어플리케이션 클래스에 특정한 카운트 데이터(예컨대, 하나 이상의 다른 유형들 또는 하나 이상의 다른 어플리케이션 클래스들에 대한 것이 아닌)를 이용하여, 통신 어드레스들을 순위-정렬시키며 그리고 결과적인 순위-순서대로인 어드레스들을 포함하는 리스트를 제공하는데 이는 사용자에게 제시하기 위한 것이다. 편리하게도, 사용자는 새로운 통신을 위하여 디바이스가 이용할 목적지 어드레스를 상기 제시된 리스트로부터 선택할 수 있다.
대안적으로 혹은 추가적으로, 본 방법은 예컨대, 네트워크 서버(예를 들면, 클라우드 서버)와 같은 다른 디바이스에 의해서 수행될 수도 있다. 실제 상에서 이러한 구현을 용이하게 하기 위하여, 최종-사용자 디바이스는, 최종-사용자 디바이스에 의해서 설정된 다양한 통신들을 서버(혹은, 다른 디바이스)에 보고하도록 프로그래밍될 수 있으며, 그리고 이러한 데이터에 기초하여, 서버는 다양한 어드레스들 각각에 대하여, 복수의 통신 카운트들을 프로그래밍적으로 확립할 수 있는데, 여기서 각각의 카운트들은 각각의 통신 유형 및/또는 어플리케이션 클래스에 관한 것이다. 대안적으로, 서버는 이러한 데이터를, 예컨대, 통신 서비스 제공자(예컨대, 네트워크 과금 시스템)에 의해서 보존되는 콜 디테일 레코드(call detail records) 등등과 같은 네트워크 통신 레코드들로부터 추출할 수도 있다. 최종-사용자 디바이스가 소정 유형의 및/또는 소정 클래스의 어플리케이션에 의한 새로운 통신을 확립하고자 하는 경우, 상기 디바이스는 목적지-어드레스 제안들의 리스트를 확보하기 위하여 서버에 질의하며(query), 그리고 서버는 소정의 통신 유형 및/또는 어플리케이션 클래스에 대한 사용 카운트들에 기초하여 순위-정렬된 통신 어드레스들의 리스트를 상기 디바이스에 제공할 수 있다. 이후, 최종-사용자 디바이스는 순위-정렬된 리스트를 제시하여, 통신을 위해 이용될 원하는 목적지 어드레스를 사용자가 용이하게 선택할 수 있게 한다.
또한, 본 방법은 가령, 모든 디바이스들이 공통 사용자 계정(account) 등에 관련(예컨대, 등록됨)되어 있는 디바이스들의 그룹과 같은, 복수의 디바이스들로부터 설정된 통신들에 대한 사용 카운트들을 고려하는 것을 포함할 수 있다. 예를 들어, 복수의 최종-사용자 디바이스들이 통신들을 설정하는 경우, 이들 디바이스들은 상기 통신들을 서버에 각각 보고할 수 있으며, 혹은 서버는 상기 통신들의 레코드들을 다른 레코드들로부터 추출할 수도 있다. 이후, 서버는 복수의 통신 어드레스들 각각에 대하여, 디바이스들의 그룹에 의해서 그 어드레스에 대해서 설정된 통신들의 복수의 병합된(consolidated) 카운트들을 확립하며, 여기서 각각의 병합된 카운트들은 각각의 통신 유형 및/또는 어플리케이션 클래스에 관한 것이다. 상기 디바이스들 중 임의의 한 디바이스가 소정 유형의 새로운 통신 및/또는 소정 클래스의 어플리케이션에 의한 새로운 통신을 생성하고자 하는 경우, 이 디바이스는 목적지-어드레스 제안들의 리스트를 서버에 질의할 수 있으며, 그리고 서버는 소정의 통신 유형 및/또는 어플리케이션 클래스에 특정한 카운트들에 기초하여 순위-정렬된 리스트를 응답할 수 있다.
이제 도면들을 참조하면, 도1은 본 발명의 방법과 함께 동작가능한 예시적인 통신 디바이스(12)의 기능적인 구성요소들을 도시한 간략화된 블록도이다. 일반적으로, 통신 디바이스는 통신들을 설정하고 그리고 사용자와 상호작용하도록 기능하는 임의의 디바이스가 될 수 있다. 이러한 디바이스들의 일례들은, 지상선 또는 무선 전화기, 화상 회의 단말기, 컴퓨터, 및 현재 알려져 있거나 앞으로 개발될 다른 디바이스들을 포함하지만, 이에 한정되는 것은 아니다.
예시적인 통신 디바이스(12)는 새로운 통신을 위한 목적지-어드레스 제안들을 사용자에게 제공하도록 그 자체로서 본 발명의 방법을 실행할 수도 있다. 대안적으로, 통신 디바이스(12)는 가령, 전술한 네트워크 서버 등과 같은 하나 이상의 다른 디바이스들과 함께 동작할 수도 있는데, 이는 통신 어드레스 하나당 복수의 사용 카운트들의 확립, 그리고 당해(at issue) 통신 유형 및/또는 어플리케이션 클래스에 대한 사용 카운트들에 기초하여 순위-정렬된 목적지-어드레스 제안들의 리스트를 사용자에게 제시하는 것 등등과 같은 본 발명에 따른 방법의 하나 이상의 양상들을 구현하기 위한 것이다.
도1에 도시된 바와 같이, 예시적인 통신 디바이스(12)는 통신 인터페이스(14), 사용자 인터페이스(16), 컴퓨터 프로세서(18), 및 데이터 스토리지(20)를 포함하며, 이들 모두는 시스템 버스, 네트워크 혹은 다른 연결 매커니즘(22)에 의해서 통신가능하게 링크될 수 있다. 비록, 이들 구성요소들은 도면에서 별도의 블록들로 도시되었지만, 이들은 다양한 방법들로 통합될 수도 있다. 또한, 비록 이들 구성요소들이 통신 디바이스(12) 내에 있는 것으로 도시되었지만, 이들 구성요소들 중 일부 혹은 전부는 상기 디바이스의 외부에 제공될 수도 있으며 혹은 디바이스로부터 착탈가능할 수도 있다.
통신 인터페이스(14)는 하나 이상의 통신-인터페이스 모듈들을 포함하는바, 통신 디바이스(12)는 통신-인터페이스 모듈을 통하여 통신들을 설정하고 그리고 수신하는 것과 같이 네트워크 통신에 참여할 수 있다. 이러한 모듈들의 일례들은, 지상선 전화 회선에 접속하기 위한 RJ-11 및 RJ-45 모듈들, 혹은 WIFI, BLUETOOTH, LTE, WiMAX, CDMA, GSM, HSDPA 등의 다양한 형태의 무선 통신에 참여하기 위한 무선 이더넷 회로, 칩셋들 및 안테나들 그리고 잘 알려진 혹은 나중에 개발될 다른 유형의 통신 인터페이스들을 포함한다.
사용자 인터페이스(16)는 가령, 목적지-어드레스 제안들을 제시하고 그리고 새로운 통신을 설정하는데 이용되는 목적지 어드레스에 대한 사용자의 선택을 수신하는 것 등과 같이, 디바이스가 사용자(예를 들면, 디바이스의 임의의 그리고 모든 사용자들)와 통신할 수 있게 기능한다. 이와 같이, 사용자 인터페이스는 디스플레이 스크린 및 사운드 스피커 등과 같은 하나 이상의 출력 구성요소들과 키패드, 키보드, 터치 스크린, 터치 패널, 마이크로폰 등과 같은 하나 이상의 입력 구성요소들을 포함할 수 있다. 또한, 사용자 인터페이스는 외부 디스플레이, 헤드셋, 외부 키보드 혹은 터치 패널 등과 같은 외부적인 사용자 인터페이스 구성요소들과 접속하기 위한 인터페이스를 포함할 수도 있다. 또한, 사용자 인터페이스는 사용자에게 제공되는 혹은 사용자로부터 수신하는 아날로그 매체(예컨대, 음성)에 대한 디지털 프로세싱을 용이하게 하기 위하여 아날로그-디지털 변환기 회로를 포함할 수 있다.
프로세서(18)는 하나 이상의 범용 프로세서들(예컨대, 마이크로프로세서) 및/또는 하나 이상의 특수 목적 프로세서들(예컨대, ASIC 혹은 디지털 신호 처리기: DSP)을 포함한다. 데이터 저장장치(20)는 가령, 광학, 자기, 유기 혹은 플래시 메모리 모듈 등과 같은 하나 이상의 휘발성 및/또는 비휘발성 저장 소자들을 포함하는 비-일시적(non-transitory) 컴퓨터 판독가능한 매체가 될 수 있다. 도시된 바와 같은 예시적인 통신 디바이스에서, 데이터 저장장치(20)는 프로그램 로직(24)과 참조 데이터(26)를 포함한다. 일반적으로, 프로그램 로직(24)은 본 명세서에 서술된 다양한 기능들을 수행하도록 프로세서(18)에 의해서 실행가능하며, 그리고 참조 데이터(26)는 예컨대, 어드레스 데이터 등과 같이 프로그램 로직(24)이 연산되는 데이터를 포함한다.
비록, 데이터 저장장치(20)가 통신 디바이스(12)의 구성요소로 도시되어 있지만, 데이터 저장장치의 일부 혹은 모든 양상들은 가령, 외부 플래시 드라이브, 외부 자기 혹은 광학 하드 드라이브, 디스크 혹은 다른 비-일시적 컴퓨터 판독가능한 매체 등에 의해서 통신 디바이스와 별도로 제공될 수 있다.
다음으로, 도2는 본 발명에 따른 방법을 구현하기 위하여 데이터 저장장치(20)에 포함될 수 있는 예시적인 데이터를 도시한 좀더 상세한 블록도이다. 도2에 도시된 바와 같이, 프로그램 로직(24)은 운영 시스템(OS)(28) 및 다양한 프로그램 어플리케이션들(30)을 포함하며, 그리고 참조 데이터(26)는 콘택 데이터(32), 소스-페르소나 데이터(34), 카운트-분류 데이터(count-classification data)(36), 통신-히스토리 데이터(38), 어드레스-카운트 데이터(40), 순위-정렬 데이터(42)를 포함하며, 이들 모두는 관련 데이터베이스 구조에 저장될 수 있으며 혹은 다른 방식으로 저장될 수도 있다.
운영 시스템(28)은 예컨대, 통신 인터페이스(14)와 사용자 인터페이스(16)와의 어플리케이션 상호작용(interaction)과 같은, 통신 디바이스의 코어 동작을 용이하게 하는 임의의 운영 시스템이 될 수 있다. 도시된 바와 같이, 운영 시스템(28)은 추상화 계층(abstraction layer)(44)(프로그램 로직이 추상화 계층을 정의함)을 제공하며(포함하며), 이에 의해서 다양한 어플리케이션들(30)이 어플리케이션 프로그래밍 인터페이스(API)와 상호작용하여 본 발명의 다양한 피처들을 호출(invoke), 용이하게 하거나 본 발명의 다양한 피처들로부터 이득을 취할 수 있다.
어플리케이션 프로그램들(30)은 유용한 기능들을 제공하도록 통신 디바이스(14) 상에서 실행가능한 프로그램들 혹은 프로그램 모듈들을 포함한다. 본 발명에 따른 방법에 관하여, 어플리케이션 프로그램들(30)은 하나 이상의 통신 어플리케이션들을 포함하며 이들은 예컨대 전술한 바와 같은 유형의 어플리케이션들이 될 수 있다. 예를 들면, 대표적인 통신 어플리케이션들은, (i) 전통적인 전화 호출들을 설정하기 위한 음성 회선(circuit-voice) 전화 어플리케이션, (ii) 음성 호출들을 설정하거나 혹은 VoIP 회의에 참여하기 위한 보이스 오버 인터넷 프로토콜(VoIP) 어플리케이션, (iii) SMS 텍스트 메시지와 예컨대, 사진을 포함하는 메시지 등과 같은 MMS 메시지를 전송하기 위한 SMS/MMS 어플리케이션, 그리고 (iv) 예컨대, SMTP에 부합하는 이메일 메시지 등을 전송하기 위한 이메일 어플리케이션을 포함할 수 있다. 전술한 바와 같이, 다양한 다른 일례들이 또한 이용가능하다.
이들 통신 어플리케이션들은 운영 시스템(28)이 디바이스(12) 상에 제공되는 때와 동시에 디바이스(12) 상에 제공될 수도 있으며(예컨대, 디바이스 제작 혹은 배포 시점에서 또는 운영 시스템 업데이트 시점에서), 또는, 다른 시간에서 디바이스에 로딩될 수도 있다. 또한, 어플리케이션들(30)은 운영 시스템(28)과는 별개인 것으로 도시되어 있지만, 하나 이상의 어플리케이션들이 운영 시스템에 포함될 수도 있다. 예를 들어, 대표적인 디바이스는 디바이스의 코어 기능으로서 전화번호부(phone book) 혹은 다른 연락처 리스트와의 사용자 상호작용을 유지 및 허용하기 위한 콘택 매니지먼트 어플리케이션을 포함할 수 있다. 이러한 어플리케이션은 운영 시스템의 내부 구성요소로서 제공될 수도 있으며 혹은 운영 시스템과는 별도로 제공될 수도 있다.
대표적인 통신 어플리케이션은 가령, 사용자가 회선-호출 혹은 VoIP 호출을 설정하는 것, 사용자가 SMS/MMS 메시지들을 구성하고 전송하는 것, 사용자가 이메일 메시지들을 구성하고 전송하는 것 등등과 같이, 사용자가 새로운 통신을 생성하도록 기능할 수 있으며, 그리고 새로운 통신을 위한 목적지-어드레스 제안들의 리스트를 사용자에게 제공하도록(또는 제공되도록 야기하는) 기능할 수 있는바, 여기서 상기 리스트는 당해 통신 유형 및/또는 어플리케이션 클래스에 특정한 카운트들에 기초하여 순위-정렬된다.
실제적으로는, 예컨대 상기 통신 어플리케이션은 새로운 통신을 생성하기 위한 사용자의 요청을 수신하고, 목적지-어드레스 제안들을 사용자에게 제시하고 그리고 사용자의 선택 혹은 통신을 원하는 목적지-어드레스에 대한 다른 입력을 수신할 수 있도록, 디바이스의 디스플레이 상에 제시되며 그리고 사용자와 상호작용하는 GUI를 정의할 수 있다. 예를 들면, 어플리케이션은 순위-정렬된 목적지-어드레스 제안들의 드롭-다운(drop-down) 리스트를 GUI의 "To" 필드에(혹은 그 근처에) 제공할 수도 있으며 또는 별도의 다이얼로그(dialog)로 제공할 수도 있다. 이러한 리스트는, 특정한 연락처(contact) 혹은 연락처들의 그룹을 위한 것이 되도록, 사용자에 의해 입력된 데이터에 기초하여 필터링될 수 있다(가령, 사용자에 의해서 이때까지 입력된 문자들에 매칭되는 이름을 갖는 연락처들의 어드레스들만으로 상기 리스트를 한정하는 것과 같은).
또한, 통신 어플리케이션은 운영 시스템(28)과 상호작용하도록 기능할 수 있는바, 따라서 특정한 통신 어드레스들에 대해서 설정되었던 통신들을 보고하고 그리고 본 발명의 방법에 따른 새로운 통신을 위한 목적지-어드레스 제안들의 리스트를 운영 시스템에 질의하고 이를 운영 시스템으로부터 수신할 수 있다. 보고(reporting) 통신에 관하여, 통신을 설정하는 어플리케이션의 행위는, 설정중인 통신에 대한 보고 때문에 운영 시스템에 의해서 자체적으로 검출될 수도 있으며, 또는 상기 어플리케이션은 상기 통신을 별도로 보고할 수도 있다.
실제로는, 운영 시스템(28)은 본 발명에 따른 방법의 특정 기능들을 수행하기 위한 로직을 포함할 수도 있다. 예를 들어, 운영 시스템(28)은 특정 어드레스들에 대해서 설정된 통신들에 대한 보고들을 다양한 통신 어플리케이션들로부터 수신하는 로직과 그리고 각각의 통신 어드레스에 대해서, 그 어드레스에 설정된 통신들에 대한 복수의 카운트들을 결정하는 로직을 포함할 수 있으며, 여기서 각각의 카운트는 각각의 통신 유형 및/또는 어플리케이션 클래스에 대한 것이다. 또한, 운영 시스템은, 소정 유형의 새로운 통신을 위한 목적지-어드레스 제안들의 리스트에 대한 요청을 소정 클래스의 어플리케이션으로부터 수신하고, 상기 통신 유형 및/또는 어플리케이션 클래스(그리고 소스 페르소나, 시간 및/또는 위치 등과 같은 아마도 하나 이상의 다른 팩터들)에 특정한 카운트들에 기초하여 목적지-어드레스 제안들을 순위-정렬하고, 그리고 이에 응답하여, 어플리케이션이 사용자에게 제시하도록, 순위-정렬된 어드레스들을 포함하는 리스트를 요청 어플리케이션에게 제공하는 로직을 포함할 수 있다.
대안적으로, 본 발명에 따른 방법의 기능들을 수행하기 위한 일부 또는 모든 로직은 하나 이상의 어플리케이션 프로그램들(30)에 의해서 정의될 수 있다. 예를 들면, 특정한 어플리케이션이, 본 발명에 따른 방법을 용이하게 하기 위한 특별한 목적의 유틸리티로서 디바이스 상에 설치될 수도 있다. 대안적으로는, 다른 목적을 위해 디바이스 상에 설치된 하나 이상의 어플리케이션들이, 본 방법의 하나 이상의 기능들을 수행하기 위한 로직을 포함할 수도 있다.
참조 데이터(26) 중에서 콘택 데이터(32)는 콘택 매니지먼트 어플리케이션에 의해서 표시되기에 적절한 어드레스 북 데이터의 형태를 취할 수도 있다. 이러한 콘택 데이터는 콘택 레코드들을 포함할 수 있으며, 각각의 콘택 레코드들은 각각의 연락처(예컨대, 개인용 연락처 혹은 업무용 연락처)에 대한 것이 될 수 있으며 그리고 가능한 다른 유형들의 어드레스들 중에서 가령, 하나 이상의 전화번호들 및/또는 하나 이상의 이메일 어드레스들과 같은 하나 이상의 연락처 어드레스를 특정할 수 있는바, 각각의 어드레스는 어드레스에 대한 참조 및 표현을 용이하게 하는 라벨 혹은 식별자(예컨대, 홈, 직장, 휴대전화, 등등)를 구비한다. 또한, 각각의 콘택 레코드는 연락처 이름(contact name) 및 연락처를 나타내는 견본 이미지(thumbnail image) 등과 같은 연락처에 대한 다른 정보를 더 제공할 수도 있는바, 따라서 연락처에 대한 텍스트 및/또는 그래픽 표현도 제공될 수 있다.
하나의 일례로서, 콘택 데이터(23)는 어드레스 A1, A2, 및 A3를 지정하는 연락처 이름 "아담(Adam)"에 대한 레코드를 포함할 수 있으며, 그리고 콘택 데이터(23)는 어드레스 B1, B2, 및 B3를 지정하는 연락처 이름 "베티(Betty)"에 대한 레코드를 또한 포함할 수 있다. 이들 어드레스들은 이메일 어드레스, 전화번호 등과 같은 다양한 어드레스 유형들을 포함할 수도 있으며 혹은 모두 한 유형의 어드레스가 될 수도 있다. 또한, 다음과 같은 것도 가능한바, 콘택 데이터베이스 내에 리스트화된 하나 이상의 콘택들은 리스트화된 단지 하나의 어드레스를 가질 수도 있으며(또는 특정 유형의 하나의 어드레스가 리스트화됨) 또는, 그 어떤 어드레스들도 리스트화되지 않을 수도 있다.
소스-페르소나 데이터(34)는 디바이스에 대해 현재 활성인 소스 페르소나를 정의할 수 있으며 그리고 예컨대, 설정 인터페이스를 통하여 혹은 스케쥴에 기초하여 활성이 될 수 있는 하나 이상의 다른 소스 페르소나를 더 정의할 수도 있다.
소스-페르소나 데이터(34)는 각각의 소스 페르소나에 대해서, 디바이스로부터의 통신을 위해 이용될 하나 이상의 대응 소스 어드레스들을 정의할 수 있다. 예를 들면, 각각의 소스 페르소나에 대해서, 상기 데이터는 각각의 소스 이메일 어드레스(소스 이메일 어드레스로부터 이메일 메시지가 디폴트로 전송될 것임), 그리고 각각의 소스 전화번호(소스 전화번호로부터 호출들이 설정될 것임)를 정의할 수 있다. 구현예에 따라, 통신 디바이스가 그 각각이 서로 다른 전화번호를 갖는 복수의 "라인들" 사이에서 스위칭하는 것도 가능할 수 있으며, 또는 통신 디바이스가 현재 활성인 소스 전화번호를 호출 셋업 시그널링의 호출자-ID 정보(caller-ID information)로 전달하는 것도 가능할 수 있다.
통신 어플리케이션이 새로운 통신을 생성하기 위한 모드에 진입하는 때, 상기 어플리케이션은 통신을 위해 사용될 적용가능한 소스 어드레스를 획득하기 위하여 운영 시스템에 질의할 수 있으며 그리고 그 통신 어드레스를 이용하도록 자체적으로 디폴트로 세팅할 수 있다. 대안적으로, 상기 어플리케이션은 이용가능한 소스 어드레스들의 리스트 중에서 원하는 소스 어드레스를 사용자가 선택하는 것을 허용할 수도 있으며 그리고 소스-페르소나 데이터(34)는 선택된 소스 어드레스에 어떤 소스 페르소나가 대응하는지를(따라서, 어떤 소스 페르소나가 통신을 위해 이용되고 있는지를) 암시적으로(implicitly) 정의할 수 있다.
카운트-분류 데이터(36)는 본 방법의 사용-카운트들을 확립하는데 이용될 수 있는 다양한 분류들을 특정할 수 있다. 일례로서, 카운트-분류 데이터(36)는 다양한 통신 유형들, 다양한 어플리케이션 클래스들, 및/또는 다른 다양한 분류들을 특정할 수 있으며, 그리고 상기 분류를 참조하는데 이용될 수 있는 해당 라벨, 태그, 혹은 식별자를 각각의 분류에 부여할 수 있다. 실제로, 통신 어플리케이션은 이러한 카운트-분류 데이터를 이용하여, 적절한 라벨, 태그 혹은 식별자를 특정함에 의해서 주어진 통신에 대한 카운트-분류(혹은 분류들)를 운영 시스템에게 알려줄 수 있다. 다음으로, 운영 시스템은 이러한 세부사항(specification)을 통신의 목적지 어드레스에 대한 하나 이상의 적절한 카운트들(즉, 통신의 각각의 분류에 대한 카운트)을 증분시키기 위한 기초(basis)로 이용할 수 있다.
통신-히스토리 데이터(38)는 디바이스에 의해서 설정된 통신들에 대한 레코드를 포함할 수 있으며 그리고 어드레스 하나 하나 마다의 사용-카운트들의 확립을 용이하게 할 수 있는바, 따라서 예시적인 사용량 기록들(usage records)을 정의할 수 있다. 각각의 통신에 대한 레코드는 통신의 속성들을 식별할 수 있는데, 이러한 속성들은 가령, 소스 어드레스/페르소나, 목적지 어드레스, 통신의 분류(들)(가령, 통신 유형 및/또는 어플리케이션 클래스), 타임스탬프, 위치(예컨대, GPS에 의해서 결정된 위치 혹은 다른 이용가능한 위치-판별 기술에 의해서 결정된 위치), 지속기간(duration), 및 성향(disposition)(즉, 성공적으로 완료됨, 시도되었으나 성공적이지 않음, 기타 등등) 등이 될 수 있다.
통신-히스토리 레코드들의 전부 또는 일부는, 통신이 설정되는(예컨대, 개시되고, 성공적으로 통신되고 혹은 종료되는) 시점 혹은 다른 소정의 시점에서, 통신을 설정하는 어플리케이션에 의해서 운영 시스템에게 제공될 수 있다. 대안적으로 혹은 추가적으로, 이들 레코드들의 전부 또는 일부는 통신들의 설정을 검출하고 그리고 통신들에 관한 데이터를 기록하는 운영 시스템에 의해서 확립될 수도 있다. 또한, 통신 히스토리 데이터(38)의 연관성(relevance)을 보장하는데 도움을 주기 위하여, 기결정된 시간 기간(예컨대, 한달 혹은 설정가능한 다른 기간) 보다 더 오래된 통신-히스토리 데이터 레코드들을 자동적으로 삭제하도록 운영 시스템이 설정될 수 있다.
다음으로, 어드레스-카운트 데이터(40)는 어드레스 마다의 카운트들(counts per address)을 나타내며, 이는 본 발명의 방법에 따른 목적지-어드레스 제안들의 순위-정렬을 확립하는데 이용될 수 있다. 따라서, 어드레스-카운트 데이터(40)는, 복수의 어드레스들 각각에 대하여, 상기 디바이스에 의해서 설정된 통신의 목적지 어드레스로서 상기 어드레스가 사용된 복수의 카운트들을 각각 포함할 수 있으며, 여기서 특히, 각각의 카운트는 특정한 통신 유형 및/또는 특정한 어플리케이션 클래스 등과 같은 각각의 분류에 대한 것이다.
달리 말하면, 어드레스-카운트 데이터(40)는 카운트들의 복수의 세트들을 포함할 수 있는데, 각각의 세트는 특정한 분류에 대한 것이며 그리고 복수의 어드레스들 각각에 대하여 분류별로 특정한(classification-specific) 카운트를 각각 포함한다. 예를 들면, 어드레스-카운트 데이터(40)는 제 1 분류의 통신들에 대한 제 1 세트의 카운트들을 포함하고, 여기서 제 1 세트에 있는 각각의 카운트는 서로 다른 각각의 어드레스로 설정된 제 1 분류의 통신들의 수량(quantity)에 기초하는데, 가령, 각각의 어드레스로 각각 설정된 제 1 분류의 통신들의 횟수에 대한 카운트에 기초할 수 있다. 그리고 어드레스-카운트 데이터(40)는 제 2 분류의 통신들에 대한 제 2 세트의 카운트들을 더 포함하고, 제 2 세트에 있는 각각의 카운트는 서로 다른 각각의 어드레스로 설정된 제 2 분류의 통신들의 수량(quantity)에 기초하는데, 가령 각각의 어드레스로 각각 설정된 제 2 분류의 통신들의 횟수에 대한 카운트에 기초할 수 있다.
다음으로, 순위-정렬 데이터(42)는 본 발명의 방법에 따른 어드레스들의 순위-정렬된 리스트를 포함한다. 최적의 경우(optimally), 순위-정렬 데이터(42)는 소정 세트의 어드레스들에 대하여, 특정한 통신 유형 및/또는 어플리케이션 클래스에 대한 사용-카운트들에 기초하는 순위-정렬을 포함할 것인바 이는, 다른 통신 유형 및/또는 다른 어플리케이션 클래스에 대한 사용-카운트들에 기초하는 순위-정렬과는 다르다. 실제적으로는, 예컨대, 순위-정렬 데이터(42)는, 어드레스들에 대한 관련된(pertinent) 어드레스-카운트 데이터에 적어도 부분적으로 기초하는 순위-정렬에 따라 어드레스들을 정렬시킴에 의해서 확립될 수 있다. 예를 들면, 제1의 순위-정렬된 리스트는 제 1 분류의 통신에 대한 어드레스들 각각의 사용 카운트들의 순서대로 어드레스들을 쏘팅시킴에 의해서 확립될 수 있으며 반면에, 제2의 순위-정렬된 리스트는 제 2 분류의 통신에 대한 어드레스들 각각의 사용 카운트들의 순서대로 어드레스들을 쏘팅시킴에 의해서 확립될 수 있다.
도3은, 전술한 바와 같은 예시적인 사용자들, 아담(Adam)과 베티(Betty)의 어드레스들에 대한 어드레스-카운트 데이터(40)의 일례를 도시한다. 도3에 도시된 바와 같이, 어드레스-카운트 데이터(40)는 데이터 테이블로 구성되며, 여기서 각각의 로우(row)는 각각의 어드레스에 대응하며 그리고 각각의 컬럼은 각각의 통신 분류를 나타낸다. 도시된 일례에서는, 2개의 대표적인 통신 분류들이 제공되는데, 그중 하나는 "호출(calling)"에 대한 것이고, 다른 하나는 "메시징(messaging)"에 대한 것이다. 그리고 상기 데이터 테이블은 각각의 통신 분류에 대하여, 해당 어드레스가 목적지 어드레스로서 사용된 횟수(카운트)가 명시되어 있다.
이러한 일례에서, "호출"이라는 분류는, 가령, 하나 이상의 음성-회선 어플리케이션들, 하나 이상의 VoIP 어플리케이션들, 하나 이상의 화상 회의 어플리케이션들 등과 같은 복수의 호출 어플리케이션들에 의한 사용을 포함할 수 있다. 따라서, 상기 데이터 테이블에 도시된 소정 카운트는 2개 이상의 어플리케이션들에 의해서 설정된 통신들을 포괄할 수 있으며, 운영 시스템은 이들 어플리케이션들의 사용 데이터를 그 분류에 대한 하나의 대표적인 총 카운트로 통합한다. 이와 유사하게, "메시징"이라는 분류는 가령, 하나 이상의 SMS/MMS 어플리케이션들 및 하나 이상의 이메일 어플리케이션들 등과 같은 복수의 메시징 어플리케이션들에 의한 사용을 포함할 수 있다. 다른 일례들도 또한 가능하다.
도3의 테이블에 도시된 바와 같이, 어드레스 A1은 1개의 호출 인스턴스(1 instance of calling)와 25개의 메시징 인스턴스들을 위해서 이용되었다. 반면에, 어드레스 A2는 13개의 호출 인스턴스(13 instance of calling)와 단지 5개의 메시징 인스턴스들을 위해서 이용되었다. 이들 2개의 어드레스들만을 고려하는 경우, 만일 당해(at issue) 통신이 호출 통신이라면, 본 발명에 의해서 정의되는 로직은 A1-A2로 순위-정렬된(즉, A1이 A2 보다 높은 우선 순위를 갖음) 목적지-어드레스 제안들을 제공하도록 구성될 수 있다. 하지만, 당해 통신이 메시징 통신인 경우에는, 본 발명에 의해서 정의되는 로직은 A2-A1로 순위-정렬된(즉, A2가 A1 보다 높은 우선 순위를 갖음) 목적지-어드레스 제안들을 제공하도록 구성될 수 있다. 또한, 전술한 바와 같이, 목적지-어드레스 제안들의 순위-정렬은 가령, 소스 페르소나, 시간 및/또는 위치 등과 같은 다른 팩터들을 또한 고려할 수도 있다.
3. 예시적인 동작
다음으로 도4는 본 방법에 따라 수행될 수 있는 기능들을 도시한 순서도이다.
도4에 도시된 바와 같이, 블록 100에서, 기능들은 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 판별하는 것을 포함할 수 있으며, 복수의 제 1 카운트들에 속한 각각의 카운트들은 복수의 통신 어드레스들 중 각각의 통신 어드레스에 대해서 설정된 제 1 통신 유형의 통신들 각각의 수량(quantity)에 기초한다. 예를 들어, 통신 어드레스들 A1 ~ A10의 세트가 주어진다면, 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들은, 상기 세트 내의 각각의 어드레스에 대해서(즉, 상기 세트에 속한 서로 다른 어드레스들 각각에 대하여), 그 어드레스에 대해서 설정된 제 1 통신 유형의 통신들에 대한 카운트를 각각 포함할 수 있다. 카운트는 통신들의 수량에 기초할 수 있는데, 카운트는 통신들의 수량 그 자체가 될 수도 있으며 혹은 가령, 상기 수량의 스케일링된 버전이 되는 것처럼 통신들의 수량으로부터 카운트가 유도될 수도 있다.
블록 102에서, 기능들은 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 판별하는 것을 포함할 수 있으며, 복수의 제 2 카운트들에 속한 각각의 카운트들은 복수의 통신 어드레스들 중 각각의 통신 어드레스에 대해서 설정된 제 2 통신 유형의 통신들 각각의 수량(quantity)에 기초한다. 예를 들어, 통신 어드레스들 A1 ~ A10의 세트가 주어진다면, 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들은, 상기 세트 내의 각각의 어드레스에 대해서(즉, 상기 세트에 속한 서로 다른 어드레스들 각각에 대하여), 그 어드레스에 대해서 설정된 제 2 통신 유형의 통신들에 대한 카운트를 각각 포함할 수 있다.
실제에 있어, 블록 100 및 블록 102에 도시된 기능들은, 복수의 통신 어드레스들 각각에 대하여, 그 어드레스에 대해서 설정된 통신들에 대한 여러 개의 카운트들을 결정하는 것을 포함하는바, 각각의 카운트는 복수의 통신 유형들 중 각각의 통신 유형에 대한 것이며, 복수의 통신 유형들은 상기 제 1 통신 유형과 제 2 통신 유형을 포함한다.
실제에 있어, 운영 시스템은 통신-히스토리 데이터(38)에 기초하여 이들 결정 기능들을, 온고잉 방식으로(on an ongoing basis) 구현하거나 또는 가령, 목적지-어드레스 제안들의 순위-정렬된 리스트를 확립할 필요가 있을 때 동적으로(dynamically) 구현하는 것과 같이, 새로운 통신의 통신 유형 및/또는 어플리케이션 클래스에 기초하여 특정한 카운트들을 결정할 필요가 있을 때 동적으로 구현할 수 있다. 결정하는 행위(act)는 계산(calculating), 업데이트(updating)(예컨대, 증분:incrementing), 수신(receiving) 또는 달리 확립(establishing) 또는 학습(learning)하는 것을 포함할 수 있다.
예를 들어, 상기 디바이스가 통신을 설정할 때마다(즉, 전화를 걸거나 또는 메시지를 전송할 때마다), 운영 시스템은 상기 통신의 목적지 어드레스에 대한 적용가능한 카운트(들)을 증분시킬 수 있다. 예컨대, 도3의 테이블을 참조하면, 디바이스가 어드레스 A1으로 전화를 걸 때마다, 운영 시스템은 어드레스 A1에 대한 호출 카운트를 증분시킬 수 있으며 반면에, 디바이스가 어드레스 A1으로 메시지를 전송할 때마다 운영 시스템은 어드레스 A1에 대한 메시징 카운트를 증분시킬 수 있다(기타 등등).
전술한 바와 같이, 이들 사용-카운트들을 결정함에 있어서, 추가적인 팩터들이 고려될 수도 있다. 이러한 추가적인 팩터들 중 일부는 확립중인 새로운 통신에 특유한 것이 될 수도 있기 때문에(가령, 새로운 통신에 대해 이용 중인 소스-페르소나에 기초하여 및/또는 새로운 통신의 시간(예컨대, 최신성 : recency) 혹은 위치에 기초하여 순위를 조절하는 것 등), 새로운 통신이 확립중인 때(가령, 다이얼링 혹은 통신을 어드레스하도록 어플리케이션 기능에 대한 사용자 호출에 응답하여)에 이러한 카운트 데이터를 확립하는 것이 최선이 될 수도 있다. 추가적인 팩터(들)은 앞서 설명된 방식대로 고려될 수도 있으며 또는 몇몇 다른 방식으로 고려될 수도 있다. 대안적으로는, 소정의 특징들에 관련된 버킷들(예컨대, 페르소나-기반의 버킷들, 최신성-기반의 버킷들, 혹은 거리 기반의 버킷들)로 통신들을 쏘팅시키고 그리고 전술한 바와 같이 버킷에 특유한 기반 상에서(on a bucket-specific basis) 순위-정렬이 수행될 수 있도록, 버킷 마다에 기초하여(on a per-bucket basis) 카운트들을 확립함에 의해서, 하나 이상의 추가적인 팩터들이 확립될 수 있다.
운영 시스템에 의해서 확립된 카운트들은, 하나 이상의 통신들을 위한 목적지들로서 실제로 이용되었던 어드레스들 만으로 한정될 수 있다. 예를 들어, 운영 시스템은, 어드레스가 이용되는 경우 적용가능한 어드레스들의 리스트를 작성할 수 있으며 그리고 어드레스가 다시 한번 이용될 때마다 그 어드레스에 대한 하나 이상의 적용가능한 카운트들을 증분시킬 수 있다. 유용하게도, 이러한 것은 목적지-어드레스 제안들을 이전에 실제로 이용되었던 이들 어드레스들에 집중시키는데 도움을 준다. 대안적으로는, 목적지 어드레스로서 이용된 적이 없는 임의의 어드레스는 전술한 바와 같이 0 카운트를 가질 수도 있지만, 상기 카운트들은 예컨대, 콘택 데이터(32) 내의 모든 어드레스들을 커버할 수 있다.
블록 104에서, 상기 기능들은, 복수의 목적지-어드레스 제안들을 제공하기 위한 제 1 요청 혹은 다른 트리거를 검출하는 것을 더 포함할 수 있다. 이러한 요청 혹은 다른 트리거를 검출하는 것을 다양한 형태를 가질 수 있다. 일례로서, 운영 시스템은, 추상화 계층(44)을 통하여 통신 어플리케이션(어플리케이션 프로그램)으로부터 요청을 수신함에 의해서 이러한 요청을 검출할 수 있다. 예를 들어, 운영 시스템은, 목적지-어드레스 제안들의 리스트를 요구하는 API 질의(API query)를 통신 어플리케이션으로부터 수신할 수 있다. 실제에 있어, 이러한 요청은 제 1 통신 유형인 새로운 통신에 관련될 수 있다. 예를 들어, 통신 어플리케이션은, 제 1 통신 유형인 새로운 통신의 생성을 요청하는 사용자 입력을 수신하면, API 질의를 생성 및 전송하도록 기능할 수도 있다. 이와 같은 요청을 검출하는 것은, 또한 다른 형태를 취할 수도 있는바, 가령, 새로운 통신이 확립중임을 단순히 검출하는 것이 될 수도 있다.
특정한 일례로서, 어플리케이션이 전화 호출 어플리케이션인 경우, 전화 호출 어플리케이션은 가령, 텍스트 박스와 같은 인터페이스 요소를 제공할 수 있는데, 사용자는 연락처 이름 혹은 호출할 전화 번호를 텍스트 박스에 타이핑할 수 있다. GUI 포커스(GUI focus)가 이러한 요소 위에 있음을 어플리케이션이 검출하는 때, 어플리케이션은 API 질의를 생성 및 전송할 수 있다. 대안적으로는, 사용자가 하나 이상의 문자(가령, 연락처 이름의 첫 글자 혹은 전화번호의 첫번째 디지트)를 타이핑하기 시작하면, 어플리케이션은 API 질의를 생성 및 전송할 수 있다. 후자의 시나리오에서, 어플리케이션은 그때까지 입력된 문자/디지트의 명세(specification)를 상기 질의 내에 포함시킬 수 있으며 그리고 운영 시스템은 이 데이터를 컨택 데이터(32)를 검색하기 위한 키(key)로 이용할 수 있는바, 따라서 목적지-어드레스들의 반환되는 세트를 그때가지 입력된 문자/디지트에 매칭되는 것들 만으로 한정시킬 수 있다.
어플리케이션에 의해서 제공되는 API 질의는 새로운 통신의 하나 이상의 분류들을 명시적으로 특정할 수도 있는바, 따라서 운영 시스템은 당해 분류(들)에 특유한 방식으로 순위-정렬된 목적지-어드레스 제안들을 반환할 수 있다. 이러한 목적으로 상기 질의는 카운트-분류 데이터(36)를 이용할 수도 있다. 예를 들어, 상기 질의는, 가령, 호출(calling), 음성-회선 호출, VoIP 호출, 메시징, SMS/MMS 메시징, 혹은 이메일 메시징 등의 하나 이상의 세부 레벨들(levels of granularity)을 구비한 통신 유형 및/또는 어플리케이션 클래스를 명시적으로 특정할 수도 있다. 대안적으로, 이러한 정보의 일부 또는 전부는 특정한 어플리케이션으로부터 수신중인 질의 내에 함축될 수도 있다. 예를 들어, 기본적인 전화 호출 어플리케이션으로부터 질의가 수신된다면, 이는 곧 통신 유형이 음성 호출이며 그리고 어플리케이션 클래스는 "호출(calling)"임을 암시하는 것이 될 수 있다(예컨대, 운영 시스템의 어플리케이션 등록 데이터로부터). 다른 일례들 역시 가능하다.
따라서, 임의의 이벤트에서, 운영 시스템은 당해 통신 유형 및/또는 어플리케이션 클래스를 판별할 있으며, 적용가능한 순위-정렬을 용이하게 제공할 수 있다. 또한, 운영 시스템은 새로운 통신의 하나 이상의 다른 특징들(가령, 소스 페르소나, 시간 및/또는 위치 등)을 판별할 수 있으며, 따라서 이러한 하나 이상의 다른 특징들에 기초하여 예컨대, 전술한 바와 같은 방식으로 순위-정렬을 조정할 수 있다. 실제로는, 예컨대, 질의하는 어플리케이션(querying application)은 그의 API 질의에 소스-페르소나 식별자를 포함할 수도 있으며, 혹은 운영 시스템은 소스-페르소나를 판별하도록 디바이스 혹은 어플리케이션의 좀더 일반적인 소스-페르소나(예컨대, 사용자 프로파일) 세팅을 참조할 수도 있다. 이와 유사하게, 운영 시스템은 현재 시간 및/또는 현재 위치를 보고받거나 혹은 이를 판별할 수 있다.
블록 106에서, 기능들은 제 1 요청에 응답하여, 복수의 통신 어드레스들을 포함하는 리스트를 전송할 수 있다. 또한, 제 1 통신 유형인 새로운 통신에 응답하여, 상기 리스트에 있는 복수의 통신 어드레스들은, 복수의 제 1 카운트들에 적어도 부분적으로 기초하여 그리고 아마도 전술한 바와 같은 하나 이상의 다른 팩터들에 기초하는 순위대로 정렬될 수 있다.
앞서 서술한 바와 같이, 이러한 기능은, 새로운 통신의 유형별로 특정한 방식으로 순위-정렬된 복수의 통신 어드레스들을 포함하는 목적지-어드레스들의 리스트를 제공하는 것을 포함할 수 있다. 운영 시스템은, 제 1 어플리케이션으로부터 수신된 API 질의에 대한 응답으로서, 예컨대, 목적지-어드레스 제안들의 어레이 등과 같은 이와 같은 리스트를 제 1 어플리케이션에게 제공할 수 있다.
제공된 목적지-어드레스 제안들의 리스트는, 당해 통신 유형에 대한 통신 어드레스들의 사용 빈도(즉, 사용 카운트)의 순서대로인 복수의 통신 어드레스들을 포함할 수 있는바, 예컨대 이는 가장 사용 빈도가 많은 것(즉, 최상위 카운트)에서부터 사용 빈도가 가장 적은 것(즉, 최하위 카운트)의 순서를 가질 수 있다. 예를 들어, 도3의 어드레스들의 경우, 당해 통신 유형은 "호출" 이라고 가정하자. 테이블에 표시된 카운트 데이터에 기초하면, 리스트는 {B3, A2, B1, B2, A1, A3} 라는 순서대로 어드레스들을 정렬할 수 있는데, 왜냐하면 이들 어드레스들의 "호출"에 관한 카운트들이 각각 {15, 13, 9, 7, 1, 0} 이기 때문이다. 다른 한편으로, 만일 통신 유형이 "메시징" 이라면, 리스트는 {B2, A1, B1, A2, A3, B3} 라는 순서대로 어드레스들을 정렬할 수 있는데, 왜냐하면 이들 어드레스들의 "메시징"에 관한 카운트들이 각각 {33, 25, 11, 5, 3, 0} 이기 때문이다.
대안적으로는, 순위-정렬은 연락처별로 특정할 수 있는바(contact-specific), 즉, 연락처들에 대한 특정 유형의 통신의 사용 빈도에 기초하여 연락처들을 순위-정렬하며, 그리고 각각의 연락처 내의 어드레스들을 순위-정렬 시킨다(이 경우, 본 방법은 연락처 마다에 기초하여(on a per contact basis) 적용될 수 있으며, 그리고 아마도 콘택들의 그룹 사이에서). 예를 들어, 만일 통신 유형이 "호출" 이라면, 운영 시스템은 연락처 A가 가장 많이 호출된 연락처라고 판별할 수 있으며 따라서, 연락처 A의 주소들이 제일 첫번째 순위에 있도록 리스트화할 수 있으며, 다음으로는 연락처 B의 주소들이 그 다음 순위에 있도록 리스트화할 수 있다. 따라서, 통신 주소들의 순위 정렬된 리스트는, {연락처-A: A2, A1, A3}, 다음으로는 {연락처-B: B3, B1, B2} 가 될 수 있다.
다른 한편으로, 만일 통신 유형이 "메시징"이라면, 시스템은 연락처 B가 메시지들에 대해서 가장 자주 이용되는 목적지라고 판별할 수 있으며, 따라서 통신 어드레스들의 순위 정렬된 리스트는 {연락처-B: B2, B1, B3}, 다음으로는 {연락처-A: A1, A2, A3} 를 포함할 수 있다.
운영 시스템이 복수의 어드레스들 중의 각각의 어드레스에 대하여 복수의 서로 다른 카운트들을 보유하고 그리고 순위-정렬이 예컨대, 특정한 통신 유형 및/또는 어플리케이션 클래스에 대한 카운트들에 기초하는 시나리오의 경우, 순위-정렬은 하나 이상의 다른 통신 유형들 및/또는 어플리케이션 클래스들에 대한 카운트들에 기초하지 않을 수도 있다. 예를 들어, "호출" 통신의 경우, 어드레스들은 호출에 대한 카운트들에 기초하여 순위-정렬될 수 있지만, 메시징에 대한 카운트들에는 기초하지 않는다(즉, 메시징에 대한 카운트들은 고려하지 않는다). 그리고 "메시징" 통신의 경우, 어드레스들은 메시징에 대한 카운트들에 기초하여 순위-정렬될 수 있지만, 호출에 대한 카운트들에는 기초하지 않는다(즉, 호출에 대한 카운트들은 고려하지 않는다).
또한, 전술한 바와 같이, 순위-정렬의 토대를 구성하는 하나 이상의 카운트들은, 둘 이상의 어플리케이션들에 의한 통신에 기초할 수 있다. 따라서, 비록 운영 시스템이 순위-정렬된 목적지-어드레스 제안들을 특정한 어플리케이션에게 전송할 수도 있지만, 순위-정렬의 토대를 구성하는 하나 이상의 카운트들은 적어도 하나의 다른 어플리케이션에 의해서 설정된 통신들에 기초할 수도 있다. 예를 들어, 만일 질의하는 어플리케이션이 VoIP 호출 어플리케이션이라면, 도3의 "호출" 컬럼에 있는 카운트들의 일부 또는 전부는 음성-회선 전화 어플리케이션에 의해서 설정된 하나 이상의 호출 통신들을 포괄할 수도 있다. 다른 일례들도 또한 가능하다.
실제로는, 운영 시스템이 순위-정렬된 리스트를 어플리케이션에 전달하고자 하는 때에 운영 시스템은 어드레스들의 순위-정렬된 리스트를 동적으로 확립할 수 있다. 예를 들면, API 질의를 수신하면 혹은 그렇지 않으면 목적지-어드레스 제안들에 대한 요청을 검출하면, 운영 시스템은 통신-히스토리 데이터에 기초하여 통신 유형별로 특유한 카운트들(communication-type-specific counts)을 확립할 수 있으며 그리고 적용가능한 순위-정렬을 확립할 수 있다(프로세스의 하나 이상의 다른 팩터들을 또한 고려하는 것도 가능함). 또는, 적용가능한 통신 유형별로 특유한 카운트들이 이미 확립되어 있다면, 운영 시스템은 이후 이들 기존의 카운트들에 기초하여 적용가능한 순위-정렬을 확립함에 의해서, API 질의 혹은 다른 요청에 응답할 수 있다. 대안적으로는, 운영 시스템은, 목적지-어드레스 제안들에 대한 요청을 검출하기에 앞서서, 가령 백그라운드 프로세스로서 지속적인 기반으로(on an ongoing basis), 순위-정렬된 다양한 리스트들을 확립할 수도 있는바(통신 유형 및/또는 어플리케이션 클래스 마다), 따라서, 질의하는 임의의 어플리케이션에게 빨리 제공하는데 이용될 수 있는 적용가능한 순위-정렬을 가질 수 있다.
임의의 경우에 있어서, 목적지-어드레스 제안들의 리스트를 확립하는 행위는, 적어도 복수의 통신 어드레스들을, 적용가능한 통신 유형의 통신들에 대한 이들의 카운트들에 적어도 부분적으로 기초하여 쏘팅시키는 것을 포함한다. 예를 들어, 리스트를 확립하는 행위는, 적용가능한 통신 유형의 가장 많은 통신들로부터 적용가능한 통신 유형의 가장 적은 통신들까지의 순서대로 어드레스들을 쏘팅하는 것을 포함할 수 있는바, 가령, 소스 페르소나, 시간, 및/또는 위치 등과 같은 다른 팩터들을 또한 고려하는 것도 전술한 바와 같이 가능하다.
선택적으로는, 제 1 어플리케이션 프로그램이 운영 시스템으로부터(예컨대, 추상화 계층 44 으로부터) 목적지-어드레스 제안들의 리스트를 수신하는 때, 어플리케이션 프로그램은 상기 디바이스로 하여금 순위-정렬된 복수의 통신 어드레스들을 포함하는 목적지-어드레스 제안들을 사용자 인터페이스(16) 상에 제공하게 할 수 있다(사용자에게 보여주기 위하여). 예를 들면, 가령, 리스트의 표시(presentation)를 포함하는 GUI를 생성하고 그리고 디스플레이 상에서의 표시를 위하여 상기 GUI를 운영 시스템에 제공함에 의해서, 어플리케이션 프로그램은 디스플레이에서의 출력을 위하여 상기 리스트를 전송할 수 있다. 이후, 어플리케이션은 당해 통신을 위해 이용되도록, 표시된 목적지-어드레스들 중 하나를 사용자가 선택하게 할 수 있다.
다음을 유의해야 하는바, 목적지-어드레스 제안들의 리스트를 디스플레이 혹은 사용자 인터페이스 상에 "표시(presenting)" 혹은 "출력(outputting)" 하는 것은, 스크롤가능하게(scrollably) 상기 리스트를 제공하는 것을 포함할 수 있다. 예를 들면, 상기 리스트의 오직 일부만이 한번에 제공될 수도 있으며, 따라서 사용자는 리스트의 나머지를 보기 위해서 상기 리스트를 스크롤할 필요가 있을 수도 있다.
본 발명의 장점에 따르면, 실제로, 운영 시스템은, 다른 유형의 통신에 대한 어드레스 선택을 용이하게 하기 위하여 다르게 순위-정렬된 복수의 통신 어드레스들을 포함하는 다른 하나의 리스트를 제공할 수도 있다.
예를 들어, 운영 시스템은 복수의 목적지-어드레스 제안들에 대한 제 2 요청을 검출할 수도 있는데 여기서, 상기 제 2 요청은 상기 제 1 어플리케이션 프로그램과는 다른 어플리케이션 프로그램으로부터 수신되며 그리고 제 2 통신 유형인 제 2의 새로운 통신에 관한 것이다. 다음으로, 제 2 요청에 응답하여, 운영 시스템은 복수의 통신 어드레스들을 포함하는 제 2 리스트를 전송할 수 있는바, 여기서 복수의 통신 어드레스들은 복수의 제 2 카운트들에 적어도 부분적으로 기초하는 제 2 순위-정렬에 따라 정렬되며, 그리고 전술한 바와 같이 하나 이상의 다른 팩터들에 기초할 수도 있다. 제 2 요청을 제공한 어플리케이션 프로그램은 디스플레이 혹은 사용자 인터페이스 상에서의 출력을 위하여, 제 2 순위-정렬에 따라 정렬된 복수의 통신 어드레스들을 포함하는 제 2 리스트를 전송할 수 있는데, 이는 새로운 제 2 통신에 대해서 목적지 어드레스의 선택을 용이하게 하기 위한 것이다.
도5는 본 방법에 따라 수행될 수 있는 기능들을 도시한 순서도로서, 당해 통신 유형에 의존하는 제 1 순위-정렬 혹은 다른 것에 따라 정렬된 복수의 통신 어드레스들을 포함하는 목적지-어드레스 제안들의 리스트를 제공하기 위한 것이다. 도5에 도시된 바와 같이, 블록 110에서, 상기 기능들은 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 것을 포함할 수 있으며, 여기서 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중 각각의 통신 어드레스에 대해서 설정된 제 1 통신 유형의 통신들 각각의 수량에 기초한다. 또한, 블록 112에서, 상기 기능들은 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 것을 포함할 수 있으며, 여기서 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중 각각의 통신 어드레스에 대해서 설정된 제 2 통신 유형의 통신들 각각의 수량에 기초한다. 선택적으로는, 제 1 통신 유형과 제 2 통신 유형은 가령, 호출(calling)과 메시징 등과 같이 상호 배타적일 수도 있다(즉, 하나의 유형은 다른 하나의 유형에 의해서 포괄되지 않으며, 그 반대의 경우도 같다).
블록 114에서, 상기 기능들은 새로운 통신을 위해 목적지-어드레스 제안들에 대한 요청을 검출하는 것을 포함할 수 있다. 그리고, 블록 116에서 상기 기능들은 새로운 통신이 제 1 통신 유형인지 혹은 제 2 통신 유형인지를 결정하는 것을 포함할 수 있다. 만일, 새로운 통신이 제 1 통신 유형이라고 결정된다면, 블록 118에서, 상기 기능들은, 상기 복수의 통신 어드레스들에 대해서 결정된 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 복수의 통신 어드레스들을 포함하는 제 1 리스트를 사용자 인터페이스 상에 표시하는 것 혹은 사용자 인터페이스로 하여금 제 1 리스트를 표시하게 하는 것을 포함할 수 있다. 다른 한편으로, 만일 새로운 통신이 제 2 통신 유형이라고 결정된다면, 블록 120에서, 상기 기능들은, 상기 복수의 통신 어드레스들에 대해서 결정된 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 복수의 통신 어드레스들을 포함하는 제 2 리스트를 사용자 인터페이스 상에 표시하는 것을 포함할 수 있다.
다음으로 도6은 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시하는 다른 순서도이다. 도5에 도시된 바와 같이, 블록 130에서, 상기 기능들은 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 1 카운트들을 결정하는 것을 포함할 수 있으며, 여기서 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들에 있는 각각의 통신 어드레스에 대해서, 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들의 각각의 수량에 기초한다. 또한, 블록 132에서, 상기 기능들은 제 2 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 2 카운트들을 결정하는 것을 포함할 수 있으며, 여기서 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들에 있는 각각의 통신 어드레스에 대해서, 제 2 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들의 각각의 수량에 기초한다. 이들 기능들은, 대략적으로는, 통신 유형에 관하여 논의된 것과 동일한 방식으로 수행될 수 있지만, 어플리케이션 클래스에 기초하는 분류는 예컨대, 사용량 레포트들에 명시되거나 혹은 사용량 레포트들로부터 암시될 수 있다. 또한, 제 1 및 제 2 어플리케이션 클래스들은 상호 배타적일 수도 있다(즉, 하나의 클래스는 다른 하나의 클래스에 의해서 포괄되지 않으며, 그 반대의 경우도 같다).
이후 블록 134에서, 상기 기능들은 복수의 목적지-어드레스 제안들에 대한 제 1 요청을 검출하는 것을 포함할 수 있으며, 여기서 제 1 요청은 제 1 어플리케이션으로부터 수신되고 그리고 새로운 제 1 통신에 관련되며, 그리고 제 1 어플리케이션은 제 1 어플리케이션 클래스의 멤버이다. 블록 136에서, 제 1 요청에 응답하여, 상기 기능들은 복수의 통신 어드레스들을 포함하는 제 1 리스트를 전송하는 것을 포함할 수 있다. 또한, 제 1 어플리케이션 클래스의 멤버인 제 1 어플리케이션(즉, 새로운 제 1 통신을 생성하는)에 응답하여, 제 1 리스트에 있는 복수의 통신 어드레스들은 제 1 순위-정렬에 따라 정렬될 수 있는바, 제 1 순위-정렬은 복수의 제 1 카운트들에 적어도 부분적으로 기초하며 즉, 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 카운트들에 기초한다.
실제로는, 이러한 제 1 순위-정렬은, 제 2 어플리케이션 클래스인 하나 이상의 어플리케이션에 의해서 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 복수의 제 2 카운트들을 고려함이 없이, 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션에 의해서 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 복수의 제 1 카운트들에 적어도 부분적으로 기초하여 복수의 통신 어드레스들을 쏘팅시킴에 의해서 확립될 수 있는바, 따라서 상기 제 1 순위-정렬에 따라 정렬된 복수의 통신 어드레스들을 포함하는 제 1 리스트가 확립될 수 있다.
또한, 상기 기능들은, 제 1 요청을 검출하면, 상기 제 1 어플리케이션이 상기 제 1 어플리케이션 클래스의 멤버임을 결정하는 것을 포함할 수 있다. 그리고 상기 기능들은 이러한 결정에 응답하여, 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션에 의해서 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 복수의 제 1 카운트들에 적어도 부분적으로 기초하여 적어도 복수의 통신 어드레스들을 쏘팅시키는 것을 포함할 수 있는바, 따라서 상기 제 1 순위-정렬에 따라 정렬된 복수의 통신 어드레스들을 포함하는 제 1 리스트가 확립될 수 있다. 대안적으로는, 상기 기능들은, 제 1 요청을 검출하기에 앞서서, 제 1 어플리케이션 클래스인 하나 이상의 어플리케이션에 의해서 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 복수의 제 1 카운트들에 적어도 부분적으로 기초하여, 적어도 복수의 통신 어드레스들을 쏘팅시키는 것을 포함할 수 있는바, 따라서 상기 제 1 순위-정렬에 따라 정렬된 복수의 통신 어드레스들을 포함하는 제 1 리스트가 확립될 수 있다.
블록 138에서, 상기 기능들은 복수의 목적지-어드레스 제안들에 대한 제 2 요청을 검출하는 것을 더 포함할 수 있는바, 여기서 제 2 요청은 제 2 어플리케이션으로부터 수신되고 그리고 새로운 제 2 통신에 관련되며, 그리고 제 2 어플리케이션은 제 2 어플리케이션 클래스의 멤버이다.
블록 140에서, 제 2 요청에 응답하여, 상기 기능들은 복수의 통신 어드레스들을 포함하는 제 2 리스트를 전송하는 것을 포함할 수 있다. 또한, 제 2 어플리케이션 클래스의 멤버인 제 2 어플리케이션(즉, 새로운 제 2 통신을 생성하는)에 응답하여, 제 2 리스트에 있는 복수의 통신 어드레스들은 제 2 순위-정렬에 따라 정렬될 수 있는바, 제 2 순위-정렬은 복수의 제 2 카운트들에 적어도 부분적으로 기초하며 즉, 제 2 어플리케이션 클래스인 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 카운트들에 기초한다.
다음으로 도7은 본 발명의 방법에 따라 수행될 수 있는 기능들을 도시하는 다른 순서도이다. 도7의 순서도는 본 방법이 목적지-어드레스 제안들에 대한 특정한 순위-정렬을 제공하는 것을 포함할 수도 있음을 예시하는바, 여기서 순위-정렬은 확립중인 새로운 통신의 분류에 기초한다(예컨대, 새로운 통신의 통신 유형 및/또는 새로운 통신을 확립하는 어플리케이션의 어플리케이션 클래스).
도7에 도시된 바와 같이, 블록 150에서, 상기 기능들은, 새로운 통신에 대해서 목적지-어드레스 제안들에 대한 요청을 검출하는 것을 포함할 수 있다. 블록 152에서, 상기 기능들은 새로운 통신의 분류(가령, 통신 유형 및/또는 어플리케이션 클래스)를 판별하는 것을 포함할 수 있다. 블록 154에서, 상기 기능들은, 상기 요청에 응답하여, 순위-정렬에 따라 정렬된 복수의 통신 어드레스들을 제공(예컨대, 전송)하는 것을 포함할 수 있으며, 여기서 순위-정렬은 새로운 통신의 결정된 분류에 적어도 부분적으로 기초한다. 실제로는 예를 들어, 상기 기능들은, 결정된 분류에 대한 사용-카운트들에 적어도 부분적으로 기초하여 통신 어드레스들을 순위-정렬하는 것과 그리고 순위-정렬된 리스트를 제공하는 것을 포함할 수 있다. 대안적으로는, 상기 기능들은, 복수의 분류별로 특정하게 순위-정렬된 리스트들(classification-specific rank-ordered listings)(가령, 분류 마다 순위-정렬된 리스트)를 보유하는 것과 그리고 결정된 분류에 대응되는 순위-정렬된 리스트를 상기 복수의 분류별로 특정하게 순위-정렬된 리스트들로부터 선택하는 것, 그리고 상기 순위-정렬된 리스트를 제공하는 것을 포함할 수 있다.
마지막으로, 도8(파트 A 및 B)은 2개의 예시적인 GUI 이미지들을 제공하는데, 이는 생성되는 통신의 유형에 기초하여 어드레스들의 세트에 대한 서로 다른 순위-정렬을 본 방법이 어떻게 제공할 수 있는가를 예시하기 위한 것이다. 도8의 A는 메시징 어플리케이션(가령, SMS 또는 MMS 어플리케이션)에 대한 GUI를 도시하며 그리고 도8의 B는 전화(telephone) 어플리케이션(가령, 음성-회선 호출 어플리케이션)에 대한 GUI를 도시한다. 2개의 이미지들 모두에서, GUI는 QWERTY 키보드를 포함하는바, 이는 원하는 통신에 대한 목적지 연락처(destination contact)의 처음 문자들을 사용자가 타이핑하기 위한 것이다. 또한, 도8의 A의 GUI에는 사용자가 텍스트 메시지를 완성할 수 있는 "From" , "Subject" , "Compose" 필드들이 도시되어 있다("Subject" 와 "Compose" 필드들은 다른 정보에 의해서 부분적으로 가려져 있음).
이들 예시적인 GUI 이미지들 둘다는, 새로운 통신을 위한 원하는 목적지 어드레스를 나타내도록 사용자가 완성시킬 수 있는 필드를 포함한다. 메시징 GUI는 "To" 필드를 포함하며 그리고 전화 GUI는 "Dial" 필드를 포함한다. 또한, 각각의 이미지에는 목적지 연락처 이름으로서 사용자가 이때까지 타이핑한 문자들 "be"가 도시되어 있다. 그리고 2개의 이미지들 둘다에는 목적지 필드 아래의 적층된 블록으로서, 목적지-어드레스 제안들의 리스트를 제시하는 GUI가 도시되어 있다. 하지만, 본 발명의 방법에 따르면, 메시징 GUI 상에 도시된 목적지 어드레스들의 리스트는 전화 GUI에 도시된 목적지 어드레스들의 리스트와는 다르게 순위-정렬되는데, 이는 적어도 부분적으로는, 메시징과 전화 호출에 대해서 어드레스들이 서로 다른 관련된 사용-카운트들을 갖기 때문이다.
예를 들면, 메시징 어플리케이션 GUI에는, 매칭되는 연락처 이름들 "Betty Johnson" , "Beth Campbell" 및 "Bernie Smith" 가 리스팅되어 있다. Betty Johnson의 경우, 상기 리스트는 순위 정렬된 전화번호들 111-111-1111 및 222-222-2222을 명시한다. Beth Campbell의 경우, 상기 리스트는 하나의 전화번호 333-333-3333을 명시하며, Bernie Smith에 대해서는 하나의 전화번호 444-444-4444가 명시되어 있다. 본 방법에 따르면, 이러한 순위-정렬은, 텍스트 메시지의 목적지로서 Betty가 가장 많이 이용되며, 그 다음은 Beth, 그 다음으로는 Bernie가 이용됨을 나타내는 사용-카운트 데이터 때문이며, 이러한 사용-카운트 데이터는 Betty의 경우, 그녀의 전화번호 중 222-222-2222 보다 111-111-1111이 텍스트 메시징의 목적지로 더 자주 이용됨을 나타낸다.
다른 한편으로, 전화 어플리케이션 GUI는 Bernie, Betty, 그리고 Beth의 순서대로 연락처들을 열거하고, 연락처 각각에 대해 어드레스를 명시하고 있으며, 그리고 Betty의 경우 전화번호의 순서가 역전되어 있음을 알 수 있다. 본 방법에 따르면, 이러한 순위-정렬은, Bernie에게 전화를 가장 자주 걸었으며, 그 다음은 Betty, 그 다음으로는 Beth에게 전화를 걸었음을 나타내는 사용-카운트 데이터 때문이며, 이러한 사용-카운트 데이터는 Betty의 경우, 그녀의 전화번호 111-111-1111 보다 222-222-2222로 전화를 더 자주 걸었음을 나타낸다.
이러한 GUI들 중 어느 하나가 제공되면, 사용자는 목적지-어드레스 제안들의 리스트 내에 제공된 블록들 중에서 원하는 것 하나를 선택할 수 있으며, 그리고 이에 응답하여 디바이스는 선택된 목적지 어드레스를 확립중인 통신을 위한 목적지 필드 내에 입력할 수 있다. 이후 사용자는 그 어드레스에 대한 통신을 설정하도록 디바이스에게 명령할 수 있다.
비록, 다양한 양상들 및 실시예들이 본 명세서에 개시되어 있지만, 다른 양상들 및 실시예들도 해당 기술분야의 당업자에게 명백할 것이다. 본 명세서에 개시된 다양한 양상들 및 실시예들은 청구항들에 의해서 표현되는 본 발명의 진정한 범위 및 사상과 함께 본 발명을 설명하기 위한 것이며 그리고 본 발명을 제한하고자 의도된 것이 아니다. 예를 들면, 비록 전술한 상세한 설명은 목적지-어드레스 제안들의 리스트를 순위-정렬하기 위하여 2개의 통신 유형들 및/또는 어플리케이션 클래스들을 예시적인 통신 분류로서 이용하고 있지만, 다른 일례들도 또한 가능하며, 그리고 그 각각이 통신 어드레스들에 대한 서로 다른 각각의 순위-정렬을 야기할 수 있는 3개 이상의 통신 분류들도 적용가능하다.

Claims (30)

  1. 기능들을 수행하기 위하여 프로세서에 의해서 실행가능한 프로그램 명령들이 저장되어 있는 비일시적인(non-transitory) 컴퓨터 판독가능한 매체로서, 상기 기능들은,
    제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 단계와, 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 1 통신 유형인 통신들 각각의 수량(quantity)에 기초하며;
    제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 단계와, 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 2 통신 유형인 통신들 각각의 수량에 기초하며;
    복수의 목적지-어드레스 제안들에 대한 요청을 검출하는 단계와, 상기 요청은 제 1 어플리케이션 프로그램으로부터 수신되고 그리고 새로운 통신에 관련되며, 상기 새로운 통신은 제 1 통신 유형이며;
    상기 제 1 어플리케이션 프로그램으로부터의 상기 요청에 응답하여, 상기 제 1 어플리케이션 프로그램과는 다른 제 2 어플리케이션 프로그램에 의해서 설정된 하나 이상의 통신들에 적어도 일부분 기초하는 순위-정렬에 따라 정렬된 복수의 통신 어드레스들의 리스트를 전송하는 단계와, 상기 새로운 통신이 제 1 통신 유형이라는 것에 응답하여 상기 순위-정렬은 상기 복수의 제 1 카운트들에 적어도 일부분 기초하며, 상기 복수의 제 1 카운트들에 적어도 일부분 기초하는 상기 순위-정렬이 상기 제 2 어플리케이션 프로그램에 의해서 설정된 상기 하나 이상의 통신들에도 적어도 일부분 기초하도록, 상기 복수의 제 1 카운트들은 상기 제 2 어플리케이션 프로그램에 의해서 설정된 하나 이상의 통신들에 적어도 일부분 기초하는 적어도 하나의 카운트를 포함하며; 그리고
    디스플레이를 위해 상기 리스트를 출력하는 단계
    를 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  2. 제1항에 있어서,
    상기 기능들은,
    상기 요청을 검출하면, 상기 새로운 통신이 제 1 통신 유형임을 결정하는 단계와; 그리고
    상기 새로운 통신이 제 1 통신 유형이라고 결정한 것에 응답하여, 상기 리스트를 정의하도록 상기 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅(sorting)시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  3. 제1항에 있어서,
    상기 순위-정렬은 또한, 상기 새로운 통신에 관련된 소스 페르소나(source persona)에 적어도 일부분 기초하며;
    그리고 상기 기능들은,
    상기 리스트를 정의하도록, (i) 상기 복수의 제 1 카운트들 그리고 (ii) 상기 제1의 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  4. 제1항에 있어서,
    상기 순위-정렬은 또한, 상기 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하며;
    그리고 상기 기능들은,
    상기 요청을 검출하면, 상기 새로운 통신이 제 1 통신 유형이며 그리고 상기 소스 페르소나에 관련됨을 결정하는 단계와; 그리고
    상기 리스트를 정의하도록, 상기 새로운 통신이 제 1 통신 유형이며 그리고 상기 소스 페르소나에 관련된다고 결정한 것에 응답하여, (i) 복수의 카운트들 그리고 (ii) 상기 제1의 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  5. 제1항에 있어서,
    상기 순위-정렬은 또한, 상기 제 1 통신 유형의 통신들의 최신성(recency)에 적어도 일부분 기초하며,
    그리고 상기 기능들은,
    상기 리스트를 정의하도록, (i) 상기 복수의 제 1 카운트들 그리고 (ii) 상기 제 1 통신 유형의 통신들의 최신성에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  6. 제5항에 있어서,
    적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계는,
    최신성에 기초하여 상기 제 1 통신 유형의 통신들을 버킷들(buckets)로 분류하는 단계(categorizing)
    를 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  7. 제1항에 있어서,
    상기 기능들은,
    상기 요청을 검출하기에 앞서서, 상기 리스트를 정의하도록 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  8. 제1항에 있어서,
    상기 요청은 제 1 요청이고, 상기 새로운 통신은 제1의 새로운 통신이며, 상기 리스트는 제 1 리스트이고, 그리고 상기 순위-정렬은 제1의 순위-정렬이며,
    상기 기능들은,
    복수의 목적지-어드레스 제안들에 대한 제 2 요청을 검출하는 단계와, 상기 제 2 요청은 제 3 어플리케이션 프로그램으로부터 수신되고 그리고 제2의 새로운 통신에 관련되며, 상기 제2의 새로운 통신은 제 2 통신 유형이며;
    상기 제 2 요청에 응답하여 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 전송하는 단계와, 상기 제2의 새로운 통신이 제 2 통신 유형이라는 것에 응답하여 상기 리스트 내의 복수의 통신 어드레스들은, 상기 복수의 제 2 카운트들에 적어도 일부분 기초하는 제2의 순위-정렬(상기 제1의 순위-정렬과는 다름)에 따라 정렬되며; 그리고
    디스플레이를 위해 상기 제 2 리스트를 출력하는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  9. 제1항에 있어서,
    상기 복수의 통신 어드레스들은 전화번호들이며, 상기 제 1 통신 유형은 전화 호출 통신(telephone call communication)이며, 그리고 상기 제 2 통신 유형은 SMS(Short Messaging Service) 메시지들과 MMS(Multimedia Messaging Service) 메시지들로 구성된 그룹으로부터 선택된 메시지들을 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  10. 제1항에 있어서,
    상기 복수의 통신 어드레스들은 이메일 어드레스들이며, 상기 제 1 통신 유형은 이메일 통신이며, 그리고 상기 제 2 통신 유형은 SMS(Short Messaging Service) 메시지들과 MMS(Multimedia Messaging Service) 메시지들로 구성된 그룹으로부터 선택된 메시지들을 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  11. 제1항에 있어서,
    상기 프로그램 명령들은 컴퓨터 운영 시스템의 일부이며, 그리고 상기 기능들은,
    복수의 어플리케이션 프로그램들로부터 사용량 기록들(usage records)을 수신하는 단계와, 그리고
    수신된 사용량 기록들에 기초하여 상기 복수의 제 1 카운트들과 상기 복수의 제 2 카운트들을 정의하는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  12. 제11항에 있어서,
    상기 기능들은,
    이를 통하여 상기 사용량 기록들이 수신되고 그리고 상기 요청이 검출되는 추상화 계층(abstraction layer)을 제공하는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능한 매체.
  13. 기능들을 수행하기 위하여 프로세서에 의해서 실행가능한 명령들이 저장되어 있는 비일시적인 머신 판독가능한 매체로서, 상기 기능들은,
    제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 단계와, 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 1 통신 유형인 통신들 각각의 수량(quantity)에 기초하며;
    제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 단계와, 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 상기 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 2 통신 유형인 통신들 각각의 수량에 기초하며, 상기 제 1 통신 유형과 상기 제 2 통신 유형은 상호 배타적이며;
    새로운 통신을 위한 목적지-어드레스 제안들에 대한 요청을 검출하는 단계와; 그리고
    상기 요청에 응답하여, (i) 만일 상기 새로운 통신이 제 1 통신 유형이라면, 사용자 인터페이스로 하여금, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하며, 그리고 (ii) 만일 상기 새로운 통신이 제 2 통신 유형이라면, 사용자 인터페이스로 하여금, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계
    를 포함하며,
    상기 복수의 통신 어드레스들 중 적어도 제 1 통신 어드레스에 대하여, 상기 복수의 제 1 카운트들은, 복수의 통신 어플리케이션들에 의해서 상기 제 1 통신 어드레스에 대해서 설정된 하나 이상의 통신들에 적어도 일부분 기초하는 특정 카운트를 포함하며,
    상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 정렬된 상기 복수의 통신 어드레스들은 상기 특정 카운트에 적어도 일부분 기초하여 정렬된 복수의 통신 어드레스들을 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  14. 제13항에 있어서,
    상기 복수의 통신 어드레스들은 전화번호들이며, 상기 제 1 통신 유형의 통신들은 전화 호출 통신들이며, 그리고 상기 제 2 통신 유형의 통신들은 SMS 메시지들과 MMS 메시지들로 구성된 그룹으로부터 선택된 메시지들을 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  15. 제13항에 있어서,
    상기 복수의 통신 어드레스들은 이메일 어드레스들이며, 상기 제 1 통신 유형의 통신들은 이메일 메시지들이며, 그리고 상기 제 2 통신 유형의 통신들은 SMS 메시지들과 MMS 메시지들로 구성된 그룹으로부터 선택된 메시지들을 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  16. 제13항에 있어서,
    상기 기능들은,
    사용자 인터페이스로 하여금 상기 제 1 리스트를 표시하게 할 것인지 혹은 상기 제 2 리스트를 표시하게 할 것인지를 결정하도록, 상기 요청에 응답하여 상기 새로운 통신이 제 1 통신 유형인지 혹은 제 2 통신 유형인지를 결정하는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  17. 제16항에 있어서,
    상기 기능들은,
    상기 통신이 제 1 통신 유형인지 혹은 제 2 통신 유형인지를 결정한 이후에, 사용자 인터페이스 상에 표시하기 위하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  18. 제16항에 있어서,
    상기 기능들은,
    상기 요청을 검출하기에 앞서서, (a) 상기 제 1 리스트를 정의하도록 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키고, 그리고 (b) 상기 제 2 리스트를 정의하도록 상기 복수의 제 2 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  19. 제13항에 있어서,
    상기 사용자 인터페이스로 하여금 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하는 단계는,
    상기 사용자 인터페이스로 하여금 (i) 상기 복수의 제 1 카운트들 그리고 (ii) 상기 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하여 쏘팅된 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하는 것을 포함하며; 그리고
    상기 사용자 인터페이스로 하여금 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계는,
    상기 사용자 인터페이스로 하여금 (i) 상기 복수의 제 2 카운트들 그리고 (ii) 상기 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하여 쏘팅된 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 것을 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  20. 제13항에 있어서,
    상기 사용자 인터페이스로 하여금 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하는 단계는,
    상기 사용자 인터페이스로 하여금 (i) 상기 복수의 제 1 카운트들 그리고 (ii) 통신 최신성(communication recency)에 적어도 일부분 기초하여 쏘팅된 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 표시하게 하는 것을 포함하며; 그리고
    상기 사용자 인터페이스로 하여금 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계는,
    상기 사용자 인터페이스로 하여금 (i) 상기 복수의 제 2 카운트들 그리고 (ii) 통신 최신성(communication recency)에 적어도 일부분 기초하여 쏘팅된 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 것을 포함하는 것을 특징으로 하는 비일시적인 머신 판독가능한 매체.
  21. 방법으로서,
    통신 디바이스가 제 1 통신 유형의 통신들에 대한 복수의 제 1 카운트들을 결정하는 단계와, 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 1 통신 유형인 통신들 각각의 수량에 기초하며;
    상기 통신 디바이스가 제 2 통신 유형의 통신들에 대한 복수의 제 2 카운트들을 결정하는 단계와, 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해 설정된 제 2 통신 유형인 통신들 각각의 수량에 기초하며;
    상기 통신 디바이스가 새로운 통신을 위한 목적지-어드레스 제안들에 대한 요청을 검출하는 단계와; 그리고
    상기 요청에 응답하여, (i) 만일 상기 새로운 통신이 제 1 통신 유형이라면, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 1 리스트를 상기 통신 디바이스가 사용자 인터페이스 상에 표시하며, 그리고 (ii) 만일 상기 새로운 통신이 제 2 통신 유형이라면, 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 2 카운트들에는 적어도 일부분 기초하여 쏘팅되지만 상기 복수의 통신 어드레스들에 대해서 결정된 상기 복수의 제 1 카운트들에는 기초하지 않고 쏘팅되는 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 상기 통신 디바이스가 상기 사용자 인터페이스 상에 표시하는 단계
    를 포함하며,
    상기 복수의 통신 어드레스들 중 적어도 제 1 통신 어드레스에 대하여, 상기 복수의 제 1 카운트들은, 복수의 통신 어플리케이션들에 의해서 상기 제 1 통신 어드레스에 대해서 설정된 하나 이상의 통신들에 적어도 일부분 기초하는 특정 카운트를 포함하며,
    상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 쏘팅된 상기 복수의 통신 어드레스들은 상기 특정 카운트에 적어도 일부분 기초하여 쏘팅된 복수의 통신 어드레스들을 포함하는 것을 특징으로 하는 방법.
  22. 방법으로서,
    제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 1 카운트들을 컴퓨터 프로세서가 결정하는 단계와, 상기 복수의 제 1 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해서 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들 각각의 수량에 기초하며;
    제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 복수의 제 2 카운트들을 상기 컴퓨터 프로세서가 결정하는 단계와, 상기 복수의 제 2 카운트들에 속한 각각의 카운트는, 복수의 통신 어드레스들 중의 각각의 통신 어드레스에 대해서 상기 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들 각각의 수량에 기초하며;
    복수의 목적지-어드레스 제안들에 대한 요청을 상기 컴퓨터 프로세서가 검출하는 단계와, 상기 요청은 제 1 어플리케이션으로부터 수신되고 그리고 새로운 통신에 관련되며, 상기 제 1 어플리케이션은 상기 제 1 어플리케이션 클래스의 멤버이며; 그리고
    상기 요청에 응답하여, 상기 컴퓨터 프로세서가 사용자 인터페이스로 하여금 상기 복수의 통신 어드레스들을 포함하는 리스트를 표시하게 하는 단계
    를 포함하며,
    상기 제 1 어플리케이션이 상기 제 1 어플리케이션 클래스의 멤버임에 응답하여, 상기 리스트 내의 상기 복수의 통신 어드레스들은 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하는 순위-정렬에 따라 정렬되며,
    상기 복수의 통신 어드레스들 중 적어도 제 1 통신 어드레스에 대하여, 상기 복수의 제 1 카운트들은 상기 제 1 어플리케이션 클래스의 복수의 통신 어플리케이션들에 의해서 상기 제 1 통신 어드레스에 대해서 설정된 하나 이상의 통신들에 적어도 일부분 기초하는 특정 카운트를 포함하며, 상기 순위-정렬은 상기 특정 카운트에 적어도 일부분 기초하는 것을 특징으로 하는 방법.
  23. 제22항에 있어서,
    상기 요청은 제 1 요청이고, 상기 새로운 통신은 제1의 새로운 통신이며, 상기 리스트는 제 1 리스트이고, 그리고 상기 순위-정렬은 제1의 순위-정렬이며, 그리고 상기 방법은,
    상기 컴퓨터 프로세서가 복수의 목적지-어드레스 제안들에 대한 제 2 요청을 검출하는 단계와, 상기 제 2 요청은 제 2 어플리케이션으로부터 수신되고 그리고 제2의 새로운 통신에 관련되며, 상기 제 2 어플리케이션은 상기 제 2 어플리케이션 클래스의 멤버이며; 그리고
    상기 제 2 요청에 응답하여, 상기 컴퓨터 프로세서가 사용자 인터페이스로 하여금 상기 복수의 통신 어드레스들을 포함하는 제 2 리스트를 표시하게 하는 단계
    를 더 포함하며,
    상기 제 2 어플리케이션이 상기 제 2 어플리케이션 클래스의 멤버임에 응답하여, 상기 제 2 리스트 내의 상기 복수의 통신 어드레스들은 상기 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 2 카운트들에 적어도 일부분 기초하는 제2의 순위-정렬에 따라 정렬되며, 상기 제2의 순위-정렬은 상기 제1의 순위-정렬과 다른 것을 특징으로 하는 방법.
  24. 제23항에 있어서,
    상기 제 1 어플리케이션 클래스는 상기 제 2 어플리케이션과 상호 배타적인 것을 특징으로 하는 방법.
  25. 제22항에 있어서,
    상기 리스트를 정의하기 위하여, 상기 제 2 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 상기 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 상기 복수의 제 2 카운트들을 고려함이 없이, 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 상기 복수의 통신 어드레스들에 대해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 상기 컴퓨터 프로세서가 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  26. 제22항에 있어서,
    상기 요청을 검출하면, 상기 컴퓨터 프로세서가 상기 제 1 어플리케이션이 제 1 어플리케이션 클래스의 멤버임을 결정하는 단계와; 그리고
    상기 제 1 어플리케이션이 제 1 어플리케이션 클래스의 멤버라고 결정하는 것에 응답하여, 상기 리스트를 정의하도록 상기 복수의 통신 어드레스들에 대해서 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 상기 컴퓨터 프로세서가 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  27. 제22항에 있어서,
    상기 요청을 검출하기에 앞서서, 상기 리스트를 정의하도록 상기 복수의 통신 어드레스들에 대해서 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 상기 컴퓨터 프로세서가 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  28. 제22항에 있어서,
    상기 리스트를 정의하도록 상기 복수의 통신 어드레스들에 대해서 상기 제 1 어플리케이션 클래스의 하나 이상의 어플리케이션들에 의해서 설정된 통신들에 대한 상기 복수의 제 1 카운트들에 적어도 일부분 기초하여 적어도 상기 복수의 통신 어드레스들을 상기 컴퓨터 프로세서가 쏘팅시키는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  29. 제22항에 있어서,
    상기 순위-정렬은 또한, 상기 새로운 통신에 관련된 소스 페르소나에 적어도 일부분 기초하는 것을 특징으로 하는 방법.
  30. 제22항에 있어서,
    상기 순위-정렬은 또한, 통신 최신성에 적어도 일부분 기초하는 것을 특징으로 하는 방법.
KR1020137004587A 2011-10-06 2012-09-27 목적지-어드레스 제안들을 제공하는 방법 및 장치 KR101361768B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/267,496 2011-10-06
US13/267,496 US8209390B1 (en) 2011-10-06 2011-10-06 Method and apparatus for providing destination-address suggestions
US13/473,189 US8359363B1 (en) 2011-10-06 2012-05-16 Method and apparatus for providing destination-address suggestions
US13/473,189 2012-05-16
PCT/US2012/057428 WO2013052333A2 (en) 2011-10-06 2012-09-27 Method and apparatus for providing destination-address suggestions

Publications (2)

Publication Number Publication Date
KR20130051990A true KR20130051990A (ko) 2013-05-21
KR101361768B1 KR101361768B1 (ko) 2014-02-12

Family

ID=46272989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004587A KR101361768B1 (ko) 2011-10-06 2012-09-27 목적지-어드레스 제안들을 제공하는 방법 및 장치

Country Status (7)

Country Link
US (2) US8209390B1 (ko)
KR (1) KR101361768B1 (ko)
CN (1) CN104429024B (ko)
AU (1) AU2013200691C1 (ko)
DE (1) DE112012000134B4 (ko)
GB (1) GB2499729A (ko)
WO (1) WO2013052333A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949714B1 (en) * 2005-12-05 2011-05-24 Google Inc. System and method for targeting advertisements or other information using user geographical information
GB201209987D0 (en) * 2012-06-06 2012-07-18 Microsoft Corp Address system
US8861336B2 (en) * 2013-01-30 2014-10-14 Vonage Network, Llc Systems and methods for integrating route and rank information into call detail records
US8913622B2 (en) 2013-01-30 2014-12-16 Vontage Network, LLC Systems and methods for integrating route and rank information into call detail records
CN104184862B (zh) * 2013-05-27 2016-08-10 腾讯科技(深圳)有限公司 一种快速通讯方法和装置
CN104090886B (zh) * 2013-12-09 2015-09-09 深圳市腾讯计算机系统有限公司 构建用户实时画像的方法及装置
US20150254248A1 (en) 2014-03-07 2015-09-10 Printeron Inc. System for suggesting network resource for use by a network terminal based on network resource ranking
JP6055801B2 (ja) * 2014-08-28 2016-12-27 京セラドキュメントソリューションズ株式会社 通信装置および通信制御プログラム
US10154041B2 (en) * 2015-01-13 2018-12-11 Microsoft Technology Licensing, Llc Website access control
EP3301887A1 (en) * 2016-09-28 2018-04-04 Thomson Licensing Method and apparatus for building favorite telephone list for multiple devices
FR3066668A1 (fr) * 2017-05-19 2018-11-23 Orange Procede de gestion de reponse
CN107613082A (zh) * 2017-08-28 2018-01-19 广东小天才科技有限公司 一种号码管理方法、装置、智能手表及存储介质
WO2022047063A1 (en) * 2020-08-28 2022-03-03 Intermetro Communications, Inc. Systems and methods for configuring and dynamically applying call route groups
CN112115373B (zh) * 2020-11-23 2021-02-12 腾讯科技(深圳)有限公司 基于区块链的文件送达管理方法、装置、设备以及介质
CN116541421B (zh) * 2023-07-07 2023-09-12 中关村科学城城市大脑股份有限公司 地址查询信息生成方法、装置、电子设备与计算机介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198708A (ja) * 2001-12-28 2003-07-11 Nec Corp 携帯情報端末及びそれに用いる電話帳表示方法並びにそのプログラム
US7240298B2 (en) * 2002-12-19 2007-07-03 Microsoft Corporation Contact page
US7636719B2 (en) * 2002-12-19 2009-12-22 Microsoft Corporation Contact schema
GB2407732B (en) 2003-11-03 2007-04-11 Qualcomm Prioritizing phonebook numbers
JP2005159874A (ja) * 2003-11-27 2005-06-16 Mitsubishi Electric Corp 携帯電話機
US7680513B2 (en) * 2005-08-08 2010-03-16 Palm, Inc. Contact-centric user-interface features for computing devices
US8544058B2 (en) * 2005-12-29 2013-09-24 Nextlabs, Inc. Techniques of transforming policies to enforce control in an information management system
US20070161369A1 (en) * 2006-01-11 2007-07-12 Envio Networks Inc. Methods for Intelligent Number Dialing Assistance and Related Marketing Techniques
ATE538587T1 (de) * 2007-07-30 2012-01-15 Research In Motion Ltd Verfahren und system zum erzeugen einer geordneten adressenliste
US8223940B2 (en) 2008-05-02 2012-07-17 Hewlett-Packard Development Company, L.P. Selecting communication mode of communications apparatus
US8677251B2 (en) * 2008-05-30 2014-03-18 Microsoft Corporation Creation and suggestion of contact distribution lists
US11068850B2 (en) * 2009-05-23 2021-07-20 Verizon Media Inc. Managing electronic addresses based on communication patterns
GB2471329B (en) * 2009-06-26 2011-11-02 Vodafone Plc Mobile communication device and method of operation
US7930430B2 (en) * 2009-07-08 2011-04-19 Xobni Corporation Systems and methods to provide assistance during address input
US20110083079A1 (en) 2009-10-02 2011-04-07 International Business Machines Corporation Apparatus, system, and method for improved type-ahead functionality in a type-ahead field based on activity of a user within a user interface
US8341230B2 (en) * 2009-10-30 2012-12-25 Research In Motion Limited Method for predicting messaging addresses for an electronic message composed on an electronic device

Also Published As

Publication number Publication date
KR101361768B1 (ko) 2014-02-12
WO2013052333A3 (en) 2016-03-31
GB2499729A (en) 2013-08-28
DE112012000134B4 (de) 2016-02-25
GB201303164D0 (en) 2013-04-10
US8209390B1 (en) 2012-06-26
US8359363B1 (en) 2013-01-22
CN104429024B (zh) 2016-12-28
DE112012000134T5 (de) 2013-09-12
AU2013200691C1 (en) 2013-08-15
AU2013200691B1 (en) 2013-04-04
WO2013052333A2 (en) 2013-04-11
CN104429024A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
KR101361768B1 (ko) 목적지-어드레스 제안들을 제공하는 방법 및 장치
EP1672881B1 (en) System and method for providing customization of a graphical user interface of a communications device based on an active communications session
US9860374B2 (en) Method for indicating the context of a call to a called party
US9111259B2 (en) Affinity list generation
US8355496B2 (en) Call management interfaces
US20120015639A1 (en) Telephone Caller Classification
US7822754B2 (en) Method and system to provide contextual, intelligent address book listings
US8116745B2 (en) Method for displaying caller information of portable device
US8913099B2 (en) Systems and methods to manage video chat contacts
US9100489B2 (en) Managing groups using telephones
US20100268830A1 (en) Weighting social network relationships based on communications history
US20110053578A1 (en) Centralized control of multiple services
WO2012082948A1 (en) Methods and apparatus for managing messages
JP2011530771A (ja) メッセージを異なる順序で提示するための複数のビューポートを有するメッセージングアプリケーション
US8909650B2 (en) Ordering data items pertaining to contacts according to relevance of the contacts
US8233886B2 (en) Accessing stored data objects using contact data corresponding to a remote communications party
US20120045049A1 (en) Self-organizing directory display
JP2013070346A (ja) イベント報知システム、イベント報知装置、イベント報知方法及びプログラム
TW201031172A (en) Communication management systems and methods, and computer program products thereof
EP3404874B1 (fr) Procédé de gestion de réponse
KR20090128185A (ko) 발신자에 따른 메시지 정렬 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170126

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180126

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190124

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 7