KR101387287B1 - 세션 개시 프로토콜(sip) 존속가능 네트워크 유지 방법,세션 개시 프로토콜(sip) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체 - Google Patents

세션 개시 프로토콜(sip) 존속가능 네트워크 유지 방법,세션 개시 프로토콜(sip) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR101387287B1
KR101387287B1 KR1020080134891A KR20080134891A KR101387287B1 KR 101387287 B1 KR101387287 B1 KR 101387287B1 KR 1020080134891 A KR1020080134891 A KR 1020080134891A KR 20080134891 A KR20080134891 A KR 20080134891A KR 101387287 B1 KR101387287 B1 KR 101387287B1
Authority
KR
South Korea
Prior art keywords
controller
sip
communication device
endpoint
active
Prior art date
Application number
KR1020080134891A
Other languages
English (en)
Other versions
KR20090102621A (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 KR20090102621A publication Critical patent/KR20090102621A/ko
Application granted granted Critical
Publication of KR101387287B1 publication Critical patent/KR101387287B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1045Proxies, e.g. for session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1046Call controllers; Call servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Abstract

SIP 존속가능 네트워크를 유지하기 위한 방법, 디바이스, 및 시스템이 제공된다. 본 발명은 SIP 엔드포인트 또는 사용자 에이전트로 하여금 상기 SIP 엔드포인트가 등록할 컨트롤러 또는 컨트롤러들을 발견하여 선택할 수 있게 하도록 적응되어 있다. 상기 컨트롤러들의 상대적인 속성들과 상기 SIP 엔드포인트의 요구에 기초하여 컨트롤러 또는 컨트롤러들이 선택될 수 있다.

Description

세션 개시 프로토콜(SIP) 존속가능 네트워크 유지 방법, 세션 개시 프로토콜(SIP) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체{SIMULTANEOUS ACTIVE REGISTRATION IN A SIP SURVIVABLE NETWORK CONFIGURATION}
본 발명은 일반적으로 통신 네트워크에 관한 것으로, 보다 구체적으로 존속가능 세션 개시 프로토콜 (Session Initiation Protocol; SIP) 존속가능 네트워크에 관한 것이다.
SIP 는 많은 종류의 실시간 통신 세션들을 확립하기 위한 오픈 시그널링 프로토콜이다. SIP 를 사용하여 확립될 수 있는 통신 세션들의 종류의 예는 보이스, 비디오, 게임들, 애플리케이션들, 및/또는 인스턴트 메시징 (instant messaging) 을 포함한다. 이들 통신 세션들은, 개인용 컴퓨터, 랩탑 컴퓨터, 개인용 정보 단말기 (Personal Digital Assistant; PDA), 셀룰라 전화기, IM 클라이언트, IP 전화기, 통상적인 전화기, 서버 애플리케이션, 애플리케이션들의 집합, 데스크탑 애플리케이션, 등과 같은 임의의 종류의 통신 디바이스 상에서 실행될 수 있다.
SIP 의 하나의 핵심적인 특징은, 최종-사용자들, 애플리케이션들, 및 서비스 제공업자 네트워크과의 모든 통신을 위한 단일 통합 공중 어드레스 (single unifying public address) 로서 AOR (Address of Record) 을 사용하는 그것의 능력이다. 따라서, SIP-향상된 통신의 세계에서, 사용자의 AOR 은 사용자를 사용자와 연관된 모든 통신 디바이스들에 연결하는 단일 어드레스가 된다. 이러한 AOR 을 사용하여, 발신자 (caller) 는 사용자의 통신 디바이스들 중 임의의 일 통신 디바이스에, 각각의 고유한 디바이스 어드레스 또는 전화 번호를 알아야 할 필요없이, 도달할 수 있으며, 상기 사용자의 통신 디바이스들은 또한 사용자 에이전트 (User Agents; UA) 로도 지칭된다.
많은 애플리케이션 서버들은 SIP 환경에서 통신 애플리케이션을 가능하게 하고 또한 UA 를 위한 아웃바운드 프록시로서 작용할 목적으로 존재하고, 그럼으로써 디바이스들이 네트워크 내부로의 접속에 사용하는 프록시들을 통해 복잡성을 감추면서 복잡한 네트워크가 구축될 수 있게 한다. 그러한 통신 애플리케이션들을 위한 주요 영역들 중 하나는 SIP UA 의 콜 (call) 제어이다. 현재 존속가능한 SIP 네트워크 구성을 제공하는 문제에 대한 해결책은 거의 없다. 존속가능성 (survivability) 이 과거에 제공되었던 일 방법은, SIP 시그널링에 대한 응답이 없을 때 사용되고 있는 SIP 프록시들의 사용을 통한 것이었다. 프록시는 네트워크에서 하나 이상의 대안 루트를 통해 시그널링을 라우팅하는데 사용될 수 있다. 별도 의 프록시의 사용은, 존속가능성을 제공하기 위해 콜 컨트롤러 또는 게이트웨이를 제외한 부가적인 네트워크 요소가 요구되기 때문에 비용이 많이 들 수 있다.
다른 네트워크 서버 제품은, 게이트웨이가 네트워크 서버의 높은 유용성에 의한 네크워크 서버 장애에 부닥치지 않도록 지오-리던던트 구성 (geo-redundant configuration) 을 제공한다. 프록시들의 사용과 마찬가지로, 이러한 특별한 해결책은, 높은 유용성 서버들을 구입하여 네트워크 전체에 걸쳐 분배할 필요가 있기 때문에 상대적으로 비용이 많이 든다. 현재 알려진 해결책들의 부가적인 단점은, 1차 SIP 시그널링 경로가 사용가능하지 않다면 네트워크 요소 (예를 들어, 게이트웨이) 는 대안 경로를 사용하는 것이 허용되지 않는다; 이러한 해결책들은 서버 전체에 걸친 데이터의 복사와 함께 상시 대기 구성 (hot standby configuration) 을 필요로 한다; 및 그들은 동일한 SIP 버전을 정확하게 사용하여 SIP 엔드포인트들에게 동일한 SIP 피처들의 세트를 정확하게 제공하기 위해 1차 및 2차 콜 컨트롤러를 필요로 하다는 사실을 포함한다.
개요
이들 단점에 부가하여, 네트워크 장애가 발생했음을 결정하는 논리 (logic) 은 통상적으로 라우터에 위치되어 있었고, 상기 라우터는 다양한 네트워크 요소들이 적절하게 동작하고 있는지를 결정하기 위해 네트워크의 IP 층을 체크하는 능력을 갖는다. 이러한 장애/장애복구(failback) 검출 논리는 네트워크 컴포넌트 나머지에 대한 프로세싱 부담을 경감하기 위해 라우터 내에 위치되었다. 이러한 특정한 구성의 하나의 주요한 단점은 라우터가 SIP 애플리케이션 레벨에서 서버 또는 다른 네트워크 요소가 동작중인지 여부를 검출할 수 없다는 것이다. 서버가 IP 층 레벨에서 동작중이지만 SIP 컨트롤러는 동작중이지 않은 많은 예들이 있을 수 있다. 지금까지의 종래 기술의 라우터 및 다른 네트워크 요소들은 그러한 장애 상태를 확인할 수 없었고 그러한 서버를 동작중으로서 등록할 것이다.
이들 및 다른 요구들은 본 발명의 다양한 실시예 및 구성에 의해 언급되어 있다. 본 발명은 일반적으로 통신 네트워크 또는 통신 시스템의 일부 또는 전체의 유용성을 분석하기 위한 시스템, 디바이스 및 방법에 관한 것이다. 일 실시예에 있어서, 상기 방법은:
세션 개시 프로토콜 (SIP) 활성화 통신 엔드포인트에서, 제 1 컨트롤러와 관련되는 컨트롤러 정보를 수신하는 단계와,
상기 통신 엔드포인트에서, 제 2 컨트롤러와 관련되는 컨트롤러 정보를 수신하는 단계와,
상기 제 1 및 제 2 컨트롤러 양자와 관련되는 상기 컨트롤러 정보를 분석하는 단계와,
상기 분석 단계에 기초하여, 상기 통신 엔드포인트가 상기 제 1 및 제 2 컨트롤러 중 적어도 하나를 컨트롤러로서 선택하는 단계를 포함한다.
컨트롤러들은 엔드포인트에게 SIP 관련 기능들을 제공할 수 있을 뿐만 아니라 엔드포인트를 위한 인바운드/아웃바운드 SIP 콜들을 촉진할 수 있다. 본 발명 의 적어도 일부 실시예들에 따르면, 컨트롤러들은 상이한 속성들 및 피처들을 구비할 수 있고 그러므로 엔드포인트에게 상이한 SIP 피처들을 제공할 수 있다. 엔드포인트에게 통신 시스템에서의 장애 (예를 들어, 그것의 1차 컨트롤러의 장애 또는 1차 컨트롤러와 엔드포인트를 접속하는 일부 컴포넌트의 장애) 를 존속시키는 능력을 제공하기 위해, 엔드포인트는 제 1 및 제 2 컨트롤러 양자에 대한 그것의 등록을 동시에 유지하도록 적응될 수 있다. 적어도 일부 실시예들에 있어서, 엔드포인트는 동시에 2 이상의 컨트롤러들에 등록하도록 적응될 수 있다.
본 발명의 적어도 일부 실시예들에 따르면, 엔드포인트는 제 1 및 제 2 컨트롤러 양자를 그것의 1차 컨트롤러로서 선택할 수 있다. 이러한 활성-활성 존속가능 구성에 있어서, 엔드포인트는 컨트롤러 양자와의 통신을 허용할 수 있다. 본 발명의 다른 실시예들에 따르면, 엔드포인트는 제 1 컨트롤러를 그것의 1차 컨트롤러로서 선택하고 제 2 컨트롤러를 그것의 2차 컨트롤러로서 선택할 수 있다. 이러한 활성-대기 구성에 있어서, 엔드포인트가 동작/구성의 1차(primary) 모드 또는 장애대체 (failover) 모드에서 동작중인지 여부에 의존하여 엔드포인트는 일 컨트롤러 또는 다른 컨트롤러로부터 수신되는 메시지들을 냉대할 수 있다.
엔드포인트는 컨트롤러들의 상대적인 속성들에 기초하여 그것의 컨트롤러들을 선택할 수 있다. 본 발명의 적어도 일부 실시예들에 따르면, 엔드포인트는 컨트롤러 속성 정보를 요청하여 발견한 다음, 그들의 상대적인 속성 정보에 기초하여 컨트롤러들의 순서화된 목록을 작성하도록 적응될 수 있다. 컨트롤러들의 상기 순서화된 목록을 사용하여 엔드포인트는 그것이 등록해야 하는 컨트롤러(들) 사이에 서 조정하도록 적응될 수 있다. 엔드포인트에게 그것이 등록할 컨트롤러들을 선택하는 논리를 제공하고 엔드포인트를 위한 컨트롤러들을 선택하는 능력 (예를 들어, 가장 중요한 우선권들 등을 통해) 을 갖는 서버(들)을 제공함으로써, 엔드포인트와 서버 조합은, 양자 중 어느 것도 어떤 컨트롤러들이 사용되어야 하는지 말해주기 위해 임의의 단일 네트워크 컴포넌트에 의존하고 있지 않으므로, 장애 상태를 취급하도록 보다 잘 갖추어질 것이다. 게다가, 엔드포인트는 컨트롤러 정보를 주기적으로 요청하여 컨트롤러들을 구비하는 컴포넌트들에 대한 최신의 상태 정보를 획득함으로써 컨트롤러들의 순서화된 목록을 동적으로 갱신할 수 있을 것이다. 여기에서 더욱 더 설명하는 바와 같이, 엔드포인트와 그것의 컨트롤러들은 장애대체 이전의 주요한 아키텍처 구성에 대응하는 1차 구성으로 동작할 수 있다. 동작 또는 구성의 장애대체 모드는, 장애 상태의 경우에 사용되고 있는 컴포넌트들의 백업 아키텍처 구성에 대응할 수 있다. 이러한 장애대체 구성은 엔드포인트에게 장애 상태를 존속시키는 능력을 제공한다. 상기 장애대체 구성은, 적용가능하다면, 엔드포인트가 대칭에 대해 해박할 수 있도록 1차 구성과 백업 구성 사이에서 대칭 또는 비대칭일 수 있다. 용어 "SIP 애플리케이션" 은, SIP 에 따른 사용에 대해 호환할 수 있고 또한 SIP 메시지들의 전송을 통해 촉진될 수 있는 임의의 애플리케이션 또는 동작을 포함하는 것으로 이해되어야 한다. 여기에서 사용되는 "기본 SIP 피처" 는, 시그널링 또는 상기 시그널링 내에 포함되는 데이터에 대해 확장된 익스텐션을 포함하지 않는 SIP 시그널링을 위한 임의의 인터넷 엔지니어링 태스크 포스 (Internet Engineering Task Force; IETF) 리퀘스트 포 커멘트 (Request for Comments; RFC) 표준을 포함한다. 이것은, 현존 (presence) 을 나타내는 SIP NOTIFY 메시지들에 사용되는 XML 컨텐츠를 기술하기 위한 현존 표준과 같이, SIP 와 관련하여 사용될 수 있는 부가적인 관련 표준을 포함한다.
여기에서 사용되는 "모니터링" 은, 모니터링되고 있는 요소 또는 요소들의 그룹의 동작 또는 상태에 어떠한 영향도 주지 않는 기구들을 사용하여 관찰하고, 기록하고, 또는 검출하는 것과 관련되는 임의의 종류의 기능을 포함한다.
여기에서 사용되는 "적어도 하나", "하나 이상", 및 "및/또는" 은 연산에서 논리곱 (conjunctive) 과 논리합 (disjunctive) 양쪽인 개방형 (open-ended) 표현이다. 예를 들어, "A, B, 및 C 중 적어도 하나", "A, B, 또는 C 중 적어도 하나", "A, B, 및 C 중 하나 이상", "A, B, 또는 C 중 하나 이상", 및 "A, B, 및/또는 C" 의 각각의 표현은 A 만, B 만, C 만, A 와 B 함께, A 와 C 함께, B 와 C 함께, 또는 A, B, 및 C 함께를 의미한다.
용어 "하나의"는 하나 이상의 개체를 지칭한다. 이처럼, "하나 이상" 과 "적어도 하나" 는 여기에서 교환가능하게 사용될 수 있다. "구비하는", "포함하는", 및 "갖는" 이라는 용어도 또한 교환가능하게 사용될 수 있음에 유의해야 한다.
여기에서 사용되는 용어 "자동" 및 그것의 변동은, 프로세스 또는 동작이 수행될 때 물질적인 사람의 입력없이 행해지는 임의의 프로세스 또는 동작을 지칭한다. 그러나, 프로세스 또는 동작의 수행 이전에 수신된 사람의 입력을, 물질적이든 또는 비물질적이든, 프로세스 또는 동작의 수행이 사용할지라도, 상기 프로세스 또는 동작은 자동일 수 있다. 사람의 입력은 그러한 입력이 프로세스 또는 동작이 수행될 방법에 영향을 미친다면 물질적인 것으로 간주된다. 프로세스 또는 동작의 수행에 동의하는 사람의 입력은 "물질적인" 것으로 간주되지 않는다.
여기에서 사용되는 용어 "컴퓨터 판독가능 매체" 는 실행용 프로세서에게 명령을 제공할 때 참여하는 어떤 형태를 갖는 저장장치 및/또는 전송 매체를 지칭한다. 컴퓨터 판독가능 매체는 IP 네트워크 (예를 들어, SOAP) 를 통해 네트워크 전송으로 부호화된 명령들의 차례로 나열된 세트일 수 있다. 그러한 매체는, 비휘발성 매체, 휘발성 매체, 및 전송 매체를 포함하는 많은 형태를 취할 수 있지만 이것으로 한정되지 않는다. 비휘발성 매체는, 예를 들어, NVRAM, 또는 자기 디스크 또는 광 디스크를 포함한다. 휘발성 매체는 메인 메모리와 같은 동적 메모리 (예를 들어, RAM) 를 포함한다. 컴퓨터 판독가능 매체의 공통적인 형태는, 예를 들어, 플로피 디스크, 가요성(flexible) 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, 광자기 매체, CD-ROM, 임의의 다른 광 매체, 펀치 카드, 종이 테이프, 구멍들의 패턴을 갖는 임의의 다른 물리적인 매체, RAM, PROM, EPROM, FLASH-EPROM, 메모리 카드와 같은 고체 상태 매체, 임의의 다른 메모리 칩 또는 카트리지, 이후에 설명되는 캐리어 웨이브(carrier wave), 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다. 이메일에 대한 디지털 파일 부착 또는 다른 자기-내장된 정보 아카이브(self-contained information archive) 또는 아카이브들의 세트는 유형의(tangible) 저장 매체와 등가인 분배 매체로서 간주된다. 컴퓨터 판독가능 매체가 데이터베이스로서 구성되어 있을 때, 상기 데이터베이스는, 관계 적(relational), 계층적(hierarchical), 객체-지향적(object-oriented), 및/또는 등과 같은 임의의 종류의 데이터베이스일 수 있다. 따라서, 본 발명은 유형의 저장 매체 또는 분배 매체와 종래 기술-인식 등가물 및 후속 매체를 포함하는 것으로 간주되며, 상기 매체 내에 본 발명의 소프트웨어 구현이 저장되어 있다.
여기에서 사용되는 용어들 "결정하다", "계산하다" 및 "산정하다" 및 이의 변동은 상호교환적으로 사용되고 있고 임의의 종류의 방법론, 프로세스, 수학적인 연산 또는 기술을 포함한다. 보다 구체적으로, 상기 용어들은, BPEL (Business Process Execution Language) 처럼 해석되는 규칙, 또는 논리는 하드 코딩되지 않지만 판독될 수 있는 규칙 파일 (rules file) 로 표현되고, 해석되고, 컴파일되고, 또한 실행되는 규칙 언어 (rules language) 를 포함할 수 있다.
여기에서 사용되는 용어 "모듈" 또는 "툴" 은 임의의 알려진 또는 나중에 개발되는 하드웨어, 소프트웨어, 펌웨어, 인공지능, 퍼지 논리, 또는 상기 요소와 연관된 기능을 수행할 수 있는 하드웨어와 소프트웨어의 조합을 지칭한다. 또한, 본 발명은 예시적인 실시예들로 설명되고 있지만, 본 발명의 개별적인 양태들은 별도로 청구될 수 있음에 유의해야 한다.
전술한 것은 본 발명의 일부 양태들의 이해를 제공하기 위한 본 발명의 단순화된 요약이다. 이러한 요약은 본 발명 및 본 발명의 다양한 실시예들의 집중적인 개요도 아니고 철저한 개요도 아니다. 본 발명의 핵심적인 또는 중요한 구성요소를 식별하는 것은 의도되어 있지 않고 본 발명의 범위를 묘사하는 것도 의도되어 있지 않지만 아래에 제공되는 보다 상세한 설명에 대한 도입으로서 본 발명의 선택 된 개념들을 단순화된 형태로 제공하는 것이 의도되어 있다. 이해할 수 있듯이, 본 발명의 다른 실시예들은, 위에 설명되거나 또는 아래에 상세하게 설명되는 하나 이상의 특징들을 단독으로 또는 조합으로 사용함으로써 가능하다.
이상에서 알 수 있듯이, 본 발명에 따르면, SIP 엔드포인트는 SIP 엔드포인트가 등록할 컨트롤러 또는 컨트롤러들을 컨트롤러들의 상대적인 속성에 기초하여 선택할 수 있기 때문에, 2 이상의 컨트롤러에 동시에 등록될 수 있다.
본 발명은 예시적인 통신 시스템과 관련하여 아래에 예시될 것이다. 예를 들어, 서버(들) 및/또는 데이터베이스(들)을 사용하는 시스템과 함께 사용하는데 적합하지만, 본 발명은 임의의 특정한 종류의 통신 시스템 또는 시스템 요소들의 구성과 함께 사용하는 것으로 제한되지 않는다. 또한, 여기에 사용되는 용어 "데이터베이스" 는 관련있는 데이터베이스 시스템 뿐만 아니라, RAM 또는 하드 디스크에서 하드웨어와 소프트웨어 양쪽으로 사용할 수 있는, 임의의 컴퓨터 저장 메카니즘을 포함할 수 있다. 당업계의 당업자는 개시된 기술들이 SIP 존속가능한 네트워크를 유지하는 것이 바람직한 임의의 통신 애플리케이션에서 사용될 수 있음을 인식할 것이다.
본 발명의 예시적인 시스템들과 방법들은 또한 분석 소프트웨어, 모듈, 및 연관된 분석 하드웨어와 관련하여 설명될 것이다. 그러나, 본 발명을 불필요하게 모호하게 하는 것을 회피하기 위해, 다음의 설명에서는 잘 알려진 구조들은 생략하고, 블록도 형태로 도시될 수 있는 컴포넌트들과 디바이스들은 주지되어 있거나, 또는 요약되어 있다. 그러한 잘 알려진 구조의 예들은, 제한없이, IP 인프라스트럭처, 레이어 2 스위치 (Layer 2 switches), 레이어 IP 라우터 (Layer IP routers), IP 레벨 파이어월, 네트워크 어드레스 트랜스레이션 (Network Address Translation; NAT) 디바이스, SIP 세션 보더 컨트롤러 (Session Border Controllers; SBCs), 등을 포함한다.
설명의 목적으로, 본 발명의 완전한 이해를 제공하기 위해 많은 상세가 설명되어 있다. 그러나, 본 발명은 여기에 설명된 구체적인 상세를 넘어 다양한 방법으로 실행될 수 있음에 유의해야 한다.
먼저 도 1 을 참조하여, 본 발명의 적어도 일부 실시예들에 따라 예시적인 통신 시스템 (100) 아키텍처를 설명할 것이다. 통신 시스템 (100) 은, SIP 사용자 에이전트 (User Agent; UA)(108) 와 같은 엔드포인트를 다수의 다른 통신 디바이스들과 접속시키는 제 1 네트워크 (104) 를 구비한다. UA (108) 는 제 1 네트워크 (104) 에 접속된 엔드포인트들 뿐만 아니라 상기 제 1 네트워크 (104) 외부의 다른 엔드포인트들과 통신하도록 적응될 수 있다. 예를 들어, UA (108) 는 제 2 네트워크 (152) 에 접속된 외부 엔드포인트 (156) 와 통신하도록 적응될 수 있다.
제 1 네트워크 (104) 와 제 2 네트워크 (152) 는 임의의 종류의 주지된 통신 네크워크 또는 통신 장비의 콜렉션에 대응할 수 있다. 제 1 네트워크 (104) 는 근 거리 통신망 (LAN), 광역 통신망 (WAN), 또는 OSI 모델에 의해 정의되는 임의의 다른 종류의 레이어 3 와 레이어 4 네트워크를 구비할 수 있다.
제 2 네트워크 (152) 는 임의의 종류의 정보 전송 매체를 구비할 수 있고 임의의 종류의 프로토콜들을 사용하여 엔드포인트들 사이에서 메시지들을 전송할 수 있다. 인터넷은 많은 컴퓨터들과 전세계에 걸쳐 위치되는 다른 통신 디바이스들로 이루어지는 IP 네트워크를 구성하는 통신 네트워크 (104) 의 일 예이고, 상기 다른 통신 디바이스들은 많은 전화 시스템과 다른 수단을 통해 접속되어 있다. 제 2 네트워크 (152) 의 예들은, 제한없이, 표준 플레인 올드 텔레폰 시스템 (standard Plain Old Telephone System; POTS), 종합 정보 통신망 (Integrated Service Digital Network; ISDN), 공중 전화 교환망 (Public Switched Telephone Network; PSTN), LAN, WAN, 셀룰러 통신 네트워크, 및 당업계에 알려진 임의의 다른 종류의 패킷-교환 네트워크 또는 회선-교환 네트워크를 포함한다. 양쪽 통신 네트워크 (104, 152) 는 유선 및/또는 무선 통신 기술을 포함할 수 있다.
UA (108) 의 SIP 기능들은 하나 이상의 서버 (136) 에 의해 제공될 수 있고, 상기 하나 이상의 서버는 또한 제 1 네트워크 (104) 에도 접속되어 있다. UA (108) 는 또한 제 1 네트워크 (104) 외부의 다른 서버들 또는 통신 디바이스들에 의해 제어될 수도 있다. 예를 들어, 제 1 네트워크 (104) 를 제 2 네트워크 (152) 와 접속시키는 게이트웨이 (148) 는 또한 UA (108) 를 위한 SIP 제어 능력을 제공하도록 적응될 수도 있다.
SIP 기능들을 제공하는 것에 부가하여, 서버 (136) 는 또한 보이스 콜 소프 트웨어 (예를 들어, VoIP 소프트웨어), 비디오 콜 소프트웨어, IM 소프트웨어, 보이스 메시징 소프트웨어 (예를 들어, 오디오와 비디오 메시징, IM 메시징, 등과 같은 멀티-미디어 메시징), 레코딩 소프트웨어, IP 보이스 서버, 팩스 서버, 웹 서버, 이메일 서버, 콜 센터 애플리케이션(들), 등을 포함할 수도 있다.
본 발명의 실시예들에 따르면, 서버 (136) 는, 라이트웨이트 디렉토리 액세스 프로토콜 (Lightweight Directory Access Protocol; LDAP), H.248, H.323, 심플 메일 트랜스퍼 프로토콜 (Simple Mail Transfer Protocol; SMTP), 인터넷 메시지 액세스 프로토콜 4 (Internet Message Access Protocol 4; IMAP4), ISDN, E1/T1, HTTP, SOAP, XCAP, STUN, 및 아날로그 라인 또는 트렁크와 같은 다양한 다른 프로토콜들을 위한 인터페이스들을 포함할 수 있다.
서버 (136) 는 또한 PBX, 자동 호 분산 (Automatic Call Distribution; ACD), 엔터프라이즈 스위치, 또는 다른 종류의 통신 시스템 스위치 (예를 들어, 다이얼링된 전화 번호에 따라, 각각이 가입자 전화에 접속되어 있는 2 이상의 회선을 함께 접속함으로써 작동하는 중앙 교환소 내의 복합 기계 (또는 일련의 복합 기계) 와 같이, 일방의 전화로부터의 콜을 타방의 전화로 라우팅할 수 있는 임의의 디바이스) 또는 서버, 뿐만 아니라 미디어 서버, 컴퓨터, 부가물 등과 같은 다른 종류의 프로세서-기반 통신 제어 디바이스들을 포함할 수도 있다.
게이트웨이 (148) 는, PSTN; 차세대 네트워크 (Next Generation Network); 2G, 2.5G 및 3G 무선 액세스 네트워크; 또는 PBX 와 같은 이종 (disparate) 통신 네트워크들 사이에서 번역 유닛 (translation unit) 으로서 작용하도록 제공된다. 게이트웨이 (148) 의 기능들 중 하나는 다양한 네트워크들을 위해 상이한 전송 및 코딩 기술들 사이에서 변환하는 것이다. 에코 제거(echo cancellation), DTMF, 및 톤 송출기 (tone sender) 와 같은 미디어 스트리밍 기능들도 또한 게이트웨이 (148) 에 의해 지원될 수도 있다. 게이트웨이 (148) 는 일방의 네트워크 동작 패러다임 (예를 들어, 전송 프로토콜) 으로부터의 신호들/메시지들을 타방으로 추가로 전환할 수 있다.
SIP 기능들을 UA (108) 에게 제공하기 위해, 서버 (136) 및/또는 게이트웨이 (148) 는 하나 이상의 컨트롤러 (140a-N) 를 구비할 수 있다. UA (108) 는 하나 이상의 컨트롤러 (140a-N) 를 한 번에 등록하도록 적응될 수 있다. 여기에서 사용되는 용어 "레지스터" 와 "등록" 은 SIP 등록과 네트워크 접속(attachment) 방법 및 프로세스를 지칭하며, SIP REGISTER 메시지를 송신하고 확인하는 것을 포함하지만 제한되지 않으며, 또한 가입을 위한 SUSBSCRIBE 메시지와 같은 다른 메카니즘, OPTIONS 메시지를 사용하여 질문하는 것, 뿐만 아니라 STUN 프로토콜, HTTP 쿼리, 등을 사용하는 파이어월과 NAT 검출과 같은 다른 넌-SIP 메카니즘을 포함할 수 있다.
컨트롤러 (140a-N) 는 서버 (136) 에 상주하는 애플리케이션들 또는 펌웨어에 대응할 수 있고 컨트롤러 (140a-N) 는 제어된 UA (108) 로 향하고 상기 제어된 UA 로부터 수신되는 SIP 메시지들을 취급하는데 사용될 수 있다. 컨트롤러 (140a-N) 에 의해 취급되는 SIP 메시지들은, UA (108) 에 의해 발생되어 다른 엔드포인트 (156) 를 향하여 방향 결정된 아웃바운드 (outbound) SIP 메시지들 또는 다른 엔드 포인트 (156) 에 의해 발생되어 UA (108) 를 향하여 방향 결정된 인바운드 (inbound) SIP 메시지들에 대응할 수 있다. 컨트롤러 (140a-N) 는 통신 시스템 (100) 의 애플리케이션 층에서 동작할 수 있다.
본 발명의 적어도 일 실시예에 따르면, UA (108) 는 2 이상의 컨트롤러 (140) 를 동시에 등록할 수 있다. UA (108) 가 동시에 등록하는 컨트롤러 (140) 각각은 상이한 속성들을 구비할 수 있고 그러므로 UA (108) 에게 상이한 SIP 기능들을 제공할 수 있다. 예를 들어, UA (108) 에는, 확장된 익스텐션 (즉, 진보된 피처 (feature) 세트들) 을 사용하는 제 1 컨트롤러 (140a) 및 SIP 프로토콜을 통해 하나 이상의 IETF RFC 들에 따라 콜 프로세싱하기 위해 표준 인터넷 엔지니어링 태스크 포스 (Internet Engineering Task Force; IETF) 준수 SIP 익스텐션들을 사용하는 제 2 컨트롤러 (140b) 가 동시에 등록되며, 상기 하나 이상의 IETF RFC 는 RFC 3261 를 포함하지만 이것으로 제한되지 않는다.
동시적인 등록 구성에 있어서, UA (108) 는 활성-활성 등록 또는 활성-대기 (active-standby) 등록 중 어느 하나를 행할 수 있다. 활성-활성 등록에 있어서, UA (108) 는 어느 한 쪽의 컨트롤러 (140) 로부터 SIP 메시지들을 접수하고 상기 메시지가 1차 컨트롤러 (140) 로 송신되는 중인지 또는 상기 1차 컨트롤러로부터 유래하는지를 결정하지 않고 SIP 메시지들을 어느 한 쪽의 컨트롤러 (140) 로 송신할 수 있다. 활성-대기 등록 구성에서는, 그러나, UA (108) 는 활성 컨트롤러 (140) 가 동작할 수 없게 되지 않는 한 SIP 시그널링 목적으로 활성 컨트롤러 (140) 만을 사용할 수 있을 뿐이다. 그러한 구성에 있어서, 만일 메시지들이 대기 컨트롤러 (140) 로부터 수신되고 UA (108) 는 1차 컨트롤러 (140) 가 동작적이라고 믿는다면, UA (108) 는 상기 1차 컨트롤러 (140) 를 통한 다른 루트 (re-route) 를 위해 SIP 메시지를 대기 컨트롤러 (140) 로 되돌려 송신할 수 있다.
본 발명의 다른 실시예들에 따르면, UA (108) 는 컨트롤러 (140a-N) 의 우선 등록을 실행할 수 있고, 그럼으로써 제 1 컨트롤러 (140a) 가 서비스 불가(out of service)임을 또는 SIP 기능들을 제공하는데 활용할 수 없음을 UA (108) 가 결정하지 않는 한 상기 UA (108) 에는 제 1 컨트롤러 (140a) 가 등록되고, 이 경우에 상기 UA (108) 는 제 2 컨트롤러 (140b) 를 등록할 수 있다.
본 발명의 또 다른 실시예들에 따르면, 피어-투-피어 (Peer-to-Peer) SIP 네트워크 구성이 채용될 수 있고, 이 경우에 UA (108) 는 다른 엔드포인트 또는 복수의 엔드포인트에 컨트롤러 (140) 를 등록할 수 있다.
UA (108) 는 메모리 (112) 및 상기 메모리 (112) 에 저장된 루틴들을 실행할 뿐만 아니라 인커밍/아웃고잉 SIP 메시지들과 매체를 처리하기 위한 프로세서 (124) 를 구비할 수 있다. 메모리 (112) 는 발견 모듈 (116) 및 컨트롤러들의 목록 (120) 을 포함할 수 있다. 발견 모듈 (116) 은, UA (108) 를 제어할 수 있는 컨트롤러 (140) 를 구비하는 시스템 (100) 에서의 디바이스들을 발견하는데 사용될 수 있다. 본 발명의 적어도 일부 실시예들에 따르면, 발견 모듈 (116) 은, 임의의 활용가능한 컨트롤러들 (140) 이 응답할 수 있는 발견 요청을 송신하도록 적응될 수 있다. 컨트롤러들 (140) 로부터 수신되는 응답(들)(또는 응답의 결여)에 기초하여, 발견 모듈 (116) 은 다수의 컨트롤러 (140) 를 사용하여 상기 목록 (120) 을 파퓰레이트 (populate) 할 수 있다. 그 다음으로 발견 모듈 (116) 은, 컨트롤러들의 개별적인 속성들 (132) 에 기초하는 컨트롤러들 (140) 의 우선권 목록을 구비하는 순서화된 목록 (128) 을 생성할 수 있다. UA (108) 는 그 다음으로 순서화된 목록 (128) 에서의 컨트롤러들 (140) 의 순서에 기초하여 어느 컨트롤러(들)을 등록할 것인지를 결정할 수 있다.
컨트롤러들 (140) 을 발견하고 사이에서 조정하는 능력을 제공하는 것에 부가하여, 발견 모듈 (116) 은, 임의의 현재의 네트워크 (104) 장애, 서버 (136) 장애, 게이트웨이 (148) 장애, 또는 UA (108) 와 그것의 컨트롤러(들)(140) 사이의 관계에 영향을 줄 수 있는 임의의 다른 종류의 장애가 있는지를 결정하기 위해 통신 시스템 (100) 의 상태를 모니터링하도록 추가로 적응될 수 있다. 여기에 보다 자세하게 설명되듯이, 발견 모듈 (116) 은 시스템 (100) 과 그것의 컴포넌트들의 상태를 능동적이고 민감하게 모니터링하도록 적응될 수 있다. 시스템 (100) 의 상태를 능동적으로 모니터링하는 동시에, 발견 모듈 (116) 은 시스템 (100) 의 상태를 결정하기 위해 소정의 논리와 함께 넌-다이얼로그 (non-dialog) SIP 메시지들을 사용할 수 있다. UA (108) 는 시스템 (100) 의 상태를 민감하게 모니터링하는 것을 시작하도록 다른 시스템 (100) 컴포넌트 (예를 들어, 게이트웨이 (148)) 에 의해 부가적으로 촉구될 수 있다. 시스템 (100) 의 상태를 모니터링하는 능력을 UA (108) 에게 제공하는 것은, UA (108) 의 논리가 라우터와 같은 다른 컴포넌트에 대한 처리 부담을 경감하는데 오히려 사용되고 있다는 점에서 종래 기술의 네트워크 모니터링 기술로부터의 벗어남이다. 이것은 각각의 UA (108) 가 시스템 (100) 의 상태를 독립적으로 모니터링할 수 있게 하는 놀라운 이점을 제공하고, 시스템 (100) 에 대한 보다 좋은 관점을 제공하며 각각의 UA (108) 로 하여금 그것의 컨트롤러들 (140) 에 대한 그것의 개별적인 기록들을 유지할 수 있게 한다. 달리 말하자면, UA (108) 로부터의 지능 (intelligence) 과 시스템 (100) 내의 다른 컴포넌트들 (예를 들어, 게이트웨이 (148) 및/또는 서버들 (136)) 의 조합을 사용함으로써, 시스템 (100) 의 상태에 대한 보다 정확한 최신의 묘사가 얻어질 수 있다. UA (108) 로 하여금 네트워킹 층의 운용성 (예를 들어, 시스템 (100) 의 전역에 걸쳐 IP 패킷들을 송신함으로써), SIP 애플리케이션 층의 운용성 (예를 들어, 시스템 (100) 의 전역에 걸쳐 SIP 메시지들을 송신함으로써), 및 양쪽의 집합체의 운용성 (operability) 을 조사할 수 있게 함으로써 시스템의 건강에 대한 정확한 묘사를 더욱 증가시킬 수 있다.
서버들 (136) 과 게이트웨이 (148) 는 또한 시스템 (100) 의 상태에 액세스하기 위한 발견 모듈 (144) 을 구비한다. 보다 구체적으로, 각각의 발견 모듈 (144) 은 멀리 떨어진 컴포넌트들 (예를 들어, 발견 모듈 (144) 을 구비하는 디바이스에 인접하지 않은 시스템 (100) 컴포넌트) 뿐만 아니라 다양한 피어 (peer) 컴포넌트들 (예를 들어, 발견 모듈 (144) 을 구비하는 디바이스에 인접한 시스템 (100) 컴포넌트) 의 상태를 독립적으로 모니터링하는데 사용될 수 있다. 각각의 발견 모듈 (144) 은 시스템 (100) 및 그 내부의 컴포넌트들의 상태에 독립적으로 액세스하는데 사용될 수 있다.
본 발명의 적어도 일부 실시예들에 따르면, 발견 모듈 (144) 은, 클러스터 방식으로 (즉, 다수의 서버들 (136) 이 "내가 어느 컨트롤러를 사용하는가" 를 묻는 엔드포인트로부터의 질문에 대답할 수 있다) 또는 싱글톤 (singleton) 으로서 사용자 에이전트 (108) 또는 다른 엔드포인트들 (156) 에 의해 액세스될 수 있는 소프트웨어 모듈을 구비할 수 있다. 발견 모듈 (144) 은 다수의 프로토콜을 사용하여 구현될 수 있고 한 번에 다수의 프로토콜을 추가로 지원할 수 있다. 보다 구체적으로, 각각의 발견 모듈 (144) 은 SOAP/HTTP, SXAP (SOAP 처럼 HTTP 를 통한 다른 XML), 및 SIP (예를 들어, SIP 메시지의 몸체에 컨트롤러들 (140) 의 목록을 제공함으로써) 중 하나 이상을 지원하도록 적응될 수 있다.
발견 모듈 (144) 은 규칙 프로세싱을 통해 주어진 사용자 에이전트 (108) 를 위한 그것 자체의 컨트롤러들의 목록을 결정하도록 적응될 수 있다 (상기 발견 모듈은 요청시 사용자 에이전트 (108) 에게 상기 그것 자체의 컨트롤러들의 목록을 궁극적으로 제공할 수 있다). 상기 규칙 프로세싱은 하드 코딩 (예를 들어, 자바 코드) 될 수 있거나 또는 규칙 엔진 (rules engine) 을 구비할 수 있으며, 상기 규칙 엔진은, XML 과 같은 스크립트를 받아들이고, 그것을 구문분석하고 (parse), 어느 것이 컨트롤러들의 목록을 요청하는 사용자 에이전트 (108) 를 위한 가장 적절한 컨트롤러 (140) 인지를 결정하기를 원할 때 그것을 실행한다. 알고리즘에 포함될 수 있는 규칙들의 종류는 다음을 포함하지만, 이것으로 제한되지 않는다:
(1) 사용자 에이전트 (108) 를 위한 가장 적절한 컨트롤러 (140) 를 결정하기 위해 가공하지 않은 네트워크 토폴로지 (예를 들어, 네트워크를 통해 전송되는 IP 패킷들을 분석함으로써) 를 분석하는 네트워크 국소성 조사. 그러한 규칙 세트 는 대역폭 관리 기능을 포함할 수 있고, 여기에서 발견 모듈 (144) 은 요청하는 사용자 에이전트 (108) 의 IP 를 조사하고, 그 다음으로 최상의 활용가능한 대역폭을 목록화하는 대역폭 스토어 (store) 를 검색한 다음 사용자 에이전트 (108) 를 위한 최상의 정합 (match) 컨트롤러 (140) 를 선택한다. 이 경우에, 최상의 정합은, 사용자 에이전트 (108) 에 대한 근접성에서 가장 가깝고 활용가능한 대역폭을 갖는 컨트롤러 (140) 를 구비하는 서버 (136) 에 대응할 것이다.
(2) 사용자 에이전트 (108) 가 보안 목적으로 특정한 서버 (136)/컨트롤러 (140) 에 접속해야 하는 어떤 경우들이 있기 때문에 보안 검사 알고리즘. 예를 들어, CEO 의 전화기는, 끊임없이 모니터링되고 수 초 이내에 패치되는 최고의 보안 서버들에만 접속하기를 원할 수 있다. 다른 한편으로, 테크 서포트 (tech support) 전화기는 서버 팜 (farm) 을 형성하는 서버들 (136) 의 세트 중 임의의 서버에 접속되는 것이 허용될 수 있고, 여기에서는 보안 패치가 24 시간 이내에 이루어진다.
(3) 발견 모듈 (144)이 어느 서버(들) (136) 이 특정한 사용자를 위한 서비스를 제공할 수 있는지의 매핑을 검사할 수 있는 사용자 할당 알고리즘. 만일 이들이 지오-리던던시 구성에서와 같은 다중 서버들이라면, 다중 컨트롤러 (140) 가 응답으로 복귀될 수 있다.
(4) 발견 모듈 (144) 이, 모든 세일즈 사람들은 하나의 서버 (136) 를 사용하고 모든 테크-서포트 사람들은 다른 서버를 사용한다라고 말하는 스크립트에 고객 제공 후크 (customer provided hooks) 를 가질 수 있는 사업 규칙 알고리즘.
(5) 요청하는 사용자 에이전트 (108) 가 컨트롤러 (140) 를 찾고 있는 그것의 모드 (예를 들어, 보이스, 인스턴트 메시징 (Instant Messaging; IM), 비디오, 등) 를 표현할 때 개시될 수 있는 디바이스 양식 (modality) 알고리즘. 이 알고리즘을 사용할 때, 발견 모듈 (144) 은, 사용자를 위한 최상의 종류의 모드를 제공하는 최상의 컨트롤러 (140) 를 선택하기 위해 내부 능력 할당을 검색할 수 있다. 예를 들어, 보이스와 IM 을 행할 수 있는 사용자 에이전트 (108) 는 보이스 서버 보다는 이들 양쪽의 기능을 지원할 수 있는 서버 (136) 를 선호할 것이다.
(6) 요청 사용자 에이전트 (108) 가 그것이 특정한 프로토콜 세트를 지원하는 것을 확인할 때 개시될 수 있는 프로토콜 호환성 알고리즘. 이것은 SIP 가 다수의 프로토콜 익스텐션이기 때문에 SIP 에서 특별히 유용하다. 요청 사용자 에이전트 (108) 가 컨트롤러 (140) 를 요청할 때, 그것은 그것이 지원하는 프로토콜 피처들 (예를 들어, 현존 가입 또는 일반적으로 가입) 을 표현할 수 있고 서버는 사용자 에이전트 (108) 의 그 종류에 대한 최상의 정합을 찾을 수 있다.
이제 도 2 를 참조하여, 본 발명의 적어도 일부 실시예들에 따라 SIP 컨트롤러 (140) 발견 및 등록 방법을 설명할 것이다. 상기 방법은 통신 시스템 (100) 에서의 UA (108) 와 같은, 엔드포인트에 의해 실행될 수 있다. 통신 시스템에서의 각각의 UA (108) 는 상이한 컨트롤러들 (140) 을 발견하여 등록하도록 적응될 수 있다. 상기 방법은 엔드포인트가 발견 메시지를 송신할 때 개시된다 (단계 204). 본 발명의 적어도 일 실시예에 따르면, 발견 메시지는 SIP 메시지들 (예를 들어, OPTIONS 메시지, NOTIFY 메시지, 또는 SUBSCRIBE 메시지) 을 포함하는 임의의 주지 된 종류의 발견 메시지를 구비하며 상기 메시지들은 시스템 (100) 의 하나 이상의 다른 컴포넌트로 전송되어 상기 컴포넌트의 SIP 기능성을 테스트/문의할 수 있다.
발견 메시지가 컨트롤러 (140) 를 구비하는 시스템의 다른 컴포넌트들 (예를 들어, 서버들 (136) 및/또는 게이트웨이 (148)) 에 의해 수신되면, 상기 컴포넌트는 응답 메시지를 사용하여 상기 발견 메시지에 응답한다. 대안적으로, 만일 어떠한 컴포넌트도 현재 발견 메시지에 응답할 수 없다면, 어떠한 응답 메시지도 개시 엔드포인트로 되돌려 송신되지 않는다. 컨트롤러(들) (140) 의 응답 메시지가 그 다음으로 개시 엔드포인트에서 수신된다 (단계 208). 엔드포인트가 이들 응답을 수신하거나 또는 방향결정된 발견 메시지에 대한 응답의 결여(lack)를 수신함에 따라, 엔드포인트는 그것의 발견 모듈 (116) 을 사용하여 컨트롤러들의 목록 (120) 을 파퓰레이트할 것이다.
응답 메시지들은 또한 각각의 응답하는 컨트롤러 (140) 의 속성들 (132) 을 포함할 수 있다. 응답 메시지에 포함되는 속성 정보의 예들은, 제한없이, 대응하는 서버 (136) 의 또는 게이트웨이 (148) 의 프로세싱 능력, 컨트롤러 (140) 에 의해 제공되는 SIP 익스텐션들 (즉, SIP 기능들), 현재 컨트롤러 (140) 를 등록한 UA 의 개수, 엔드포인트에 대한 컨트롤러의 근접성 (즉, 엔드포인트와 대응하는 디바이스 사이의 홉스 (hops) 의 개수), 등을 포함한다. 엔드포인트의 발견 모듈 (116) 은 속성 정보를 사용하여 순서화된 목록 (128) 에서의 컨트롤러들 (140) 의순서를 조정한다 (단계 212). 발견 모듈 (116) 은 컨트롤러들 (140) 의 순서를 결정하기 위해 임의의 종류의 알려진 조정 알고리즘을 사용할 수 있다. 예를 들어, 발견 모듈 (116) 은 모든 컨트롤러 (140) 에 대해 목록화된 모든 속성을 최적화하려고 시도할 수 있다. 대안적으로, 발견 모듈 (116) 은 엔드포인트의 요구에 가장 적합한 선택된 속성을 갖는 컨트롤러 (140) 를 순서화된 목록 (128) 의 최상에 위치시킬 수 있다.
엔드포인트의 발견 모듈 (116) 이 컨트롤러들의 순서화된 목록을 생성한 이후에, 발견 모듈 (116) 은 엔드포인트가 등록할 하나 이상의 컨트롤러 (140) 를 선택한다 (단계 216). 컨트롤러들 (140) 은 컨트롤러들의 순서화된 목록 (128) 에서의 그들의 개별적인 순서에 기초하여 선택될 수 있다. 본 발명의 적어도 일 실시예에 따르면, 발견 모듈 (116) 은 서버 (136) 로부터의 컨트롤러 (140) 및 게이트웨이 (148) 로부터의 컨트롤러 (140) 를 선택하여 동시에 등록할 수 있다. 활성-대기 구성에 있어서, 엔드포인트는 서버 (136) 의 컨트롤러 (140) 를 1차 컨트롤러로서 선택하고 게이트웨이 (148) 의 컨트롤러 (140) 를 2차 또는 백업 컨트롤러로서 선택할 수 있다.
컨트롤러(들) (140) 의 선택을 추종하여, 엔드포인트는 선택된 컨트롤러(들) (140) 을 등록하도록 활성화된다. 본 발명의 적어도 일부 실시예들에 따르면, 엔드포인트는 상이한 능력과 SIP 피처들을 갖는 컨트롤러 (140) 를 등록하도록 적응될 수 있다. 예를 들어, 엔드포인트는, 확장된 SIP 익스텐션을 사용하는 1차 컨트롤러 (140) 및 표준 SIP 익스텐션을 사용하는 2차 컨트롤러 (140) 를 동시에 등록하도록 허용될 수 있다. 상기 확장된 SIP 익스텐션은 1차 컨트롤러 (140) 에 의해 사용되어 2차 컨트롤러 (140) 를 통해 달성할 수 없는 부가적인 피처들을 제공할 수 있다.
SIP REGISTER, SUBSCRIBE, 또는 OPTIONS 메시지, 또는 다른 SIP 시그널링은, 1차 컨트롤러 (140) 가 여전히 온라인 상태이고 SIP 메시징을 용이하게 하는데 활용할 수 있는지를 검출하기 위해 전송될 수 있다. 예를 들어, SIP REGISTER 메시지는 엔드포인트에 의해 선택된 컨트롤러(들) (140) 로 송신되어 등록 프로세스를 개시시킬 수 있다. 엔드포인트에 그것의 컨트롤러(들)을 등록하는 능력을 제공하는 것에 부가하여, SIP REDISTER 메시지는 또한 컨트롤러들 (140) 을 위한 심장박동 (heartbeat) 으로서도 사용될 수 있다. SIP REDISTER 메시지의 전송 주파수는 시스템 요구에 기초하는 사용자 설정가능일 수 있다. 달리 말하자면, 엔드포인트는 등록되어 있는 임의의 컨트롤러 (140) 에게 재생 (refresh) 등록을 송신할 수 있다.
활성-대기 구성과 활성-활성 구성 양자에 있어서, 엔드포인트는 그것의 선택된 컨트롤러 (140) 모두를 동시에 등록할 수 있다. 그것의 동작 동안, 엔드포인트는 컨트롤러 (140) 들의 동시 발생적인 활성 등록을 (예를 들어, 후속 SIP REGISTER 메시지들의 주기적인 전송을 통해) 유지하려고 시도할 수 있다. 활성-활성 구성에 있어서, 엔드포인트는 등록되어 있는 임의의 컨트롤러 (140) 로/로부터 SIP 메시지를 송신/수신하도록 허용될 수 있다. 그러한 구성에 있어서, 엔드포인트에는 2 이상의 컨트롤러 (140) 가 동시에 등록될 것이다. 이러한 이중 등록은 엔드포인트에 등록되어 있는 컨트롤러들 (140) 중 임의의 컨트롤러 (예를 들어, 제 1 컨트롤러 (140a), 제 2 컨트롤러 (140b), 제 3 컨트롤러 (140c), 등) 로부터 인 바운드 SIP 요청 (예를 들어, SIP INVITE 메시지들) 을 허용할 것이다. 만일 엔드포인트가 활성-활성 컨트롤러 모델을 사용하는 정책을 갖도록 구성되어 있다면, 엔드포인트는 이전에 장애 발생된 컨트롤러 (140) 로부터의 인커밍 콜을 서비스 상태에 있는 컨트롤러 (140) 로부터 온 것처럼 간주할 수 있다. 이것이 발생하면, 엔드포인트는 장애 발생된 서버가 서비스 상태로 되돌아갔는지 여부를 검출하기 위해 알고리즘을 재시도할 수 있다. 엔드포인트는 임의의 컨트롤러 (140) 로부터 그러한 SIP 메시지들의 수신을 허용하도록 구성될 것이다. 본 발명의 적어도 일부 실시예들에 따르면, 엔드포인트는 상기 등록을 독립적인 등록으로서 취급하여, 여기에 설명되는 등록 논리를 사용하여 각각을 유지할 것이다. 보다 구체적으로는, 엔드포인트는, 비록 상기 엔드포인트 구현이 상이한 AOR 들을 수용하도록 융통성있을 지라도, 각각의 컨트롤러가 동일한 AOR 로 등록되도록 허용될 수 있을 것이다. 이것은 또한 활성-대기 구성에도 사실이다.
활성-대기 구성에 있어서, 다른 한편으로, 엔드포인트는 아웃바운드 콜들을 라우팅하고 그것의 1차 컨트롤러 (140) 로부터의 인바운드 콜들을 수신하도록 허용될 수 있을 뿐이다. 동작적인 동시에, 이 1차 컨트롤러 (140) 는 또한 활성 콜 컨트롤러 (140) 로서 지칭될 수 있다. 엔드포인트에 등록되어 있는 다른 컨트롤러(들) (140) 은 비활성 또는 대기 컨트롤러로서 지칭될 것이다.
활성-대기 구성에 있어서, 만일 엔드포인트가 2차 또는 대기 컨트롤러 (140) 로부터 인바운드 콜을 수신하는 동시에 엔드포인트가 그것의 1차 모드 상태에 있으면 (즉, 엔드포인트가 1차 컨트롤러 (140) 가 활성 상태임을 믿는다면), 엔드포인 트는:
(1) 100 트라잉 (Trying) 메시지를 사용하여 2차 컨트롤러 (140) 에 응답하고;
(2) 1차 컨트롤러가 여전히 온라인 상태에 있고 SIP 메시징을 용이하게 하는데 활용가능한지 여부를 알기 위해 1차 컨트롤러 (140) 로 REGISTRATION 재생을 송신할 것이다;
(3) 만일 1차 컨트롤러 (140) 가 여전히 온라인 상태이 있으면, 엔드포인트는 305 리다이렉트 응답 (즉, 유즈 프록시 (Use Proxy)) 을 2차 컨트롤러 (140) 로 송신할 것이다. 상기 305 리다이렉트 응답은 2차 콜 컨트롤러를 통해 상기 콜을 거절할 것이고 2차 컨트롤러 (140) 가 1차 컨트롤러 (140) 를 통해 시그널링을 리라우팅할 것을 요청할 것이다; 또한
(4) 만일 1차 컨트롤러가 더 이상 온라인 상태에 있지 않으면, 엔드포인트는 수신되는 콜에 대해 표준 콜 프로세싱을 제공할 것이다. 이러한 프로세스의 일부분으로서, 엔드포인트는 1차 컨트롤러 (140) 로부터 2차 컨트롤러 (140) 로 장애대체(failover)하고 그것의 등록을 2차 컨트롤러 (140) 를 사용하여 재생할 것이다.
활성-대기 구성에 있어서, 만일 엔드포인트가 그것의 1차 컨트롤러 (140) 로부터 인바운드 콜을 수신하는 동시에 그것이 장애 대체 모드에서 동작하고 있으면 (즉, 그것의 1차 컨트롤러 (140) 의 상태가 서비스 불가이고 2차 컨트롤러 (140) 를 활성 컨트롤러로서 사용중이라는 가정 하에서), 상기 콜은 거절될 수 있다.
장애 상태 또는 엔드포인트가 시스템 (100) 컴포넌트가 서비스 불가 상태라 고 믿고 있는 임의의 다른 시간 동안, 엔드포인트는 1차 컨트롤러 (140) 를 사용하여 실시간 통신 세션을 확립하려고 시도하지 않을 것이다. 부가적으로, 엔드포인트는 컨트롤러들의 순서화된 목록 (128) 에서의 두 번째의 또는 다음의 컨트롤러 (140) 로 장애 대체할 것이다. 존속가능한 (즉, 2차, 3차, 또는 백업) 컨트롤러 (140) 를 통해 라우팅되는 콜 시그널링은 엔드포인트의 사용자로 하여금 장애 시간 동안 새로운 콜들을 만들고 수신하도록 허용할 것이다.
아래에 보다 상세하게 설명되는 장애 대체/장애 복구의 일부분으로서, 엔드포인트는 활성 컨트롤러 (140) 에 대한 어드레스를 확인하고 상기 컨트롤러 (140) 에 의해 지원되는 속성들 및 연관된 피처들을 추가로 유도할 것이다. 달리 말하자면, 엔드포인트는 등록되어 있는 컨트롤러 (140) 가 예를 들어, "확장된/독점적인" 또는 "기본 SIP" 로 지정되어 있는지 여부를 유도하도록 적응될 수 있다. 엔드포인트의 발견 모듈 (116) 은 다음의 논리를 사용하여 컨트롤러가 확장된 또는 기본 SIP 를 사용하는지 여부를 발견하도록 적응될 수 있다:
(1) 장애 대체 또는 장애 복구 되자마자, 엔드포인트는 각각의 컨트롤러 (140) 를 사용하여 그것의 등록을 재생 또는 재개할 것이다;
(2) 상기 프로세스의 일부분으로서, 엔드포인트는 2차 컨트롤러 (140) 를 사용하여 모든 1차 컨트롤러 (140) 피처 패키지들에 재가입하려고 시도할 것이다;
(3) 엔드포인트가 SUBSCRIBE 요청을 2차 컨트롤러 (140) 에게 송신할 때, 2차 컨트롤러는 그것이 기본 SIP 동작을 지원할 뿐이면 피처 가입 요청을 인식하지 못할 것이다; 또한 그 다음으로
(4) 간단한 2차 컨트롤러 (140) 는 클라이언트 에러 405 메소드 낫 얼라우드 (Client Error 405 Method Not Allowed) 를 사용하여 응답할 것이다.
엔드포인트는 이러한 정보를 사용하여 2차 컨트롤러 (140) 를 표준 IETF SIP 준수 컨트롤러 (140) 로서 식별할 수 있다. 엔드포인트는 그 다음으로 장애 대체 모드에서 동작하면서 그것의 유저 인터페이스 (User Interface; UI) 에 기본 SIP 피처만을 표시할 것이다. 만일 활성 컨트롤러 (140) 가 "확장된" 으로서 지정되어 있으면 (예를 들어, 그것이 SUBSCRIBE 요청에 대해 적절하게 응답했기 때문에), 엔드포인트는 콜과 피처 프로세싱에 대해 확장된 익스텐션을 갖는 SIP 를 사용하여 호환가능한 UI 를 표시할 것이다.
활성-대기 구성에서 제공될 수 있는 부가적인 피처들은, 제한없이, 다음을 포함한다:
(1) 엔드포인트는 아웃바운드 콜들을 비활성 컨트롤러 (140) 로 결코 라우팅하지 않을 것이다;
(2) 엔드포인트가 활성 컨트롤러 (140) 로부터 대기 컨트롤러 (140) 로 장애 대체할 때, 이전의 활성 컨트롤러 (140) 는 비활성으로서 지정될 것이고 이전의 비활성 컨트롤러는 활성으로서 지정될 것이다.
(3) 엔드포인트는 지정된 컨트롤러 (140) 로 장애 대체되기 전에 모든 활성 콜들이 완료될 때까지 대기할 것이다. 달리 말하자면, 어떠한 새로운 인바운드 콜들도, 활성 콜(들)이 완료될 때까지 (즉, 엔드포인트가 활성 콜(들)에 대해 네트워크 (104) 로부터 BYE 메시지를 수신하거나 또는 발신자가 전화를 끊을 때까지) 새 롭게 지정된 활성 컨트롤러 (140) 로부터 엔드포인트에 의해 접수되지 않을 것이다. 유사하게, 어떠한 새로운 아웃바운드 콜들도 장애 대체가 완료될 때까지 허용되지 않을 것이다; 또한
(4) 만일 엔드포인트가 2차 컨트롤러 (140) 를 컨트롤러로서 사용하는 중이면서 1차, 그렇지만 서비스 불가인, 컨트롤러 (140) 로부터 임의의 시그널링 메시지를 수신하면, 서비스 불가로서 마킹된 상기 1차 컨트롤러 (140) 로부터의 시그널링 메시지들은 무시될 것이다. 그러나, 이러한 규칙에 대해 한 가지 예외가 있을 수 있다, 즉, 만일 엔드포인트가 그것의 1차 컨트롤러 (140) 로부터 그것에게 재등록하도록 말하는 NOTIFY 메시지를 수신하면, 엔드포인트는 재생을 개시하거나 또는 그것의 등록을 재생하려고 시도할 것이다. 이 경우에 엔드포인트는 상술된 표준 SIP 프로세싱을 사용하여 NOTIFY 에 응답할 것이다.
엔드포인트가 그것의 개별적인 컨트롤러(들) (140) 을 등록한 이후에, 상기 방법이 종료된다 (단계 224).
이제 도 3 을 참조하여, 본 발명의 적어도 일부 실시예들에 따라 통신 시스템 (100) 상태 결정 방법을 설명할 것이다. 존속가능한 구성에 있어서, 게이트웨이 (148) 가 1차 또는 2차 시그널링 경로를 통해 콜 시그널링을 라우팅할 때를 검출하도록 장비되는 것은 중요할 수 있다. 이 방법은 게이트웨이 (148) 가 통신 시스템 (100) 의 다른 컴포넌트에게 SIP OPTIONS 메시지를 송신할 때 개시된다 (단계 304). 상기 컴포넌트들은 SIP 활성화된 컴포넌트들에 대응할 수 있다. 상기 컴포넌트는 피어 컴포넌트들 (즉, 게이트웨이 (148) 에 인접한 컴포넌트들) 및/또는 멀 리 떨어진 컴포넌트들 (즉, 그들과 게이트웨이 (148) 사이에 적어도 하나의 중간 컴포넌트를 갖는 컴포넌트들) 에 추가로 대응할 수 있다. 본 발명의 적어도 일부 실시예들에 따르면, 멀리 떨어진 SIP 컴포넌트들에 대한 능동적인 모니터링은, 보통 시스템 (100) 관리자가 중간 컴포넌트들이 그들의 피어들 (peers) 을 모니터링할 수 없다는 것을 아는 경우에만, 인색하게 행해져야 한다. 본 발명의 실시예들에 따르면, 게이트웨이 (148) 는 Max-Forwards=0 의 세팅을 갖는 SIP OPTIONS 메시지를 송신할 수 있고, 그럼으로써 상기 OPTIONS 메시지가 단일 홉 (hop) 이상을 가로질러 가지 않는다는 것을 보장한다 (즉, 그것은 피어 컴포넌트를 향하여 목표 맞춤되어 있다).
당업자라면 이해할 수 있듯이, 여기에 SIP OPTIONS 메시지를 사용하는 모니터링 기술이 설명되어 있지만, 임의의 다른 종류의 넌-다이얼로그 SIP 트랜잭션을 사용하여 통신 시스템 (100) 및 그 내부의 컴포넌트들의 상태를 모니터링할 수 있다. 보다 구체적으로, 일반적인 SIP 메시지 (예를 들어, INFO METHOD, MESSAGE METHOD, 또는 보이드 SIP 메시지) 를 전송하여 임의의 종류의 SIP-기반 응답을 불러낼 수 있다. 게이트웨이 (148) 에 의해 전송되는 SIP 메시지는 또한 메시지 수신자에 의해 실행될 명령을 포함할 수 있다. 예를 들어, 게이트웨이 (148) 의 건강 및 피어 컴포넌트들과 같은 상기 게이트웨이 (148) 에 의해 모니터링되는 임의의 다른 컴포넌트의 건강을 보고하는 익스텐시블 마크업 랭귀지 (eXtensible Markup Language; XML) 메시지 뿐만 아니라, 상기 게이트웨이 (148) 의 보고된 건강에 기초하여 수신자가 취할 활동들을 구비하는 SIP 메시지가 생성될 수 있다.
게이트웨이 (148) 는 SIP OPTIONS 메시지를 송신한 이후에 응답의 수신을 기다린다 (단계 308 및 단계 312). 게이트웨이 (148) 가 응답의 수신을 위해 대기하는 시간은 시스템 (100) 특성에 의존하여 변화할 수 있다. 본 발명의 적어도 일 실시예에 따르면, 게이트웨이 (148) 가 대기하는 시간의 길이는, 요청이 송신되었던 이후로 소정의 초 이내에 어떠한 SIP 응답도 수신되지 않으면 SIP 시그널링 트랜잭션 (SIP INVITE 메시지와 같은) 을 취소하는 SIP 타이머 B 또는 SIP 타이머 F (SIP 타이머 B 와 F 는 RFC 3261 에 정의된 표준 SIP 타이머들이고, 이들의 전체적인 내용은 여기에 참조로 포함된다) 와 같은 SIP 타이머 기능을 실행함으로써 결정될 수 있다. 타이머 B 또는 타이머 F 는 임의의 SIP 응답 (심지어 100 트라잉 조차) 이 수신되면 취소되거나 또는 단락된다. 그러나, 만일 타이머 B 가 점화되면 (fires), 게이트웨이 (148) 는 규칙을 위반하는 SIP 트랜잭션을 취소하고 대안적인 루트를 사용하여 상기 요청을 라우팅하려 시도하도록 요구될 수 있다. 본 발명의 적어도 일부 실시예들에 따르면, 만일 게이트웨이 (148) 에 의해 알려진 모든 라우팅 어드레스들이 소모되었으면, SIP 게이트웨이 (148) 는 408 리퀘스트 타임아웃 (Request Timeout) 을 사용하여 본래의 SIP 시그널링 트랜잭션에 응답할 수 있다.
일단 응답이 수신되면 (예를 들어, 실제적인 응답으로서, 또는 소정의 시간 이내에 어떠한 응답도 수신되지 않았음의 결정으로서), 상기 방법은 게이트웨이 (148) 가 발견 모듈 (144) 을 사용하여 상기 응답이 장애 조건에 대응하는지 여부를 결정하도록 계속 진행한다 (단계 316). 상기 응답은 다음의 조건들 중 임의의 조건이 만족되면 네트워크 (104) 또는 시스템 (100) 컴포넌트에 장애가 발생했음을 나타낼 수 있다:
(1) OPTIONS 모니터링 요청이 마감시간까지 실패한다;
(2) 소정 개수 (예를 들어, 5 개) 의 연속적인 SIP 요청 트랜잭션 장애가 트랜잭션 마감시간까지 및/또는 (INVITE 트랜잭션에 대해) SIP 타이머 B 마감시간까지 발생한다; 또는
(3) 임의의 400 또는 500 클래스 응답이 OPTIONS 모니터링 요청에 대해 리트라이-애프터 헤더 (Retry-After header) 를 사용하여 수신된다는 모니터링이 엔드-투-엔드 (즉, Max-Forward > 1) 가 아니라 홉-바이-홉 (즉, Max-Forward=1) 으로 수행되고 있고 플러스 어드레스가 리트라이-애프터 헤더에 명시된 적어도 존속기간 동안 "과부하(overloaded)" 로 마킹되어 있다의 필요충분조건이다.
조건 (3) 에 대하여, 상기 어드레스의 IP 어드레스를 포함하는 기존의 다이얼로그 (dialogs) 는 장애가 발생하지 않는 한 상기 어드레스를 계속 사용해야 하지만, 엔드포인트는 그것이 복구될 때까지 새로운 다이얼로그에 대해 상기 어드레스를 사용하지 않아야 한다. 기존의 다이얼로그가 IP 어드레스 대신 호스트네임을 사용중인 경우들에, 각각의 트랜잭션을 위한 상기 호스트네임의 분석 (resolution) 이 발생할 것이고 복귀된 어드레스는 활용가능한 최고의 우선권 어드레스일 것이다. 만일 호스트네임만이 단일 IP 어드레스에 대해 분석되고, 상기 어드레스가 "과부하" 로서 마킹되면, 요청이 송신되어야 한다. 조건 (3) 의 알짜 효과는 게이트웨이 (148) 의 발견 모듈 (144) 은 3 개의 상태; 활용가능; 서비스 불가; 과부하에 대해 알고 있어야 한다는 것이다. 과부하로서 마킹되어 있는 어드레스들은 다 이얼로그 내에서 후속의 요청들을 계속 수신하지만, 어떤 새로운 다이얼로그도 요청하지 않는다.
만일, OPTIONS 메시지에 대한 응답에 기초하여, 게이트웨이 (148) 의 발견 모듈 (144) 이 장애 상태도 존재하지 않고 시스템 (100) 은 정상적인 동작 상태에 있다라고 결정하면, 상기 발견 모듈 (144) 은 명령들이 응답에 포함되어 있는지 여부를 결정함으로써 계속할 것이다 (단계 320). 발견 모듈 (144) 은 응답에 포함되어 있는 또는 응답에 첨부되어 있는 (즉, 메시지의 헤더 또는 풋터(footer)에서의) 실행가능한 명령들에 대한 응답을 분석할 수 있다. 만일 명령들이 응답에 포함되어 있으면, 상기 명령들이 실행된다 (단계 324). 그 후에, 또는 응답이 명령들을 포함하지 않는 경우에, 발견 모듈 (144) 은 시스템 (100) 의 상태에 대한 그것의 기록을 계속 갱신함으로써, 서버 (136) 와 같은 응답 컴포넌트의 동작을 반영한다 (단계 328). 일단 네트워크의 상태가 갱신되었다면, 상기 방법은 발견 모듈 (144) 이 새로운 메시지를 송신할 시간인지 여부를 결정하도록 계속 진행한다 (단계 332). 보다 구체적으로, 게이트웨이 (148) 는 심장박동 메카니즘으로서 SIP OPTIONS 메시지들을 다른 SIP 서버들 (136) 에게 주기적으로 전송함으로써 상기 다른 SIP 서버들 (136) 이 활성인지 아니지를 결정할 수 있다. 상기 OPTIONS 메시지는 소정의 간격으로 다른 시스템 (100) 컴포넌트들로 송신될 수 있다. 상기 소정 간격의 길이는 SIP 타이머 B 또는 그의 변동물을 실행시킴으로써 결정될 수 있다. 보다 구체적으로, 상기 OPTIONS 모니터링은 게이트웨이 (148) 가 장애 상태를 검출하는지 여부에 의존하여 상이한 간격으로 행해질 수 있다.
본 발명의 적어도 일부 실시예들에 따르면, SIP OPTIONS 메시지에 대한 능동적인 모니터링 간격은 약 60 초 내지 약 100,000 초의 범위 내에서 설정될 수 있으며 후속의 모니터링 시도들 사이에서 설정값의 75% 내지 125% 의 균일한 랜덤 시간을 사용해야 한다. 예를 들어, 능동적인 모니터링 간격이 60 초로 설정되어 있으면, OPTIONS 메시지들의 전송 사이의 실제 간격은 45초와 75초 사이에서 균일하게 분포될 수 있다. 능동적인 모니터링 프로세스에 지터 (jitter) 를 신중하게 도입함으로써 요청들이 비동기화된 상태로 있을 수 있고 그럼으로써 모니터링되는 컴포넌트들 (즉, 서버들 (136)) 에 대한 부하가 시간에 대해 균일하게 분산된다. 일 실시예에 있어서, 능동적인 모니터링 간격은 약 900 초 또는 15 분으로 설정될 수 있다.
본 발명의 적어도 일부 실시예들에 따르면, SIP OPTIONS 메시지에 대한 반응성 모니터링 간격은 약 10 초 내지 약 3,600 초의 범위 내에서 설정할 수 있고 또한 후속의 모니터링 시도들 사이에서 설정값의 75% 내지 125% 의 균일한 랜덤 시간을 가질 수 있다. 반응성 모니터링 (능동적인 모니터링과 반대로) 에 대해 개별적인 시간을 제공함으로써 게이트웨이 (148) 는 모니터링되고 있는 현재의 서비스 불가 컴포넌트가 다시 활용가능하게 되는 때를 보다 빠르게 검출할 수 있다. 일 실시예에 있어서, 반응성 모니터링 간격은 약 120 초로 설정될 수 있다.
본 발명의 예시적인 실시예들을 SIP 타이머 B 의 사용과 관련하여 설명하고 있지만, 본 발명의 원리들로부터 벗어나지 않고, 임의의 값들의 범위는, 상기 값의 균일한 랜덤 시간 변형과 함께 또는 변형없이, 실행될 수 있다. 부가적으로, 모니 터링 간격들은 외부적인 사업 논리 후크에 기초하여 변형될 수 있다. 예를 들어, 모니터링 메카니즘이 대역폭 관리 시스템 내부로 후크되면, 모니터링 시스템은, 네트워크에서 활용가능한 대역폭을 표현하는 어떤 계수에 의해 모니터링 간격을 추가로 조정할 수 있다.
단계 316 을 다시 참조하면, 만일 발견 모듈 (144) 이 응답이 장애 조건에 대응한다고 결정하면, 상기 발견 모듈 (144) 은 시스템 (100) 의 상태에 대한 그것의 기록을 갱신하여 상기 장애를 반영할 것이다 (단계 336). 이러한 컴포넌트 장애 검출의 결과로서, 특히 장애 발생된 컴포넌트가 1차 통신 경로에 상주한다면,게이트웨이 (148) 는 장애 대체하여 장애 대체 상태에서 동작하기 시작할 것이다.
장애 대체 동안 게이트웨이 (148) 의 발견 모듈 (144) 은, 서비스 불가로서 확인된 컴포넌트에게 OPTIONS 메시지를 계속 송신함으로써 시스템 (100) 의 컴포넌트들을 반응적으로 모니터링하기 시작할 것이다 (단계 340). 이러한 반응성 모니터링에 의해 게이트웨이 (148) 의 발견 모듈 (144) 은 컴포넌트가 온라인으로 복귀하는 때를 검출할 수 있다. 반응성 모니터링이 시작될 때, 게이트웨이 (148) 는 컴포넌트를 능동적으로 모니터링하는 것을 멈추고 반응성 모니터링 규칙을 적용하기 시작할 것이다. 보다 구체적으로는, 반응성 모니터링 동안, 게이트웨이 (148) 의 발견 모듈 (144) 은 유지 (maintenance) 테스트를 개시하여 모니터링되는 컴포넌트가 활용가능한지 또는 서비스 불가인지를 결정할 수 있다 (단계 344). 상기 유지 테스트는 능동적인 모니터링 알고리즘과 유사한 모니터링 알고리즘을 사용할 수 있다. 게이트웨이 (148) 의 발견 모듈 (144) 은 장애 복구될 때까지 (즉, 컴포 넌트의 상태가 서비스 불가로부터 활용가능으로 변경될 때까지) 유지 테스트를 계속 적용할 것이다 (단계 348). 유지 테스트 동안, 게이트웨이 (148) 는 임의의 종류의 SIP 요청 (예를 들어, INVITE, SUBSCRIBE, NOTIFY, 등) 을 서비스 불가로서 현재 마킹된 컴포넌트에게 전송할 수 있다. 만일 다음의 조건들 중 하나 이상이 적용되면, 게이트웨이 (148) 의 발견 모듈 (144) 은 컴포넌트를 서비스 불가로서 계속 마킹할 것이다:
(1) INVITE 메시지가 전송된 이후에 SIP 타이머 B 가 점화된다;
(2) 게이트웨이 (148) 가 408 리퀘스트 타임아웃 (Request Timeout) 응답을 수신한다;
(3) SIP 요청 트랜잭션이 타임 아웃된다; 또는
(4) 요청을 송신하려고 시도하는 동시에 네트워크 (104) 또는 전송층 에러가 발생한다.
위에 나열된 조건들 중 어느 것도 유지 테스트 동안 적용되지 않으면, 게이트웨이 (148) 의 발견 모듈 (144) 은 장애가 복구된 것으로 결정할 것이고 상기 방법은 단계 328 으로 계속 진행할 것이다. 본 발명의 적어도 일부 실시예들에 따르면, 모니터링되는 컴포넌트가 503 서비스 언어베일러블 (Service Unavailable) 을 제외한 임의의 SIP 응답을 사용하여 2 개의 연속적인 OPTIONS 요청 시도에 응답할 때까지 반응성 모니터링과 유지 테스트들을 계속 적용할 것이다. 일단 이들 조건이 충족되었다면, 게이트웨이 (148) 는, 컴포넌트가 서비스 상태로 되돌아간 것으로 간주할 수 있고, 능동적인 모니터링 알고리즘으로 되돌아갈 수 있고, 적절한 간 이 망 관리 프로토콜 (Simple Networking Management Protocol; SNMP) 이벤트를 발생시킬 수 있고, 또한, 적용가능하다면, 현재의 활성 컴포넌트를 사용하기 시작한다.
당업자라면 이해할 수 있듯이, 게이트웨이 (148) 가 경로 재할당 정보를 유지할 수 있는 유일한 시스템 (100) 은 아니다. 오히려, 임의이 SIP 네트워크 요소가 경로 재할당 정보 등을 포함하도록 적응될 수 있다. 예를 들어, UA (108) 와 같은 엔드포인트는 또한 어떤 컴포넌트들이 서비스 불가로서 확인되면 사용될 수 있는 통신 경로들을 목록화하는 경로 재할당 테이블을 유지할 수 있다.
이제 도 4 를 참조하여, 본 발명의 적어도 일부 실시예들에 따라 반응성 모니터링 방법을 설명할 것이다. 상기 방법은 게이트웨이 (148) 가 서버 (136) 또는 유사한 시스템 (100) 컴포넌트로부터 요청을 수신할 때 시작된다 (단계 404). 게이트웨이 (148) 는 수신된 요청을 정상적인 방식으로 취급한다 (단계 408). 보다 구체적으로는, 게이트웨이 (148) 는, 송신 컴포넌트가 실제로 서비스 상태에 있는지 여부를 먼저 결정하지 않고, 상기 송신 컴포넌트가 마치 서비스 상태에 있는 것처럼 상기 요청을 처리할 수 있다.
그 후, 게이트웨이 (148) 는 그것의 내부적으로 유지되는 상태 테이블에 기초하여 상기 송신 컴포넌트가 서비스 불가로서 실제로 마킹되어 있는지 여부를 결정한다 (단계 412). 만일 상기 컴포넌트가 서비스 불가로서 마킹되어 있지 않으면, 상기 방법은 종료된다 (단계 424). 그렇지 않으면, 게이트웨이 (148) 는 SIP OPTIONS 메시지들을 상기 컴포넌트에게 송신함으로써 그것의 유지 테스트를 개시할 것이다 (단계 416). 게이트웨이 (148) 는 그 다음으로 상기 컴포넌트의 상태에 대한 그것의 기록을 갱신할 수 있다 (단계 420). 이러한 유지 테스팅과 상태 갱신 프로세스는 상기 컴포넌트가 서비스 상태로 복귀된 것으로 결정될 때까지 반복되며, 이 시점에서 상기 방법이 종료된다 (단계 424).
도 5 를 참조하여, 본 발명의 적어도 일부 실시예들에 따라 장애 대체와 장애 복구 상태 동안 게이트웨이 (148) 의 동작을 설명할 것이다. 이러한 특정한 방법에 있어서, 게이트웨이 (148) 와 연관된 컨트롤러 (140) 는 존속가능한 엔드포인트를 위한 2차 또는 백업 컨트롤러 (140) 에 대응할 수 있다. 상기 방법은 게이트웨이 (148) 가 존속가능한 엔드포인트를 위한 인바운드 콜을 수신할 때 개시된다 (단계 504). 게이트웨이 (148) 는 그 다음으로 1차 시그널링 경로가 사용가능한지 여부를 결정한다 (단계 508). 본 발명의 적어도 일부 실시예들에 따르면, 게이트웨이 (148) 는 이러한 단계 동안 그것의 내부 컴포넌트 상태 테이블을 참조할 수 있다.
만일 1차 시그널링 경로가 동작가능하다라고 결정되면, 게이트웨이 (148) 는 상기 1차 경로를 통해 수신된 신호를 목표 엔드포인트로 라우팅하고 (단계 512), 그 이후에 상기 방법은 종료된다 (단계 536). 만일, 그러나, 게이트웨이 (148) 가 1차 시그널링 경로는 어떤 이유로 (예를 들어, 상기 1차 시그널링 경로 상의 네트워크 (104), 서버 (136), 또는 다른 컴포넌트가 서비스 불가이다) 활용가능하지 않다라고 결정하면, 게이트웨이 (148) 가 2차 시그널링 경로를 통해 상기 신호를 목표 엔드포인트로 전송함으로써 상기 방법은 계속 진행한다 (단계 516). 이러한 특 정한 단계는 상기 2차 시그널링 경로도 또한 활용가능하다라는 가정에 기초하여 수행된다. 만일 게이트웨이 (148) 가 상기 2차 시그널링 경로도 또한 활용가능하지 않다라고 결정하면, 장애 발생된 컴포넌트(들)을 우회하는 다른 백업 시그널링 경로가 선택되고 상기 신호를 상기 엔드포인트로 송신하는데 사용된다.
상기 콜 신호가 2차 시그널링 경로를 통해 목표 엔드포인트로 전송된 이후에, 게이트웨이 (148) 는 305 리다이렉트 응답 (유즈 프록시) 메시지가 상기 엔드포인트로부터 수신되는지 여부를 결정하기 위해 대기한다 (단계 520). 활성-대기 구성에 있어서, 2차 경로를 통해 콜 신호를 수신하는 엔드포인트는, 만일 엔드포인트가 상기 1차 시그널링 경로가 동작가능하다라고 믿는다면, 305 리다이렉트 응답을 전송할 수 있다. 이러한 믿음은 게이트웨이 (148) 에서 보다는 오히려 엔드포인트에서 수행되는 상태 모니터링 동작들에 기초할 것이다. 따라서, 시스템 (100) 에 대한 상이한 전망에 기초하여, 상기 엔드포인트는 시스템 (100) 의 하나 이상의 컴포넌트들에 대해 마킹된 상이한 상태를 가질 수 있다. 따라서, 만일 305 리다이렉트 응답이 2차 경로를 통한 콜 신호의 그것의 리다이렉션에 기초하여 게이트웨이 (148) 에 의해 수신되면, 상기 게이트웨이 (148) 는 1차 시그널링 경로를 통해 상기 콜 신호를 리다이렉트하려고 시도할 것이다 (단계 524). 만일 1차 시그널링 경로가 상기 콜 신호의 성공적인 전송에 의해 활용가능하다라고 결정되면 (단계 528), 상기 방법은 단계 536 에서 종료된다. 만일 상기 콜이 1차 시그널링 경로의 비활용성에 의해 거절되면, 상기 콜은 거절되거나 또는 2차 시그널링 경로를 통해 되돌려 송신될 수 있다 (단계 532). 부가적으로, 게이트웨이 (148) 는 NOTIFY 메 시지를 목표 엔드포인트에게 송신하여 그것으로 하여금 1차 시그널링 경로의 상태에 대한 그것의 관점을 다시 체크하도록 명령할 수 있다. 그 후에, 또는 만일 어떤 리다이렉트 응답 메시지도 상기 엔드포인트로부터 수신되지 않으면, 상기 방법은 종료된다 (단계 536).
도 6 을 참조하여, 본 발명의 적어도 일부 실시예들에 따라 시스템 (100) 상태 결정의 엔드포인트 방법을 설명할 것이다. 초기에, 엔드포인트 (예를 들어, 존속가능한 UA (108)) 는 정상적인 상태에서 동작한다 (단계 604). 상기 엔드포인트는 그 다음으로 그것의 발견 모듈 (116) 의 논리를 사용하여 네트워크 장애가 검출되었는지 여부를 결정한다 (단계 608). 존속가능한 구성에 있어서, 엔드포인트가 장애 대체 또는 장애 복구할 때를 검출할 수 있는 것은 유용하다. 본 발명의 적어도 일부 실시예들에 따르면, 엔드포인트에 의해 사용되는 발견 모듈 (116) 논리는, 다음의 이벤트들 중 하나 이상이 발생하면 네트워크 장애가 발생했다라고 결정할 것이다:
(1) 엔드포인트가 등록하려고 시도하고 있는 모든 컨트롤러 (140) (예를 들어, 상기 엔드포인트의 1차 및 2차 컨트롤러(140)) 로부터 상기 엔드포인트가 심장박동으로서의 SIP REGISTER 메시지에 대한 응답을 수신하지 못한다;
(2) 상기 엔드포인트가 SIP INVITE 메시지에 대한 응답을 수신하지 못하며, 여기에서 상기 SIP INVITE 메시지는 아웃바운드 콜을 세트업하려고 시도하는 정상적인 프로세스에서 전송될 수 있다;
(3) 상기 엔드포인트가 새로운 SIP 다이얼로그 또는 미드-다이얼로그 변경의 정상적인 생성을 위해 송신된 임의의 SIP 시그널링 메시지에 대한 응답을 수신하지 못한다; 또는
(4) 상기 엔드포인트가 그것의 구성 서버(들)로부터의 중요한 요청 (이 요청은 TCP/IP, HTTP, XML, 또는 SOAP 와 같은 상이한 종류의 프로토콜들에 의해 전달될 수 있다) 에 대한 성공적인 응답을 수신하지 못하거나, 또는 장애와 관련된 데이터를 검색하는데 사용되는 데이터 서비스와 같은 임의의 다른 대역외 비-통신 서비스 (out of band non-communication service) 를 수신하지 못한다.
만일 엔드포인트가 장애 자체를 검출하지 못하면, 상기 방법은 엔드포인트가 장애를 통지받았는지 여부를 결정함으로써 계속 진행한다 (단계 612). 게이트웨이 (148), 서버 (136), 또는 시스템 (100) 의 상태를 검출할 수 있는 시스템 (100) 내의 일부 다른 컴포넌트로부터 전송되는 SIP NOTIFY 메시지의 형태로 통지가 엔드포인트에서 수신될 수 있다. 상기 SIP NOTIFY 메시지는 엔드포인트가 장애 대체하고, 리부팅하고, 또는 그것의 컨트롤러 (140) 모두를 사용하여 그것의 등록을 재생하고/새롭게 해야 한다 (그럼으로써 엔드포인트의 논리를 우회한다) 는 것을 나타낼 수 있다. 만일 어떤 통지도 수신되지 않으면, 상기 방법은 단계 604 로 되돌아간다.
그러나, 만일 엔드포인트에게 시스템 (100) 의 장애가 (예를 들어, SIP NOTIFY 메시지의 수신을 통해) 통지되면, 엔드포인트는 장애 통지가 올바른지 여부를 결정한다 (단계 616). 보다 구체적으로, 엔드포인트는 그것의 내부적으로 유지되는 컨트롤러들의 목록 (120) 을 체크하여 컨트롤러들 (140) 중 어떤 컨트롤러가 비활성으로서 또는 서비스 불가로서 마킹되어 있는지를 결정할 수 있다. 대부분의 경우 상기 엔드포인트는 NOTIFY 메시지의 명령을 단순히 따를 것이다. 어떤 환경하에서는, 그러나, 상기 엔드포인트는 시스템 (100) 에 대한 그의 관점이 올바른 관점임을 결정할 수 있고 또한 리다이렉트 응답 메시지를 사용하여 상기 NOTIFY 메시지에 응답할 수 있다 (단계 620). 이러한 리다이렉트 응답에 의해 상기 NOTIFY 메시지의 개시 컴포넌트는 시스템 (100) 에 대한 그의 관점을 체크할 수 있다. 상기 방법은 그 다음으로 단계 604 로 돌아간다.
만일 엔드포인트가 장애 통지가 올바르다라고 결정하거나 또는 NOTIFY 메시지의 명령을 따르기로 결정한다면, 상기 엔드포인트는 상기 NOTIFY 메시지가 명령을 함유했는지 여부를 결정한다 (단계 624). 상기 명령은 모든 컨트롤러 (140) 를 재등록하려는 시도와 같은 상대적으로 일반적인 명령일 수 있다. 대안적으로, 상기 명령은 엔드포인트가 특정한 컨트롤러 (140) 를 재등록하려고 시도할 것을 요구하는 명령 세트를 구비할 수 있다. 상기 엔드포인트는 긴 간격으로 또는 짧은 간격으로 컨트롤러 (140) 를 재생하거나 또는 등록하려고 시도할 수 있다. 재생/등록 간격의 길이는 상기 명령 세트 내의 명령 또는 다른 요인들에 의존하여 변화할 수 있다. 상기 명령은 또한 상기 NOTIFY 메시지를 전송했던 컴포넌트에 의해 인식되는 전체 시스템 (100) 에 대한 건강 정보도 함유할 수 있다. 만일 메시지가 명령을 함유하면, 엔드포인트는 상기 명령을 실행할 것이다 (단계 628).
엔드포인트에 의해 명령이 실행된 이후에 또는 메시지가 명령을 함유하지 않는 경우에, 상기 방법은 상기 엔드포인트가 백업 상태에서 동작을 시작하도록 장애 대체를 실행하게 함으로써 계속 진행한다 (단계 632). 이 단계는 또한 엔드포인트가 시스템 (100) 장애 자체를 검출했던 경우에도 수행된다. 장애 대체 모드에서으 동작 동안, 엔드포인트는 그것의 백업 컨트롤러 (140) 를 사용하고 및/또는 2차 시그널링 경로를 사용할 것이다. 장애 대체 모드에서의 동작에 부가하여, 엔드포인트는 시스템 (100) 장애 복구를 모니터링할 수 있다 (단계 636). 발견 모듈 (116) 이 그것의 1차 컨트롤러 (140) 가 활성 컨트롤러로서 그의 역할을 재개하는데 활용가능다는 것을 검출하면, 엔드포인트는 장애 복구가 발생했음을 결정할 것이다. 엔드포인트에 등록되어 있는 모든 컨트롤러 (140) 에게, 상기 컨트롤러 (140) 가 임의의 주어진 시간에서 활성인지 여부와 독립적으로, 주기적으로 송신되고 있는 심장박동/SIP REGISTER 메시지에 의해 내부의 엔드포인트 논리는 지배될 수 있다.
만일 엔드포인트가 그 자체로 장애 복구를 검출하지 못하면, 상기 방법은, 엔드포인트가 다른 컴포넌트에 의해 장애 복구가 통지되었는지 여부를 (예를 들어, 게이트웨이 (148), 서버 (136), 등으로부터 NOTIFY 메시지를 수신함으로써) 결정함으로써 계속 진행한다 (단계 640). 만일 엔드포인트에게 장애 복구가 통지되지 않으면, 상기 방법은 단계 632 로 돌아간다. 그러나, 만일 엔드포인트가 장애 복구를 나타내는 NOTIFY 메시지를 수신하면, 상기 방법은, NOTIFY 메시지가 엔드포인트에 의한 실행을 위한 명령을 함유했는지 여부를 결정함으로써 계속 진행한다 (단계 644). 만일 명령이 상기 NOTIFY 메시지에 포함되었다면, 상기 명령은 엔드포인트에 의해 실행된다 (단계 648). 명령의 실행 이후에, 만일 어떤 명령도 없었다면, 또는 장애 복구가 엔드포인트 자체에 의해 검출되었다면, 상기 방법은 단계 604 로 돌아간다.
본 발명의 적어도 일부 실시예들에 따르면, 발견 모듈 (116) 은, 1차 컨트롤러 (140) 로부터 2차 컨트롤러 (140) 로의 장애 대체 또는 장애 복구가 자동화된 엔드포인트 검출에 의해 트리거링될 것인지 여부를 또는 수동으로 (즉, SIP NOTIFY 메시지의 수신에 의해) 트리거링될 뿐인지 여부를 지배하는 설정가능한 파라미터를 구비할 수 있다. 발견 모듈 (116) 에 의해 사용되는 심장박동 모니터링 메카니즘은 엔드포인트가 장애 상태를 검출하는지 여부에 의존하는 상이한 간격으로 행해질 수 있다.
도 7 을 참조하여, 본 발명의 적어도 일부 실시예들에 따라 상태 통지 방법을 설명할 것이다. 상기 방법은, UA (108) 와 같은 엔드포인트에게 시스템 (100) 에 대해 통지해야 하는지 여부를 결정하는 시스템 (100) 컴포넌트 (예를 들어, 서버 (136), 게이트웨이 (148), 또는 발견 모듈 (144) 을 구비하는 임의의 다른 디바이스) 에 의해 시작한다 (단계 704). 통상적으로, 상기 컴포넌트는 엔드포인트에게 NOTIFY 메시지를 송신하여, 상기 엔드포인트에게 시스템 (100) 상태의 일부 양태가 변경되었음을 통지할 것이다. 예를 들어, 상기 NOTIFY 메시지는 엔드포인트에게 시스템의 어떤 컴포넌트가 서비스 불가로서 등록되었음을 통지할 수 있다. 대안적으로, 상기 NOTIFY 메시지는 엔드포인트에게 컴포넌트의 건강을 송신하는 것을 통지할 수 있다.
상기 방법은, 통지 메시지가 엔드포인트에게 전송되어야 한다라고 결정될 때까지 단계 704 에 머무른다. 결정을 행한 이후에, 상기 방법은 상기 컴포넌트가 메시지 (예를 들어, NOTIFY 메시지) 를 생성함으로써 계속 진행한다 (단계 708). 이해할 수 있듯이, 그러나, 임의의 다른 종류의 SIP 또는 넌-SIP 메시지가 상기 컴포넌트에 의해 사용되어 엔드포인트에게 통지될 수 있다. 상기 통지에 의해 상기 컴포넌트는 시스템 (100) 장애 상태 또는 복구 상태에서 장애 대체 또는 장애 복구하도록 엔드포인트를 트리거링할 수 있다. 엔드포인트는 컨트롤러들의 순서화된 목록 (128) 을 유지할 수 있고 또한 엔드포인트는 이들 모든 컨트롤러들에 대해 활성 등록을 유지하는 능력을 갖고 있기 때문에, 상기 시스템 (100) 컴포넌트는 그것이 시스템 (100) 장애 상태를 검출하면 활동을 취하도록 엔드포인트를 트리거링할 수 있다. 상기 활동들은 표준 통지 메시지 (예를 들어, 표준 SIP IETF 준수 NOTIFY 메시지) 를 전송함으로써, 또는 예를 들어, 특정한 명령 세트를 함유하는 확장된 메시지를 전송함으로써 트리거링될 수 있다. 따라서, 상기 방법은, 통지 메시지가 그 내부에 명령을 포함해야 하는지를 상기 컴포넌트가 결정함으로써 계속 진행한다 (단계 712).
만일 특정한 명령이 필요하다라고 결정되면, 상기 컴포넌트는 엔드포인트에게 컨트롤러들의 순서화된 목록 (128) 의 모든 컨트롤러들 (140) 을 재등록하도록 말할 수 있고 일반적인 통지 메시지를 엔드포인트에게 송신할 수 있다 (단계 720). 따라서, 그러한 통지를 수신하는 임의의 엔드포인트는 그의 목록 상의 모든 컨트롤러 (140) 를 재등록하려고 시도할 것이다. 이렇게 시도된 재등록의 성공에 기초하여, 엔드포인트는 어느 컨트롤러 (140) 가 프로세싱 SIP 트랜잭션 (예를 들어, 인바운드 및 아웃바운드 SIP 콜들을 지원하는) 에 대해 활용가능한지를 유도할 수 있 을 것이다. 엔드포인트는 그 다음으로 컨트롤러들의 순서화된 목록 (128) 상의 최고의 우선권 컨트롤러 (140) 를 그것의 1차 컨트롤러로서 사용하여 이러한 자체-결정된 정보에 따라 행동할 수 있다. 이런 특정한 메카니즘은 표준 SIP IETF 준수 NOTIFY 메시지를 사용할 수 있다. 상기 메시지는 NOTIFY 파라미터 "event"="probation" 을 갖는 NOTIFY 메시지에 대해 SIP 표준을 따를 수 있다. 그러한 NOTIFY 메시지의 일례가 아래에 제공되어 있다:
<registration aor="sip:joe@example.com"id="a7"state="active">
<contact id="76"state="active"event="probation">
expires="0"
q="0.8"retry-after="0">
만일, 그러나, 상기 컴포넌트가 특정한 명령이 통지 메시지에 포함되어야 한다라고 결정하면, 상기 컴포넌트는 상기 메시지를 엔드포인트에게 송신하기 전에 (단계 720) 상기 메시지에게 하나 이상의 명령 세트를 부가할 수 있다 (단계 716). 명령을 통지 메시지에 포함시킴으로써, 상기 컴포넌트는 엔드포인트의 컨트롤러 (140) 목록 (120) 상의 특정한 컨트롤러 (140) 를 사용하여 시작하도록 엔드포인트에게 말할 수 있다. 이런 시나리오에 있어서, 엔드포인트는, 그 자체의 지능 보다는 오히려, 어느 컨트롤러 (140) 가 사용되어야 하는지를 말하기 위해 상기 컴포넌트에 의존한다. 이런 특정한 메카니즘은 확장된 익스텐션을 갖는 표준 SIP NOTIFY 메시지를 사용할 수 있다. 상기 NOTIFY 메시지는 일반적으로 NOTIFY 메시지들을 위한 SIP 표준을 따를 것이다; 부가적으로, 엔드포인트가 장애 대체 또는 장애 복구를 해야 한다면 <eventName>changeServer</eventName> 과 같은 이벤트 명칭을 갖는 예시적인 프로파일 이벤트 패키지 포맷을 사용할 수 있다. 상기 메시지는 또한 타임스탬프 및 엔드포인트가 장애 대체 또는 장애 복구를 해야 하는 특정한 컨트롤러 (140) 를 포함하는 서버 (136) 의 어드레스를 포함할 수 있다. 확장된 SIP NOTIFY 메시지의 일례가 XML 명령 세트와 함께 아래에 제공되어 있다:
NOTIFY sip:1111@10.0.75.2 SIP/2.0
Call-ID: cid-1@10.0.75.2
CSeq: 2 NOTIFY
From: <sip:1111@atler.com>; tag=random2
To: <sip: 1111@atler.com>; tag=random1
Via: SIP/2.0/UDP 10.0.0.100;branch-id=z9hG4bk-random-the primary call
controller
SIP/2.0/TLS 10.0.0.200;branch-id=z9hG4bK-random-cm1
Content-Length: 22
Content-Type: application/profile+xml
Contact: <sip:1111@10.0.0.200;transport=tls/
Max-Forwards: 69
User-Agent: Communication Manager v1.0
Event: ccs-profile
Subscription-State: active;expires=3600
Record-Route: <sip:10.0.0.100:5060;lr;transport=UDP>
<?xml version="1.0">
<event>
<eventName>changeServer</eventName>
<eventTime>{time stamp}</eventTime>
<eventData>{ip address}</eventData>
</event>
당업자라면 이해할 수 있듯이, 상기 명령은 XML 명령 세트를 제외하고 많은 상이한 형태를 취할 수 있다. 예를 들어, 상기 명령은 엔드포인트의 메모리 (112) 에 이미 저장된 알고리즘 또는 애플리케이션의 실행에 대응하고 실행을 초래하는 소정의 트리거를 구비할 수 있다. 부가적으로, 위의 예시적인 NOTIFY 메시지는 그것의 명령 세트를 메시지의 몸체에 포함했지만, 상기 명령 세트는 또한 통지 메시지의 헤더 또는 트레일러에 위치될 수 있다. 이것은 사용되는 통지 메시지의 종류에 의존하여 변화할 수 있다. 상기 명령은, 엔드포인트에게 특정한 업무를 수행시키는 트리거 뿐만 아니라 시스템 (100) 의 나머지에 대한 그것의 상태 정보 뿐만 아니라 송신 컴포넌트에 대한 건강 정보의 전달과 같은 다수의 상이한 활동을 달성하기 위해 사용될 수 있다.
상술된 흐름도들은 특정한 이벤트의 순서와 관련하여 설명되었지만, 이러한 순서에 대한 변경은 본 발명의 동작에 물질적으로 영향을 주지 않고 행해질 수 있음에 유의해야 한다. 부가적으로, 이벤트들의 정확한 순서는 예시적인 실시예들에서 설명된 대로 발생될 필요는 없다. 여기에 도시된 예시적인 기술들은 구체적으로 도시된 실시예들로 한정되지 않고 다른 예시적인 실시예들과 함께 사용될 수 있고 각각의 설명된 피처는 개별적으로 그리고 분리하여 청구할 수 있다.
본 발명의 시스템들, 방법들, 및 프로토콜들은, 설명된 통신 장비, 프로그램된 마이크로프로세서 또는 마이크로컨트롤러 및 주변 집적회로 소자(들), ASIC 또는 다른 집적회로, 디지털 신호 프로세서, 하드-와이어드 일렉트로닉(hard-wired electronic) 또는 이산 소자 회로와 같은 논리 회로, PLD, PLA, FPGA, PAL 과 같은 프로그램가능 논리 디바이스, 서버와 같은 통신 디바이스, 개인용 컴퓨터, 임의의 필적할만한 수단, 등에 부가하여 또는 대신하여 특수 목적 컴퓨터 상에서 구현될 수 있다. 일반적으로, 상태 머신 (state machine) 을 구현할 수 있고 차례로 여기에 예시된 방법론을 구현할 수 있는 임의의 디바이스는 본 발명에 따른 다양한 통신 방법들, 프로토콜들 및 기술들을 구현하는데 사용될 수 있다.
게다가, 개시된 방법들은, 다양한 컴퓨터 또는 워크스테이션 플랫폼에서 사용될 수 있는 포터블 소스 코드를 제공하는 절차형 또는 객체-지향형 소프트웨어 개발 환경을 사용하여 소프트웨어로 용이하게 구현될 수 있다. 대안적으로, 개시된 시스템은 표준 논리 회로 또는 VLSI 설계를 사용하여 하드웨어로 부분적으로 또는 완전하게 구현될 수 있다. 본 발명에 따른 시스템들을 구현하는데 소프트웨어 또는 하드웨어를 사용할지 여부는, 시스템의 속도 및/또는 효율 요건, 특정한 기능, 및 사용되는 특정한 소프트웨어 또는 하드웨어 시스템 또는 마이크로프로세서 또는 마이크로컴퓨터 시스템에 의존한다. 여기에 예시된 분석 시스템들, 방법들, 및 프로토콜들은, 통신 분야의 일반적인 기본 지식을 갖고 여기에 제공되는 기능적인 설명으로부터 적용가능한 분야에서의 당업자에 의해 임의의 주지된 또는 나중에 개발된 시스템들 또는 구조, 디바이스들 및/또는 소프트웨어를 사용하여 하드웨어로 및/또는 소프트웨어로 용이하게 구현될 수 있다.
또한, 개시된 방법들은, 저장매체에 저장되고, 프로그램된 범용 컴퓨터에서 컨트롤러와 메모리의 협조로 실행될 수 있고, 특수 목적 컴퓨터, 마이크로프로세서, 등에서 실행될 수 있는 소프트웨어로 용이하게 구현될 수 있다. 이들 실시예에서, 본 발명의 시스템들과 방법들은, 애플렛, JAVA® 또는 CGI 스크립트와 같은 개인용 컴퓨터에 내장되는 프로그램으로서, 서버 또는 컴퓨터 워크스테이션에 상주하는 자원으로서, 전용 통신 시스템 또는 시스템 컴포넌트에 내장되는 루틴으로서, 등으로 구현될 수 있다. 상기 시스템은 또한, 시스템 및/또는 방법을, 통신 디바이스 또는 통신 시스템의 하드웨어 및 소프트웨어 시스템과 같은, 소프트웨어 및/또는 하드웨어 시스템으로 물리적으로 통합함으로써 구현될 수 있다.
그러므로 본 발명에 따르면, SIP 존속가능한 네트워크와 네트워크 컴포넌트들을 유지하기 위한 시스템들, 장치들, 및 방법들이 제공되었음은 명백하다. 본 발명은 많은 실시예들과 관련하여 설명되었지만, 당업계의 당업자에게 많은 대안예, 변형예 및 변동예들이 가능함은 명백하다. 따라서, 본 발명의 정신과 범위 내 에 속하는 그러한 모든 대안예, 변형예, 등가물 및 변동들을 포함하도록 의도되어 있다.
도 1 은 본 발명의 적어도 일부 실시예들에 따른 통신 시스템을 도시하는 블록도이고;
도 2 는 본 발명의 적어도 일부 실시예들에 따른 SIP 컨트롤러 발견 및 등록 방법을 도시하는 흐름도이고;
도 3 은 본 발명의 적어도 일부 실시예들에 따른 상태 결정 방법을 도시하는 흐름도이고;
도 4 는 본 발명의 적어도 일부 실시예들에 따른 반응성 상태 결정 방법을 도시하는 흐름도이고;
도 5 는 본 발명의 적어도 일부 실시예들에 따른 게이트웨이 동작 방법을 도시하는 흐름도이고;
도 6 은 본 발명의 적어도 일부 실시예들에 따른 엔드포인트를 위한 상태 결정 방법을 도시하는 흐름도이고; 또한
도 7 은 본 발명의 적어도 일부 실시예들에 따른 상태 통지 방법을 도시하는 흐름도이다.
도면의 주요 부분에 대한 부호의 설명
100 : 통신 시스템 104 : 제 1 네트워크
108 : 사용자 에이전트 112 : 메모리
116 : 발견 모듈 120 : 컨트롤러들의 목록

Claims (10)

  1. 세션 개시 프로토콜(Session Initiation Protocol; SIP) 활성화된 통신 디바이스에서, 제 1 컨트롤러와 관련되는 컨트롤러 정보를 수신하는 단계와,
    상기 통신 디바이스에서, 제 2 컨트롤러와 관련되는 컨트롤러 정보를 수신하는 단계와,
    상기 제 1 컨트롤러 및 상기 제 2 컨트롤러 양자와 관련되는 상기 컨트롤러 정보를 분석하는 단계와,
    상기 분석하는 단계에 기초하여, 상기 통신 디바이스가 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러 중 적어도 하나를 자신의 컨트롤러로서 선택하기 위해 발견 모듈을 사용하는 단계를 포함하되,
    상기 통신 디바이스는, 상기 통신 디바이스가 (i) 상기 제 2 컨트롤러에 등록 중이거나 (ii) 상기 제 2 컨트롤러에 등록된 것 중 하나인 동안, 상기 제 1 컨트롤러에 등록하고,
    상기 통신 디바이스는, 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러 양자에 SIP REGISTER 메시지를 전송하고 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러로부터 상기 SIP REGISTER 메시지의 수신의 확인을 수신함으로써, 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러에 등록하는
    방법.
  2. 세션 개시 프로토콜(SIP) 활성화된 통신 디바이스로서,
    메모리 및 상기 메모리에 저장된 루틴들을 실행하는 프로세서를 포함하되,
    상기 메모리는,
    제 1 컨트롤러 및 제 2 컨트롤러와 관련되는 컨트롤러 정보를 요청하여 수신하고, 수신된 컨트롤러 정보에 기초하여 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러 중 적어도 하나를 상기 통신 디바이스의 컨트롤러로서 선택하도록 동작할 수 있는 발견 모듈을 포함하고,
    상기 발견 모듈은 또한, 상기 통신 디바이스가 (i) 상기 제 2 컨트롤러에 등록 중이거나 (ii) 상기 제 2 컨트롤러에 등록된 것 중 하나인 동안 상기 통신 디바이스를 상기 제 1 컨트롤러에 등록하도록 동작할 수 있으며,
    상기 통신 디바이스는 SIP 등록 및 네트워크 접속 프로세스(a SIP registration and network attachment process)를 수행함으로써 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러에 등록하는
    통신 디바이스.
  3. 제 2 항에 있어서,
    상기 제 1 컨트롤러 및 상기 제 2 컨트롤러와 관련되는 컨트롤러 정보는 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러의 속성을 각각 포함하고,
    상기 발견 모듈은 또한, 상기 제 1 컨트롤러의 속성과 상기 제 2 컨트롤러의 속성을 비교하고, 상기 제 1 컨트롤러의 속성이 상기 제 2 컨트롤러의 속성보다 상기 통신 디바이스를 제어하는 데 적합하다고 결정하고, 상기 제 1 컨트롤러를 상기 통신 디바이스의 1차 컨트롤러로서 선택하며, 상기 제 2 컨트롤러를 상기 통신 디바이스의 2차 컨트롤러로서 선택하도록 동작할 수 있는
    통신 디바이스.
  4. 삭제
  5. 제 3 항에 있어서,
    상기 발견 모듈은 또한 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러에 동시에 등록하도록 동작할 수 있는
    통신 디바이스.
  6. 제 5 항에 있어서,
    상기 제 1 컨트롤러의 속성은 상기 제 2 컨트롤러의 속성과 상이한
    통신 디바이스.
  7. 제 6 항에 있어서,
    상기 제 1 컨트롤러는 상기 통신 디바이스에 확장된 SIP 익스텐션(extension)을 제공하고 상기 제 2 컨트롤러는 상기 통신 디바이스에 표준 SIP 익스텐션을 제공하는
    통신 디바이스.
  8. 제 5 항에 있어서,
    상기 통신 디바이스는 활성-활성(active-active) 구성과 활성-대기(active-standby) 구성 중 하나의 구성에서 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러에 등록되고,
    상기 통신 디바이스는 상기 활성-활성 구성에서 인바운드 콜 및 아웃바운드 콜을 처리하기 위해 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러 양자를 사용하며,
    상기 통신 디바이스는 상기 활성-대기 구성에서 인바운드 콜 및 아웃바운드 콜을 처리하기 위해 상기 1차 컨트롤러로서 선택된 컨트롤러를 사용하고, 상기 2차 컨트롤러로부터 수신되는 인바운드 콜이 상기 1차 컨트롤러를 통해 방향 변경되는 것을 요청하는
    통신 디바이스.
  9. 제 2 항 또는 제 3 항에 있어서,
    상기 발견 모듈은, 적어도 상기 제 1 컨트롤러 및 상기 제 2 컨트롤러를 포함하는 컨트롤러 목록을 생성하고, 상기 제 1 컨트롤러에 대한 컨트롤러 정보와 상기 제 2 컨트롤러에 대한 컨트롤러 정보를 비교하며, 상기 컨트롤러 정보의 비교에 기초하여 상기 컨트롤러 목록을 순서화하는
    통신 디바이스.
  10. 실행되는 경우, 제 1 항의 방법을 수행하도록 동작할 수 있는 프로세서 실행가능 명령어를 포함하는
    비일시적 컴퓨터 판독가능 매체.
KR1020080134891A 2008-03-26 2008-12-26 세션 개시 프로토콜(sip) 존속가능 네트워크 유지 방법,세션 개시 프로토콜(sip) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체 KR101387287B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/056,246 US8107361B2 (en) 2008-03-26 2008-03-26 Simultaneous active registration in a SIP survivable network configuration
US12/056,246 2008-03-26

Publications (2)

Publication Number Publication Date
KR20090102621A KR20090102621A (ko) 2009-09-30
KR101387287B1 true KR101387287B1 (ko) 2014-04-28

Family

ID=41037642

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080134891A KR101387287B1 (ko) 2008-03-26 2008-12-26 세션 개시 프로토콜(sip) 존속가능 네트워크 유지 방법,세션 개시 프로토콜(sip) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체

Country Status (7)

Country Link
US (1) US8107361B2 (ko)
EP (1) EP2111015B1 (ko)
JP (1) JP5008647B2 (ko)
KR (1) KR101387287B1 (ko)
CN (1) CN101557393B (ko)
BR (1) BRPI0903066B1 (ko)
MX (1) MX2008015826A (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527656B2 (en) * 2008-03-26 2013-09-03 Avaya Inc. Registering an endpoint with a sliding window of controllers in a list of controllers of a survivable network
EP2317699A4 (en) * 2008-08-15 2012-07-11 Alcatel Lucent METHOD FOR IMPLEMENTING A HEARTBEAT MECHANISM IN A COMMUNICATION NETWORK AND DEVICE THEREFOR
US8281039B2 (en) * 2008-09-04 2012-10-02 University Of Ottawa Reconfigurable multimedia collaboration system
JP4920052B2 (ja) * 2009-03-11 2012-04-18 株式会社日立製作所 通信システム及びサーバ
WO2011043769A1 (en) * 2009-10-07 2011-04-14 Hewlett-Packard Development Company, L.P. Notification protocol based endpoint caching of host memory
WO2011046222A1 (en) 2009-10-16 2011-04-21 Ricoh Company, Ltd. Electrochromic compound, electrochromic composition, and display element
US8306055B2 (en) * 2009-12-24 2012-11-06 Intel Corporation Method and system to support wireless multicast transmission
US20110302247A1 (en) * 2010-06-02 2011-12-08 Microsoft Corporation Contextual information dependent modality selection
US8315165B2 (en) 2010-06-07 2012-11-20 Microsoft Corporation Survivable and resilient real time communication architecture
US9806965B2 (en) * 2010-09-29 2017-10-31 Avaya Inc. Automatic user redundancy determination
US9154529B2 (en) * 2011-09-29 2015-10-06 Genesys Telecommunications Laboratories, Inc. System to deploy a disaster-proof geographically-distributed call center
US9026836B2 (en) 2012-05-21 2015-05-05 Avaya Inc. Call restoration in response to application failure
CN103825868B (zh) * 2012-11-19 2017-12-22 华为技术有限公司 一种本地语音逃生的方法、本地网关及系统
WO2014100897A1 (en) * 2012-12-31 2014-07-03 Aastra Technologies Limited Automatic configuration of an endpoint
US9426833B2 (en) * 2013-03-01 2016-08-23 T-Mobile Usa, Inc. Systems and methods for emergency call route failover
CN105409182B (zh) * 2013-04-05 2018-11-09 瑞典爱立信有限公司 定时器的处理
US9954905B2 (en) 2014-01-14 2018-04-24 Avaya Inc. Intelligent/selective coverage mechanism
CN103812728B (zh) * 2014-02-13 2018-06-19 普联技术有限公司 一种网络诊断方法、系统及路由器
US10277778B2 (en) 2014-06-24 2019-04-30 Ec Data Systems Inc. Audit logging for a secure, scalable and flexible internet fax architecture
US10305945B2 (en) 2014-11-10 2019-05-28 The Mitre Corporation Providing survivable calling and conferencing
US9935857B1 (en) * 2015-12-17 2018-04-03 8X8, Inc. Analysis of system conditions from endpoint status information
US10146525B2 (en) * 2016-06-02 2018-12-04 Cisco Technology, Inc. Supporting hitless upgrade of call processing nodes in cloud-hosted telephony system
CN112940825B (zh) * 2021-02-06 2022-05-13 中国科学院兰州化学物理研究所 磷化硅量子点作为润滑油添加剂的应用、一种润滑油及其制备方法和应用
US11575572B2 (en) * 2021-04-13 2023-02-07 Juniper Networks, Inc. Network controller horizontal scaling for network device configuration sessions management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060182255A1 (en) * 2005-02-11 2006-08-17 Cisco Technology, Inc. Resilient regisration with a call manager
US20070143449A1 (en) * 2005-10-14 2007-06-21 Julian Wray West Discovering network services

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490610B1 (en) * 1997-05-30 2002-12-03 Oracle Corporation Automatic failover for clients accessing a resource through a server
US6145089A (en) * 1997-11-10 2000-11-07 Legato Systems, Inc. Server fail-over system
JP2000156691A (ja) 1998-11-20 2000-06-06 Pfu Ltd サーバ決定装置および記録媒体
US6987756B1 (en) * 1999-10-07 2006-01-17 Nortel Networks Limited Multi-mode endpoint in a communication network system and methods thereof
US6992974B1 (en) * 2000-10-10 2006-01-31 3Com Corporation System and method for providing fault tolerance in a network telephony system
US6961567B1 (en) * 2000-12-07 2005-11-01 Palm, Inc. Generic activation and registration framework for wireless devices
US7333505B2 (en) * 2000-12-18 2008-02-19 Nortel Networks Limited Transaction management for interworking between disparate networks
US20040240642A1 (en) * 2001-06-18 2004-12-02 Crandell Jeffrey L. Apparatus, systems and methods for managing incoming and outgoing communication
US20030174648A1 (en) * 2001-10-17 2003-09-18 Mea Wang Content delivery network by-pass system
JP3883452B2 (ja) * 2002-03-04 2007-02-21 富士通株式会社 通信システム
US6944788B2 (en) * 2002-03-12 2005-09-13 Sun Microsystems, Inc. System and method for enabling failover for an application server cluster
US7298708B2 (en) * 2002-08-28 2007-11-20 Mitel Knowledge Corporation IP device registration
GB0230301D0 (en) * 2002-12-30 2003-02-05 Nokia Corp Streaming media
JP2005057462A (ja) 2003-08-04 2005-03-03 Nippon Telegr & Teleph Corp <Ntt> 着信転送ネットワークサービスシステムと着信経路情報設定システムおよびプログラム
EP1509018A1 (de) * 2003-08-18 2005-02-23 Siemens Aktiengesellschaft Verfahren, Software-Produkt und Vorrichtungen zur Signalisierung der Modifikation von Bearerverbindungen mittels SIP Protokoll
US20050060411A1 (en) * 2003-09-16 2005-03-17 Stephane Coulombe System and method for adaptation of peer-to-peer multimedia sessions
KR100840365B1 (ko) * 2004-07-30 2008-06-20 삼성전자주식회사 다중 피.오.씨 세션의 세션 결합 방법 및 그 시스템
EP1776825B1 (en) * 2004-08-13 2012-12-19 Citrix Systems, Inc. A method for maintaining transaction integrity across multiple remote access servers
US8055778B2 (en) * 2004-09-30 2011-11-08 Siemens Enterprise Communications, Inc. SIP user agent with simultaneous multiple registrations
KR100623482B1 (ko) * 2004-12-14 2006-09-14 한국전자통신연구원 세션 이동 방법
US8194640B2 (en) * 2004-12-31 2012-06-05 Genband Us Llc Voice over IP (VoIP) network infrastructure components and method
JP2006237950A (ja) 2005-02-24 2006-09-07 Saxa Inc Ip電話端末およびプログラム
US20060235981A1 (en) * 2005-04-19 2006-10-19 Nokia Corporation Providing a second service to a group of users using a first service
US7760708B2 (en) * 2005-07-08 2010-07-20 Tekelec Methods, systems, and computer program products for triggering SIP nodes to include SS7 routing information in response messages including information requested by SS7 nodes
US20070041327A1 (en) * 2005-08-16 2007-02-22 Cisco Technology, Inc. Multicast heartbeat signaling
US8125888B2 (en) * 2005-08-23 2012-02-28 Multi-Tech Systems, Inc. Session initiation protocol survivable server
US8565070B2 (en) * 2005-11-23 2013-10-22 Cisco Technology, Inc. System and method for active geographic redundancy
US20070266162A1 (en) * 2005-12-07 2007-11-15 Microsoft Corporation Session initiation protocol redirection for process recycling
US8233384B2 (en) * 2005-12-21 2012-07-31 Rockstar Bidco, LP Geographic redundancy in communication networks
CN1992711B (zh) * 2005-12-27 2011-05-11 中兴通讯股份有限公司 一种sip终端对服务器进行链路检测的方法
CN100508539C (zh) * 2006-01-09 2009-07-01 华为技术有限公司 会话边界控制器双归属的实现方法及系统
US7702093B2 (en) * 2006-02-08 2010-04-20 Nvoq Incorporated Systems and methods to redirect audio between callers and voice applications
JP2007243825A (ja) 2006-03-10 2007-09-20 Yaskawa Electric Corp プログラマブルコントローラを適用した制御装置
US20080031226A1 (en) * 2006-08-01 2008-02-07 Boro Networks Inc. Scalable, high-availability network
US9137287B2 (en) * 2006-08-28 2015-09-15 Avaya Inc. High availability for voice enabled applications
US8064342B2 (en) * 2006-10-27 2011-11-22 Verizon Patent And Licensing Inc. Load balancing session initiation protocol (SIP) servers
US8406123B2 (en) * 2006-12-11 2013-03-26 International Business Machines Corporation Sip presence server failover
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
US8576833B2 (en) * 2006-12-15 2013-11-05 At&T Intellectual Property I, L.P. Fault tolerant voice over Internet protocol (VoIP) systems and methods to operate the same
US9083722B2 (en) 2007-10-05 2015-07-14 Qualcomm Incorporated Session initiation protocol registration with ping
US20090150562A1 (en) * 2007-12-07 2009-06-11 Research In Motion Limited Apparatus and method for directing a communication session to a communication device of a group of devices having a common registration identity
US8606901B2 (en) * 2008-01-30 2013-12-10 At&T Intellectual Property I, L. P. Facilitating deployment of new application services in a next generation network
US7995466B2 (en) * 2008-03-26 2011-08-09 Avaya Inc. Failover/failback trigger using SIP messages in a SIP survivable configuration
US7836185B2 (en) * 2008-06-27 2010-11-16 International Business Machines Corporation Common resource management in a server cluster

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060182255A1 (en) * 2005-02-11 2006-08-17 Cisco Technology, Inc. Resilient regisration with a call manager
US20070143449A1 (en) * 2005-10-14 2007-06-21 Julian Wray West Discovering network services

Also Published As

Publication number Publication date
KR20090102621A (ko) 2009-09-30
JP5008647B2 (ja) 2012-08-22
BRPI0903066A2 (pt) 2010-07-13
EP2111015B1 (en) 2012-06-20
US8107361B2 (en) 2012-01-31
US20090245183A1 (en) 2009-10-01
JP2009239892A (ja) 2009-10-15
MX2008015826A (es) 2009-09-25
BRPI0903066B1 (pt) 2020-10-06
CN101557393A (zh) 2009-10-14
EP2111015A1 (en) 2009-10-21
CN101557393B (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
KR101387287B1 (ko) 세션 개시 프로토콜(sip) 존속가능 네트워크 유지 방법,세션 개시 프로토콜(sip) 활성화 통신 디바이스 및 컴퓨터 판독가능 매체
KR101383923B1 (ko) Sip 존속가능 사용자 에이전트 유지 방법, 통신 엔드포인트, 통신 시스템 및 컴퓨터 판독가능 저장 매체
EP2106065B1 (en) A failover/failback trigger using a SIP notify message in a SIP survivable network configuration
US8527656B2 (en) Registering an endpoint with a sliding window of controllers in a list of controllers of a survivable network
US7954005B2 (en) SIP server architecture for improving latency during message processing
US9344458B2 (en) Providing unified communications services
US20200322283A1 (en) Systems and methods of communications network failure detection and remediation utilizing link probes
US9515849B2 (en) Method and apparatus for managing communication faults
JP2009296138A (ja) 通信システム
US9948726B2 (en) Reconstruction of states on controller failover
US8930768B2 (en) System and method of failover for an initiated SIP session
GB2433376A (en) Communications system with peer-to-peer backup network
WO2012109953A1 (zh) 一种sip会话保护的方法和系统

Legal Events

Date Code Title Description
A201 Request for 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: 20170406

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190404

Year of fee payment: 6