이하는 본 발명의 실시예들의 첨부 도면들을 참조하여, 본 발명의 실시예들의 기술적 해법을 명확하고 완전하게 기술한다. 분명히, 설명될 실시예들은 본 발명의 실시예들 전부가 아니라 일부일 뿐이다. 본 기술분야의 통상의 지식을 가진 자가 본 발명의 실시예들에 기초하여 창의적 노력 없이 얻어내는 모든 다른 실시예들은 본 발명의 보호 범위 내에 포함되어야 한다.
본 발명의 실시예들에서 "제1" 및 "제2"와 같은 서수들이 언급될 때, 맥락에 따라 실제로 순서의 의미를 표현하지 않는 한, 그들은 단순히 구별의 역할을 할 뿐임을 이해해야 한다.
도 1은 본 발명의 실시예에 따른 통신 처리 방법의 흐름도이다. 도 1에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(101): 피호출 사용자 식별자를 포함하며 호출 사용자에 의해 송신된 통신 요청을 수신한다.
본 발명의 실시예의 응용 시나리오는: 호출 사용자는 애플리케이션을 통해, 그 동일 애플리케이션을 사용하는 피호출 사용자와 통신하려고 하며; 호출 사용자는 애플리케이션에 대응하는 애플리케이션 서버에 로그인한 후, 피호출 사용자에의 통신 요청을 개시할 수 있다는 것이다. 호출 사용자 또는 피호출 사용자가 단말을 통해 애플리케이션 서버에 로그인할 수 있다.
단계(101)에서, 애플리케이션 서버는 호출 사용자에 의해 인터넷(Internet)을 통해 송신된 통신 요청을 수신하는데, 통신 요청은 피호출 사용자의 식별자를 포함한다. 통신 요청은 예를 들어 음성 또는 영상 통화 호출 요청일 수 있고, 또한 인스턴트 메신저(IM: instant messenger) 메시지일 수 있다.
단계(102): 피호출 사용자 식별자에 따라, 피호출 사용자 식별자에 대응하는 모든 단말을 검색한다.
모든 단말은 피호출 사용자 식별자를 이용하여 로그인했었지만 현재는 로그인하지 않은 단말을 포함한다.
애플리케이션 서버는 각각의 사용자의 정보를 유지할 수 있고, 예를 들면 단말을 통해 로그인을 수행하는 것에 관한 사용자의 정보를 유지할 수 있다. 소정 사용자가 복수의 단말을 통해 애플리케이션 서버에 로그인할 수 있고, 애플리케이션 서버는 사용자가 현재 로그인하는 하나 이상의 단말을 알아낼 수 있으며, 또한 사용자가 이전에 로그인했던 하나 이상의 단말을 알아낼 수 있다.
피호출 사용자 식별자를 수신한 후, 애플리케이션 서버는 검색을 통해, 피호출 사용자 식별자를 이용하여 로그인한 모든 단말을 발견할 수 있으며, 그러한 모든 단말은 현재 로그인한 단말 및 현재 로그인하지 않은 단말을 포함한다.
단계(103): 모든 단말 중 모든 통신가능한 단말에 통신 요청을 송신한다.
검색을 통해 애플리케이션 서버에 의해 발견된 모든 단말이 통신가능한 단말일 수 있고, 또한 단말 중 일부가 다른 미리 설정된 조건에 따라 모든 단말 중에서 통신가능한 단말로서 선택될 수 있다. 즉, 본 발명의 실시예의 통신가능한 단말은 현재 로그인 상태에 있는 단말로만 한정되지 않고, 이전에 애플리케이션 서버에 로그인했지만 현재는 애플리케이션 서버에 로그인하지 않은 단말도 통신가능한 단말의 역할을 할 수 있다.
통신가능한 단말은 통신 요청을 수신할 수 있는 단말이고, 애플리케이션 서버는 모든 통신가능한 단말에 통신 요청을 송신할 수 있다. 통신가능한 단말은 다음을 지칭한다: 단말이 미리 설정된 정보로 설정되지 않은 때, 피호출 사용자 식별자에 대응하는 모든 단말이 통신가능한 단말일 수 있고; 다르게는 단말이 미리 설정된 정보로 설정된 때, 그 미리 설정된 정보에 따라 현재 통신 요청을 수신할 수 없는 것으로 판정된 단말을 제외하고, 피호출 사용자 식별자에 대응하는 모든 단말이 통신가능한 단말이고; 이러한 단말들은 현재 로그인 상태, 비-로그인 및 네트워크 접속 상태, 및/또는 네트워크 비접속 상태일 수 있다. 모든 통신가능한 단말은 현재 로그인하지 않은 단말을 포함할 수 있고, 따라서 본 발명의 실시예에서 통신 요청은 현재 로그인하지 않은 단말에 대해 개시될 수 있으므로, 호출 사용자가 현재 로그인하지 않은 피호출 사용자에의 통신 요청을 개시할 수 있는 것이 구현될 수 있다.
모든 통신가능한 단말의 개수가 복수일 때, 애플리케이션 서버는 동시 링잉(simultaneous ringing) 또는 순차 링잉(order ringing) 방식으로 모든 통신가능한 단말에 통신 요청을 송신할 수 있거나, 애플리케이션 서버는 피호출 사용자의 세팅에 따라 통신가능한 단말에만 통신 요청을 송신할 수 있다.
모든 통신가능한 단말 중 비-로그인 및 네트워크 접속 단말에 대하여, 애플리케이션 서버는 푸시(push) 서버를 통해 이러한 단말들에 통신 요청을 송신할 수 있고; 모든 통신가능한 단말 중 네트워크 비접속 상태의 단말에 대하여, 애플리케이션 서버에 의해 송신된 통신 요청은 푸시 서버에 임시 저장되고, 푸시 서버는 단말이 네트워크 접속 상태를 복구한 후에 단말에 통신 요청을 송신할 수 있다.
본 발명의 실시예에서, 호출 사용자에 의해 송신된 통신 요청을 수신한 후, 애플리케이션 서버는 검색을 통해, 피호출 사용자에 대응하며 현재는 로그인하지 않은 단말을 포함하는 피호출 사용자에 대응하는 모든 단말을 발견할 수 있고, 모든 단말 중 통신가능한 단말에 통신 요청을 송신할 수 있다. 그러므로, 이전에 로그인했었지만 현재는 로그인하지 않은 단말도 호출 사용자에 의해 송신된 통신 요청을 수신할 수 있게 되어, 사용자 경험을 최적화한다.
도 2는 본 발명의 실시예에 따른 다른 통신 처리 방법의 흐름도이다. 도 2에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(201): 단말은 제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인한다.
본 발명의 각각의 실시예의 단말은 예를 들어, 이동 전화, 태블릿 컴퓨터, 노트북 컴퓨터, UMPC(ultra-mobile personal computer), 넷북 또는 PDA(personal digital assistant)와 같은 단말 디바이스일 수 있다.
통신을 위해 이용될 수 있는 소정의 애플리케이션이 단말 내에 설치될 때, 단말은 사용자 식별자를 이용하여 애플리케이션에 대응하는 애플리케이션 서버에 로그인할 수 있다. 단말이 애플리케이션 서버에 로그인한 후, 애플리케이션 서버는 단말의 로그인 정보를 유지할 수 있는데, 이것은 예를 들어 단말의 식별자, 애플리케이션의 식별자, 및 단말의 로그인 상태를 포함할 수 있다.
단계(202): 단말은 미리 설정된 정보를 애플리케이션 서버에 송신하여, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신하게 한다.
제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인한 후, 단말은 애플리케이션 서버에 미리 설정된 정보를 송신할 수 있고, 미리 설정된 정보는 단말이 통신가능한 단말인지를 나타내기 위해 이용된다. 미리 설정된 정보를 애플리케이션 서버에 송신한 후, 단말은 항상 로그인 상태에 있을 수 있고, 또한 로그아웃하여 비-로그인 상태에 있을 수도 있다. 미리 설정된 정보는 예를 들어 단말이 비-로그인 상태에 있을 때에도 여전히 통신가능한 단말임을 나타낼 수 있어서, 단말은 비-로그인 상태에 있을 때에도, 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 여전히 수신할 수 있다.
호출 사용자가 피호출 사용자에의 통신 요청을 개시한 후, 애플리케이션 서버는 통신 요청 내의 제1 사용자 식별자에 따라 대응 단말을 검색하고, 미리 설정된 정보에 따라, 단말이 현재 통신가능한 단말인지를 판정하며; 단말이 통신가능한 단말인 경우, 애플리케이션 서버는 통신 요청을 단말에 송신하고, 여기에서 제1 사용자 식별자는 피호출 사용자 식별자이다.
또한, 다른 구현 방식에서, 방법은 이하를 더 포함할 수 있다:
단계(203): 단말이 비-로그인 및 네트워크 접속 상태이고, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말이라고 판정한 경우, 단말은 제1 사용자 식별자를 포함하며 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 수신한다.
단말이 단계(201) 및 단계(202)를 실행한 후, 단말이 비-로그인 및 네트워크 접속 상태이도록, 제1 사용자가 로그아웃할 수 있다. 단말이 비-로그인 및 네트워크 접속 상태에 있을 때, 애플리케이션 서버는 제1 사용자가 호출된 때, 검색을 통해 단말을 발견할 수 있고; 단말이 구성 정보를 애플리케이션 서버에 송신하지 않는 경우, 애플리케이션 서버는 디폴트로 단말을 통신가능한 단말로 간주하고, 단말을 직접 호출할 수 있고; 단말이 구성 정보를 애플리케이션 서버에 송신하는 경우, 애플리케이션 서버는 구성 정보에 따라 단말이 통신가능한 단말인지를 판정할 수 있고, 단말이 통신가능한 단말이라면 그 단말을 호출할 수 있다.
피호출 단말의 역할을 하는 통신가능한 단말은 애플리케이션 서버에 의해 송신된 통신 요청을 수신할 수 있고, 여기에서 피호출 단말의 역할을 하는 통신가능한 단말은 제1 사용자 식별자를 이용하여 로그인하며 현재 여전히 로그인 상태에 있거나 비-로그인 및 네트워크 접속 상태로 있는 단말일 수 있다. 호출된 통신가능한 단말이 비-로그인 및 네트워크 접속 상태일 때, 통신가능한 단말은 애플리케이션 서버에 의해 푸시 서버를 통해 송신된 통신 요청을 수신한다.
본 발명의 실시예에서, 애플리케이션 서버에 로그인한 후, 단말은 미리 설정된 정보를 애플리케이션 서버에 송신할 수 있어서, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신할 수 있게 한다. 그러므로, 비-로그인 상태에 있을 때, 단말은 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 여전히 수신할 수 있게 되고, 따라서 사용자 경험을 최적화한다.
도 3은 본 발명의 실시예에 따른 다른 통신 처리 방법의 흐름도이다. 도 1 및 도 2에 도시된 실시예에 기초하여, 도 3에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(301): 단말은 제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인한다.
이 단계는 도 2에 도시된 실시예의 단계(201)와 동일하다. 여기에서, 후속 단계에서의 제1 사용자 식별자와 피호출 사용자 식별자는 동일한 사용자 식별자이다.
단계(302): 단말은 미리 설정된 정보를 애플리케이션 서버에 송신하여, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 통신 요청을 통신가능한 단말에 송신하게 한다.
애플리케이션 서버에 로그인한 후, 단말은 자기 자신의 미리 설정된 정보를 설정할 수 있고, 미리 설정된 정보를 애플리케이션 서버에 송신할 수 있으며, 그에 의해 애플리케이션 서버는 단말 자신에 의해 설정된 정보에 따라 통신 요청을 단말에 선택적으로 송신할 수 있다. 예를 들어, 단말은 단말이 소정 상태에 있을 때에만 단말이 통신가능한 단말이고, 이러한 경우에서만, 단말이 호출 사용자의 통신 요청을 수신할 수 있다고 설정할 수 있으며, 따라서 애플리케이션 서버가 소정 단말이 통신가능한 단말임을 알게 된 때에만, 애플리케이션 서버가 단말에 통신 요청을 송신하고, 그렇지 않으면 애플리케이션 서버는 통신 요청을 단말에 송신하지 않는다. 본 발명의 각각의 실시예에서, 통신가능한 단말은 애플리케이션 서버가 통신 요청을 송신할 수 있는 단말이다.
미리 설정된 정보는 제1 명령 정보, 제2 명령 정보, 제3 명령 정보 또는 제4 명령 정보를 포함할 수 있지만, 이에 한정되지는 않는다.
제1 명령 정보는 로그인 상태 또는 비-로그인 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용된다. 단말의 사용자는 필요에 따라 제1 명령 정보를 무작위로 설정할 수 있다. 예를 들어, 제1 명령 정보는 00, 01, 10 또는 11일 수 있고; 단말 및 애플리케이션 서버는 00 및 01은 각각 로그인 상태의 단말이 통신가능한 단말이고 비-로그인 상태의 단말이 통신가능한 단말임을 나타내는 것으로, 즉 00 및 01이 각각 로그인 상태의 단말이 애플리케이션 서버에 의해 송신된 통신 요청을 수신하고 비-로그인 상태의 단말이 애플리케이션 서버에 의해 송신된 통신 요청을 수신하는 것을 나타내는 것으로 미리 합의하고; 10 및 11이 각각 로그인 상태의 단말이 통신불가능한 단말이고 비-로그인 상태의 단말이 통신불가능한 단말임을 나타내는 것으로, 즉 10 및 11이 각각 로그인 상태의 단말이 애플리케이션 서버에 의해 송신된 통신 요청을 수신하지 않고 비-로그인 상태의 단말이 애플리케이션 서버에 의해 송신된 통신 요청을 수신하지 않음을 나타내는 것으로 미리 합의한다. 단말은 애플리케이션 서버에 다른 제1 명령 정보를 송신함으로써 세팅 상태를 나타낸다. 비-로그인 상태는 비-로그인 및 네트워크 접속 상태, 및 네트워크 비접속 상태를 포함할 수 있다.
제2 명령 정보는 네트워크 비접속 상태 또는 네트워크 접속 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용된다. 제2 명령 정보를 설정하는 것에 의해, 상이한 네트워크 접속 상태들에 있는 단말의 통신 능력이 설정될 수 있다.
제3 명령 정보는 단말의 위치 정보가 미리 설정된 범위 내에 있는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용된다. 제3 명령 정보를 통해, 단말이 소정 위치 범위 내에서만 통신 요청을 수신하고, 위치 범위 밖에서는 통신 요청을 수신하지 않는 것이 구현될 수 있다. 예를 들어, 제3 명령 정보를 설정함으로써, 로밍 상태의 단말이 통신 요청을 수신하지 않는 것이 구현될 수 있다.
제4 명령 정보는 단말의 네트워크 환경이 미리 설정된 조건을 준수하는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용된다. 제4 명령 정보를 통해, 단말이 소정 네트워크 환경 내에서만 통신 요청을 수신하고, 다른 네트워크 환경들에서는 통신 요청을 수신하지 않는 것이 구현될 수 있다. 예를 들어, 제4 명령 정보를 설정함으로써, 단말이 Wi-Fi(wireless fidelity) 접속 상태에서만 통신 요청을 수신하고, 그렇지 않으면 단말이 통신 요청을 수신하지 않는 것이 구현될 수 있다.
단계(303): 애플리케이션 서버는 제1 사용자 식별자를 포함하며 호출 사용자에 의해 송신된 통신 요청을 수신한다. 제1 사용자 식별자는 피호출 사용자 식별자이다.
이 단계는 도 1에 도시된 실시예의 단계(101)와 동일하다.
단계(304): 애플리케이션 서버는 제1 사용자 식별자에 따라, 제1 사용자 식별자에 대응하는 모든 단말을 검색한다.
모든 단말은 제1 사용자 식별자를 이용하여 로그인했었거나 로그인했지만 현재는 로그인하지 않은 단말을 포함한다.
단계(305): 애플리케이션 서버는 모든 단말로부터 수신된 각각의 미리 설정된 정보 단편에 따라 모든 단말 중 모든 통신가능한 단말을 검색한다.
모든 단말 중의 각각의 단말은 하나의 미리 설정된 정보 단편에 대응한다.
애플리케이션 서버는 단계(302)에서 수신된 미리 설정된 정보에 따른 검색을 통해, 제1 사용자 식별자에 대응하는 모든 단말 중에서 통신가능한 단말을 발견할 수 있다. 예를 들어, 애플리케이션 서버는 단말 A의 제1 명령 정보, 제2 명령 정보, 제3 명령 정보 또는 제4 명령 정보에 따라, 현재 상태의 단말 A가 통신가능한 단말인지를 판정할 수 있고, 현재 상태는 로그인이 수행되는지 여부, 네트워크가 분리되는지 여부, 위치 정보, 네트워크 환경 등을 포함한다. 애플리케이션 서버는 단말이 네트워크로부터 분리되는지에 관한 정보를 푸시 서버로부터 획득할 수 있다.
단계(306): 애플리케이션 서버는 모든 단말 중 모든 통신가능한 단말에 통신 요청을 송신한다. 통신가능한 단말의 개수가 복수일 때, 애플리케이션 서버는 복수의 통신가능한 단말 중 사용자의 세팅에 따른 단말에 통신 요청을 송신할 수 있거나, 또한 동시 링잉 또는 순차 링잉 방식으로 사용자의 세팅에 따른 복수의 통신가능한 단말에 통신 요청을 송신할 수 있다.
동시 링잉 방식이 채택될 때, 애플리케이션 서버는 모든 통신가능한 단말에 동시에 통신 요청을 송신한다.
순차 링잉 방식이 채택될 때, 애플리케이션 서버는 통신 요청이 응답될 때까지, 통신 요청을 모든 통신가능한 단말 중의 각각의 단말에 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 순차적으로 송신할 수 있다. 사용자에 의해 미리 설정된 우선순위 순서에 따라, 미리 설정된 순서가 수행될 수 있다.
예를 들어, 사용자가 단말 M의 우선순위를 최고로 미리 설정한 경우, 단말 M이 현재 네트워크로부터 분리되어 있는지 아니면 단말 M이 로그인하는지에 상관없이, 통신 요청은 먼저 단말 M에 송신된다. 대안적으로, 사용자는 또한 로그인 상태에 있는 단말의 우선 순위를 가장 높게 설정할 수 있고, 비-로그인 및 네트워크 접속 상태에 있는 단말의 우선 순위를 두번째로 높게 설정할 수 있고, 네트워크 비접속 상태에 있는 단말의 우선 순위를 가장 낮게 설정할 수 있으며, 로그인 상태의 복수의 단말, 비-로그인 및 네트워크 접속 상태의 복수의 단말, 및 네트워크 비접속 상태의 복수의 단말에 대하여, 우선 순위가 각각 설정되고, 다음으로 애플리케이션 서버는 통신 요청이 응답될 때까지 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 모든 통신가능한 단말 중의 로그인 단말들 중의 각각의 단말에 통신 요청을 순차적으로 송신할 수 있고; 모든 통신가능한 단말 중의 로그인 단말들 중의 각각의 단말에 의해 수신된 통신 요청이 응답되지 않는 경우, 통신 요청은 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 순차적으로 모든 통신가능한 단말 중의 비-로그인 및 네트워크 접속 단말들 중의 각각의 단말에 송신되고; 모든 통신가능한 단말 중의 비-로그인 및 네트워크 접속 단말들 중의 각각의 단말에 의해 수신된 통신 요청이 응답되지 않는 경우, 및 모든 통신가능한 단말이 네트워크 비접속 상태의 단말을 포함하는 경우, 통신 요청이 응답될 때까지, 통신 요청은 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 모든 통신가능한 단말 중의 네트워크 비접속 상태의 모든 단말에 통신 요청이 순차적으로 송신된다. 순차 링잉 방식에서, 네트워크 비접속 상태의 복수의 단말에 대하여, 애플리케이션 서버는 복수의 단말에 순차적으로 통신 요청을 송신할 수 있고, 또는 복수의 단말에 동시에 통신 요청을 송신할 수도 있음에 유의해야 한다.
통신가능한 단말들 중의 로그인 상태의 단말에 대하여, 애플리케이션 서버는 통신 요청을 단말에 직접 송신할 수 있고; 통신가능한 단말들이 비-로그인 및 네트워크 접속 상태의 단말을 포함할 때, 비-로그인 및 네트워크 접속 상태의 단말에 대하여, 애플리케이션 서버는 푸시 서버를 통해 단말에 통신 요청을 송신하고 - 이것은 구체적으로는, 애플리케이션 서버가 푸시 서버에 통신 요청을 보내고, 푸시 서버가 통신 요청을 단말에 푸시하는 것일 수 있음 - ; 통신가능한 단말들이 네트워크 비접속 상태의 단말을 포함할 때, 네트워크 비접속 상태의 단말에 대하여, 애플리케이션 서버는 푸시 서버를 통해 단말에 통신 요청을 송신한다 - 이것은 구체적으로는, 애플리케이션 서버가 푸시 서버에 통신 요청을 보내고, 푸시 서버가 통신 요청을 저장하고, 푸시 서버가 단말이 네트워크에 접속된 것을 검출한 후 통신 요청을 단말에 푸시하는 것일 수 있음 - .
다른 구현 방식에서, 전술한 단계(302) 및 단계(305)는 포함되지 않을 수 있음에 유의해야 한다. 즉, 단말은 미리 설정된 정보를 설정하지 않을 수 있고, 이러한 경우, 애플리케이션 서버는 디폴트로 제1 사용자 식별자에 대응하는 모든 단말을 통신가능한 단말로 간주할 수 있다. 즉, 제1 사용자 식별자에 대응하는 모든 단말이 모든 통신가능한 단말이다.
단계(307): 로그인 상태 또는 비-로그인 및 네트워크 접속 상태의 통신가능한 단말은 제1 사용자 식별자를 포함하며 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 수신하며, 여기에서 단말은 피호출 단말이다.
애플리케이션 서버가 통신 요청을 송신한 후, 로그인 상태의 통신가능한 피호출 단말은 통신 요청을 수신하고, 비-로그인 및 네트워크 접속 상태의 통신가능한 피호출 단말은 푸시 서버에 의해 푸시업된 후에 통신 요청을 수신한다. 네트워크 비접속 상태의 통신가능한 피호출 단말은 네트워크에 다시 접속된 후에 푸시 서버에 의해 송신된 통신 요청을 수신할 수 있다.
본 발명의 실시예에서, 호출 사용자에 의해 송신된 통신 요청을 수신한 후, 애플리케이션 서버는 검색을 통해, 피호출 사용자에 대응하며 현재는 로그인하지 않은 단말을 포함하는 피호출 사용자에 대응하는 모든 단말을 발견할 수 있고, 모든 통신가능한 단말에 통신 요청을 송신할 수 있다. 그러므로, 이전에 로그인했었지만 현재는 로그인하지 않은 단말도 호출 사용자에 의해 송신된 통신 요청을 수신할 수 있게 되어, 사용자 경험을 최적화한다.
본 발명의 각각의 실시예에서의 통신 요청은 음성 또는 영상 통화 호출 요청일 수 있고, 또한 IM 메시지일 수도 있으며, 본 발명의 실시예들은 상황들에 따라 이하에 구체적으로 설명된다.
도 4에 도시된 실시예의 응용 시나리오는, 통신 요청이 음성 또는 영상 통화 호출 요청이고, 동시 링잉 방식으로 호출이 이루어지는 것이다. 도 4는 본 발명의 실시예에 따른 통신 처리 방법의 시그널링 상호작용도이다. 도 4에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(401): 호출 사용자는 피호출 사용자 식별자를 포함하는 호출 요청을 애플리케이션 서버에 송신한다.
본 발명의 실시예에서의 음성 또는 영상 통화는 다양한 프로토콜을 통해 구현될 수 있으며, 이하는 설명을 위해 확장가능한 메시징 및 프레즌스 프로토콜(XMPP: extensible messaging and presence protocol)을 예로 들고, 음성 또는 영상 통화는 구체적으로 Jingle 프로토콜을 통해 구현될 수 있다. Jingle 프로토콜은 XMPP에 기초하는 확장 프로토콜이며, 주로 음성 통화 및 영상 전화에 이용된다.
종래 기술의 Jingle 시그널링은 완전한 사용자 ID(full user ID, FullJID)를 포함할 뿐이고, 완전한 사용자 ID의 포맷은 12345@huawei.com/001과 같이, userId@서버 이름/리소스 식별자이다. 완전한 사용자 ID는 로그인 사용자의 고유 세션의 위치를 정할 수 있다.
본 발명의 실시예에 의해 제공되는 방법을 구현하기 위해, Jingle 시그널링의 완전한 사용자 ID는 기본 사용자 ID(bare user ID, BareJID)로 수정된다. 기본 사용자 ID의 포맷은 54321@huawei.com과 같이, userId@서버 이름이다. 기본 사용자 ID는 사용자를 식별하기 위해서만 이용되고, 로그인 사용자의 고유 세션의 위치를 정할 수는 없다.
본 발명의 실시예에서, 호출 사용자에 의해 송신된 통신 요청은 피호출 사용자의 기본 사용자 ID를 포함할 수 있다.
단계(402): 애플리케이션 서버는 피호출 사용자 식별자에 따라, 피호출 사용자가 로그인한 모든 단말 및 그 단말들의 상태를 검색하고, 모든 통신가능한 단말을 결정한다.
애플리케이션 서버는 예를 들어 XMPP 서버이다.
애플리케이션 서버는 로그인한 모든 단말의 정보를 유지하고, 이는 단말에 대응하는 사용자 식별자, 단말이 현재 로그인해 있는지의 여부에 관한 정보, 및 단말이 통신가능한 단말인지의 여부에 관한 정보를 포함하며; 유지된 정보에 따라, 애플리케이션 서버는 모든 통신가능한 단말을 결정할 수 있고, 구체적인 절차에 대해서는 도 3에 도시된 실시예의 단계(304)의 설명을 참조할 수 있다.
단계(403): 애플리케이션 서버는 호출 요청을 모든 통신가능한 단말에 동시에 라우팅한다. 구체적으로, 이 단계는 단계(403a), 단계(403b) 및 단계(403c)를 포함한다.
단계(403a): 애플리케이션 서버는 호출 요청을 로그인 상태의 모든 통신가능한 단말에 동시에 라우팅하고, 이러한 경우, 로그인 상태의 모든 통신가능한 단말은 링잉을 시작한다. 본 실시예에서, 온라인 단말 A 및 온라인 단말 B를 로그인 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
단계(403b): 애플리케이션 서버는 푸시 서버를 통해 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말에 호출 요청을 푸시하고, 이러한 경우, 비-로그인 및 네트워크 접속 상태의 모든 단말은 로그인하고 링잉을 시작하도록 푸시업된다. 본 실시예에서, 오프라인 단말 C를 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
단계(403c): 애플리케이션 서버는 푸시 서버를 통해 네트워크 비접속 상태의 모든 통신가능한 단말에 호출 요청을 푸시하고, 이러한 경우, 푸시 서버는 호출 요청을 임시로 저장하고, 단말이 네트워크 접속을 복구한 후에, 부재중 착신 호출 리마인더 정보(missed incoming call reminder information)를 단말에 송신한다. 본 실시예에서, 네트워크 비접속 단말 D를 네트워크 비접속 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
본 실시예는 상술한 단계(403a), 단계(403b) 및 단계(403c)의 순서를 제한하지 않으며, 단계(403a), 단계(403b) 및 단계(403c)는 동시에 발생할 수 있음에 유의해야 한다. 더욱이, 사용자에 의해 설정된 미리 설정된 정보에 따라, 통신가능한 단말들이 네트워크 비접속 상태의 단말을 포함하지 않는 경우, 단계(403)는 단계(403c)를 포함하지 않을 수 있고, 통신가능한 단말이 비-로그인 및 네트워크 접속 상태의 단말을 포함하지 않는 경우, 단계(403)는 단계(403b)를 포함하지 않을 수 있다.
단계(404): 피호출 사용자는 온라인 단말 B(또는 네트워크 접속 상태의 다른 단말)에서 호출에 답하기를 선택하고, 온라인 단말 B는 호출 응답 메시지를 애플리케이션 서버에 리턴한다.
이러한 단계에서, 피호출 사용자가 온라인 단말 A 또는 오프라인 단말 C에서 호출에 답할 때, 대응하는 동작이 실행된다.
단계(405): 애플리케이션 서버는 온라인 단말 A, 오프라인 단말 C 및 네트워크 비접속 단말 D에 행업 메시지(hang-up message)를 송신하고, 이 경우, 온라인 단말 A 및 오프라인 단말 C는 링잉을 중지하고; 푸시 서버는 네트워크 비접속 단말 D의 현재 상태를 획득하고; 네트워크 비접속 단말 D가 현재 네트워크 접속을 복구하지 않은 경우, 푸시 서버는 임시 저장된 호출 요청을 취소하고, 따라서 네트워크 비접속 단말 D가 네트워크 접속을 복구한 후, 부재중 착신 호출 리마인더 정보는 더 이상 네트워크 비접속 단말 D에 송신되지 않으며; 네트워크 비접속 단말 D가 현재 네트워크 접속을 복구했고, 푸시 서버가 부재중 착신 호출 리마인더 정보를 네트워크 비접속 단말 D에 송신한 경우, 푸시 서버는 호출이 다른 단말에서 응답되었다는 리마인더 메시지를 네트워크 비접속 단말 D에 송신한다.
도 5에 도시된 실시예의 응용 시나리오는, 통신 요청이 IM 메시지이고, 동시 링잉 방식으로 호출이 이루어지는 것이다. 도 5는 본 발명의 실시예에 따른 다른 통신 처리 방법의 시그널링 상호작용도이다. 도 5에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(501): 호출 사용자는 피호출 사용자 식별자를 포함하는 IM 메시지를 애플리케이션 서버에 송신한다. 피호출 사용자 식별자는 예를 들어 기본 사용자 ID(BareJID)이다.
단계(502): 애플리케이션 서버는 피호출 사용자 식별자에 따라, 피호출 사용자가 로그인했던 모든 단말 및 그 단말들의 상태를 검색하고, 모든 통신가능한 단말을 결정한다.
상세에 대해서는, 도 4에 도시된 실시예의 단계(402)의 설명을 참조한다.
단계(503): 애플리케이션 서버는 모든 통신가능한 단말에 IM 메시지를 동시에 라우팅한다. 구체적으로, 이 단계는 이하를 포함한다:
단계(503a): 애플리케이션 서버는 IM 메시지를 로그인 상태의 모든 통신가능한 단말에 동시에 라우팅하고, 이러한 경우, 로그인 상태의 모든 통신가능한 단말은 IM 메시지를 수신 및 획득하고, 링잉을 시작한다. 본 실시예에서, 온라인 단말 A 및 온라인 단말 B를 로그인 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
단계(503b): 애플리케이션 서버는 푸시 서버를 통해 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말에 IM 메시지를 송신하고, 이러한 경우, 비-로그인 및 네트워크 접속 상태의 모든 단말은 로그인하고, IM 메시지를 수신 및 획득하고, 링잉을 시작하도록 푸시업된다. 본 실시예에서, 오프라인 단말 C를 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
단계(503c): 애플리케이션 서버는 푸시 서버를 통해 네트워크 비접속 상태의 모든 통신가능한 단말에 IM 메시지를 송신하고, 이러한 경우, 푸시 서버는 IM 메시지를 임시로 저장하고, 단말이 네트워크 접속을 복구한 후에, IM 메시지를 단말에 송신한다. 본 실시예에서, 네트워크 비접속 단말 D를 네트워크 비접속 상태의 모든 통신가능한 단말을 표현하기 위한 예로 든다.
본 실시예는 상술한 단계(503a), 단계(503b) 및 단계(503c)의 순서를 제한하지 않으며, 단계(503a), 단계(503b) 및 단계(503c)는 동시에 발생할 수 있음에 유의해야 한다. 더욱이, 사용자에 의해 설정된 미리 설정된 정보에 따라, 통신가능한 단말들이 네트워크 비접속 상태의 단말을 포함하지 않는 경우, 단계(403)는 단계(503c)를 포함하지 않을 수 있고, 통신가능한 단말이 비-로그인 및 네트워크 접속 상태의 단말을 포함하지 않는 경우, 단계(503)는 단계(503b)를 포함하지 않을 수 있다.
단계(504): 피호출 사용자가 온라인 단말 B(또는 네트워크 접속 상태의 다른 단말)에서 IM 메시지를 체크한 후, 온라인 단말 B는 응답 메시지를 애플리케이션 서버에 리턴한다.
단계(505): 애플리케이션 서버는 취소 메시지를 온라인 단말 A, 오프라인 단말 C 및 네트워크 비접속 단말 D에 송신하고, 이러한 경우, 온라인 단말 A 및 오프라인 단말 C는 링잉 및 점멸(flickering)을 중단한다.
피호출 사용자가 단말에서 IM 메시지를 체크한 후, 애플리케이션 서버는 다른 단말들에 취소 메시지를 송신한다. 단계(505)는 선택사항이며, 애플리케이션 서버는 다른 단말들에 취소 메시지를 송신하지 않을 수 있다.
도 6에 도시된 실시예의 응용 시나리오는, 통신 요청이 음성 또는 영상 통화 호출 요청이고, 순차 링잉 방식으로 호출이 이루어지는 것이다. 도 6은 본 발명의 실시예에 따른 다른 통신 처리 방법의 시그널링 상호작용도이다. 도 6에 도시된 바와 같이, 방법은 이하를 포함한다:
단계(601): 호출 사용자는 피호출 사용자 식별자를 포함하는 호출 요청을 애플리케이션 서버에 송신한다.
단계(602): 애플리케이션 서버는 피호출 사용자 식별자에 따라, 피호출 사용자가 로그인했던 모든 단말 및 그 단말들의 상태를 검색하고, 모든 통신가능한 단말을 결정한다.
단계(601) 및 단계(602)의 상세에 대해서는, 도 4에 도시된 실시예의 단계(401) 및 단계(402)의 설명을 참조한다.
단계(603): 애플리케이션 서버는 호출 요청을 모든 통신가능한 단말에 순차적으로 라우팅한다. 구체적으로, 이 단계는 단계(603a), 단계(603b) 및 단계(603c)를 포함한다.
단계(603a): 미리 설정된 우선순위 순서에 따라, 애플리케이션 서버는 호출 요청을 로그인 상태의 통신가능한 단말(예를 들어, 온라인 단말 A)에 라우팅하고, 동시에 타이머를 시작하며, 이러한 경우, 온라인 단말 A는 링잉을 시작한다.
단계(603b): 피호출 사용자가 타이머 만료 후에 단말에서 답하지 않은 경우, 애플리케이션 서버는 단말에 행업 명령을 송신하고, 이 경우, 단말을 링잉을 중단하며, 여기에서 타이머의 시간 길이는 미리 구성될 수 있다.
단계(603c): 애플리케이션 서버는 로그인 상태의 다음 단말에 호출 요청을 라우팅하고, 타이머를 시작하는데, 즉 피호출 사용자가 소정 단말에서 답하기를 선택할 때까지, 또는 로그인 상태의 모든 통신가능한 단말의 순차 링잉이 완료될 때까지 단계(603a) 및 단계(603b)를 반복하여 실행하고; 피호출 사용자가 소정 단말에서 답하기를 선택하는 경우, 방법이 종료하며, 로그인 상태의 모든 통신가능한 단말의 순차 링잉이 완료되고, 피호출 사용자가 답하지 않은 경우, 단계(603d)가 실행된다.
단계(603d): 미리 설정된 우선순위 순서에 따라, 애플리케이션 서버는 푸시 서버를 통해 호출 요청을 비-로그인 및 네트워크 접속 상태의 통신가능한 단말(예를 들어, 단말 C)에 라우팅하고, 이러한 경우, 단말 C는 로그인 및 링잉하도록 푸시업되고, 한편으로는 애플리케이션 서버가 타이머를 시작한다.
애플리케이션 서버는 푸시 서버로부터, 비-로그인 상태의 각각의 통신가능한 단말이 현재 네트워크 비접속 상태에 있는지를 알 수 있다.
단계(603e): 피호출 사용자가 타이머 만료 후에 단말 C에서 답하지 않은 경우, 애플리케이션 서버는 단말 C에 행업 명령을 송신하고, 이 경우, 단말 C는 링잉을 중단한다.
단계(603d) 및 단계(603e)가 반복적으로 실행되고, 애플리케이션 서버는 비-로그인 및 네트워크 접속 상태의 다음 단말에 호출 요청을 라우팅하고, 피호출 사용자가 소정 단말에서 답하기를 선택할 때까지, 또는 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말의 순차 링잉이 완료될 때까지 타이머를 시작하며; 피호출 사용자가 소정 단말에서 답하기를 선택하는 경우, 방법이 종료하며, 비-로그인 및 네트워크 접속 상태의 모든 통신가능한 단말의 순차 링잉이 완료되고, 피호출 사용자가 답하지 않은 경우, 단계(603f)가 실행된다.
단계(603f): 애플리케이션 서버는 푸시 서버를 통해 네트워크 비접속 상태의 모든 통신가능한 단말(예를 들어, 네트워크 비접속 단말 D)에 호출 요청을 동시에 라우팅하고, 이러한 경우, 푸시 서버는 호출 요청을 임시로 저장하고, 단말 D가 네트워크 접속을 복구한 후에, 부재중 착신 호출 리마인더 정보를 단말 D에 송신한다.
본 실시예에서, 단계(602)에서 검색을 통해 모든 통신가능한 단말이 발견될 수 있으며, 다음으로 단계(603)이 실행되거나; 단계(602)에서 검색을 통해 하나 이상의 통신가능한 단말이 발견된 후, 검색을 통해 발견된 통신가능한 단말들에 호출 요청을 순차적으로 라우팅하는 단계(603)가 실행되고, 다음으로 단계(602) 및 단계(603)가 반복적으로 실행되며, 호출 요청이 응답될 때까지 또는 호출 요청이 모든 통신가능한 단말에 라우팅될 때까지, 호출 요청이 다른 통신가능한 단말들에 라우팅된다.
본 실시예의 해법은 통신 요청이 IM 메시지인 시나리오에 마찬가지로 적용가능하다.
본 발명의 각각의 실시예에서, 호출 사용자에 의해 송신된 통신 요청을 수신한 후, 애플리케이션 서버는 검색을 통해, 피호출 사용자에 대응하며 현재는 로그인하지 않은 단말을 포함하는 피호출 사용자에 대응하는 모든 통신가능한 단말을 발견할 수 있고, 모든 통신가능한 단말에 통신 요청을 송신할 수 있다. 그러므로, 이전에 로그인했었지만 현재는 로그인하지 않은 단말도 호출 사용자에 의해 송신된 통신 요청을 수신할 수 있게 되어, 사용자 경험을 최적화한다.
도 7은 본 발명의 실시예에 따른 통신 처리 장치의 개략적인 구조도이다. 도 7에 도시된 바와 같이, 통신 처리 장치(700)는 제1 수신 모듈(71), 제1 검색 모듈(73) 및 제1 송신 모듈(75)을 포함한다.
제1 수신 모듈(71)은 피호출 사용자 식별자를 포함하며 호출 사용자에 의해 송신된 통신 요청을 수신하도록 구성된다.
제1 검색 모듈(73)은 제1 수신 모듈(71)에 의해 수신된 피호출 사용자 식별자에 따라, 피호출 사용자 식별자에 대응하는 모든 단말을 검색하도록 구성된다. 모든 단말은 피호출 사용자 식별자를 이용하여 로그인했었지만 현재는 로그인하지 않은 단말을 포함한다.
제1 송신 모듈(75)은 제1 검색 모듈(73)에 의해 검색을 통해 발견된 모든 단말 중의 모든 통신가능한 단말에 통신 요청을 송신하도록 구성된다.
다른 구체적인 구현 방식에서, 모든 통신가능한 단말은 모든 단말이다.
다른 구체적인 구현 방식에서, 통신 처리 장치(700)는 제2 검색 모듈(77)을 더 포함할 수 있다.
제2 검색 모듈(77)은, 제1 송신 모듈(75)이 모든 통신 단말 중의 모든 통신가능한 단말에 통신 요청을 송신하기 전에, 모든 단말로부터 수신된 각각의 미리 설정된 정보 단편에 따라 모든 단말 중 모든 통신가능한 단말을 검색하도록 구성되고, 모든 단말 중의 각각의 단말은 하나의 미리 설정된 정보 단편에 대응한다.
또한, 제1 송신 모듈(75)은 송신 유닛(751) 및 명령 송신 유닛(753)을 포함한다.
송신 유닛(751)은 통신 요청을 모든 통신가능한 단말에 송신하도록 구성된다.
명령 송신 유닛(753)은, 송신 유닛(751)에게 통신 요청을 모든 통신가능한 단말에 동시에 송신할 것을 명령하도록 구성되거나; 송신 유닛(751)에게 통신 요청이 응답될 때까지, 통신 요청을 모든 통신가능한 단말 중의 각각의 단말에 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 순차적으로 송신할 것을 명령하도록 구성된다.
본 실시예에 의해 제공되는 통신 처리 장치는 상술한 방법 실시예들 각각에서의 애플리케이션 서버일 수 있다. 통신 처리 장치의 작업 흐름 및 작업 원리에 대해서는, 상술한 방법 실시예들 각각에서의 설명을 참조하며, 여기에서는 세부사항이 반복적으로 설명되지 않는다.
본 발명의 실시예에서, 제1 수신 모듈이 호출 사용자에 의해 송신된 통신 요청을 수신한 후, 제1 검색 모듈은 검색을 통해, 피호출 사용자에 대응하며 현재는 로그인하지 않은 단말을 포함하는 피호출 사용자에 대응하는 모든 통신가능한 단말을 발견할 수 있고, 다음으로 제1 송신 모듈은 모든 통신가능한 단말에 통신 요청을 송신한다. 그러므로, 이전에 로그인했었지만 현재는 로그인하지 않은 단말도 호출 사용자에 의해 송신된 통신 요청을 수신할 수 있게 되어, 사용자 경험을 최적화한다.
도 8은 본 발명의 실시예에 따른 단말의 개략적인 구조도이다. 도 8에 도시된 바와 같이, 단말(800)은 로그인 모듈(81) 및 송신 모듈(83)을 포함한다.
로그인 모듈(81)은 제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인하도록 구성된다.
송신 모듈(83)은 로그인 모듈(81)이 제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인한 후, 미리 설정된 정보를 애플리케이션 서버에 송신하도록 구성되며, 애플리케이션 서버는 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신하게 되며, 여기에서 단말은 피호출 단말이다.
또한, 단말(800)은 수신 모듈(85)을 더 포함할 수 있다.
수신 모듈(85)은, 송신 모듈(83)이 미리 설정된 정보를 애플리케이션 서버에 송신한 후, 단말이 비-로그인 및 네트워크 접속 상태이고, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말이라고 판정한 경우, 제1 사용자 식별자를 포함하며 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 수신하도록 구성된다.
또한, 미리 설정된 정보는 이하를 포함한다:
로그인 상태 또는 비-로그인 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용되는 제1 명령 정보; 또는 단말이 네트워크 접속 상태에 있는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제2 명령 정보; 또는 단말의 위치 정보가 미리 설정된 범위 내에 있는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제3 명령 정보; 또는 단말의 네트워크 환경이 미리 설정된 조건을 준수하는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제4 명령 정보.
본 실시예에 의해 제공되는 단말은 상술한 방법 실시예들 각각의 방법을 구현하도록 구성된다. 단말의 작업 흐름 및 작업 원리에 대해서는, 상술한 방법 실시예들 각각에서의 설명을 참조하며, 여기에서는 세부사항이 반복적으로 설명되지 않는다.
본 발명의 실시예에서, 애플리케이션 서버에 로그인한 후, 단말은 미리 설정된 정보를 애플리케이션 서버에 송신할 수 있어서, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신할 수 있게 된다. 그러므로, 비-로그인 상태에 있을 때에도, 단말은 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 여전히 수신할 수 있게 되어, 사용자 경험을 최적화한다.
도 9는 본 발명의 실시예에 따른 애플리케이션 서버의 개략적인 구조도이다. 도 9에 도시된 바와 같이, 애플리케이션 서버(900)는 이하를 포함한다:
신호를 수신하도록 구성되는 수신기(91);
신호를 송신하도록 구성되는 송신기(93); 및
수신기(91)를 통해, 피호출 사용자 식별자를 포함하며 호출 사용자에 의해 송신된 통신 요청을 수신하고, 피호출 사용자 식별자에 따라, 피호출 사용자 식별자에 대응하는 모든 단말을 검색하고, 송신기(93)를 통해, 모든 단말 중 모든 통신가능한 단말에 통신 요청을 송신하도록 구성되는 프로세서(95) - 모든 단말은 피호출 사용자 식별자를 이용하여 로그인했었지만 현재는 로그인하지 않은 단말을 포함함 - .
구체적인 구현 방식에서, 모든 통신가능한 단말은 모든 단말이다.
다른 구체적인 구현 방식에서, 프로세서(95)가 송신기(93)를 통해 모든 통신 단말 중의 모든 통신가능한 단말에 통신 요청을 송신하기 전에, 프로세서(95)는 모든 단말로부터 수신된 각각의 미리 설정된 정보 단편에 따라 모든 단말 중 모든 통신가능한 단말을 더 검색하고, 여기에서 모든 단말 중의 각각의 단말은 하나의 미리 설정된 정보 단편에 대응한다.
또한, 미리 설정된 정보는 이하를 포함한다:
로그인 상태 또는 비-로그인 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용되는 제1 명령 정보; 또는 네트워크 비접속 상태 또는 네트워크 접속 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용되는 제2 명령 정보; 또는 단말의 위치 정보가 미리 설정된 범위 내에 있는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제3 명령 정보; 또는 단말의 네트워크 환경이 미리 설정된 조건을 준수하는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제4 명령 정보.
또한, 프로세서(95)가 송신기(93)를 통해 모든 통신 단말 중 모든 통신가능한 단말에 통신 요청을 송신하는 것은 구체적으로 이하를 포함할 수 있다:
프로세서(95)에 의해, 송신기(93)를 통해 모든 통신가능한 단말에 통신 요청을 동시에 송신하는 것; 또는
프로세서(95)에 의해, 통신 요청이 응답될 때까지, 송신기(93)를 통해 통신 요청을 모든 통신가능한 단말 중의 각각의 단말에 미리 설정된 순서 및 미리 설정된 시간 간격에 따라 순차적으로 송신하는 것.
본 실시예에 의해 제공되는 애플리케이션 서버는 상술한 방법 실시예들 각각을 구현하도록 구성된다. 애플리케이션 서버의 작업 흐름 및 작업 원리에 대해서는, 상술한 방법 실시예들 각각에서의 설명을 참조하며, 여기에서는 세부사항이 반복적으로 설명되지 않는다.
본 발명의 실시예에서, 호출 사용자에 의해 송신된 통신 요청을 수신한 후, 애플리케이션 서버는 검색을 통해, 피호출 사용자에 대응하며 현재는 로그인하지 않은 단말을 포함하는 피호출 사용자에 대응하는 모든 통신가능한 단말을 발견할 수 있고, 모든 통신가능한 단말에 통신 요청을 송신할 수 있다. 그러므로, 이전에 로그인했었지만 현재는 로그인하지 않은 단말도 호출 사용자에 의해 송신된 통신 요청을 수신할 수 있게 되어, 사용자 경험을 최적화한다.
도 10은 본 발명의 실시예에 따른 다른 단말의 개략적인 구조도이다. 본 발명의 실시예에 의해 제공되는 단말은 상술한 도 1 내지 도 6에 도시된 본 발명의 실시예들 각각에 의해 구현되는 방법을 구현하도록 구성될 수 있다. 설명을 편리하게 하기 위해, 본 발명의 실시예들에 관련된 부분만이 보여지고, 구체적인 기술적 상세가 개시되지 않은 부분에 대해서는, 도 1 내지 도 6에 도시된 본 발명의 실시예들 각각을 참조한다.
단말은 이동 전화, 태블릿 컴퓨터, 노트북 컴퓨터, UMPC, 노트북 또는 PDA와 같은 단말 디바이스일 수 있고, 본 발명의 실시예에서, 단말이 이동 전화인 것을 설명을 위한 예로 들고, 도 10은 본 발명의 실시예들 각각에 관련된 이동 전화(100)의 부분의 개략적인 구조도를 도시한다.
도 10에 도시된 바와 같이, 이동 전화(100)는 RF(radio frequency) 회로(110), 메모리(120), 입력 유닛(130), 디스플레이 유닛(140), 센서(150), 오디오 회로(160), WiFi(wireless fidelity) 모듈(170), 프로세서(180) 및 전력 공급원(190)과 같은 컴포넌트들을 포함한다. 본 기술분야의 숙련된 자는 도 10에 도시된 이동 전화의 구조는 이동 전화를 제한하지 않으며, 도면에 도시된 것보다 더 많거나 더 적은 컴포넌트를 포함할 수 있거나, 일부 컴포넌트들을 조합할 수 있거나, 다른 컴포넌트 배열로 있을 수 있음을 이해할 수 있다.
이동 전화(100)의 컴포넌트들은 구체적으로 이하에 도 10을 참조하여 소개된다. RF 회로(110)는 정보 수신/송신 절차 또는 호출 절차 동안 신호를 수신 및 송신하고, 특히 기지국의 다운링크 정보를 수신한 다음, 다운링크 정보를 처리를 위하여 프로세서(180)에 송신하고; 추가로 업링크로 설계된 기지국 데이터를 송신하도록 구성될 수 있다. 일반적으로, RF 회로는 안테나, 적어도 하나의 증폭기, 송수신기, 커플러, LNA(low noise amplifier) 및 듀플렉서를 포함하지만, 그에 한정되지 않는다. 또한, RF 회로(110)는 무선 통신을 통해 네트워크 및 다른 디바이스와 더 통신할 수 있다. 무선 통신은 GSM(global system of mobile communication), GPRS(general packet radio service), CDMA(code division multiple access), WCDMA(wideband code division multiple access), LTE(long term evolution), 이메일, SMS(short messaging service)를 포함하지만 그에 한정되지는 않는 임의의 통신 표준 또는 프로토콜을 이용할 수 있다.
메모리(120)는 소프트웨어 프로그램 및 모듈을 저장하도록 구성될 수 있다. 프로세서(180)는 메모리(120)에 저장된 소프트웨어 프로그램 및 모듈을 실행함으로써 이동 전화(100)의 다양한 기능 애플리케이션 및 데이터 처리를 실행한다. 메모리(120)는 프로그램 저장 영역 및 데이터 저장 영역을 주로 포함할 수 있고, 여기에서 프로그램 저장 영역은 운영 체제, 적어도 하나의 기능 요구 애플리케이션(function-required application)(예를 들어, 보이스 플레이 기능(voice play function) 및 이미지 플레이 기능) 및 그와 유사한 것을 저장할 수 있고; 데이터 저장 영역은 이동 전화(100)의 이용에 따라 생성된 데이터(예를 들어, 오디오 데이터 및 전화번호부)를 저장할 수 있다. 더욱이, 메모리(120)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 적어도 하나의 자기 디스크 메모리 디바이스, 플래시 메모리 디바이스와 같은 비휘발성 메모리, 또는 다른 휘발성 고체 상태 메모리 디바이스를 더 포함할 수 있다.
입력 유닛(130)은 입력 숫자 또는 문자 정보를 수신하고, 이동 전화(100)의 사용자 세팅 및 기능 제어에 관련된 키 신호 입력을 생성하도록 구성될 수 있다. 구체적으로, 입력 유닛(130)은 터치 패널(131) 및 다른 입력 디바이스(132)를 포함할 수 있다. 다른 입력 디바이스(132)는 물리적 키보드, 기능 키(음량 제어 버튼 및 스위치 버튼 등), 트랙볼, 마우스 및 조작봉(operating rod) 중 하나 이상을 포함할 수 있지만, 그에 한정되지는 않는다.
디스플레이 유닛(140)은 사용자에 의해 입력된 정보 또는 사용자에 대해 제공된 정보 및 이동 전화(100)의 다양한 메뉴들을 디스플레이하도록 구성될 수 있다. 디스플레이 유닛(140)은 디스플레이 패널(141)을 포함할 수 있고, 선택적으로는 디스플레이 패널(141)은 LCD(liquid crystal display) 및 OLED(organic light-emitting diode)와 같은 형태로 구성될 수 있다. 또한, 터치 패널(131)은 디스플레이 패널(141)을 커버할 수 있고; 터치 패널(131) 상의 또는 터치 패널 부근의 터치 동작을 검출할 때, 터치 패널(131)은 터치 이벤트의 유형을 판정하기 위해 프로세서(180)에 터치 동작을 전송하고, 다음으로 프로세서(180)는 터치 이벤트의 유형에 따라 디스플레이 패널(141) 상에 대응하는 시각적 출력을 제공한다. 도 10에서는, 터치 패널(131) 및 디스플레이 패널(141)이 이동 전화(100)의 입력 및 입력 기능을 2개의 독립적인 컴포넌트로서 구현하지만, 일부 실시예들에서, 터치 패널(131) 및 디스플레이 패널(141)은 이동 전화(100)의 입력 및 출력 기능을 구현하도록 통합될 수 있다.
이동 전화(100)는 광학 센서, 움직임 센서 및 다른 센서와 같은 적어도 하나의 센서(150)를 더 포함할 수 있다. 구체적으로, 광학 센서는 주변 광 센서 및 근접 센서를 포함할 수 있으며, 여기에서 주변 광 센서는 주변 광의 조명에 따라 디스플레이 패널(141)의 밝기를 조절할 수 있고, 근접 센서는 이동 전화(100)가 귀로 이동될 때, 디스플레이 패널(141) 및/또는 백라이트를 폐쇄할 수 있다. 자이로스코프, 기압계, 습도계, 온도계 및 적외선 센서와 같은 다른 센서들이 이동 전화(100) 내에 더 구성될 수 있고, 여기에 상세하게 설명되지 않는다.
오디오 회로(160), 라우드스피커(161) 및 마이크로폰(162)은 사용자와 이동 전화(100) 사이의 오디오 인터페이스를 제공할 수 있다. 오디오 회로(160)는 수신된 오디오 데이터로부터 변환된 전기 신호를 라우드스피커(161)에 전송할 수 있고, 라우드스피커(161)는 전기 신호를 음성 신호로 변환한 다음, 음성 신호를 출력하며; 한편으로, 마이크로폰(162)은 수집된 음성 신호를 전기 신호로 변환하고, 오디오 회로(160)는 전기 신호를 수신하고 전기 신호를 오디오 데이터로 변환한 다음 오디오 데이터를 RF 회로(110)에 출력하여, 오디오 데이터를 예를 들어 다른 이동 전화에 송신하거나, 오디오 데이터를 추가의 처리를 위하여 메모리(120)에 출력한다.
WiFi는 단거리 무선 전송 기술에 속하며, 이동 전화(100)는 사용자에 대해 무선 광대역 인터넷 액세스를 제공하는 WiFi 모듈(170)을 통해, 사용자가 이메일을 수신 및 송신하고, 웹페이지를 브라우징하고, 스트리밍 미디어를 방문하는 것 등을 도울 수 있다. 도 10은 WiFi 모듈(170)을 도시하지만; WiFi 모듈(170)은 이동 전화(100)의 필수 컴포넌트가 아니며, 본 발명의 본질적인 범위를 변경하지 않고서 필요에 따라 완전하게 생략될 수 있음을 이해해야 한다.
프로세서(180)는 이동 전화(100)의 제어 센터이고, 다양한 인터페이스 및 배선을 이용하여 이동 전화의 다양한 부분에 접속하고, 이동 전화(100)의 다양한 기능을 실행하며, 메모리(120)에 저장된 소프트웨어 프로그램 및/또는 모듈을 운영 또는 실행하고 메모리(120) 내에 저장된 데이터를 불러옴으로써 데이터를 처리하고, 그에 의해 이동 전화에 대한 전반적인 모니터링을 수행한다. 선택적으로, 프로세서(180)는 하나 이상의 처리 유닛을 포함할 수 있고; 바람직하게는, 프로세서(180)는 애플리케이션 프로세서 및 모뎀 프로세서를 통합할 수 있고, 여기에서 애플리케이션 프로세서는 주로 운영 체제, 사용자 인터페이스, 애플리케이션 등을 처리하고, 모뎀 프로세서는 주로 무선 통신을 처리한다. 상술한 모뎀 프로세서는 프로세서(180) 내에 통합되지 않을 수도 있음을 이해해야 한다.
이동 전화(100)는 각각의 컴포넌트에 전력을 공급하기 위한 전력 공급원(190)(예를 들어, 배터리)을 더 포함하고, 바람직하게는 전력 공급원은 전력 공급 관리 시스템을 통해 프로세서(180)에 논리적으로 접속할 수 있고, 그에 의해 전력 공급 관리 시스템을 통해 충전, 방전 및 전력 소비를 관리하는 기능을 구현한다.
도시되진 않았지만, 이동 전화(100)는 카메라, 블루투스 모듈 등을 더 포함할 수 있지만, 이들은 여기에 상세하게 설명되지 않는다.
본 발명의 실시예에서, 프로세서(180)는 RF 회로(110)를 통해 제1 사용자 식별자를 이용하여 애플리케이션 서버에 로그인하도록 더 구성되고, 프로세서(180)는 애플리케이션 서버에 로그인한 후, 미리 설정된 정보를 RF 회로(110)를 통해 애플리케이션 서버에 송신하도록 더 구성되고, 따라서 애플리케이션 서버는 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신하게 되며, 여기에서 단말은 피호출 단말이다.
또한, 프로세서(180)는 단말이 비-로그인 및 네트워크 접속 상태이고, 애플리케이션 서버가 단말이 통신가능한 단말이라고 판정한 경우, 제1 사용자 식별자를 포함하며 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 RF 회로(110)를 통해 수신하도록 더 구성된다.
미리 설정된 정보는 로그인 상태 또는 비-로그인 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용되는 제1 명령 정보; 또는 네트워크 비접속 상태 또는 네트워크 접속 상태에 있는 단말이 통신가능한 단말인지를 나타내기 위해 이용되는 제2 명령 정보; 또는 단말의 위치 정보가 미리 설정된 범위 내에 있는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제3 명령 정보; 또는 단말의 네트워크 환경이 미리 설정된 조건을 준수하는 경우, 단말이 통신가능한 단말임을 나타내기 위해 이용되는 제4 명령 정보를 포함한다.
본 발명의 실시예에서, 애플리케이션 서버에 로그인한 후, 단말은 미리 설정된 정보를 애플리케이션 서버에 송신할 수 있어서, 애플리케이션 서버가 미리 설정된 정보에 따라 단말이 통신가능한 단말인지를 판정하고, 호출 사용자의 요청에 따라 제1 사용자 식별자를 포함하는 통신 요청을 판정된 통신가능한 단말에 송신할 수 있게 된다. 그러므로, 비-로그인 상태에 있을 때에도, 단말은 호출 사용자의 요청에 따라 애플리케이션 서버에 의해 송신된 통신 요청을 여전히 수신할 수 있게 되어, 사용자 경험을 최적화한다.
상술한 구현 방식들의 설명을 통해, 본 기술분야의 숙련된 자는 본 발명이 하드웨어 또는 펌웨어, 또는 그들의 조합을 이용하여 구현될 수 있음을 분명하게 이해할 수 있다. 구현을 위해 소프트웨어가 이용되는 경우, 상술한 기능들은 컴퓨터 판독가능한 매체 내에, 또는 전송을 위해 컴퓨터 판독가능한 매체 상에 하나 이상의 명령어 또는 코드로서 저장될 수 있다. 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하고, 통신 매체는 컴퓨터 프로그램을 한 장소로부터 다른 장소로 전달하는 데에 편리한 임의의 매체를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예를 들어, 컴퓨터 판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 또는 원하는 프로그램 코드를 명령어 또는 데이터 구조의 형태로 반송 또는 저장하기 위해 이용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있지만, 그에 한정되지는 않는다. 추가로, 임의의 접속이 컴퓨터 판독가능한 매체로서 적절하게 이용될 수 있다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 트위스티드 페어(twisted pair), 디지털 가입자 회선(DSL), 또는 적외선, 전파 및 마이크로웨이브와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송되는 경우, 동축 케이블, 광섬유 케이블, 트위스티드 페어, DSL, 또는 적외선, 전파 및 마이크로웨이브와 같은 무선 기술이 매체의 고정(fixation)에 포함된다. 본 발명에서 이용될 때, 디스크(disk) 및 디스크(disc)는 컴팩트 디스크(CD), 레이저 디스크, 광 디스크, DVD(digital versatile disc), 플로피 디스크 및 블루레이 디스크를 포함하며, 여기에서 디스크(disk)는 통상적으로 데이터를 자기적으로 재생하는 반면, 디스크(disc)는 데이터를 레이저를 이용하여 광학적으로 재생한다. 상술한 조합도 컴퓨터 판독가능한 매체의 보호 범위 내에 포함되어야 한다.
결론적으로, 상술한 설명은 본 발명의 예시적인 실시예에 지나지 않으며, 본 발명의 보호 범위를 제한하도록 의도된 것이 아니다. 본 발명의 취지 및 원리 내에서 이루어진 임의의 수정, 균등한 대체 또는 개선은 본 발명의 보호 범위 내에 포함되어야 한다.