KR20120016285A - 다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치 - Google Patents

다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치 Download PDF

Info

Publication number
KR20120016285A
KR20120016285A KR1020117030306A KR20117030306A KR20120016285A KR 20120016285 A KR20120016285 A KR 20120016285A KR 1020117030306 A KR1020117030306 A KR 1020117030306A KR 20117030306 A KR20117030306 A KR 20117030306A KR 20120016285 A KR20120016285 A KR 20120016285A
Authority
KR
South Korea
Prior art keywords
service provider
selected service
account
mobile device
provider account
Prior art date
Application number
KR1020117030306A
Other languages
English (en)
Other versions
KR101417241B1 (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 KR20120016285A publication Critical patent/KR20120016285A/ko
Application granted granted Critical
Publication of KR101417241B1 publication Critical patent/KR101417241B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/18Processing of user or subscriber data, e.g. subscribed services, user preferences or user profiles; Transfer of user or subscriber data
    • H04W8/183Processing at user equipment or user record carrier
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)
  • Telephone Function (AREA)

Abstract

방법들 및 시스템들은 소프트웨어 정의 무선 기반 칩셋 모듈들을 갖춘 모바일 디바이스가 다양한 서비스 제공자 네트워크들 중 임의의 네트워크 상에서 동작하도록 끊임없이 재프로그래밍하게 한다. 소프트웨어 정의 무선 기반 칩셋 모듈을 갖춘 모바일 디바이스를 재프로그래밍함으로써, 모바일 디바이스는 GSM 및 CDMA 통신 네트워크들 양자 모두를 통한 통신을 지원할 수 있다. 사용자가 통신을 지원하는 서비스 제공자 어카운트들 사이에서 신속하고 효율적으로 스위칭하게 한는 환경이 제공된다.

Description

다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치{METHOD AND APPARATUS FOR PROGRAMMING A MOBILE DEVICE WITH MULTIPLE SERVICE ACCOUNTS}
본 발명은 일반적으로 모바일 디바이스를 프로비저닝하고 프로그래밍하는 것에 관한 것이고, 보다 구체적으로는, 단일 모바일 디바이스 상에 다수의 서비스 제공자 어카운트들을 프로비저닝하고 프로그래밍하기 위한 방법들 및 장치에 관한 것이다.
일반적으로, 종래의 셀룰러 통신 디바이스들은 2개의 경쟁하는 주요 네트워크 기술들 중 하나의 기술을 이용하여 동작한다. 즉, 이동 통신용 글로벌 시스템들 (GSM) 또는 코드 분할 다중 액세스 (CDMA). 2개의 경쟁하는 기술들 사이에는 많은 차이점들이 있지만, 핵심적으로, GSM은 시간 분할 다중화 방식을 구현하는 반면, CDMA 는 (그것의 이름이 의미하는 바대로) 코드 기반 다중화 방식을 구현한다. GSM 네트워크에서, 네트워크의 총 대역폭 중 일부분은 모바일 디바이스에 채널로서 할당된다. 그 후, 네트워크 기지국은 짧은 양의 시간 동안 각각의 할당된 채널들을 선택적으로 "청취 (listen)" 하여, 음성 및/또는 데이터 정보를 모바일 디바이스로 전송하고 그로부터 수신한다. 기지국은, 네트워크 상에서 동작하고 있는 다른 모바일 디바이스들에게 할당된 다른 채널들도 청취해야 하기 때문에, 할당된 채널을 단지 짧은 양의 시간 동안만 선택적으로 청취할 수 있다. 효과적이기는 하지만, TDMA 방식은 그것의 제한된 대역폭에 의해 속박되며, 하나의 채널을 하나의 모바일 디바이스에 전용시킬 필요가 있다.
대조적으로, CDMA 네트워크에서, 각각의 채널은 다수의 모바일 디바이스들에 의해 이용될 수도 있다. 동일한 할당된 채널 상에서 동작하는 상이한 모바일 디바이스들로부터 수신된 정보를 구별하도록 하기 위해, 각각의 모바일 디바이스는 그것의 음성 및/또는 데이터 정보를 인코딩할 상이한 코딩 오프셋을 할당받는다. 디코딩 코드 오프셋을 선택적으로 스위칭함으로써, 기지국은 동일한 할당된 채널 상에서 동작하는 다수의 모바일 디바이스들로부터 수신된 정보를 디코딩할 수 있다. 이것은 동일한 양의 총 대역폭 상에서 더 많은 모바일 디바이스들을 서비스할 능력을 크게 증가시킨다.
각각의 경쟁하는 기술들로 구현되는 다중화 및 인코딩 방식들 외에도, 경쟁하는 통신 네트워크들을 동작시키는 개별적인 서비스 제공자들은 그들 각자의 통신 네트워크들을 통해 전송되고 수신된 다른 양태들의 통신 신호들을 변형할 수도 있다. 이것은 각각의 서비스 제공자가 그들의 네트워크를 다른 네트워크와 구별하게 하고, 일부 경우들에 있어서는, 그것의 고객들에게 차별화한 특징들을 제공하게 한다. 이들 양태들은 통신 신호 파형들, 주파수, 진폭 등을 포함할 수도 있다.
특정 서비스 제공자의 네트워크 상에서 적절하게 동작하기 위해, 모바일 디바이스는 정확한 변조로 적절한 파형을 생성하는 데 필요한 하드웨어, 및 서비스 제공자의 네트워크에 의해 요구되는 코딩 방식을 갖추어야 한다. 2개의 경쟁하는 네트워크들 사이에서 사용된 파형, 변조 및 코딩 방식들의 유형에 있어서의 기본적인 차이점들 때문에, GSM 기술 네트워크 상에서 동작하는 데 필요한 하드웨어를 갖춘 모바일 디바이스들은 CDMA 기술 네트워크 상에서 동작할 수 없고, 그 반대의 경우도 마찬가지이다.
또한, 유사한 기술의 (예컨대, GSM 또는 CDMA) 네트워크들을 동작시키는 경쟁하는 서비스 제공자들은, 일반적으로, 모바일 디바이스가 특정 서비스 제공자의 네트워크 상에서 동작하게 하는 독점적인 프로비저닝 데이터 (proprietary provisioning data) 를 구현한다. 각각의 서비스 제공자는 일반적으로 그들의 용도 또는 포맷에 있어서 고유한 다수의 프로비저닝 파라미터들을 채용한다. 종래의 모바일 디바이스들은, 디바이스가 등록된, 단일 서비스 제공자에 대한 프로비저닝 데이터를 저장한다. (동일한 기술 유형의 것이라면) 종래의 모바일 디바이스들이 상이한 서비스 제공자의 통신 네트워크를 통해 통신을 이행할 수도 있지만, 이러한 사용은 오로지 모바일 디바이스 내로 로딩된 프로비저닝 데이터에 의해 전용되는 로밍 규칙들 및 승인들에 따라서만 허용될 것이다. 종래의 모바일 디바이스의 사용자가 주요 (즉, 비-로밍) 서비스를 위해 상이한 서비스 제공자의 통신 네트워크를 이용하기 원한다면, 모바일 디바이스 내로 로딩되는 프로비저닝 데이터는 삭제되어야 하고, 새롭게 선택된 서비스 제공자의 프로비저닝 데이터로 교체되어야 한다. 일반적으로, 이러한 변경은 단지 새롭게 선택된 서비스 제공자와의 새로운 어카운트를 활성화시키는 것에 의해서 이루어질 수도 있다. 사용자가 그 뒤에 주요 서비스를 위해 오리지널 서비스 제공자의 통신 네트워크로 복귀하기 원한다면, 오리지널 서비스 제공자의 네트워크 상의 새로운 어카운트가 활성화되어야 하고, 이전의 어카운트 데이터는 삭제되어야 한다.
일부 세팅들에서, 가입자 아이덴티티 모듈 (Subscriber Identity Module: SIM) 카드 또는 유사한 R-UIM 카드와 같은 탈착가능 스마트카드는, 서비스 제공자 중재 (service provider intervention) 를 필요로 하지 않고도 사용자가 모바일 디바이스 내로 로딩된 프로비저닝 데이터를 상호 교환하게 할 수도 있다. 상이한 서비스 제공자들에 대한 프로비저닝 데이터는 탈착가능 스마트카드 상에 저장될 수도 있다. 각각의 스마트카드가 상이한 서비스 제공자에 대한 프로비저닝 데이터를 저장할 수도 있기 때문에, 사용자는 주요 서비스를 위해 상이한 서비스 제공자 네트워크들을 이용할 수 있도록 모바일 디바이스에서 스마트카드들을 물리적으로 상호 교환할 수도 있다. 그러나, 스마트카드들을 물리적으로 상호 교환할 필요성은 사용자에게 다수의 스마트카드들을 들고 다닐 것을 요구한다. 또한, 스마트카드들의 물리적 상호 교환은 번거롭다. 마지막으로, 스마트카드들의 사용은 여전히 GSM 기술 네트워크 상에서 동작하는 데 필요한 하드웨어를 갖춘 모바일 디바이스가 CDMA 기술 네트워크 상에서는 동작하게 하지 못하며, 그 반대의 경우도 마찬가지이다.
적절하게 갖추어진 모바일 디바이스가 다수의 상이한 서비스 제공자들 중 임의의 제공자에 대해 동작할 수 있도록 다수의 서비스 제공자들에 대하여 필요한 소프트웨어 빌드들 및 프로비저닝 데이터 파라미터들을 비휘발성 메모리에 저장하도록 하는 다양한 실시형태의 방법들 및 시스템들이 제공된다. 이러한 모바일 디바이스는, (GSM 및 CDMA를 포함하는) 모든 기술 유형들의 셀룰러 네트워크들과 통신하게 하는 소프트웨어 기반 무선 칩셋 모듈을 포함할 수도 있다. 다양한 실시형태들은 상이한 서비스 제공자들의 프로비저닝 데이터와 소프트웨어 빌드들 사이의 스위칭을 위한 방법, 시스템 및 디바이스를 더 제공한다. 추가적인 실시형태들은 모바일 디바이스의 프로그래밍 시에 충돌할 수 있는 다수의 서비스 제공자 접속 관리자들의 론칭을 방지하기 위한 방법을 제공한다.
여기에 포함되고 이 명세서의 일부분을 구성하는 첨부한 도면은, 본 발명의 예시적인 실시형태들을 도시하며, 상기에 주어진 전반적인 설명 및 하기에 주어지는 상세한 설명과 함께, 본 발명의 특징들을 설명하는 데 도움이 된다.
도 1 은 다양한 실시형태들을 지원할 수 있는 모바일 디바이스의 일반적인 콤포넌트들을 도시한 블록도이다.
도 2 는 소프트웨어 정의 무선 기반 칩셋 모듈을 갖춘 모바일 디바이스 내에서 동작하는 소프트웨어 모듈들의 하드웨어/소프트웨어 아키텍처 도면이다.
도 3 은 상이한 서비스 제공자 어카운트들에 의해 이용되는 동적 파라미터들의 예시적인 데이터 테이블이다.
도 4 는 상이한 서비스 제공자 어카운트들에 의해 이용되는 정적 파라미터들의 예시적인 데이터 테이블이다.
도 5 는 상이한 서비스 제공자 어카운트들에 의해 이용되는 보안 파라미터들의 예시적인 데이터 테이블이다.
도 6 은 선택된 서비스 제공자에 대한 어카운트가 활성화되었음을 보장하도록 구현될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다.
도 7 은 모바일 디바이스가 다양한 서비스 제공자들과의 활성화 절차를 개시하게 하는 통신 시스템의 시스템도이다.
도 8 은 다수의 소프트웨어 빌드들이 동일한 모바일 디바이스 상에서 다수의 서비스 제공자 어카운트들을 이음매없이 (seamlessly) 지원하게 하기 위한 실시형태의 프로세스를 도시하는 프로세스 흐름도이다.
도 9 는 이전에 비활성화된 서비스 제공자 어카운트에 대한 소프트웨어 빌드를 로딩하도록 구현될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다.
도 10 은 이전에 활성화된 서비스 제공자 어카운트에 대한 소프트웨어 빌드를 로딩하도록 구현될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다.
도 11 은 선택된 서비스 제공자와의 액티브/유효 어카운트를 확인하도록 하는 대안적인 실시형태의 방법에 대한 프로세스 흐름도이다.
도 12 는 선택된 서비스 제공자와의 액티브/유효 어카운트를 확인하도록 하는 다른 대안적인 실시형태의 방법에 대한 프로세스 흐름도이다.
도 13 은 서비스 제공자 어카운트들의 인덱싱된 데이터 테이블이 원격 비휘발성 메모리에 저장되는 대안적인 실시형태의 통신 시스템에 대한 시스템도이다.
도 14 는 서비스 제공자 어카운트들의 인덱싱된 데이터 테이블이 원격 비휘발성 메모리에 저장되는 다른 대안적인 실시형태의 통신 시스템에 대한 시스템도이다.
도 15 는 예시적인 접속 관리자 추적기에 의해 구현될 수도 있는 프로세스를 도시한 프로세스 흐름도이다.
도 16 은 다양한 실시형태들과 사용하기에 적합한 예시적인 서버의 콤포넌트 블록도이다.
첨부한 도면들을 참조하여 다양한 실시형태들이 상세히 설명될 것이다. 가능한 경우라면, 동일한 참조 번호들이 도면 전반에 걸쳐서 동일하거나 비슷한 부분들을 지칭하는 데 사용될 것이다. 특정 예들 및 구현물들은 예시의 목적으로 참조되고, 본 발명의 범주 또는 특허청구범위를 제한하는 것으로 의도되지 않는다.
본 기술문에서, "예시적인" 이라는 용어는 본 명세서에서 "예, 예시, 또는 예증으로서 제공되는" 의 의미로 사용된다. 본 명세서에서 "예시적인"이라고 설명된 임의의 실시형태는 다른 실시형태들에 비하여 반드시 바람직하거나 유리한 것으로서 해석되어야 하는 것은 아니다.
본 명세서에서 사용되는 바와 같이, "모바일 디바이스" 라는 용어는, 예를 들어 셀룰러 폰들, 개인휴대정보 단말기들 (PDA), 팜톱 컴퓨터들, 랩톱 및 노트북 컴퓨터들, 무선 전자 메일 수신기들 (예컨대, Blackberry? 및 Treo? 디바이스들), 멀티미디어 인터넷 인에이블링되는 셀룰러 폰들 (예컨대, iPhone?), 및 무선 통신 모듈, 프로세서 및 메모리를 구비한 유사한 개인용 전자 장치들을 포함하는 무선 음성 및 데이터 통신을 위한 통신 모듈을 구현하는, 존재할 수도 있고 또는 미래에 개발될 임의의 형태의 프로그래밍가능 컴퓨터를 포괄하는 것으로 의도된다. 바람직한 실시형태에서, 모바일 디바이스는 소프트웨어 정의 무선 기반 칩셋 모듈을 구비한 휴대용 컴퓨터이다.
종래의 모바일 디바이스들은 일반적으로 단일 서비스 제공자의 통신 네트워크 상에서 동작하도록 설계되어 있다. 보다 구체적으로, 종래의 모바일 디바이스들은 단일 통신 기술 (예컨대, GSM v. CDMA) 로 동작하도록 설계되어 있다. 예를 들어, 셀룰러 폰들은 일반적으로 서비스 제공자의 네트워크 상에서 사용하기 위해 그 서비스 제공자로부터 직접 구매되고 있다. 마찬가지로, 노트북 컴퓨터용 무선 모뎀 카드들은 일반적으로 서비스 제공자로부터 구매되고 판매된다. 경쟁하는 기술들 사이의 근본적인 차이점들 때문에, 하나의 경쟁 기술 상에서의 통신을 인에이블링하는 모바일 디바이스 내에 포함된 하드웨어는 동일한 모바일 디바이스가 다른 경쟁 기술의 네트워크와 통신하는 것을 막는다.
더욱이, 2개의 개별적인 서비스 제공자들이 동일한 통신 기술을 구현할 수도 있지만, 상이한 서비스 제공자들은 그들의 고객들에게 상이한 특징 세트들을 제공할 수도 있다. 그 결과, 통신을 인에이블링하는 하드웨어가 동일하더라도, 한 서비스 제공자의 통신 네트워크 상에서의 통신을 인에이블링하는 소프트웨어는 다른 서비스 제공자의 것과는 상당히 다를 수도 있다. 따라서, 상이한 소프트웨어 빌드는 각각의 서비스 제공자에 대한 모바일 디바이스 상에서 구현되어야 한다.
또한, 대부분의 종래의 모바일 디바이스들은 단일 서비스 제공자의 프로비저닝 데이터를 로딩하도록 설계되어 있다. 경쟁하는 서비스 제공자들이 독점적 프로비저닝 데이터를 구현하기 때문에, 한 서비스 제공자의 통신 네트워크 상에서 동작하는 종래의 모바일 디바이스들은, 제 1 서비스 제공자의 프로비저닝 데이터를 삭제하고 제 2 서비스 제공자의 프로비저닝 데이터로 교체하지 않고는, 다른 서비스 제공자의 통신 네트워크 상에서 (1차 서비스로서는) 동작할 수 없다. 일부 모바일 디바이스들은 사용자가 스마트카드들의 상호 교환을 통해 상이한 서비스 제공자들의 프로비저닝 데이터를 교환하게 하지만, 그러한 방법들은 번거롭고, 사용자가 경쟁하는 기술들의 통신 네트워크들을 이용하는 것을 여전히 허용하지 않는다.
경쟁하는 기술들 중 하나의 기술과 관련하여 신호들을 생성하고, 인코딩/디코딩하며, 변조/복조하는 하드웨어를 사용하는 종래의 모바일 디바이스들과는 대조적으로, 퀄컴의 Gobi? 과 같은 미래의 소프트웨어 정의 무선 기반 칩셋 모듈들은 프로그래밍가능 디지털 신호 프로세서 (DSP) 내에서 데이터 신호들을 생성하고, 인코딩/디코딩하며, 변조/복조한다. 프로그래밍가능 DSP 는 통신 신호가 소프트웨어에 의해 임의의 통신 기술의 파형, 주파수 및 데이터 패킷 요건들과 부합하도록 정의되는 것을 가능하게 한다. DSP 를 재프로그래밍하여 상이한 특성들을 갖는 신호들을 생성함으로써, 모바일 디바이스는 임의의 서비스 제공자의 고유한 통신 네트워크와 호환 가능한 통신 신호를 생성하게 될 수도 있다.
소프트웨어 정의 무선 기반 칩셋 내에서 DSP 를 재프로그래밍하여 선택된 서비스 제공자 네트워크와 호환 가능한 데이터 신호를 생성하도록 하기 위해, 모바일 디바이스는 선택된 서비스 제공자에 대한 적절한 소프트웨어 빌드를 로딩해야 한다. 각각의 서비스 제공자의 소프트웨어 빌드는, 서비스 제공자의 통신 네트워크를 통해 적절하게 전달될 데이터 신호들을 생성하고, 인코딩하며, 변조하는 데 필요한 명령들을 포함할 수도 있고, 그 뿐 아니라, 서비스 제공자에 의해 제공되는 모든 추가적인 특징들을 실행시키는 데 필요한 프로그래밍을 포함할 수도 있다. 다양한 실시형태들은 모바일 디바이스 상에 구현된 소프트웨어 빌드의 다양한 모듈들을 변형하고 스위칭하는 능력을 제공한다. 다양한 실시형태들은 서비스 제공자의 소프트웨어 빌드의 이전에 생성된 파라미터들이 재사용될 수도 있도록 어떤 서비스 제공자들이 모바일 디바이스에 의해 활성화된 어카운트를 갖고 있는지를 모니터링한다. 다른 실시형태들은 현재 구현된 서비스 제공자 소프트웨어 빌드를 모니터링하여, 상이한 소프트웨어 빌드가 요청될 때 치명적인 충돌들이 발생하는 것을 방지한다.
도 1 은 다양한 실시형태들을 지원할 수 있는 모바일 디바이스 (10) 의 일반적인 콤포넌트들을 도시한다. 일반적인 모바일 디바이스 (10) 는 내부 메모리 (192) 에 커플링된 프로세서 (191) 또는 2중 (또는 그 이상의) 프로세서들 (191a, 191b) 및 사용자 인터페이스 디스플레이 (11) 를 포함한다. 모바일 디바이스 (10) 는 또한 다수의 서비스 제공자 통신 네트워크들 중 임의의 네트워크 상에서 동작할 수 있는 소프트웨어 정의 통신 모듈 (20) 을 포함할 수도 있다. 소프트웨어 정의 통신 모듈 (20) 은 선택된 서비스 제공자에 대한 디바이스의 소프트웨어 동작을 변형할 시에 사용하기 위한 서비스 제공자 어카운트 파라미터들 및 세팅들의 인덱싱된 테이블을 저장할 수도 있는 비휘발성 메모리 (25) 및 파일 시스템들 (26) 을 포함할 수도 있다.
모바일 디바이스 (10) 는 프로세서 (191) 에 커플링된 소프트웨어 정의 통신 모듈 (20) 에 접속되어 전자기파 (electromagnetic radiation) 를 전송 및 수신하기 위한 안테나 (194) 를 포함할 수도 있다. 또한, 모바일 디바이스 (10) 는 오디오 사운드를 생성하는 스피커 (18) 및 사용자의 스피치를 수신하는 것과 같이 사운드를 감지하는 마이크로폰 (19) 을 포함한다. 마이크로폰 (19) 및 스피커 (18) 양쪽 모두는 마이크로폰 (19) 으로부터 수신되는 아날로그 전기 신호들을 디지털 코드들로 변환하는 보코더 (199) 를 통해 프로세서 (191) 에 접속될 수도 있고, 프로세서 (191) 로부터 수신된 디지털 코드들을 스피커 (18) 가 음파들로 변환할 수 있는 아날로그 전기 신호들로 변환할 수도 있다. 일부 구현물들에 있어서, 보코더 (199) 는 프로세서 (191) 의 회로망 (circuitry) 및 프로그래밍의 일부분으로서 포함될 수도 있다. 모바일 디바이스들은 또한 일반적으로 사용자 입력들을 수신하기 위한 키 패드 (13) 및 메뉴 선택 버튼들 또는 로커 스위치들 (12) 을 포함한다.
프로세서 (191) 는, 하기에 설명되는 다양한 실시형태들의 기능들을 포함하는 다양한 기능들을 수행하도록 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 일부 모바일 디바이스들에서, 무선 통신 기능들에 전용되는 하나의 프로세서 및 다른 애플리케이션들을 작동시키는 데 전용되는 하나의 프로세서와 같은 다수의 프로세서들 (191) 이 제공될 수도 있다. 일부 모바일 디바이스들에서, 다수의 프로세서들 (191a, 191b) 이 그들 사이에 무선 통신 기능들 및/또는 애플리케이션을 공유하도록 제공될 수 있다. 일반적으로, 소프트웨어 애플리케이션들은, 그들이 액세스되고 프로세서 (191) 내로 로딩되기 전에, 내부 메모리 (192) 에 저장될 수도 있다. 일부 모바일 디바이스들에 있어서, 프로세서 (191) 는 애플리케이션 소프트웨어 명령들을 저장하기에 충분한 내부 메모리를 포함할 수도 있다. 일부 모바일 디바이스들에 있어서, 프로세서 (191) 는, 신호 발생기 및 모뎀 회로들 외에도 2 개의 프로세서들을 포함하는 퀄컴의 Gobi? 에서와 같이 소프트웨어 정의 통신 모듈 (20) 내에 포함된다.
도 2 는 소프트웨어 정의 무선 기반 칩셋 모듈들을 갖춘 모바일 디바이스 상에 있는 소프트웨어 모듈들의 하드웨어/소프트웨어 아키텍처 도면이다. 도 2 에 도시된 바와 같이, 모바일 디바이스 (10) 는, 퀄컴의 Gobi? 와 같이, 소프트웨어 정의 무선 기반 칩셋 통신 모듈 (20) (통신 모듈) 을 포함한다. 통신 모듈 (20) 은 상이한 서비스 제공자 파라미터 구성들의 인덱싱된 테이블을 저장할 수도 있는 비휘발성 메모리 (25) 를 선택적으로 포함할 수도 있다. 대안적인 실시형태들에서, 인덱싱된 데이터 테이블은 또한 그것이 리트리브 (retrieve) 될 수 있는 원격 비휘발성 메모리 (도시하지 않음) 에 저장될 수도 있다. 인덱싱된 데이터 테이블의 예는 이후에 도 3 에서 더 상세히 도시된다. 인덱싱된 데이터 테이블에 저장된 다양한 파라미터들은, 모바일 디바이스가 가입한 어카운트를 지원하는 각각의 서비스 제공자에 대한 특정 소프트웨어 빌드를 컴파일링할 때 사용될 수도 있다. 각각의 서비스 제공자가 고유한 소프트웨어 빌드를 구현할 수도 있으므로, 각각의 서비스 제공자 어카운트에 대한 파라미터들은 흔히 다른 서비스 제공자 어카운트들과는 상이하다. 많은 경우들에 있어서, 하나의 서비스 제공자에 대한 소프트웨어 빌드에서 사용되는 파라미터는 여러 가지 포맷으로 있을 수도 있고, 또는 상이한 서비스 제공자에 의해서 전혀 사용되지 않을 수도 있다.
프로세서 (191) 에서 기능하는 다중-인터페이스 소프트웨어 모듈 (30) 은 통신 모듈 (20) 및 공통 애플리케이션 프로그래밍 인터페이스 (C-API) (40) 와 통신한다. 다중-인터페이스 소프트웨어 모듈 (30) 은 C-API (40) 를 통해 애플리케이션들에 의해 요청되는 다양한 서브루틴들에 대한 실제 코딩을 포함한다. 모바일 디바이스들 (10) 에 대한 애플리케이션들의 개발자들은 요망하는 기능들을 수행하도록 하기 위해 C-API (40) 를 이용하여 다중-인터페이스 모듈 (30) 에 저장된 다양한 서브루틴에 액세스하거나 그와 인터페이싱할 수 있다. 다중-인터페이스 모듈 (30) 에 저장된 서브루틴들은, 통신 모듈 (20) 로부터의 정보의 프로그래밍 및 리트리브을 포함하지만 이들로 제한되지 않는 다양한 기능들을 수행하는 데 이용될 수도 있다. C-API (40) 는 다수의 동적 링크 라이브러리들 (DLL) (45) 을 포함할 수도 있다. 다수의 동적 링크 라이브러리들 (45) 을 포함함으로써, C-API (40) 는 다중-인터페이스 모듈 (30) 로의 및 그들로부터의 후크들(hooks) 을 사용하여 특정 서비스 제공자에 대한 통신 모듈 (20) 을 프로비저닝할 수도 있다. 공통 서브루틴들의 동적으로 링크된 라이브러리들을 이용함으로써, 선택된 서비스 제공자에게 적절한 서브루틴들은 컴파일 시간보다는 오히려 실시 시간 (runtime) 에 애플리케이션 프로그램 내로 로딩될 수도 있다.
서비스 제공자에 대한 어카운트가 모바일 디바이스 (10) 상에서 활성화될 때, 그 어카운트를 지원하는 DLL (45) 은 C-API 내로 로딩되고, 추후 리트리브을 위해 저장된다. 모바일 디바이스 (10) 상에서 활성화된 각각의 다양한 서비스 제공자들은, 각자의 DLL들을 사용하여 서비스 제공자의 소프트웨어 빌드 및 프로비저닝 데이터의 로딩을 용이하게 하는 특정 서비스 제공자에게 특정적인 애플리케이션 프로그래밍 인터페이스를 로딩할 수 있다. 각각의 DLL들 (45) 은 다중-인터페이스 소프트웨어 모듈 (30) 과 통신하도록 프로그래밍될 수도 있다. C-API (40) 는 접속 관리자 추적기 (50) 와 통신하거나 서비스 제공자의 접속 관리자와 직접 통신한다. 접속 관리자 추적기 (50) 는 사실상 "트래픽 콥 (cop)" 으로서 작용하여, 오로지 한 서비스 제공자의 소프트웨어 빌드만이 한번에 모바일 디바이스 (10) 상에서 구현되는 것을 보장한다. 접속 관리자 추적기 (50) 는 어떤 서비스 제공자 어카운트가 선택되는지를 판정하고, 그 선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 빌드만이 구현되는 것을 보증한다. 현재 구현된 소프트웨어 빌드에 의해 지원되지 않는 서비스 제공자 어카운트가 선택되는 이벤트에 있어서, 접속 관리자 추적기 (50) 는, 새롭게 선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 빌드가 론칭되기 전에, 현재 구현된 소프트웨어 빌드가 폐쇄되는 것을 보장할 수도 있다. 접속 관리자 추적기 (50) 는 모바일 디바이스 (10) 상에서 활성화되는 각각의 서비스 제공자 어카운트 (SPl, SP2, SP3) 를 지원하는 각각의 개별적인 접속 관리자 (61, 62, 63) 와 통신한다. 각각의 접속 관리자 (61, 62, 63) 는, DLL들 (45) 로부터 적절한 서브루틴들을 로딩하고 비휘발성 메모리 (25) 에 저장된 적절한 파라미터들을 리트리브함으로써 대응하는 소프트웨어 빌드를 론칭하는 것을 책임진다.
대안적인 실시형태에서, 모바일 디바이스 (10) 는 다수의 서비스 제공자 어카운트들 (SPl, SP2, SP3) 에 대한 통신 링크들을 설정할 수 있는 중심 애플리케이션인 공통 접속 관리자 (60) 를 구현할 수도 있다. 이러한 실시형태에서, 접속 관리자 추적기 (50) 는 공통 접속 관리자 (60) 내에 통합될 수도 있고, 또는 오직 하나의 서비스 제공자의 소프트웨어 빌드만이 한번에 모바일 디바이스 (10) 상에서 구현되는 것을 보장하도록 외부 접속 관리자 추적기 (50) 와 계속해서 통신할 수도 있다.
도 3, 도 4 및 도 5 는 다양한 서비스 제공자 어카운트들에 의해 이용되는 동적, 정적 및 보안 파라미터들의 예시적인 인덱싱된 데이터 테이블들을 도시한다. 도 3, 도 4 및 도 5 에 도시된 바와 같이, 서비스 제공자 어카운트들과 연관되는 데이터는 서비스 제공자들과 연관된 다수의 기록들 (즉, 컬럼들) 을 포함하는 테이블로서 구성될 수도 있는데, 각각의 기록은 각각의 서비스 제공자와 연관된 데이터 세팅들을 저장하는 다수의 데이터 필드들 (즉, 도 3, 도 4 및 도 5 에서의 로우들 (rows)) 을 포함한다. 도 3, 도 4 및 도 5 의 예시적인 데이터 테이블은 오직 4개의 서비스 제공자들 (즉, 서비스 제공자 1, 서비스 제공자 2, 서비스 제공자 3 및 서비스 제공자 4) 만을 도시한다. 그러나, 당업자라면, 추가적인 서비스 제공자들을 리스팅하는 추가적인 컬럼들이 포함될 수도 있음을 이해할 것이다. 또한, 데이터 테이블은 이 세상에서 동작하는 모든 서비스 제공자를 포함할 수도 있다. 더욱이, 각각의 서비스 제공자에 대한 다수의 컬럼들은 모바일 디바이스 (10) 가 동일한 서비스 제공자의 통신 네트워크 상에 다수의 어카운트들을 보유하는 경우들에 포함될 수도 있다.
각각의 서비스 제공자에 대해, 각각의 서비스 제공자의 초기 활성화 프로세스 동안에 생성되는 다양한 파라미터들 및 세팅들은 (도 3, 도 4 및 도 5 에서의 줄들에 도시된) 데이터 필드들에 저장될 수도 있다. 도 3 은 다양한 서비스 제공자 어카운트들에 의해 이용되는 동적 파라미터들의 예시적인 인덱싱된 데이터 테이블을 예시한다. 예를 들어, 각각의 서비스 제공자는 상이한 모드의 활성화를 특정할 수도 있다. 명칭이 암시하는 바와 같이, 활성화 모드는 특정 서비스 제공자에 의해 채용되는 활성화 절차의 유형을 나타낸다. 상이한 유형들의 활성화 절차들은, 예를 들어 오버-디-에어 서비스 프로비저닝 (Over-the-Air Service Provisioning: OTASP) 절차, 인터넷 오버-디 에어 (Internet Over-the Air: IOTA) 절차, 또는 개방 모바일 알리안스 디바이스 관리 (Open Mobile Alliance Device Management: OMADM) 절차를 포함할 수도 있다. 이러한 절차들 각각은 상이한 단계들 및/또는 프로토콜들을 구현하여 활성화 절차를 성취할 수도 있다.
데이터 테이블은 또한 각각의 서비스 제공자에 대한 네트워크 액세스 식별자 (NAI) 를 특정할 수도 있다. NAI 는 데이터 서비스용 디바이스를 인증하는 데 사용되는 모바일 디바이스 (10) 에 할당된 유저네임 (username) 이다. 각각의 서비스 제공자는 유저네임에게 고유의 포맷을 할당할 수도 있다. 예를 들어, 서비스 제공자 1 은 각각의 유저네임에 대한 도메인으로서 서비스 제공자 1 의 네임을 사용한다. 대안으로, 서비스 제공자 2 는 도메인 네임으로서 "hcm.SP2.com" 을 사용한다. 일부 경우들에 있어서, 서비스 제공자는 동일한 모바일 디바이스 (10) 에게 다수의 NAI 들을 할당할 수도 있다. 예를 들어, 도 3 에 도시된 바와 같이, 서비스 제공자 2 및 서비스 제공자 4 는 동일한 모바일 디바이스 (10) 에게 다수의 NAI 들을 할당할 수도 있다. NAI 의 포맷은 상이한 서비스 제공자들 사이에서만이 아니라 동일한 서비스 제공자에 의해 할당된 다양한 NAI 들 사이에서도 상이할 수도 있다. 또한, 도 3 에 도시된 바와 같이, 서비스 제공자 1 및 서비스 제공자 3 과 같은 다른 서비스 제공자들은 각각의 모바일 디바이스 (10) 에게 단일 NAI 를 할당할 수도 있다. 다수의 NAI 들은 MIP 사용자 프로파일 N (N = {0, 1, 2, 3, . . . }) 에 의해 구별될 수도 있다. 따라서, 도 3 이 2 개의 NAI 들 (즉, N = {0, 1}) 을 할당하는 일부 서비스 제공자들을 도시하고 있지만, 일부 경우들에 있어서는 추가의 사용자 프로파일들이 할당될 수도 있다.
데이터 테이블은 패스워드라고도 지칭되는 모바일 노드-홈 에이전트 (MN-HA) 공유 비밀을 더 특정할 수도 있다. MN-HA 패스워드는 모바일 IP 홈 에이전트에서 모바일 디바이스 (10) 를 인증하는 데 사용될 수도 있다. 각각의 서비스 제공자는 유저네임에게 고유의 포맷을 할당할 수도 있다. 예를 들어, 서비스 제공자 3 은 인증 키 (Akey) 의 처음 16 자리를 사용하지만, 서비스 제공자 4 는 8 문자 의사 ESN (pESN) 을 사용한다. 다른 예로서, 서비스 제공자 2 는 도메인 네임으로서 "hcm.SP2.com" 을 사용한다. NAI와 유사하게, 서비스 제공자들은, 서비스 제공자 2 및 서비스 제공자 4 에 대하여, 도 3 에 도시된 바와 같이, 동일한 모바일 디바이스 (10) 에게 다수의 MN-HA 패스워드들을 할당할 수도 있다. 또한, 도 3 에 도시된 바와 같이, 서비스 제공자 1 및 서비스 제공자 3 과 같은 다른 서비스 제공자들은 각각의 모바일 디바이스 (10) 에게 단일 MH-NA 패스워드만을 할당할 수도 있다.
데이터 테이블은 빌링 서버 (도시하지 않음) 에 대해 모바일 디바이스 (10) 를 인증하는 모바일 노드-인증, 권한검증 및 과금 (Mobile Node-Authentication, Authorization, and Accounting: MN-AAA) 공유 비밀 (패스워드) 을 더 특정할 수도 있다. 또한, 각각의 서비스 제공자는 상이한 특정 포맷을 사용할 수도 있다. 또한, 각각의 서비스 제공자는 각각의 엔트리마다 상이한 값들을 사용할 수도 있다. MN-HA 패스워드 및 NAI 들과 마찬가지로, 서비스 제공자들은 각각의 모바일 디바이스 (10) 로 다수의 MN-AAA 패스워드들을 할당하도록 선택할 수도 있다.
또한, 데이터 테이블은, 때때로 심플 IP 유저네임 (Simple IP Username) 이라고 지칭되는, 심플 IP 인증, 권한검증 및 과금 NAI (SIP AAA NAI) 와 같은 다른 파라미터들 및 세팅들을 특정할 수도 있다. 데이터 테이블은, 심플 IP 패스워드인 심플 IP 인증, 권한검증 및 과금 패스워드 (SIP AAA 패스워드) 를 더 특정할 수도 있다. 다른 파라미터들은 도시되지 않은 심플 파라미터 인덱스 (SPI) 를 포함할 수도 있다. 모든 유형들의 파라미터들 및 세팅들이 모든 서비스 제공자들에 의해 사용되는 것은 아니라는 점에 유의한다. 예를 들어, 서비스 제공자들 2 및 4 는 MN-HA 공유 비밀 - 슬롯 1 에 대한 파라미터를 사용하지만, 서비스 제공자들 1 및 3 은 그러한 파라미터를 사용하지 않는다. 일부 서비스 제공자들의 경우, 인덱싱된 데이터 테이블에는 그러한 불사용 파라미터에 대한 어떠한 값도 기록되지 않을 수도 있다. 다른 경우들에 있어서는, 널 (null) 값이 그러한 값에 대한 플레이스 홀더 (place holder) 로서 저장될 수도 있다.
도 4 는 도 3 에 도시된 것들 이상의 예시적인 인덱싱된 데이터 테이블 내의 추가적인 예시적 데이터 엔트리들을 도시한다. 예를 들어, 각각의 서비스 제공자는 상이한 모바일 노드 인증자 (MN 인증자) 를 특정할 수도 있다. 도 4 에 도시된 예에서, 서비스 제공자 1 만이 이 파라미터에 대한 값을 요구한다. 도 4 의 데이터 테이블은 또한 모바일 노드 홈 어드레스 SPI 세트 (MN HA SPI 세트), MN HA SPI 값, MN AAA SPI 세트, MN AAA SPI 값, 리버스 터널링, QNC 인에이블링 (QNC Enabled), 홈 어드레스 (Home Address), 1 차 HA 어드레스 (Primary HA Address), 2 차 HA 어드레스 (Secondary HA Address), 초기 등록 재시도 간격 시간 (Initial Registrations Retry Interval Time), 등록 재시도 횟수 (Registry Retry Number), DS MIP 등록취소 재시도들 (DS MIP De-registrations Retries), 및 수명 만료 전 재등록 시간 (Pre-Lifetime-expiry Re-Registration time) 에 대하여 서비스 제공자들에 의해 특정되는 다양한 포맷들 또는 값들을 도시한다.
도 5 는 도 3 및 도 4 에 도시된 것들 이상의 예시적인 인덱싱된 데이터 테이블 내의 추가적인 예시적 데이터 엔트리들을 도시한다. 도 5 의 데이터 테이블은 또한 서비스 제공자들이 서비스 프로그래밍 코드 (SPC), 단일 키패드 보조 잠금 (One Time Keypad Subsidy Lock: OTKSL), 부정확한 서비스 프로그래밍 코드 (SPC) 시도들의 횟수, 필드 서비스 코드, Akey 체크섬, 심플 메시지 서비스 (SMS) 지원에 대해 사용할 수도 있는 예시적인 포맷들 또는 값들을 도시한다.
도 3, 도 4 및 도 5 에 도시된 인덱싱된 데이트 테이블들에 리스팅된 파라미터들 및 세팅들은 오로지 예시하고자 의도된 것이고, 상이한 서비스 제공자들에 의해 이용되고 구현되는 가능한 포맷들 및 값들의 예들을 제공한다. 당업자라면, 서비스 제공자들이 인덱싱된 데이터 테이블에 반영될 수도 있는 그들의 다양한 소프트웨어 빌드들에서 사용되는 여러 가지의 다른 파라미터들 및 세팅들을 채용할 수도 있다는 것을 인정할 것이다.
사용자가 모바일 디바이스 (10) 상에서 통신을 개시하도록 선택할 때, 그 사용자는 서비스 제공자 어카운트를 선택하여, 그 선택된 서비스 제공자 어카운트에 대응하는 접속 관리자 (예컨대, 참조부호 60, 61, 62, 63) 를 론칭함으로써 통신을 지원하도록 할 수도 있다. 모바일 디바이스 (10) 가 셀룰러 전화인 경우들에 있어서, 서비스 제공자 어카운트는 일반적으로 항상 작동하고 있다. 그러나, 모바일 디바이스 (10) 가 노트북 컴퓨터 내의 무선 모뎀 카드인 경우들에 있어서, 통신 능력들이 요망되지 않는다면, 서비스 제공자 어카운트는 일반적으로 작동하고 있지 않다. 통신을 개시하기 위해, 사용자는 서비스 제공자의 독립적인 접속 관리자를 론칭할 수도 있다. 대안으로, 사용자는 공통 접속 관리자에 의해 생성되는 사용자 인터페이스 디스플레이에 표현된 여러 서비스 제공자들 중의 선택으로부터 특정 서비스 제공자를 선택할 수도 있다. 유사한 메뉴가 셀룰러 전화 상에 제공되어 새로운 서비스 제공자 어카운트를 선택하도록 할 수도 있는데, 이는 노트북 컴퓨터 상에서 접속 관리자를 론칭하는 것과 유사할 것이다. 요망되는 서비스 제공자 어카운트에 대응하는 접속 관리자 (60, 61, 62, 63) 를 론칭함으로써, 접속 관리자 (60, 61, 62, 63) 는 직접적이든 또는 접속 관리자 추적기 (50) 를 통해서든 C-API (40) 와 통신하여, 선택된 서비스 제공자 네트워크를 통한 통신에 필요한 소프트웨어 빌드를 완성하는 데 필요한 DLL (45) 에 포함되는 각각의 필요한 서브루틴들을 호출한다. 또한, C-API (40) 는 DLL (45) 에 액세스하여, 다중-인터페이스 모듈 (30) 을 통해 비휘발성 메모리 (25) 및/또는 파일 시스템 (26) 에 저장된 필요한 파라미터들을 리트리브할 수도 있다. 필요한 파라미터들은 인덱싱된 데이터 테이블에 저장된다. 그 데이터 테이블은 초기 서비스 제공자 어카운트 활성화 절차 동안에 미리생성되었던 선택된 서비스 제공자에 대한 각각의 할당된 파라미터들을 포함할 수도 있다.
도 2 를 다시 참조하면, 일부 경우들에 있어서, 모바일 디바이스 (10) 는 주문자 상표 부착 생산 (OEM) 의 소프트웨어 패키지의 일부로서 다양한 접속 관리자들 (61, 62, 63) 을 구비한 채 로딩될 수도 있다. 이들 접속 관리자들 (61, 62, 63) 은 모바일 디바이스 상에 로딩되는 개별적인 접속 관리자들일 수도 있고, 또는 공통 접속 관리자 프로그램 (60) 에 대한 가능한 선택물들일 수도 있다. 이러한 경우들에 있어서, 사용자는 각각의 접속 관리자들/선택물들에 대응하는 임의의/모든 서비스 제공자들과의 서비스 제공자 어카운트를 수립하지 않았을 가능성이 있다. 따라서, 모바일 디바이스 (10) 에는 오로지 선택된 서비스 제공자에 의해서만 규정되는 디폴트 파라미터들이 프로비저닝될 수도 있다. 그 결과, 사용자가 모바일 디바이스 (10) 에 대해 연관되는 서비스 제공자 어카운트를 갖지 않는 서비스 제공자에 대한 접속 관리자를 론칭할 때에는, 유효한 가입의 필요한 파라미터들이 인덱싱된 데이터 테이블에 저장되지 않을 것이므로 에러가 발생할 것이다. 따라서, 접속 관리자/선택지가 론칭될 때마다, 선택된 서비스 제공자에 대한 어카운트가 활성화되었는지를 판정하는 테스트가 수행될 수도 있다.
도 6 은, 접속 관리자가 론칭되어 선택된 서비스 제공자에 대한 어카운트가 활성화되었는지를 판정할 때마다 모바일 디바이스 (10) 상에 구현될 수도 있는 프로세스를 도시한다. 사용자가 선택된 서비스 제공자에 대한 접속 관리자를 론칭하고자 할 때, 요청은 프로세서 (191) 에 의해 수신된다 (단계 101). 선택된 서비스 제공자에 대한 접속 관리자를 론칭하라는 요청의 수신 시, 프로세서 (191) 는 어카운트가 선택된 서비스 제공자에 대해 사전에 활성화되었는지를 판정할 수도 있다 (결정 105). 이 판정 프로세스는 각각의 서비스 제공자와 연관되는 활성화 플래그의 상태를 체킹함으로써 완수될 수도 있다. 대안으로, 이 판정은 선택된 서비스 제공자에 대한 인덱싱된 데이터 테이블 (도 3 내지 도 5 참조) 에 저장된 파라미터 값들을 체킹함으로써 완수될 수도 있다. 인덱싱된 데이터 테이블에 저장된 파라미터 값들이 부재하거나 디폴트 값들인 경우, 활성화 절차는 완료되지 않은 것으로 가정될 수도 있다. 프로세서 (191) 가, 어카운트가 모바일 디바이스 (10) 상에서 사전에 활성화되었다고 판정하면 (즉, 결정 105 = 예), 프로세서 (191) 는, 선택된 서비스 제공자에게 대응하는 소프트웨어 빌드를 로딩하거나 컴파일링하면서, 인덱싱된 데이터 테이블에 저장된 파라미터 값들을 리트리브하고, 이 값들을 구현한다 (단계 110). 어카운트가 활성화되었으면, 선택된 접속 관리자는, C-API (40) 에게 요청하여 DLL (45) 을 통해 다중-인터페이스 모듈 (30) 에서 필요한 서브루틴들을 호출하고, 비휘발성 메모리 (25) 및/또는 파일 시스템들 (26) 내의 인덱싱된 데이터 테이블로부터 저장된 파라미터들을 리트리브하여 적절한 소프트웨어 빌드를 구현하도록 진행할 수도 있다.
그러나, 프로세서 (191) 가, 선택된 서비스 제공자에 대한 어카운트가 사전에 활성화되지 않았다고 판정하면 (즉, 결정 105 = 아니오), 프로세서는, 선택된 서비스 제공자에 대한 모든 필요한 소프트웨어 빌드 파라미터들을 얻기 위해, 적절한 활성화 절차를 개시한다 (단계 115). 일단 이러한 파라미터 값들이 획득되고 인덱싱된 데이터 테이블에 저장되면, 어카운트가 선택된 서비스 제공자 상에서 활성화되었음을 나타내는 활성화 플래그가 선택적으로 세팅될 수도 있다 (단계 120).
모바일 디바이스 (10) 가 선택된 서비스 제공자와의 어카운트를 최초로 활성화시킬 때, 개시되는 활성화 절차의 유형은 선택된 서비스 제공자에게 의존할 것이다. 따라서, 각각의 개별적인 서비스 제공자에게 요구되는 활성화 절차의 유형은 또한 인덱싱된 데이터 테이블에 저장될 수도 있다. 예를 들어, 일부 서비스 제공자들은 모바일 디바이스 (10) 가 오버-디-에어 서비스 프로비저닝 (OTASP) 절차, 인터넷 오버-디 에어 (IOTA) 절차, 또는 개방 모바일 알리안스 디바이스 관리 (OMADM) 절차를 개시할 것을 요구할 수도 있다.
OTASP 절차에 있어서, 모바일 디바이스 (10) 는 특정 번호 (예컨대, *228) 를 무선으로 호출하도록 지시받을 수도 있다. 모바일 디바이스 (10) 가 서비스 제공자의 네트워크 상에서 무제한적 통신을 이행하기에 충분한 파라미터 데이터를 갖고 있지 않을 수도 있지만, 모바일 디바이스 (10) 는 충분한 파라미터 데이터를 갖는 OEM 으로 프로그래밍되어, 처음의 활성화 목적을 위해 선택된 서비스 제공자의 활성화 서버와 접촉하는 제한적 통신을 이행할 수도 있다. 일단 서비스 제공자의 활성화 서버에 접속되면, 모바일 디바이스 (10) 는 모바일 디바이스 (10) 상에 적절한 소프트웨어 빌드를 구성하는 데 이용되는 서비스 제공자의 활성화 서버로부터 다양한 파라미터 및 세팅들을 수신한다. 파라미터들 및 세팅들 중의 일부는 모바일 디렉토리 번호 (mobile directory number: MDN) 및 모바일 스테이션 식별자들 (MSID) 뿐 아니라 모바일 식별 번호 (MIN), 선호되는 로밍 리스트 (preferred roaming list: PRL) 를 포함할 수도 있는데, 모바일 디렉토리 번호 (MDN) 및 모바일 스테이션 식별자들 (MSID) 양자 모두는 모바일 디바이스의 전화번호라고 지칭될 수도 있다. 일단 OTASP 절차가 완료되면, 모바일 디바이스 (10) 는 유저네임들 및/또는 패스워드들을 생성함으로써 서비스 제공자에게 모바일 디바이스 (10) 를 인증시키는 인증 파라미터 생성 절차를 개시하도록 요구받을 수도 있다. 마찬가지로, IOTA 절차에서, 모바일 디바이스는 MIN 및 MSID 와 같은 파라미터들 및 세팅을 수신할 수도 있다. 그러나, 별도의 인증 프로세스를 수행하는 대신, IOTA 프로세스는 또한 패스워드들 및 유저네임들을 생성하여 모바일 디바이스 (10) 로 할당한다. 일단 어느 하나의 활성화 프로세스가 완료되면, 활성화 절차 동안에 수신된 파라미터들 및 세팅들은 비휘발성 메모리 (25) 내의 인덱싱된 데이터 테이블에 저장될 수도 있다.
도 7 은 모바일 디바이스 (10) 가 다양한 서비스 제공자들과의 활성화 절차를 개시하게 하는 예시적인 통신 시스템을 도시한다. 도 7 은 예시적인 목적들을 위해 2 개의 서비스 제공자들 (125, 130) 을 포함하는데, 다수의 서비스 제공자들이 실시형태의 통신 시스템에 포함될 수도 있다. 서비스 제공자와의 활성화 절차를 무선으로 개시하기 위해, 모바일 디바이스 (10) 는 서비스 제공자의 통신 네트워크 (100, 102) 에 액세스하고 활성화 서버 (125a, 130a) 와 접속하는 데 충분한 소프트웨어 및 프로비저닝 데이터를 가져야 한다. 따라서, OEM 들은 충분한 소프트웨어 및 프로비저닝 데이터를 로딩하여, 모바일 디바이스가 하나 또는 많은 서비스 제공자들의 활성화 서버 (125a, 130a) 에 접촉하게 할 수도 있다. 활성화 서버들 (125a, 130a) 은 OTASP/IOTA/OMADM 절차를 개시하기 위해 특정 번호들 (예컨대, *228) 을 다이얼링함으로써 액세스될 수도 있다.
대안으로, 필요한 최소 소프트웨어 및 프로비저닝 데이터가 OEM 에 의해 모바일 디바이스 (10) 상으로 로딩되지 않으면, 모바일 디바이스 (10) 는 유선 통신 네트워크 (104) 를 통한 유선 접속에 의해, 서비스 제공자의 활성화 서버 (125a, 130a) 에 의해 유지되는 특정 전화 번호들 또는 웹사이트 URL 들을 통해 접속하여 활성화 절차들을 개시할 수도 있다. 일단 서비스 제공자의 활성화 서버 (125a, 130a) 에 접속되면, 모바일 디바이스 (10) 는 모바일 스위칭 센터 (125b, 130b) 를 통해 서비스 제공자의 프로비저닝 서버 (125c, 130c) 에 접속될 수도 있다. 활성화 프로세스의 일부분으로서, 모바일 디바이스 (10) 의 고유한 일련 번호 (예컨대, 모바일 장비 식별자 (MEID) 및 국제 모바일 장비 식별자 (IMEI)) 는 선택된 서비스 제공자와의 어카운트 연관성을 위해 서비스 제공자의 프로비저닝 서버 (125c, 130c) 로 송신될 수도 있다. 반송 시, 서비스 제공자 프로비저닝 서버 (125c, 130c) 는 서비스 제공자 네트워크 상에서 동작하는 데 필요한 다양한 파라미터들 및 세팅들을 송신할 수도 있다. 대안으로, 서비스 제공자 프로비저닝 시스템은 외부 서버와 통신하여 파라미터들을 획득할 수도 있고, 또는 그 반대일 수도 있다. 이러한 파라미터들 및 세팅들은 비휘발성 메모리 (25) 내의 인덱싱된 테이블에 저장될 수도 있다. 또한, 선택된 서비스 제공자의 소프트웨어 빌드에 대한 필요한 서브루틴들을 포함하는 DLL (45) 은 모바일 디바이스 (10) 로 송신될 수도 있다.
일단 모바일 디바이스 (10) 가 모든 필요한 파라미터들, 세팅들 및 DLL (45) 을 서비스 제공자 프로비저닝 서버 (125c, 130c) 로부터 수신하면, 선택된 서비스 제공자에 대한 접속 관리자는 모바일 디바이스의 프로세서 (191) 에 론칭될 수도 있다. 컴퓨터들 또는 애드-온 카드들 (add-on cards) 에 임베딩된 모듈들의 경우에 있어서, 접속 관리자는 모듈이 임베딩되거나 모듈이 접속되는 컴퓨터 내에서 론칭될 수도 있다. 전술한 바와 같이, 론칭된 접속 관리자는 메모리 내의 대응하는 소프트웨어 빌드 파일을 지정할 수도 있다. 소프트웨어 빌드 파일은 완성된 소프트웨어 빌드를 컴파일링하는 데 요구되는 모든 필요한 명령들 및 서브루틴들을 포함할 수도 있다. 소프트웨어 빌드 파일은 DLL (45) 에서 발견되는 필요한 서브루틴들 및 비휘발성 메모리 (25) 에 저장된 인덱싱된 데이터 테이블에서 발견되는 선택된 서비스 제공자와 연관되는 파라미터들을 회수하여, 선택된 서비스 제공자의 통신 네트워크를 통해 통신을 이행하도록 적절한 소프트웨어 빌드의 동작을 변형할 수도 있다.
도 8 은 상이한 소프트웨어 빌드로 모바일 디바이스 (10) 를 재프로그래밍 하여 서비스 제공자 어카운트들을 변경하기 위한 실시형태적 단계들의 프로세스 흐름도이다. 사용자가 모바일 디바이스 (10) 상에서 통신을 개시하도록 선택할 때, 사용자는 서비스 제공자 어카운트를 선택하여, 그 선택된 서비스 제공자 어카운트에 대응하는 접속 관리자 (예컨대, 61, 62, 63) 를 론칭함으로써 통신을 지원할 수도 있다. 모바일 디바이스 (10) 가 무선 전화인 경우들에 있어서, 서비스 제공자 어카운트는 통상적으로 항상 작동하고 있다. 따라서, 메뉴는 사용자 인터페이스 디스플레이 상에 표시되어, 사용자가 새로운 서비스 제공자를 선택하도록 유도할 수도 있다. 메뉴 디스플레이에 대한 응답으로, 프로세서 (191) 는 사용자로부터 요청을 수신하여 새로운 서비스 제공자 어카운트로 스위칭할 수도 있다 (단계 101). 예를 들어, 새로운 접속 관리자가 사용자 행동에 의해 론칭될 때 또는 상이한 서비스 제공자가 공통 접속 관리자로부터 사용자에 의해 선택될 때, 새로운 서비스 제공자 어카운트로 스위칭하라는 요청이 수신될 수도 있다. 프로세서 (191) 는 사용자에게 사용자가 서비스 제공자 (SP) 어카운트들을 스위칭하고자 한다는 것을 확인하라고 요청하는 디스플레이를 선택적으로 표시할 수도 있다 (결정 131). 사용자의 의도를 확인함으로써, 모바일 디바이스 (10) 상에 현재 구현된 소프트웨어 빌드에 대한 원치 않거나 의도하지 않은 변경들이 회피될 수도 있다.
사용자가 질의에 대해 부정적으로 응답하면 (즉, 결정 131 = 아니오), 프로세서 (191) 는 론칭된 접속 관리자 (61, 62, 63) 를 폐쇄하거나 공통 접속 관리자 (60) 로부터 접속 관리자를 선택 해제한다 (단계 135). 일단 접속 관리자가 폐쇄되거나 선택 해제되면, 프로세서 (191) 는 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다. (단계 155).
사용자가 서비스 제공자 어카운트들을 스위칭하고자 하는 의도를 확인하면 (즉, 결정 131 = 예), 프로세서 (191) 는 선택된 서비스 제공자와의 어카운트가 사전에 활성화되었는지를 판정한다 (결정 140). 실시형태에서, 플래그는, 어카운트가 선택된 서비스 제공자 상에서 사전에 활성화되었으면, 메모리에서 설정될 수도 있다. 이 플래그는 서비스 제공자 소프트웨어 파라미터들의 인덱싱된 데이터 테이블에 개별적으로 기록될 수도 있다. 플래그 이외의 다른 표시자들이, 선택된 서비스 제공자와의 어카운트가 사전에 활성화되었는지를 표시하는 데 사용될 수도 있다. 예를 들어, 대안적인 실시형태에서, 프로세서 (191) 는 서비스 제공자 소프트웨어 파라미터들의 인덱싱된 데이터 테이블에 저장된 모바일 식별 번호 (MIN) 의 포맷을 체킹할 수도 있다. MIN 은 각각의 모바일 디바이스에게 고유한 10-자리 수로서 서비스 제공자가 개별적인 모바일 디바이스들을 식별하는 데 사용한다. 일반적으로, 어카운트가 서비스 제공자에 의해 활성화된 후, MIN 포맷은 그것의 오리지널 제조자 포맷 000-000-WXYZ 으로부터 변경될 것이다. 오리지널 제조자 포맷이 존재하는 경우, 어떠한 이전 어카운트도 모바일 디바이스 (10) 상에서 활성화되지 않았다.
선택된 서비스 제공자와의 어카운트가 사전에 활성화되지 않았으면 (즉, 결정 140 = 아니오), 프로세서 (191) 는 비활성화된 선택된 서비스 제공자에 대한 소프트웨어 빌드를 로딩한다 (단계 145). 일단 소프트웨어 빌드가 로딩되면, 모바일 디바이스 (10) 는 선택되었지만 사전에 비활성화된 서비스 제공자 네트워크에 대한 활성화를 시도할 수도 있다. 활성화가 성공적이었으면 (즉, 결정 146 = 예), 선택된 서비스 제공자와의 어카운트가 활성화되어 있다는 것을 나타내는 플래그가 설정될 수도 있다 (단계 150). 선택된 서비스 제공자와의 어카운트가 활성화되어 있음을 나타내는 플래그를 설정한 후, 호출이 진행될 수도 있고, 프로세서 (191) 는 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다 (단계 155). 단계 145 에서의 활성화가 성공적이지 않았으면 (즉, 결정 146 = 아니오), 프로세서 (191) 는 선택되었지만 사전에 비활성화된 서비스 제공자에 대한 어카운트를 성공적으로 활성화시키기 위한 시도로 단계 145 를 반복할 수도 있다 (또한, 도 9 에 도시된 프로세스 흐름도 참조). 대안적인 실시형태에서, 프로세서 (191) 는 사용자에게 실패한 활성화 시도를 통지할 수도 있고, 사용자가 활성화 시도를 반복하기 원하는지를 질문할 수도 있다 (단계 147). 사용자가 활성화 시도들을 계속할 것을 선택하면 (즉, 결정 147 = 예), 프로세서는 선택되었지만 사전에 비활성화된 서비스 제공자에 대한 어카운트를 성공적으로 활성화시키기 위한 시도로 단계 145를 반복한다 (또한, 도 9 에 도시된 프로세스 흐름도 참조). 그러나, 사용자가 활성화 시도를 취소할 것을 선택하면 (즉, 결정 147 = 아니오), 프로세서 (191) 는 다음 접속 관리자 론칭 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다 (단계 155).
프로세서 (191) 가 서비스 제공자 소프트웨어 파라미터들의 인덱싱된 데이터 테이블에 저장된 모바일 식별 번호 (MIN) 의 포맷을 체킹하여 어카운트가 사전에 활성화되었는지를 판정 (즉, 결정 140) 할 수도 있는 대안적인 실시형태에서, MIN의 포맷은 소프트웨어 빌드 로딩 동안에 오리지널 제조자 포맷으로부터 이미 변경되었을 것이다 (단계 145). 따라서, 단계 150 는 필요하지 않을 것이다.
프로세서 (191) 가, 선택된 서비스 제공자와의 어카운트가 사전에 활성화된 것으로 판정하면 (즉, 결정 140 = 예), 프로세서 (191) 는 선택된 서비스 제공자의 소프트웨어 빌드를 로딩할 수도 있다 (단계 160). 일단 소프트웨어 빌드가 로딩되면, 프로세서 (191) 는 서비스 제공자 어카운트들의 인덱싱된 데이터 테이블에 사전에 저장된 다양한 파라미터들 및 세팅들을 비휘발성 메모리로부터 리트리브한다 (단계 165). 일부 경우들에 있어서, 그것은, 어카운트가 선택된 서비스 제공자에 대한 모바일 디바이스 (10) 상에서 사전에 활성화되었지만, 활성화된 서비스 제공자 어카운트가 실효 또는 포기되었을 수도 있는 경우일 수도 있다. 이것은, 예를 들어 서비스에 대한 시험적 가입들 (trial subscriptions) 이 제안되는 경우, 또는 사용자가 호출을 지원하는 데 그 선택된 서비스 제공자를 더 이상 이용하지 않는 것으로 일시적으로 선택하는 경우에 일어날 수도 있다. 따라서, 어카운트가 선택된 서비스 제공자에 대해 여전히 액티브/유효하다는 것을 확인하는 것이 필요할 수도 있다.
실시형태에서, 프로세서 (191) 는, 사용자에게 선택된 서비스 제공자에 대한 이전 어카운트가 사전에 액티브했다는 것, 및 사용자가 이 사전에 활성화된 어카운트로 스위칭하기를 원한다는 것을 확인하라고 요청할 수도 있다 (결정 170). 사용자가, 선택된 서비스 제공자에 대한 이전 어카운트가 사전에 액티브였다는 것, 및 사용자가 이 사전에 활성화된 어카운트로 스위칭하기를 원하는 것을 확인한다면 (즉, 결정 170 = 예), 프로세서 (191) 는 선택된 서비스 제공자 어카운트를 구현하여 그것의 데이터 호출들을 지원하고, 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다린다 (단계 155).
일부 경우들에 있어서, 사용자는 선택된 서비스 제공자와의 어카운트를 사전에 활성화시켰을 수도 있지만, 의도적이든 비의도적이든 사전에 활성화된 서비스 제공자 어카운트를 포기했다. 따라서, 의도적인 포기의 경우에 있어서, 사용자는 사전에 활성화된 서비스 제공자 어카운트가 더 이상 액티브하지 않다는 것을 나타낼 수도 있다 (즉, 결정 170 = 아니오). 대안으로, 비의도적인 포기의 경우에 있어서, 단순히 사용자는 선택된 서비스 제공자 어카운트에 대한 어카운트가 액티브인지를 알지 못할 수도 있다. 따라서, 사용자가 사전에 활성화된 어카운트로 스위칭하고자 하는 소망을 확인하지 않으면 (즉, 결정 170 = 아니오), 프로세서 (191) 는 사전에 비활성화된 서비스 제공자에 대한 소프트웨어 빌드를 로딩하는 프로세스를 완료한다. 많은 서비스 제공자들은 모바일 디바이스 (10) 가 단일 서비스 제공자와 사용될 것이라고 기대하며, 그에 따라 일부 서비스 제공자 소프트웨어 빌드들은 모바일 디바이스 (10) 가 그것의 오리지널 팩토리 디폴트 세팅들 및 파라미터 값들로 설정될 것으로 기대한다. 따라서, 프로세서 (191) 는 모바일 디바이스 (10) 를 그것의 오리지널 팩토리 디폴트 세팅 및 파라미터 값들로 리세팅할 수도 있다 (단계 175). 일단 모바일 디바이스 (10) 가 오리지널 팩토리 디폴트 세팅들 및 파라미터 값들로 리세팅되었으면, 프로세서 (191) 는 선택된 서비스 제공자와의 사전 활성화를 나타내는 결정 140 에서 사용된 플래그를 리세팅하여 (단계 176), 어카운트 액티브가 미확인될 때 (즉, 선택된 서비스 제공자와의 어카운트가 활성화되었지만 (결정 140 = 예) 사용자가 활성화를 확인하는 데 실패했을 때 (결정 170 = 아니오)), 선택된 서비스 제공자에 대한 활성화 상태가 클리어된다. 선택된 서비스 제공자와의 어카운트가 사전에 활성화되었음을 나타내는 플래그를 리세팅하는 것은, 다음에 서비스 제공자가 선택될 때, 사용자에게 선택된 서비스 제공자와의 어카운트를 활성화시킬 것을 요구할 것이다. 이것은, 다음에 프로세서가 결정 140 에 도달할 때, 시간에 리세팅된 플래그가 아니오 (No) 출력을 생성할 것이기 때문이다. 당업자라면, 필요하다면, 최종 사용자가, 활성화/재활성화를 위해 선택된 서비스 제공자의 고객 서비스에 접촉해야 할 필요가 있을 수도 있다는 것을 인식할 수도 있다.
대안적인 실시형태에서, 프로세서 (191) 가 서비스 제공자 소프트웨어 파라미터들의 인덱싱된 데이터 테이블에 저장된 모바일 식별 번호 (MIN) 의 포맷을 체킹하는 경우는, 그러한 실시형태들이 그러한 플래그를 이용하지 않기 때문에 불필요한 것일 수도 있다. 또한, 단계 175 가 모바일 디바이스를 그것의 오리지널 팩토리 세팅들 및 디폴트들로 사전에 리세팅하므로, 인덱싱된 데이터 테이블에 저장된 선택된 서비스 제공자에 대한 MIN 엔트리는 그것의 오리지널 제조자 포맷 000-000-WXYZ 으로 다시 리세팅할 것이다. 그 결과, 대안적인 실시형태에서, 사용자는, 다음에 그 서비스 제공자가 선택될 때, 선택된 서비스 제공자와의 어카운트를 활성화시키도록 요구받을 것이다.
일단 소프트웨어 빌드가 로딩되고, 팩토리 디폴트 파라미터들이 리세팅되며 (단계 175), 플래그들의 임의의 필요한 리세팅, 데이터의 삭제 또는 MIN 의 리세팅이 발생하면 (단계 176), 프로세서 (191) 는 선택된 서비스 제공자 어카운트를 구현하여 그것의 데이터 호출들을 지원하고, 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다린다 (단계 155).
선택된 서비스 제공자에 대한 어카운트가 현재 액티브하이고 호출들을 지원할 수 있는지를 확인하기 위한 대안적인 실시형태들이 도 11 및 도 12 와 관련하여 하기에 더욱 상세히 설명된다.
도 9 는 사전에 비활성화된 서비스 제공자 어카운트에 대한 소프트웨어 빌드를 로딩하도록 실행될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다 (도 8 에서의 단계 145). 일단 특정 서비스 제공자가 선택되면 (도 8 의 단계 101), 프로세서 (191) 는 선택된 서비스 제공자에 대해 필요한 API 들 및 DLL 들을 구현한다 (단계 201). 모바일 디바이스 (10) 가 다양한 서비스 제공자들과 활성화 절차를 수행하여 어카운트를 셋업하도록 할 때, 각각의 서비스 제공자와 연관되는 소프트웨어 빌드들은 후속 리트리브을 위해 메모리에 저장될 수도 있다. 소프트웨어 빌드들은 프로세서가 신속하고 효율적인 리트리브을 위해 적절한 소프트웨어 빌드 파일을 신속하게 배치시킬 수도 있도록 디렉토리들에 셋업될 수도 있다. 예를 들어, 서비스 제공자 네임 및/또는 어카운트 네임에 의해 서로 다른 파일네임을 갖는 각각의 새로운 빌드가 모바일 디바이스 메모리 (192) 에 저장될 수도 있다. 저장된 소프트웨어 빌드들은 사전에 비활성화된 서비스 제공자 어카운트들에 대한 것이기 때문에, 소프트웨어 빌드들과 함께 저장된 모든 파라미터들 및 세팅들은 디폴트 파라미터들 및 세팅들이다. 이러한 디폴트 파라미터들 및 세팅들은 서비스 제공자의 요건들에 따르는 것이어야 한다. 디폴트 파라미터들 및 세팅들은 활성화 프로세스 동안에 업데이트될 수도 있다. 프로세서가 선택된 서비스 제공자에 대해 필요한 API 들 및 DLL 들을 구현할 때 (단계 201), 프로세서 (191) 는 또한 소프트웨어 빌드 및 파라미터들이 디바이스 내에 성공적으로 로딩되는 것을 보증하도록 각각의 서비스 제공자에게 특정한 추가적인 절차들을 구현할 수도 있다.
일단 새로운 소프트웨어 빌드가 배치되고 리트리브되었으면, 다운로드 서비스가 리세팅된다 (단계 202). 실시형태에서, 다운로드 서비스 리세팅 프로세스는 Windows? 서비스 재시작 (service restart) 일 수도 있다. 다운로드 서비스는 API 호출에 의해 중지 및 재시작될 수도 있다. 다운로드 서비스는 구성 파일을 판독할 수도 있다. 구성 파일은 특정 서비스 제공자에 대한 소프트웨어 빌드로의 경로 및 그 서비스 제공자의 네트워크 상에서 동작하는 모바일 디바이스 (10) 에 의해서 필요로 되는 다른 파일들을 포함할 수도 있다. 다운로드 서비스는 재시작 시에 이 구성 파일을 판독할 수도 있다. 따라서, 다운로드 서비스는 구성 파일의 새로운 변경들이 효력을 나타낼 수도 있도록 리세팅/재시작되도록 요구될 수도 있다 (단계 202).
다음, 필요한 파일들은 연장된 파일 서비스 (extended file service: EFS) 내에 기록될 수도 있고, 또는 그로부터 삭제될 수도 있다 (단계 204). 필요한 파일들은 모바일 디바이스 (10) 의 처음 제작 동안에 다중-인터페이스 모듈 (30) 에 저장될 수도 있고, 소프트웨어 빌드 패키지 내에 포함될 수도 있으며, 접속 관리자 추적기 애플리케이션에 포함될 수도 있고, 또는 공통 접속 관리자 설치 패키지 내에 포함될 수도 있다. 각각의 새로운 서비스 제공자 어카운트에 대한 소프트웨어 빌드가 로딩될 때, 사전에 선택된 서비스 제공자 어카운트의 EFS 파일들은 삭제되거나, 또는 새롭게 선택된 서비스 제공자 어카운트의 EFS 파일들로 대체된다. 일단 필요한 파일들이 EFS 내에 기록되거나 그로부터 삭제되면, 모바일 디바이스 (10) 는 새로운 변경이 실시되도록 리세팅될 수도 있다 (단계 205). 모바일 디바이스 (10) 가 리세팅되면, 선택된 서비스 제공자에 대한 활성화 프로세스가 개시되어, 소프트웨어 빌드의 구현을 완료할 수 있도록 적절한 파라미터들 및 세팅들이 획득될 수도 있다 (단계 206). 당업자라면, 일부 경우들에 있어서, 선택된 서비스 제공자에 대한 기술자 또는 조작자로의 서비스 호출이 활성화 프로세스를 개시하기 위해 요구될 수도 있다는 것을 이해할 것이다. 일단 활성화 프로세스가 완료되면, 모바일 디바이스 (10) 는 새롭게 선택된 서비스 제공자의 네트워크를 통해 통신을 지원할 수 있다.
도 10 은 사전에 활성화된 서비스 제공자 어카운트에 대한 소프트웨어 빌드를 로딩하도록 구현될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다 (도 8 에서의 단계 160). 사전에 활성화된 서비스 제공자 어카운트에 대한 적절한 소프트웨어 빌드를 로딩하는 프로세스는 사전에 비활성화된 서비스 제공자 어카운트에 대한 적절한 소프트웨어 빌드를 로딩하기 위한 프로세스와 유사하다. 일단 특정 서비스 제공자가 선택되면 (도 8 의 단계 101), 프로세서 (191) 는 선택된 서비스 제공자에 대한 필요한 API 들 및 DLL 들을 구현한다 (단계 201). 프로세서 (191) 는 또한 소프트웨어 빌드 및 파라미터들이 디바이스 내에 성공적으로 로딩되는 것을 보장할 수 있도록 각각의 서비스 제공자에게 특정한 추가적인 절차들을 수행할 수도 있다. 일단 새로운 소프트웨어 빌드가 배치되고 리트리브되었으면, 다운로드 서비스는 리세팅된다 (단계 202). 실시형태에서, 다운로드 서비스 리세팅 프로세스는 Windows? 서비스 재시작일 수도 있다. 다운로드 서비스는 API 호출에 의해 중지될 수도 있고 재시작될 수도 있다. 다운로드 서비스는 구성 파일을 판독할 수도 있다. 구성 파일은 특정 서비스 제공자에 대한 소프트웨어 빌드로의 경로 및 그 서비스 제공자의 네트워크 상에서 동작하는 모바일 디바이스 (10) 에 의해서 필요로 되는 다른 파일들을 포함할 수도 있다. 다운로드 서비스는 재시작 시에 이 구성 파일을 판독할 수도 있다. 따라서, 다운로드 서비스는 구성 파일에서의 새로운 변경들이 실시될 수도 있도록 리세팅/재시작되는 것이 요구될 수도 있다 (단계 202). 일단 다운로드 서비스가 리세팅되면 (단계 202), 프로세서 (191) 는 지시된 소프트웨어 빌드에 대한 모든 필요한 파일들을 EFS 내에 기록하거나 또는 그로부터 삭제한다. 일단 필요한 파일들이 EFS 내에 기록되거나 그로부터 삭제되면, 모바일 디바이스 (10) 는 새로운 변경들이 실시되도록 리세팅된다 (단계 205). 모바일 디바이스 (10) 가 리세팅되면, 모바일 디바이스 (10) 는 새롭게 선택된 서비스 제공자의 네트워크를 통해 통신을 지원할 수 있다. 도 9 에 도시되고 전술된 프로세스 흐름과는 대조적으로, 모바일 디바이스 (10) 가 선택된 서비스 제공자와의 어카운트를 사전에 활성화하였으므로, 선택된 서비스 제공자에 대한 활성화 프로세스를 개시할 필요가 없다 (단계 206).
많은 경우들에 있어서, 요청될 때, 사용자는 선택된 서비스 제공자 어카운트의 사전 활성화를 부정확하게 확인할 수도 있다 (즉, 결정 170 = 예). 다시 말해, 많은 사용자들은 그들의 모바일 디바이스 (10) 상에서 사전에 활성화된 각각의 가능한 서비스 제공자 어카운트의 상태를 정확하게 알지 못할 수도 있다. 예를 들어, 사용자는 특정 서비스 제공자와의 시험적 가입을 알고도 또는 모르고서 활성화시켰을 수도 있다. 어느 경우에서든, 사용자는 시험적 가입이 만료했다는 것을 알지 못할 수도 있지만, 모바일 디바이스 (10) 내의 파라미터들은, 선택된 서비스 제공자의 네트워크 상에서 호출들을 지원하도록 하는 액티브/유효 서비스 제공자 어카운트의 부재에도 불구하고, 선택된 서비스 제공자와의 사전 활성화를 나타내도록 변경되었을 것이다. 그 결과, 모바일 디바이스 (10) 가 도 8 에 도시된 프로세스 흐름을 수행할 때, 모바일 디바이스 (10) 는 사전에 활성화된 서비스 제공자에 대한 소프트웨어 빌드를 로딩하고자 할 것이지만, 호출을 지원할 어떠한 액티브/유효 어카운트도 존재하지 않기 때문에 선택된 서비스 제공자의 네트워크에 의해 어떠한 호출도 지원되지 않을 것이다. 이것은 선택된 서비스 제공자 네트워크를 통해 호출을 개시하거나 수신하도록 사용자에게 불쾌한 사용자 경험 및 불만 (frustration) 을 유발할 수도 있다.
선택된 서비스 제공자와의 어카운트가 사전에 활성화되었는지를 나타내도록 메모리에 설정되고 저장된 선택적 플래그의 사용이 구현될 수도 있지만, 그러한 플래그들은 서비스 제공자와의 어카운트가 여전히 액티브/유효한지를 나타내기에는 신뢰할 수 없을 수도 있다. 이것은, 특히 사전에 활성화된 어카운트가 명백하게 포기되었거나 실효된 경우이다. 따라서, 선택된 서비스 제공자와의 어카운트가 활성화되었고 여전히 액티브/유효한지를 확인하기 위해 다른 대안적인 실시형태들이 필요할 수도 있다.
도 11 은 선택된 서비스 제공자와의 액티브 어카운트를 자동으로 확인 및/또는 생성하도록 구현될 수도 있는 단계들의 프로세스 흐름도이다. 도 11 의 프로세스 흐름에 도시된 단계들은 도 8 에서의 결정 170 의 결정을 유도하도록 수행될 수도 있다. 프로세스 흐름은 카운터를 제로로 설정하여 "접속 실패 (Failure to Connect)" 카운터를 초기화함으로써 시작된다 (단계 260). 그 후, 모바일 디바이스 (10) 는 데이터 호출을 생성하고자 할 수도 있고 (단계 261), 데이터 호출이 성공적이었는지 실패했는지를 판정할 수도 있다 ("실패"는 인증 실패이다) (결정 262). 실패의 대부분의 공통 형태는 윈도우즈 다이얼-업 네트워크 접속 (DUNC) 에러 (691) 일 수도 있다. 호출이 실패하지 않았으면 (즉, 결정 262 = 아니오), 서비스 제공자 어카운트는 유효한 것으로 간주되고 (단계 263), 그에 따라 호출들은 액티브/유효 어카운트를 사용하여 선택된 서비스 제공자 네트워크에 의해 지원될 수도 있다. 따라서, 프로세서는 단계 155 로 진행하여 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다.
그러나, 데이터 호출이 실패한 것으로 간주되면 (즉, 결정 262 = 예), 프로세서 (191) 는 모바일 디바이스 (10) 가 현재 선택된 서비스 제공자의 홈 시스템의 범위 내에 있는지를 판정할 수도 있다 (결정 265). 모바일 디바이스 (10) 가 현재 선택된 서비스 제공자의 홈 시스템의 범위 내에 있지 않으면 (즉, 결정 265 = 아니오), 프로세서 (191) 는 모바일 디바이스 (10) 가 로밍 상태에 있다는 추정할 수도 있고, 사용자에게 로밍 조건을 나타낼 수도 있다. 모든 서비스 제공자인 것은 아니지만 많은 서비스 제공자가 로밍 데이터 호출들을 지원하지 않으므로, 모바일 디바이스 (10) 의 로밍 조건은 데이터 호출이 성공하지 못하게 할 수도 있다. 따라서, 실패한 호출 시도에 대한 이유를 설명한다. 사용자는 모바일 디바이스 (10) 가 선택된 서비스 제공자의 홈 시스템의 범위 내에서 움직일 때까지 또는 상이한 서비스 제공자를 선택하여 호출을 지원할 때까지 어느 때이든 기다려야 할 수도 있다. 일단 로밍 조건이 사용자에게 나타내어지면, 프로세서 (191) 는 단계 155 로 진행하여 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다.
선택된 서비스 제공자 상에서의 액티브/유효 어카운트를 가정하면, 모바일 디바이스 (10) 가 선택된 서비스 제공자의 홈 시스템의 범위 내에 있다면, 시도된 호출은 성공적이어야 한다. 따라서, 프로세서가, 모바일 디바이스 (10) 가 선택된 서비스 제공자의 홈 시스템의 범위에 있지만 (즉, 결정 265 = 예) 데이터 호출이 실패했다고 판정하면 (즉, 결정 262 = 예), 프로세서 (191) 는 FTC 카운터를 증가시킬 수도 있고 (단계 267), FTC 카운터가 일부 미리 결정된 값 "X"와 같은지를 판정할 수도 있다 (결정 268). X 의 값은 임의적이며, 데이터 호출을 생성하려는 시도들의 횟수가 불합리한 수를 초과하지 않도록 선택될 수도 있다. FTC 카운터가 X 와 같지 않으면 (즉, 결정 268 = 아니오), 프로세서 (191) 는 다른 데이터 호출을 생성하고자 할 수도 있다 (단계 261).
그러나, FTC 카운터가 X와 같아서 (즉, 결정 268 = 예), 시도들의 횟수가 "초과하지 않는" 값과 같다는 것을 의미하면, 로딩된 소프트웨어 빌드에 대응하는 서비스 제공자 어카운트가 더 이상 액티브하지 않을 가능성이 있다. 그에 따라, 새로운 서비스 제공자 어카운트가 활성화되어야 한다. 따라서, FTC 카운터가 X와 같을 경우 (즉, 결정 268 = 예), 팩토리 디폴트 파라미터들은 도 8 의 단계 175 에서와 같이 리세팅될 수도 있다. 후속하여, 도 8 에 도시된 프로세스 흐름 (즉, 단계들 176, 155) 은 선택된 서비스 제공자에 대한 소프트웨어 빌드를 로딩하고 활성화시키도록 구현될 수도 있다.
도 12 는 선택된 서비스 제공자와의 액티브/유효 어카운트를 확인하도록 하는 대안적인 실시형태의 방법에 대한 프로세스 흐름도이다. 도 12 에 도시된 방법은 도 11 에 도시된 방법과 유사하며, 도 11 을 참조하여 전술한 바와 동일한 방식으로 단계들 260 - 268 을 수행한다. 그러나, 도 12 에서, FTC 카운터가 임의적인 값 "X" 와 같을 때 (즉, 결정 268 = 예), 프로세서 (191) 는 메모리 (25) 또는 파일 시스템 (26) 에 저장된 크리덴셜들 (MIN, MDN, MIP 프로파일, 패스워드들 등) 을 "부트 스트랩 (boot strap)" 크리덴셜로 변경한다 (단계 280). 부트 스트랩 크리덴셜들은 각각의 공지된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들이다. 각각의 알려진 서비스 제공자에 대한 부트 스트랩 크리덴셜들은 OEM 에 의해 또는 모바일 디바이스 초기화 동안에 모바일 디바이스의 EFS 내로 로딩될 수도 있다. 선택된 서비스 제공자에 대한 부트 스트랩 크리덴셜들은 EFS 로부터 리트리브되고, 비휘발성 메모리 내에 기록된다.
또한, 모바일 디바이스의 비휘발성 메모리에 현재 존재하는 크리덴셜 값들/세팅들 (실제 패스워드) 은 EFS 에 생성된 일시적 파일에 저장된다. 비휘발성 메모리에 저장된 크리덴셜 값들을 선택된 서비스 제공자에 대한 부트 스트랩 값들로 변경함으로써, 모바일 디바이스는, 모바일 디바이스가 적어도 어카운트 서버 (180) (도 13 및 도 14를 참조하여 하기에서 보다 상세히 논의됨) 로의 데이터 호출을 완료하게 할, 비휘발성 메모리에 저장된 공지된 작동 크리덴셜 값들을 갖는 것으로 보장될 수 있다. 일단 어카운트 서버 (180) 가 접촉되면, 모바일 디바이스 (10) 를 지원하는 모든 액티브 어카운트들에 관한 정보가 판정될 수도 있다.
비휘발성 메모리에 저장된 크리덴셜 값들을 변경하는 것은 적어도 어카운트 서버 (180) 로의 호출을 허용할 것이지만, 루틴은 모바일 디바이스에서 세팅들을 복구하도록 요구될 것이다. 도 12 에 도시된 실시형태의 프로세스 흐름에 있어서, 모바일 디바이스의 크리덴셜들을 변경하는 프로세스의 일부로서, 프로세서 (191) 는 모든 기존의 크리덴셜들의 카피를 작성할 수도 있다. 일단 프로세서 (191) 가 모든 기존의 크리덴셜들의 카피를 작성하면, 프로세서 (191) 는 모바일 디바이스 (10) 에게 어카운트 서버 (180) 에 접속할 것을 지시할 수도 있다 (도 13 및 도 14 참조) (단계 281). 어카운트 서버 (180) 는 각각의 서비스 제공자의 오퍼레이터 홈 로케이션 레지스터/인증, 권한검증, 및 과금 (HLR/AAA) 서버 (도시하지 않음) 와 접속될 수도 있다. 선택된 서비스 제공자의 오퍼레이터 HLR/AAA 서버에 접속함으로써, 어카운트 서버 (180) 는 선택된 서비스 제공자에 대한 어카운트가 당해 모바일 디바이스 (10) 에 대하여 액티브/유효한지를 판정할 수도 있다 (결정 282). 선택된 서비스 제공자와의 어카운트가 액티브하면 (즉, 결정 282 = 예), 프로세서 (191) 는 선택된 서비스 제공자의 HLR/AAA 에서 선택된 서비스 제공자 어카운트를 위해 저장된 크리덴셜 값들과 함께 EFS 내의 일시적 파일에 카피되고 저장된 이미 존재하는 크리덴셜들을 체킹하여, 매칭을 판정할 수도 있다 (결정 283). 일시적 파일에 저장된 크리덴셜들과 선택된 서비스 제공자의 HLR/AAA에서 선택된 서비스 제공자 어카운트에 대해 저장된 것들 사이의 임의의 구별은 실패한 데이터 호출 시도에 대한 원인일 수도 있다. EFS 내의 일시적 파일에 저장된 크리덴셜들이 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 것들과 매칭되면 (즉, 결정 283 = 예), 실패한 데이터 호출 시도에 대한 다른 일부의 일시적인 외부 간섭 또는 원인이 존재할 가능성이 있다. 따라서, 선택된 서비스 제공자 어카운트는 일부 시간 경과 또는 모바일 디바이스의 이동 후에 데이터 호출을 지원할 수 있을 가능성이 있다. 그 결과, 프로세서는 단계 155 로 진행하여 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다리도록 할 수도 있다. 그러나, EFS 내의 일시적 파일에 저장된 크리덴셜들과 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 것들 사이에 불일치가 존재하면 (즉, 결정 283 = 아니오), 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 크리덴셜들은 모바일 디바이스 (10) 의 비휘발성 메모리 내에 기록될 수도 있다 (단계 284). 모바일 디바이스의 비휘발성 메모리에 저장된 크리덴셜들이 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 그러한 크리덴셜 값들로 업데이트된 후, 프로세서 (191) 는 단계 155 로 되돌아가서, 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다.
다른 대안적인 실시형태들 (도시하지 않음) 에서, OTAPA 또는 네트워크 개시 IOTA 와 같은 공지된 활성화 방법들에 대한 네트워크 개시 세션들을 수반하여, 모바일 디바이스 크리덴셜들을 정정하는 다른 복구 루틴들이 실행될 수도 있다. 이러한 대안적인 실시형태의 복구 루틴들은 또한 최종 사용자에게 공지된 최종 사용자 개시 활성화 방법들을 수행하여 모바일 디바이스에 대한 이슈들을 복구할 것을 요청하는 것을 수반할 수도 있다. 당업자라면, OTASP, OTAPA, IOTA 및 OMADM 에서의 다양한 프로비저닝들이, 특정 파라미터들이 모바일 디바이스에 기록되어 모바일 디바이스를 복구할 수도 있게 하고, 후속으로 적절한 사용을 허용하는 것 이해할 것이다.
그러나, 선택된 서비스 제공자와의 어카운트가 사전에 활성화되지 않았으면 (즉, 결정 282 = 아니오), 로딩된 소프트웨어 빌드에 대응하는 서비스 제공자 어카운트는 더 이상 액티브하지 않을 가능성이 있다. 그에 따라, 새로운 서비스 제공자 어카운트는 활성화되어야 한다. 따라서, 선택된 서비스 제공자 어카운트가 액티브하지 않으면 (즉, 결정 282 = 아니오), 팩토리 디폴트 파라미터들은 도 8 의 단계 175 에서와 같이 리세팅될 수도 있다. 후속하여, 도 8 에 도시된 프로세스 흐름 (즉, 단계들 176 및 155) 은 선택된 서비스 제공자에 대한 소프트웨어 빌드를 로딩하고 활성화시키도록 구현될 수도 있다.
서비스 제공자 어카운트들의 인덱싱된 데이터 테이블은 프로세서 (191) 에 의한 리트리브을 위해 통신 모듈 (20) 내에 포함된 비휘발성 메모리 (25) 에 저장될 수도 있다. 대안적인 실시형태에서, 비휘발성 메모리의 콘텐츠들은 원격으로 배치될 수도 있다. 도 13 은 실시형태의 시스템을 예시하는데, 이 시스템에서 서비스 제공자 어카운트들의 인덱싱된 데이터 테이블은 원격 데이터 서버에 저장될 수도 있다. 도 7 을 참조하여 전술된 바와 같이, 모바일 디바이스 (10) 는 다수의 서비스 제공자들 (125, 130) 과 통신하여 통신 네트워크들 (100, 102) 을 통해 필요한 파라미터들, 세팅들 및 프로비저닝 데이터를 수신할 수도 있다. 대안으로, 필요한 최소 소프트웨어 및 프로비저닝 데이터가 OEM 에 의해 모바일 디바이스 (10) 상으로 로딩되지 않으면, 모바일 디바이스 (10) 는 유선 통신 네트워크 (104) 를 통한 유선 접속들에 의해 서비스 제공자의 홈 어드레스 서버 (125, 130) 에 의해 유지되는 특정 전화 번호들 또는 웹 사이트 URL 들을 통해 접속되어 활성화 절차들을 개시할 수도 있다.
도 13 을 참조하면, 모바일 디바이스 (10) 는 통신 네트워크 (100, 102) 또는 인터넷 (104) 을 통해 어카운트 서버 (180) 또는 어카운트 서버 (180) 내의 비휘발성 메모리 유닛과 통신하는 어카운트 데이터베이스 (185) 내의 저장을 위해 어카운트 서버 (180) 에 수신된 데이터를 송신할 수도 있다. 서비스 제공자 (125, 130) 로부터 수신된 다양한 파라미터들, 세팅들 및 지금 데이터들 각각은 어카운트 서버 (180) 와 통신하는 각각의 개별적인 모바일 디바이스 (10) 에 대해 저장될 수도 있다. 예를 들어, 어카운트 데이터베이스 (185) 또는 어카운트 서버 (180) 내의 비휘발성 메모리 유닛은 어카운트 서버 (180) 에 의해 서비스되는 모든 모바일 디바이스들에 대한 인덱싱된 어카운트 데이터 테이블일 수도 있는 어카운트 데이터 테이블을 저장할 수도 있다. 각각의 개별적인 모바일 디바이스는, 모바일 디바이스의 전화 번호, (모바일 장비 식별자 (MEID) 또는 국제 모바일 장비 식별자 (IMEI)와 같은) 고유의 일련 번호, 또는 생성된 어카운트 네임이나 사용자 맞춤형 어카운트 네임과 같은 일부 다른 호칭에 의해, 인덱싱된 어카운트 데이터 테이블에서 식별될 수도 있다. 인덱싱된 어카운트 데이터 테이블 내의 각각의 모바일 디바이스 엔트리의 경우, 도 3 내지 도 5 에 예시된 바와 같은 인덱싱된 데이터 테이블 기록이 저장될 수도 있다. 이러한 방식으로, 어카운트 서버 (180) 는 어카운트 서버 (180) 에 의해 서비스되는 특정 모바일 디바이스 (10) 가 사전에 생성한 다양한 파라미터들, 세팅들 및 프로비저닝 데이터의 기록을 보유한다. 파라미터들, 세팅들 및 프로비저닝 데이터를 원격 데이터베이스에 저장함으로써, 모바일 디바이스 (10) 의 로컬 메모리 요건들은 극적으로 감소할 수도 있다. 또한, 파라미터, 세팅 및 프로비저닝 데이터의 원격 저장은, 모바일 디바이스 (10) 가 도난 당하거나 부적절하게 취득되는 경우에, 사용자의 파라미터들, 세팅 및 프로비저닝 데이터에 대한 제한없는 액세스를 방지하는 보안 정보를 제공할 수도 있다. 이것은 또한 사용자가 모바일 디바이스 (10) 를 자발적으로 교체하는 경우들에도 유용하다. 새로운 모바일 디바이스 (10) 로의 서비스 제공자 어카운트 데이터 전달은 원격으로 저장된 크리덴셜들로 성취하기가 더 쉽다.
도 14 는 다른 대안적인 실시형태의 시스템을 도시하는데, 이 시스템에서 서비스 제공자 어카운트들의 인덱싱된 데이터 테이블은 원격 서버 위치에 저장된다. 각각의 소프트웨어 정의 무선 기반 칩셋 모듈이 제조될 때, 그것은 제조자에 의해 고유의 일련 번호 (MEID 또는 IMEI) 를 할당받는다. 일반적으로, 제조자는 이러한 일련 번호들의 리스팅을 제조자 서버 (190) 또는 수반하는 데이터베이스 (도시하지 않음) 에 보유한다. 어카운트 서버 (180) 는 제조자 서버 (190) 와 통신하여, 제조된 소프트웨어 기반 무선 칩셋 일련 번호들의 리스팅을 얻을 수도 있다. 리스팅의 이러한 일련 번호들은 인덱싱된 어카운트 데이터 테이블에서 개별적인 모바일 디바이스들을 식별하는 데 사용될 수도 있다. 어카운트 서버 (180) 와 제조자 서버 (190) 사이의 통신 링크는 유선 직접 링크 (hardwired direct link) 를 통해, 인터넷 (104) 을 통해, 또는 무선 통신 링크 (100, 102) 를 통한 것일 수도 있다. 모바일 디바이스 (10) 가 서비스 제공자 (125, 130) 와의 초기화 절차를 론칭할 때, 모바일 디바이스의 고유의 일련 번호는 서비스 제공자가 각각의 개별적인 모바일 디바이스 (10) 의 네트워크 사용을 모니터링할 수도 있도록 서비스 제공자 (125, 130) 로 전송될 수도 있다. 그 대신, 선택된 서비스 제공자 (125, 130) 는 필요한 파라미터들, 세팅들 및 프로비저닝 데이터를 모바일 디바이스 (10) 로 송신할 수도 있다. 대안으로, 또는 그 외에도, 모바일 디바이스 (10) 로 송신된 파라미터들, 세팅들 및 프로비저닝 데이터들은 인덱싱된 데이터 테이블 내의 원격 저장을 위해 어카운트 서버 (180) 로 송신될 수도 있다. 어카운트 서버 (180) 는 어카운트 서버 (180) 에 의해 서비스되는 각각의 모바일 디바이스 (10) 에 대한 인덱싱된 어카운트 데이터 테이블 기록에 파라미터들, 세팅들, 및 프로비저닝 데이터를 저장할 수도 있다. 원격 데이터베이스에 파라미터들, 세팅들 및 프로비저닝 데이터를 저장함으로써, 모바일 디바이스 (10) 의 로컬 메모리 요건들은 극적으로 감소할 수도 있다. 또한, 파라미터들, 세팅들 및 프로비저닝 데이터의 원격 저장은 모바일 디바이스 (10) 가 도난 당하거나 부적절하게 취득되는 경우에 사용자의 파라미터들, 세팅들 및 프로비저닝 데이터에 대한 자유로운 액세스를 금지하는 보안 수준을 제공할 수도 있다. 또한, 파라미터들, 세팅들 및 프로비저닝 데이터가 어카운트 서버 (180) 에 직접 전송되고, 그 후에, 이어서, 필요에 따라, 모바일 디바이스 (10) 로 다운로딩되는 실시형태들에 있어서, 프로세싱 파워 및 배터리 수명이 보존될 수도 있다. 또한, 중심 위치에 있는 모바일 디바이스 (10) 에 의해 활성화되는 각각의 서비스 제공자 어카운트들에 대한 다양한 파라미터들, 세팅들 및 프로비저닝 데이터 각각을 저장함으로써, 프로세서는 어떤 서비스 제공자들이 특정 모바일 디바이스 (10) 상에서 활성화되었는지를 신속하고 효율적으로 추적할 수도 있다.
전술된 바와 같이, 모바일 디바이스 (10) 가, 어떤 접속 관리자가 현재 동작하고 있는지를 추적하고, 현재 동작 중인 접속 관리자가 폐쇄될 때까지 후속 접속 관리자가 론칭되지 않는 것을 보장하는 것은 중요할 수도 있다. 이것은, 현재 접속 관리자가 현재 동작하고 있는 중의 후속 접속 관리자의 론칭이 모바일 디바이스 프로세서 (191) 의 치명적인 충돌들 및 셧다운을 야기할 수도 있기 때문이다. 따라서, 접속 관리자 추적기 (50) 가 포함되어, 2개의 접속 관리자들이 동일한 프로세서 (191) 상에서 동시에 론칭되지 않는 것을 보장하는 데 필요한 프로세스를 제공하도록 할 수도 있다. 따라서, 접속 관리자가 론칭될 때마다, 접속 관리자가 액티브함을 나타내는 플래그가 메모리에 세팅될 수도 있다. 또한, 현재 론칭된 접속 관리자의 네임은 메모리 또는 버퍼에 저장될 수도 있다. 프로세서 (191) 가 접속 관리자를 론칭하라는 요청을 수신할 때마다, 프로세서 (191) 는 먼저 접속 관리자 활성 플래그를 체킹하여 그것이 세팅되어 있는지를 판정할 수도 있다. 그것이 세팅되어 있지 않으면, 어떠한 접속 관리자도 현재 액티브하지 않다. 따라서, 새로운 접속 관리자가 무사히 론칭될 수도 있다. 그러나, 접속 관리자 활성 플래그가 세팅되어 있으면, 프로세서 (191) 는 어떤 접속 관리자가 현재 액티브한지 알기 위해 체킹할 수도 있다. 현재 액티브한 접속 관리자가 론칭을 위해 사용자에 의해 선택된 접속 관리자와 상이하면, 프로세서 (191) 는 선택된 접속 관리자를 론칭하기에 앞서 현재 액티브한 접속 관리자를 비활성화시켜야 한다. 이러한 접속 관리자 추적기 프로세스는 각각의 서비스 제공자 어카운트마다 독립적인 접속 관리자가 존재하는 실시형태들 또는 공통 접속 관리자 (60) 가 사용자에게 다수의 가능한 선택지들로부터 특정 서비스 제공자 어카운트를 선택하게 하는 실시형태들에서 이용될 수도 있다.
이전에 논의된 바와 같이, 프로세서 (191) 는 언제든지 사용자로부터 특정 서비스 제공자 어카운트를 지원하는 접속 관리자를 론칭하라는 요청을 수신할 수도 있다. 예를 들어, 모바일 디바이스 (10) 가 셀룰러 전화이고, 그 셀룰러 전화에서 통신이 대개 언제나 활성화 중이면, 접속 관리자를 론칭하라는 요청은 사용자가 현재 통신을 지원하는 서비스 제공자 어카운트를 변경하려고 하는 것에 대한 응답일 것이다. 모바일 디바이스 (10) 가 무선 모뎀을 갖는 노트북 컴퓨터일 때와 같은 다른 경우들에 있어서, 통신 능력들이 항상 활성화되는 것은 아니다. 따라서, 접속 관리자의 론칭은, 사용자가 노트북 컴퓨터의 무선 통신 능력을 인에이블링하기 원한다는 것을 나타낼 수도 있다. 소프트웨어 정의 무선 기반 칩셋 모듈 (20) 에 대한 명령들의 충돌을 방지하기 위해, 현재 인에이블링된 접속 관리자는 새로운 접속 관리자가 활성화되기 전에 비활성화되어야 한다. 2개의 상이한 접속 관리자들이 동시에 활성화되면, 가능한 충돌하는 소프트웨어 빌드들 (예컨대, GSM 소프트웨어 빌드 및 CDMA 소프트웨어 빌드) 은 소프트웨어 정의 무선 기반 칩셋 모듈 (20) 에 에러들을 야기할 수도 있다. 따라서, 현재 활성화되어 있는 접속 관리자를 추적하고 제어하는 프로세스가 요망될 수도 있다.
도 15 는 예시적인 접속 관리자 추적기에 의해 구현될 수도 있는 예시적인 단계들을 도시하는 프로세스 흐름도이다. 접속 관리자 추적기 프로세스의 일부분으로서, 모바일 디바이스 (10) 는 다양한 접속 관리자들의 활동에 관련된 다수의 파라미터들에 대한 값들을 포함하는 메모리 또는 버퍼 내에 파라미터 테이블을 저장할 수도 있다. 이러한 파라미터들은 사용 중인 현재 접속 관리자 (사용 중인CM) 에 대한 값, 모바일 디바이스 상에 구현된 최종 소프트웨어 빌드 (사용된 최종 빌드), 및 현재 선택된 접속 관리자에 대해 구현된 소프트웨어 빌드 (현재 CM에 대한 빌드) 를 포함할 수도 있다. 모바일 디바이스 (10) 는 이러한 파라미터들 각각에 대한 특정 값들을 갖는 OEM 에 의해 초기화될 수도 있다. 예를 들어, 모바일 디바이스 (10) 는 "사용 중인 CM", "사용된 최종 빌드", 및 "현재 CM 에 대한 빌드" 파라미터들을 "넌 (none)" 으로 세팅하도록 초기화될 수도 있다. 언제든, 프로세서 (191) 는 특정 서비스 제공자 어카운트를 지원하는 접속 관리자를 론칭하라는 요청을 수신할 수도 있다 (단계 220). 접속 관리자를 론칭하라는 요청의 수신 시, 프로세서 (191) 는 접속 관리자가 현재 동작 중인지를 판정할 수도 있다 (결정 225). 프로세서 (191) 는 "사용 중인 CM" 값에 대해 메모리 내에 저장된 파라미터 테이블에 저장된 값을 체킹함으로써 그러한 판정을 내릴 수도 있다. "사용 중인 CM" 값이 "넌 (none)" 외의 것이면, 프로세서 (191) 는 접속 관리자가 현재 사용 중인 것으로 판정할 것이다 (즉, 결정 225 = 예). 접속 관리자가 사용 중이면, 프로세서 (191) 는 접속 관리자가 이미 작동하고 있다는 것을 사용자에게 나타내는 에러 메시지를 디스플레이할 수도 있다 (단계 230). 에러 메시지는, 사용자가 접속 관리자들을 스위칭하기 원하면, 현재 선택된 접속 관리자를 론칭하기 전에 현재 액티브한 접속 관리자가 폐쇄되어야 한다는 것을 선택적으로 나타낼 수도 있다. 일단 에러 메시지가 사용자에게 디스플레이되면, 프로세서 (191) 는 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다 (단계 155).
그러나, 프로세서 (191) 가 어떤 접속 관리자도 현재 동작하고 있지 않다고 판정하면, 프로세서 (191) 는 "사용 중인 CM" 파라미터에 대한 값을 선택된 접속 관리자 요청의 서비스 제공자의 네임으로 입력한다 (단계 235). 프로세서 (191) 는 또한 파라미터 테이블에서 "현재 CM 에 대한 빌드" 파라미터의 값을 선택된 접속 관리자 요청의 서비스 제공자의 네임으로 변경한다 (단계 240). 프로세서 (191) 는 론칭을 위해 현재 선택된 접속 관리자가 론칭된 최종 접속 관리자와 동일한지 상이한지를 판정할 수도 있다 (결정 245). 프로세서 (191) 는 파라미터 테이블에 저장된 "현재 CM 에 대한 빌드" 및 "사용된 최종 빌드" 의 파라미터들의 값들을 비교할 수도 있다. 모바일 디바이스 (10) 가 통신 능력들을 인에이블링하도록 처음으로 사용되고 있는 경우들에 있어서, 파라미터 "사용된 최종 빌드" 의 값은 "넌 (none)" 의 초기화된 값일 것이다. 결과로서, "현재 CM 에 대한 빌드" 파라미터 값의 비교는 "사용된 최종 빌드" 파라미터의 값과 매칭되지 않을 것이다 (즉, 결정 245 = 아니오). 또한, 사용자가 인스턴트 접속 관리자 직전에 론칭된 접속 관리자와는 상이한 접속 관리자를 론칭하도록 선택했으면, "현재 CM 에 대한 빌드" 및 "사용된 최종 빌드" 파라미터의 비교는 매칭으로 되지 않을 것이다 (즉, 결정 245 = 아니오). "현재 CM 에 대한 빌드" 및 "사용된 최종 빌드" 파라미터들의 비교가 매칭으로 되지 않으면 (즉, 결정 245 = 아니오), 프로세서는 도 6 을 참조하여 전술한 모바일 디바이스 (10) 를 재프로그래밍하도록 프로세스 흐름을 구현할 수도 있다 (단계 250). 일단 모바일 디바이스 (10) 가 선택된 서비스 제공자 어카운트에 대한 소프트웨어 빌드로 재프로그래밍되면, 프로세서 (191) 는 사용된 최종 빌드가 현재 선택된 서비스 제공자의 소프트웨어 빌드임을 나타내도록 "사용된 최종 빌드" 파라미터의 값을 세팅할 수도 있다 (단계 255). 일단 "사용된 최종 빌드" 파라미터의 새로운 값이 메모리에 저장되면, 프로세서 (191) 는 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다 (단계 155).
"현재 CM 에 대한 빌드" 및 "사용된 최종 빌드" 파라미터들의 비교가 매칭으로 되면 (즉, 결정 245 = 예), 프로세서 (191) 는 새로운 소프트웨어 빌드로 모바일 디바이스 (10) 를 재프로그래밍할 필요가 없고, 사전에 로딩된 소프트웨어 빌드는 통신을 계속해서 지원할 수도 있다. 그 결과, 프로세서 (191) 는 사용된 최종 빌드가 현재 선택된 서비스 제공자의 소프트웨어 빌드라는 것을 나타내도록 "사용된 최종 빌드" 파라미터의 값을 세팅할 수도 있다 (단계 255). 일단 "사용된 최종 빌드" 파라미터의 새로운 값이 메모리에 저장되면, 프로세서 (191) 는 다음 접속 관리자 론칭 요청 또는 상이한 서비스 제공자의 선택을 기다릴 수도 있다 (단계 155). 선택적인 실시형태에서, 프로세서 (191) 는 단계 255를 단순히 스키핑할 수도 있고, 다음 접속 관리자 론칭 요청, 상이한 서비스 제공자의 단계 또는 선택을 기다릴 수도 있다.
사용자가 모바일 디바이스 (10) 의 통신 능력들을 디스에이블링시킬 것을 선택할 때, 그 사용자는 임의의 현재 작동 중인 접속 관리자를 폐쇄시킬 수도 있다. 이러한 경우들에 있어서, 프로세서 (191) 는 현재 작동 중인 접속 관리자를 폐쇄시키고, "사용 중인 CM" 파라미터의 값을 "넌 (none)" 으로 세팅할 것이다.
전술한 실시형태들은 또한 도 16 에 도시된 바와 같은 다양한 서버 시스템들 중 임의의 것에서 구현될 수도 있다. 이러한 서버 (309) 는 일반적으로, 디스크드라이브 (363) 와 같은 대용량 비휘발성 메모리 및 휘발성 메모리 (362) 에 커플링되는 프로세서 (361) 를 포함한다. 프로세서 (361) 는 인터넷과 같은 네트워크 (365) 에 커플링된 고속 모뎀들 (364) 과 같은 하나 이상의 네트워크 인터페이스 회로들에 커플링된다. 컴퓨터 (360) 는 또한 프로세서 (361) 에 커플링된 콤팩트디스크 (CD) 드라이브 (366) 와 같은 휴대용 매체 판독기를 포함할 수도 있다.
당업자는 여기에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들을 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이들의 결합으로 구현할 수도 있음을 알 수 있다. 하드웨어와 소프트웨어의 이러한 대체 가능성을 분명히 설명하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들을 주로 그들의 기능의 관점에서 상술하였다. 그러한 기능이 하드웨어로 구현될지 소프트웨어로 구현될지는 전체 시스템에 부과된 특정한 애플리케이션 및 설계 제약조건들에 의존한다. 당업자는 설명된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 그러한 구현의 결정이 본 발명의 범주를 벗어나도록 하는 것으로 해석하지는 않아야 한다.
여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드디스크, 착탈형 디스크, CD-ROM, 또는 당업계에 알려진 임의의 다른 형태의 저장 매체 중 임의의 것일 수 있는 프로세서 판독가능 메모리에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수도 있다. ASIC 은 사용자 단말기 또는 모바일 디바이스 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 또는 모바일 디바이스 내에 개별 컴포넌트로서 상주할 수도 있다. 부가적으로, 일부 양태에 있어서, 방법 또는 알고리즘의 단계들 및/또는 액션들은, 컴퓨터 프로그램 제품에 통합될 수도 있는 머신 판독가능 매체 및/또는 컴퓨터 판독가능 매체 상에 코드들 및/또는 명령들의 하나 또는 임의의 조합 또는 세트로서 상주할 수도 있다.
개시되어 있는 실시형태들에 대한 상기의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 여기에서 개시된 원리 및 신규한 특징들과 부합하는 최광의 범위를 부여하려는 것이다.

Claims (45)

  1. 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드 (software build) 로 모바일 디바이스를 프로그래밍하는 방법으로서,
    서비스 제공자 어카운트 선택물을 수신하는 단계;
    선택된 서비스 제공자와의 어카운트가 활성화되는지를 판정하는 단계;
    상기 선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 빌드 파라미터들 및 세팅들을 비휘발성 메모리로부터 리트리브하는 (retrieve) 단계; 및
    상기 리트리브된 소프트웨어 빌드 파라미터들 및 세팅들을 이용하여, 상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하는 단계를 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  2. 제 1 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하는 상기 단계는,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터 (provisioning data) 를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 프로비저닝 데이터, 파일들 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 비휘발성 메모리에 저장하는 단계; 및
    상기 모바일 디바이스를 리세팅하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  3. 제 1 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하는 상기 단계는,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 비휘발성 메모리 내에 저장하는 단계;
    상기 모바일 디바이스를 리세팅하는 단계; 및
    상기 선택된 서비스 제공자에 대한 활성화 절차를 개시하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  4. 제 3 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드가 성공적으로 구현되었는지를 판정하는 단계;
    상기 소프트웨어 빌드가 성공적으로 구현되지 않았으면, 상기 소프트웨어 빌드를 구현하도록 하는 상기 단계들을 반복하는 단계; 및
    상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 세팅하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  5. 제 2 항에 있어서,
    상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  6. 제 5 항에 있어서,
    상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 상기 단계는,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못한 경우에는 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계; 및
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하지 않는 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  7. 제 6 항에 있어서,
    접속 실패 카운터 (fail to connect counter) 를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되는 경우에는 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면, 데이터 호출을 이행하려는 시도들을 반복하는 단계를 더 포함하고,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만 상기 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 상기 표시자를 리세팅하는 상기 단계가 수행되는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  8. 제 5 항에 있어서,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못한 경우에는 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계; 및
    기존의 모바일 디바이스 크리덴셜 값들을 메모리 내의 일시적 파일에 저장하는 단계;
    상기 데이터 호출 시도가 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자에 대한 상기 홈 네트워크의 외부에 위치하지 않는 경우, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 단계;
    어카운트 서버에 접촉하여 상기 선택된 서비스 제공자 어카운트가 액티브한지를 판정하는 단계;
    상기 선택된 서비스 제공자 어카운트가 액티브한 것으로 판정되면, 복구 루틴 (repair routine) 을 수행하는 단계; 및
    상기 선택된 서비스 제공자 어카운트가 상기 어카운트 서버에 의해 액티브하지 않은 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자 어카운트에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  9. 제 8 항에 있어서,
    접속 실패 카운터를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면, 데이터 호출을 이행하려는 시도들을 반복하는 단계를 더 포함하고,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 상기 단계가 수행되는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  10. 제 8 항에 있어서,
    상기 복구 루틴은,
    상기 선택된 서비스 제공자와의 상기 어카운트가 액티브한 것으로 판정되면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 선택된 서비스 제공자 어카운트 크리덴셜 값들과 비교하여, 상기 값들 사이에 불일치가 존재하는지를 판정하는 단계; 및
    불일치가 존재하면, 상기 공지된 작동 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 크리덴셜 값들로 변경하는 단계를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스를 프로그래밍하는 방법.
  11. 모바일 디바이스로서,
    서비스 제공자 어카운트 선택물을 수신하는 수단;
    선택된 서비스 제공자와의 어카운트가 활성화되는지를 판정하는 수단;
    선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 빌드 파라미터들 및 세팅들을 비휘발성 메모리로부터 리트리브하는 수단; 및
    상기 리트리브된 소프트웨어 빌드 파라미터들 및 세팅들을 이용하여 상기 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드를 구현하는 수단을 포함하는, 모바일 디바이스.
  12. 제 11 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하는 상기 수단은,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 수단;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 수단;
    다운로드 서비스를 리세팅하는 수단;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 수단;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 프로비저닝 데이터, 파일들 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 수단;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 비휘발성 메모리 내에 저장하는 수단; 및
    상기 모바일 디바이스를 리세팅하는 수단을 더 포함하는, 모바일 디바이스.
  13. 제 10 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하는 상기 수단은,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 수단;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 수단;
    다운로드 서비스를 리세팅하는 수단;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 수단;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 수단;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 비휘발성 메모리 내에 저장하는 수단;
    상기 모바일 디바이스를 리세팅하는 수단; 및
    상기 선택된 서비스 제공자에 대한 활성화 절차를 개시하는 수단을 더 포함하는, 모바일 디바이스.
  14. 제 13 항에 있어서,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드가 성공적으로 구현되었는지를 판정하는 수단;
    상기 소프트웨어 빌드가 성공적으로 구현되지 않았으면, 상기 소프트웨어 빌드를 구현하도록 하는 상기 단계들을 반복하는 수단; 및
    상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 세팅하는 수단을 더 포함하는, 모바일 디바이스.
  15. 제 12 항에 있어서,
    상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 수단을 더 포함하는, 모바일 디바이스.
  16. 제 15 항에 있어서,
    상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 상기 수단은,
    데이터 호출을 이행하려고 시도하는 수단;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 수단;
    상기 데이터 호출이 성공하지 못하면, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 수단;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 나타내는 수단;
    팩토리 디폴트 파라미터들을 리세팅하는 수단;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하지 않는 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 리세팅하는 수단을 더 포함하는, 모바일 디바이스.
  17. 제 16 항에 있어서,
    접속 실패 카운터를 제로로 리세팅하는 수단;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 수단;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 수단; 및
    상기 접속 실패 카운터가 상기 미리 결정된 수와 같지 않으면, 데이터 호출을 이행하려는 시도들을 반복하는 수단을 더 포함하고,
    상기 접속 실패 카운터가 미리 결정된 접속 시도 횟수와 같은 경우에만, 상기 팩토리 디폴트 파라미터들을 리세팅하는 상기 수단 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 상기 표시자를 리세팅하는 상기 수단이 그 동작을 수행하는, 모바일 디바이스.
  18. 제 15 항에 있어서,
    데이터 호출을 이행하려고 시도하는 수단;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 수단;
    상기 데이터 호출이 성공하지 못한 경우, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 수단;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 수단;
    기존의 모바일 디바이스 크리덴셜 값들을 메모리 내의 일시적 파일에 저장하는 수단;
    상기 데이터 호출 시도가 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자에 대한 상기 홈 네트워크의 외부에 위치하지 않으면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 수단;
    어카운트 서버와 접촉하여, 상기 선택된 서비스 제공자 어카운트가 액티브한지를 판정하는 수단;
    상기 선택된 서비스 제공자 어카운트가 액티브한 것으로 판정되면, 복구 루틴을 수행하는 수단;
    팩토리 디폴트 파라미터들을 리세팅하는 수단; 및
    상기 선택된 서비스 제공자 어카운트가 상기 어카운트 서버에 의해 액티브하지 않은 것으로 판정되면, 상기 선택된 서비스 제공자 어카운트에 대한 어카운트 활성화의 표시자를 리세팅하는 수단을 더 포함하는, 모바일 디바이스.
  19. 제 18 항에 있어서,
    접속 실패 카운터를 제로로 리세팅하는 수단;
    상기 데이터 호출이 성공하지 못하고, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 수단;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 수단; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면, 데이터 호출을 이행하려는 시도들을 반복하는 수단을 더 포함하고,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 상기 수단이 그 동작을 수행하는, 모바일 디바이스.
  20. 제 18 항에 있어서,
    상기 복구 루틴을 수행하는 상기 수단은,
    상기 선택된 서비스 제공자와의 어카운트가 액티브한 것으로 판정되면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 선택된 서비스 제공자 어카운트 크리덴셜 값들과 비교하여, 상기 값들 사이에 불일치가 존재하는지를 판정하는 수단; 및
    불일치가 존재하면, 상기 공지된 작동 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 크리덴셜 값들로 변경하는 수단을 더 포함하는, 모바일 디바이스.
  21. 모바일 디바이스로서,
    프로비저닝 데이터 버퍼를 포함하는 내부 메모리 유닛; 및
    상기 내부 메모리 유닛에 커플링되는 프로세서를 포함하고,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    서비스 제공자 어카운트 선택물을 수신하는 단계;
    선택된 서비스 제공자와의 어카운트가 활성화되는지를 판정하는 단계;
    선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 빌드 파라미터들 및 세팅들을 비휘발성 메모리로부터 리트리브하는 단계; 및
    상기 리트리브된 소프트웨어 빌드 파라미터들 및 세팅들을 이용하여 상기 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드를 구현하는 단계를 포함하는 단계들을 수행하도록 구성되는, 모바일 디바이스.
  22. 제 21 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 사전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 프로비저닝 데이터, 파일들 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터 및 세팅들을 상기 비휘발성 메모리에 저장하는 단계; 및
    상기 모바일 디바이스를 리세팅하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  23. 제 21 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 사전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 비휘발성 메모리 내에 저장하는 단계;
    상기 모바일 디바이스를 리세팅하는 단계; 및
    상기 선택된 서비스 제공자에 대한 활성화 절차를 개시하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  24. 제 23 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드가 성공적으로 구현되었는지를 판정하는 단계;
    상기 소프트웨어 빌드가 성공적으로 구현되지 않았으면, 상기 소프트웨어 빌드를 구현하도록 하는 단계들을 반복하는 단계; 및
    상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 세팅하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  25. 제 22 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여, 상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  26. 제 25 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못하면, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하지 않는 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  27. 제 26 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    접속 실패 카운터를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 위치하는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면 데이터 호출을 이행하려는 시도들을 반복하는 단계를 포함하는 추가 단계들을 수행하도록 구성되고,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 상기 표시자를 리세팅하는 상기 단계가 수행되는, 모바일 디바이스.
  28. 제 25 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못하면, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계;
    기존의 모바일 디바이스 크리덴셜 값들을 메모리 내의 일시적 파일에 저장하는 단계;
    상기 데이터 호출 시도가 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자에 대한 상기 홈 네트워크의 외부에 위치하지 않으면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 단계;
    어카운트 서버와 접촉하여 상기 선택된 서비스 제공자 어카운트가 액티브한지를 판정하는 단계;
    상기 선택된 서비스 제공자 어카운트가 액티브한 것으로 판정되면, 복구 루틴을 수행하는 단계; 및
    상기 선택된 서비스 제공자 어카운트가 상기 어카운트 서버에 의해 액티브하지 않은 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자 어카운트에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  29. 제 28 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    접속 실패 카운트를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면 데이터 호출을 이행하려는 시도들을 반복하는 단계를 포함하는 추가 단계들을 수행하도록 구성되고,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 상기 단계가 수행되는, 모바일 디바이스.
  30. 제 26 항에 있어서,
    상기 프로세서는, 소프트웨어 명령들을 이용하여,
    상기 선택된 서비스 제공자와의 어카운트가 액티브한 것으로 판정되면, 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 선택된 서비스 제공자 어카운트 크리덴셜 값들과 비교하여 상기 값들 사이에 불일치가 존재하는지를 판정하는 단계; 및
    불일치가 존재하면, 공지된 작동 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 크리덴셜 값들로 변경하는 단계를 포함하는 추가 단계들을 수행하도록 구성되는, 모바일 디바이스.
  31. 프로세서-실행가능 소프트웨어 명령들을 저장한 유형의 저장 매체 (tangible storage medium) 로서,
    상기 프로세서-실행가능 소프트웨어 명령들은, 프로세서로 하여금,
    서비스 제공자 어카운트 선택물을 수신하는 단계;
    선택된 서비스 제공자와의 어카운트가 활성화되는지를 판정하는 단계;
    선택된 서비스 제공자 어카운트에 대응하는 소프트웨어 파라미터들 및 세팅들을 비휘발성 메모리로부터 리트리브하는 단계; 및
    상기 리트리브된 소프트웨어 빌드 파라미터들 및 세팅들을 이용하여 상기 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드를 구현하는 단계를 포함하는 단계들을 수행하게 하도록 구성되는, 유형의 저장 매체.
  32. 제 31 항에 있어서,
    상기 유형의 저장 매체는,
    상기 프로세서로 하여금,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 프로비저닝 데이터, 파일들 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 비휘발성 메모리 내에 저장하는 단계; 및
    모바일 디바이스를 리세팅하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  33. 제 31 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    상기 선택된 서비스 제공자 어카운트에 대응하는 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 메모리로부터 리트리브하는 단계;
    상기 애플리케이션 프로그래밍 인터페이스 및 동적으로 링크된 라이브러리를 구현하는 단계;
    다운로드 서비스를 리세팅하는 단계;
    모든 이전 파라미터들, 세팅들, 파일들 및 프로비저닝 데이터를 연장된 파일 서비스로부터 삭제하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 연장된 파일 서비스 내에 기록하는 단계;
    상기 리트리브된 소프트웨어 빌드 파라미터들, 파일들, 프로비저닝 데이터, 및 세팅들을 상기 비휘발성 메모리 내에 저장하는 단계;
    모바일 디바이스를 리세팅하는 단계; 및
    상기 선택된 서비스 제공자에 대한 활성화 절차를 개시하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  34. 제 33 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드가 성공적으로 구현되었는지를 판정하는 단계;
    상기 소프트웨어 빌드가 성공적으로 구현되지 않았으면, 상기 소프트웨어 빌드를 구현하도록 하는 단계들을 반복하는 단계; 및
    상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 세팅하는 단계를 포함하는 추가 단계들을 수행하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  35. 제 32 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금, 상기 선택된 서비스 제공자 어카운트의 사전 활성화를 확인하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  36. 제 35 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못하면, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하지 않는 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  37. 제 36 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    접속 실패 카운터를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 위치하는 것으로 판정되면, 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계;
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면, 데이터 호출을 이행하려는 시도들을 반복하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 가지며,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자에 대한 어카운트 활성화의 상기 표시자를 리세팅하는 상기 단계가 수행되는, 유형의 저장 매체.
  38. 제 35 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    데이터 호출을 이행하려고 시도하는 단계;
    상기 데이터 호출 시도가 성공적이었는지를 판정하는 단계;
    상기 데이터 호출이 성공하지 못한 경우, 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 홈 네트워크 내에 위치하는지를 판정하는 단계;
    상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크의 외부에 위치하는 것으로 판정되면, 로밍 조건을 표시하는 단계;
    기존의 모바일 디바이스 크리덴셜 값들을 메모리 내의 일시적 파일에 저장하는 단계;
    상기 데이터 호출 시도가 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자에 대한 상기 홈 네트워크의 외부에 위치하지 않으면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지의 작동 크리덴셜 값들로 변경하는 단계;
    어카운트 서버와 접촉하여, 상기 선택된 서비스 제공자 어카운트가 액티브한지를 판정하는 단계;
    상기 선택된 서비스 제공자 어카운트가 액티브한 것으로 판정되면 복구 루틴을 수행하는 단계; 및
    상기 선택된 서비스 제공자 어카운트가 상기 어카운트 서버에 의해 액티브하지 않은 것으로 판정되면, 팩토리 디폴트 파라미터들 및 상기 선택된 서비스 제공자 어카운트에 대한 어카운트 활성화의 표시자를 리세팅하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  39. 제 38 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    접속 실패 카운터를 제로로 리세팅하는 단계;
    상기 데이터 호출이 성공하지 못하고 상기 모바일 디바이스가 상기 선택된 서비스 제공자 어카운트에 대한 상기 홈 네트워크 내에 있는 것으로 판정되면 상기 접속 실패 카운터를 증분시키는 단계;
    상기 접속 실패 카운터가 미리 결정된 수와 같은지를 판정하는 단계; 및
    접속 시도 횟수가 상기 미리 결정된 수와 같지 않으면 데이터 호출을 이행하려는 시도들을 반복하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 가지며,
    상기 접속 실패 카운터가 상기 미리 결정된 접속 시도 횟수와 같은 경우에만 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자에 대한 공지된 작동 크리덴셜 값들로 변경하는 상기 단계가 수행되는, 유형의 저장 매체.
  40. 제 38 항에 있어서,
    상기 유형의 저장 매체는, 프로세서로 하여금,
    상기 선택된 서비스 제공자와의 어카운터가 액티브한 것으로 판정되면, 상기 기존의 모바일 디바이스 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 선택된 서비스 제공자 어카운트 크리덴셜 값들과 비교하여, 상기 값들 사이에 불일치가 존재하는지를 판정하는 단계; 및
    불일치가 존재하면, 상기 공지된 작동 크리덴셜 값들을 상기 선택된 서비스 제공자의 HLR/AAA 서버에 저장된 크리덴셜 값들로 변경하는 단계를 포함하는 추가 단계들을 수행하게 하도록 구성된 프로세서-실행가능 소프트웨어 명령들을 갖는, 유형의 저장 매체.
  41. 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템으로서,
    소프트웨어 정의 무선 기반 칩셋 통신 모듈을 포함하고, 상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드를 구현하도록 구성되는 적어도 하나의 모바일 디바이스,
    상기 적어도 하나의 모바일 디바이스 상에 구현되는 각각의 소프트웨어 빌드에 관한 모든 필요한 파라미터들 및 세팅들을 저장하도록 구성되는 어카운트 서버; 및
    상기 적어도 하나의 모바일 디바이스를 상기 어카운트 서버와 접속시키는 통신 네트워크를 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템.
  42. 제 41 항에 있어서,
    상기 통신 네트워크를 통해 상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드에 관한 모든 필요한 파라미터들 및 세팅들을 상기 적어도 하나의 모바일 디바이스에게 제공하도록 구성되는 적어도 하나의 선택된 서비스 제공자 프로비저닝 서버를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템.
  43. 제 42 항에 있어서,
    상기 적어도 하나의 선택된 서비스 제공자 프로비저닝 서버는, 또한, 상기 통신 네트워크를 통해 상기 어카운트 서버에 접속되고, 상기 적어도 하나의 모바일 디바이스에 대하여 상기 선택된 서비스 제공자 어카운트를 지원하는 상기 소프트웨어 빌드에 관한 모든 필요한 파라미터들 및 세팅들을 상기 어카운트 서버에 제공하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템.
  44. 제 41 항에 있어서,
    상기 어카운트 서버와 통신하며, 상기 소프트웨어 정의 무선 기반 칩셋 통신 모듈을 포함하는 상기 적어도 하나의 모바일 디바이스 각각에게로 할당된 각각의 고유한 일련 번호의 리스팅을 보유하고 상기 리스팅을 상기 어카운트 서버에게 전달하도록 구성된 제조자 서버를 더 포함하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템.
  45. 제 44 항에 있어서,
    상기 어카운트 서버는, 소프트웨어 정의 무선 기반 칩셋 통신 모듈들을 포함하는 상기 적어도 하나의 모바일 디바이스들 및 상기 적어도 하나의 모바일 디바이스들 각각에서 구현되는 각각의 소프트웨어 빌드에 관한 모든 필요한 파라미터들 및 세팅들의 인덱싱된 데이터 테이블을 보유하는, 선택된 서비스 제공자 어카운트를 지원하는 소프트웨어 빌드로 모바일 디바이스들을 프로그래밍하기 위한 시스템.
KR1020117030306A 2009-05-17 2010-05-17 다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치 KR101417241B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/467,281 2009-05-17
US12/467,281 US8417231B2 (en) 2009-05-17 2009-05-17 Method and apparatus for programming a mobile device with multiple service accounts
PCT/US2010/035149 WO2010135257A1 (en) 2009-05-17 2010-05-17 Method and apparatus for programming a mobile device with multiple service accounts

Publications (2)

Publication Number Publication Date
KR20120016285A true KR20120016285A (ko) 2012-02-23
KR101417241B1 KR101417241B1 (ko) 2014-07-16

Family

ID=42490883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117030306A KR101417241B1 (ko) 2009-05-17 2010-05-17 다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치

Country Status (8)

Country Link
US (1) US8417231B2 (ko)
EP (1) EP2433438B1 (ko)
JP (1) JP5613762B2 (ko)
KR (1) KR101417241B1 (ko)
CN (1) CN102422658B (ko)
ES (1) ES2767876T3 (ko)
HU (1) HUE047345T2 (ko)
WO (1) WO2010135257A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523259B1 (ko) * 2013-07-08 2015-06-02 연세대학교 산학협력단 홈 네트워크 서비스 제공 방법 및 장치
KR20160091384A (ko) * 2013-11-27 2016-08-02 노르딕 세미컨덕터 에이에스에이 집적 회로 무선 장치

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2068597A1 (en) * 2007-12-07 2009-06-10 Gemalto SA A method for loading credentials into a mobile communication device such as a mobile phone.
US9170870B1 (en) 2013-08-27 2015-10-27 Sprint Communications Company L.P. Development and testing of payload receipt by a portable electronic device
US8453140B2 (en) * 2009-04-28 2013-05-28 Qualcomm Incorporated Method for generically handling carrier specific provisioning for computer cellular wireless cards
US8417234B2 (en) 2009-05-17 2013-04-09 Qualcomm Incorporated Method and apparatus for tracking the programming of a mobile device with multiple service accounts
US8756256B2 (en) * 2010-05-26 2014-06-17 Qualcomm Incorporated Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts
US8249649B2 (en) * 2010-07-02 2012-08-21 Google Inc. Mobile device configured to operate on multiple different networks
US8633896B2 (en) * 2010-12-15 2014-01-21 Blackberry Limited Communication device
US8924489B2 (en) 2011-01-05 2014-12-30 Apple Inc. Message push notification client improvements for multi-user devices
WO2012106330A1 (en) 2011-01-31 2012-08-09 Synchronoss Technologies, Inc. System and method for host and os agnostic management of connected devices through network controlled state alteration
US8850016B1 (en) * 2011-03-23 2014-09-30 Sprint Spectrum L.P. Provisionable-services clearinghouse for authorizing and tracking a mobile device's access to multiple types of services and multiple service providers
US8612967B1 (en) 2011-05-31 2013-12-17 Sprint Communications Company L.P. Loading branded media outside system partition
EP2560434A1 (en) * 2011-08-19 2013-02-20 Gemalto SA Method for switching a subscription from a first MNO to a second MNO
KR101909260B1 (ko) * 2011-11-25 2018-10-18 주식회사 케이티 어플리케이션의 미디어 칩셋 연동 방법, 그리고 이를 구현한 사용자 단말
US8666383B1 (en) 2011-12-23 2014-03-04 Sprint Communications Company L.P. Automated branding of generic applications
US10455071B2 (en) 2012-05-09 2019-10-22 Sprint Communications Company L.P. Self-identification of brand and branded firmware installation in a generic electronic device
US8649788B1 (en) * 2012-08-13 2014-02-11 Sprint Communications Company L.P. Dynamic wireless transceiver selection in a wireless communication device
US9198027B2 (en) 2012-09-18 2015-11-24 Sprint Communications Company L.P. Generic mobile devices customization framework
US9615401B2 (en) * 2012-12-11 2017-04-04 Qualcomm Incorporated Methods and apparatus for updating a device configuration
ES2647088T3 (es) * 2012-12-21 2017-12-19 Giesecke+Devrient Mobile Security Gmbh Procedimientos y dispositivos para la gestión de suscripciones OTA
US8909291B1 (en) 2013-01-18 2014-12-09 Sprint Communications Company L.P. Dynamic remotely managed SIM profile
US9100769B2 (en) 2013-02-08 2015-08-04 Sprint Communications Company L.P. System and method of storing service brand packages on a mobile device
US9100819B2 (en) 2013-02-08 2015-08-04 Sprint-Communications Company L.P. System and method of provisioning and reprovisioning a mobile device based on self-locating
US9549009B1 (en) 2013-02-08 2017-01-17 Sprint Communications Company L.P. Electronic fixed brand labeling
US9204286B1 (en) 2013-03-15 2015-12-01 Sprint Communications Company L.P. System and method of branding and labeling a mobile device
US9042877B1 (en) * 2013-05-21 2015-05-26 Sprint Communications Company L.P. System and method for retrofitting a branding framework into a mobile communication device
US9280483B1 (en) 2013-05-22 2016-03-08 Sprint Communications Company L.P. Rebranding a portable electronic device while maintaining user data
US9532211B1 (en) 2013-08-15 2016-12-27 Sprint Communications Company L.P. Directing server connection based on location identifier
US9161209B1 (en) * 2013-08-21 2015-10-13 Sprint Communications Company L.P. Multi-step mobile device initiation with intermediate partial reset
US9204239B1 (en) 2013-08-27 2015-12-01 Sprint Communications Company L.P. Segmented customization package within distributed server architecture
US9125037B2 (en) 2013-08-27 2015-09-01 Sprint Communications Company L.P. System and methods for deferred and remote device branding
US9143924B1 (en) 2013-08-27 2015-09-22 Sprint Communications Company L.P. Segmented customization payload delivery
US10506398B2 (en) 2013-10-23 2019-12-10 Sprint Communications Company Lp. Implementation of remotely hosted branding content and customizations
US9743271B2 (en) 2013-10-23 2017-08-22 Sprint Communications Company L.P. Delivery of branding content and customizations to a mobile communication device
US9301081B1 (en) 2013-11-06 2016-03-29 Sprint Communications Company L.P. Delivery of oversized branding elements for customization
US9363622B1 (en) 2013-11-08 2016-06-07 Sprint Communications Company L.P. Separation of client identification composition from customization payload to original equipment manufacturer layer
US9161325B1 (en) 2013-11-20 2015-10-13 Sprint Communications Company L.P. Subscriber identity module virtualization
US9392395B1 (en) 2014-01-16 2016-07-12 Sprint Communications Company L.P. Background delivery of device configuration and branding
US9603009B1 (en) 2014-01-24 2017-03-21 Sprint Communications Company L.P. System and method of branding a device independent of device activation
US9420496B1 (en) * 2014-01-24 2016-08-16 Sprint Communications Company L.P. Activation sequence using permission based connection to network
US9681251B1 (en) 2014-03-31 2017-06-13 Sprint Communications Company L.P. Customization for preloaded applications
US9426641B1 (en) 2014-06-05 2016-08-23 Sprint Communications Company L.P. Multiple carrier partition dynamic access on a mobile device
US9307400B1 (en) 2014-09-02 2016-04-05 Sprint Communications Company L.P. System and method of efficient mobile device network brand customization
US9571339B2 (en) 2014-10-30 2017-02-14 Amazon Technologies, Inc. Configuring an electronic device for wireless communications
US9992326B1 (en) 2014-10-31 2018-06-05 Sprint Communications Company L.P. Out of the box experience (OOBE) country choice using Wi-Fi layer transmission
US9398462B1 (en) 2015-03-04 2016-07-19 Sprint Communications Company L.P. Network access tiered based on application launcher installation
US9357378B1 (en) 2015-03-04 2016-05-31 Sprint Communications Company L.P. Subscriber identity module (SIM) card initiation of custom application launcher installation on a mobile communication device
US20170337390A1 (en) * 2016-05-18 2017-11-23 Qualcomm Incorporated Data protection at factory reset
US9913132B1 (en) 2016-09-14 2018-03-06 Sprint Communications Company L.P. System and method of mobile phone customization based on universal manifest
US10021240B1 (en) 2016-09-16 2018-07-10 Sprint Communications Company L.P. System and method of mobile phone customization based on universal manifest with feature override
US10306433B1 (en) 2017-05-01 2019-05-28 Sprint Communications Company L.P. Mobile phone differentiated user set-up
US10546444B2 (en) 2018-06-21 2020-01-28 Capital One Services, Llc Systems and methods for secure read-only authentication
KR20210069033A (ko) 2018-10-02 2021-06-10 캐피탈 원 서비시즈, 엘엘씨 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법
US10797882B2 (en) 2018-10-02 2020-10-06 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
SG11202101171VA (en) 2018-10-02 2021-03-30 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US10615981B1 (en) 2018-10-02 2020-04-07 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10909527B2 (en) 2018-10-02 2021-02-02 Capital One Services, Llc Systems and methods for performing a reissue of a contactless card
CA3115084A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US11210664B2 (en) 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072413A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10579998B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10783519B2 (en) 2018-10-02 2020-09-22 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10554411B1 (en) 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10949520B2 (en) 2018-10-02 2021-03-16 Capital One Services, Llc Systems and methods for cross coupling risk analytics and one-time-passcodes
US10607214B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3115252A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10686603B2 (en) 2018-10-02 2020-06-16 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072537A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10505738B1 (en) 2018-10-02 2019-12-10 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10748138B2 (en) 2018-10-02 2020-08-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10542036B1 (en) 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
US10771254B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for email-based card activation
US10565587B1 (en) 2018-10-02 2020-02-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10582386B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10489781B1 (en) 2018-10-02 2019-11-26 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771253B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10511443B1 (en) 2018-10-02 2019-12-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072474A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3113590A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072583A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for establishing identity for order pick up
US10664830B1 (en) 2018-12-18 2020-05-26 Capital One Services, Llc Devices and methods for selective contactless communication
US11361302B2 (en) 2019-01-11 2022-06-14 Capital One Services, Llc Systems and methods for touch screen interface interaction using a card overlay
US11037136B2 (en) 2019-01-24 2021-06-15 Capital One Services, Llc Tap to autofill card data
US10510074B1 (en) 2019-02-01 2019-12-17 Capital One Services, Llc One-tap payment using a contactless card
US11120453B2 (en) 2019-02-01 2021-09-14 Capital One Services, Llc Tap card to securely generate card data to copy to clipboard
US10467622B1 (en) 2019-02-01 2019-11-05 Capital One Services, Llc Using on-demand applications to generate virtual numbers for a contactless card to securely autofill forms
US10425129B1 (en) 2019-02-27 2019-09-24 Capital One Services, Llc Techniques to reduce power consumption in near field communication systems
US10523708B1 (en) 2019-03-18 2019-12-31 Capital One Services, Llc System and method for second factor authentication of customer support calls
US10643420B1 (en) 2019-03-20 2020-05-05 Capital One Services, Llc Contextual tapping engine
US10984416B2 (en) 2019-03-20 2021-04-20 Capital One Services, Llc NFC mobile currency transfer
US10535062B1 (en) 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US10438437B1 (en) 2019-03-20 2019-10-08 Capital One Services, Llc Tap to copy data to clipboard via NFC
US10970712B2 (en) 2019-03-21 2021-04-06 Capital One Services, Llc Delegated administration of permissions using a contactless card
US10467445B1 (en) 2019-03-28 2019-11-05 Capital One Services, Llc Devices and methods for contactless card alignment with a foldable mobile device
US11521262B2 (en) 2019-05-28 2022-12-06 Capital One Services, Llc NFC enhanced augmented reality information overlays
US10516447B1 (en) 2019-06-17 2019-12-24 Capital One Services, Llc Dynamic power levels in NFC card communications
US10871958B1 (en) 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
US11694187B2 (en) 2019-07-03 2023-07-04 Capital One Services, Llc Constraining transactional capabilities for contactless cards
US11392933B2 (en) 2019-07-03 2022-07-19 Capital One Services, Llc Systems and methods for providing online and hybridcard interactions
US12086852B2 (en) 2019-07-08 2024-09-10 Capital One Services, Llc Authenticating voice transactions with payment card
US10713649B1 (en) 2019-07-09 2020-07-14 Capital One Services, Llc System and method enabling mobile near-field communication to update display on a payment card
US10885514B1 (en) 2019-07-15 2021-01-05 Capital One Services, Llc System and method for using image data to trigger contactless card transactions
US10498401B1 (en) 2019-07-15 2019-12-03 Capital One Services, Llc System and method for guiding card positioning using phone sensors
US10832271B1 (en) 2019-07-17 2020-11-10 Capital One Services, Llc Verified reviews using a contactless card
US10733601B1 (en) 2019-07-17 2020-08-04 Capital One Services, Llc Body area network facilitated authentication or payment authorization
US11182771B2 (en) 2019-07-17 2021-11-23 Capital One Services, Llc System for value loading onto in-vehicle device
US11521213B2 (en) 2019-07-18 2022-12-06 Capital One Services, Llc Continuous authentication for digital services based on contactless card positioning
US10506426B1 (en) 2019-07-19 2019-12-10 Capital One Services, Llc Techniques for call authentication
US10541995B1 (en) 2019-07-23 2020-01-21 Capital One Services, Llc First factor contactless card authentication system and method
CN114746913A (zh) 2019-10-02 2022-07-12 第一资本服务有限责任公司 使用非接触式传统磁条数据的客户端设备认证
EP3839789B1 (en) * 2019-12-20 2023-06-28 Barclays Execution Services Limited Secure data leakage control in a third party cloud computing environment
US10885410B1 (en) 2019-12-23 2021-01-05 Capital One Services, Llc Generating barcodes utilizing cryptographic techniques
US10657754B1 (en) 2019-12-23 2020-05-19 Capital One Services, Llc Contactless card and personal identification system
US10733283B1 (en) 2019-12-23 2020-08-04 Capital One Services, Llc Secure password generation and management using NFC and contactless smart cards
US11651361B2 (en) 2019-12-23 2023-05-16 Capital One Services, Llc Secure authentication based on passport data stored in a contactless card
US11113685B2 (en) 2019-12-23 2021-09-07 Capital One Services, Llc Card issuing with restricted virtual numbers
US11615395B2 (en) 2019-12-23 2023-03-28 Capital One Services, Llc Authentication for third party digital wallet provisioning
US10862540B1 (en) 2019-12-23 2020-12-08 Capital One Services, Llc Method for mapping NFC field strength and location on mobile devices
US10853795B1 (en) 2019-12-24 2020-12-01 Capital One Services, Llc Secure authentication based on identity data stored in a contactless card
US11200563B2 (en) 2019-12-24 2021-12-14 Capital One Services, Llc Account registration using a contactless card
US10664941B1 (en) 2019-12-24 2020-05-26 Capital One Services, Llc Steganographic image encoding of biometric template information on a card
US10909544B1 (en) 2019-12-26 2021-02-02 Capital One Services, Llc Accessing and utilizing multiple loyalty point accounts
US10757574B1 (en) 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US11038688B1 (en) 2019-12-30 2021-06-15 Capital One Services, Llc Techniques to control applets for contactless cards
US10860914B1 (en) 2019-12-31 2020-12-08 Capital One Services, Llc Contactless card and method of assembly
US11455620B2 (en) 2019-12-31 2022-09-27 Capital One Services, Llc Tapping a contactless card to a computing device to provision a virtual number
US11210656B2 (en) 2020-04-13 2021-12-28 Capital One Services, Llc Determining specific terms for contactless card activation
US10861006B1 (en) 2020-04-30 2020-12-08 Capital One Services, Llc Systems and methods for data access control using a short-range transceiver
US11030339B1 (en) 2020-04-30 2021-06-08 Capital One Services, Llc Systems and methods for data access control of personal user data using a short-range transceiver
US10915888B1 (en) 2020-04-30 2021-02-09 Capital One Services, Llc Contactless card with multiple rotating security keys
US11222342B2 (en) 2020-04-30 2022-01-11 Capital One Services, Llc Accurate images in graphical user interfaces to enable data transfer
US11823175B2 (en) 2020-04-30 2023-11-21 Capital One Services, Llc Intelligent card unlock
US10963865B1 (en) 2020-05-12 2021-03-30 Capital One Services, Llc Augmented reality card activation experience
US11063979B1 (en) 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
US11100511B1 (en) 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
US11062098B1 (en) 2020-08-11 2021-07-13 Capital One Services, Llc Augmented reality information display and interaction via NFC based authentication
US11165586B1 (en) 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
US11482312B2 (en) 2020-10-30 2022-10-25 Capital One Services, Llc Secure verification of medical status using a contactless card
US11373169B2 (en) 2020-11-03 2022-06-28 Capital One Services, Llc Web-based activation of contactless cards
US11216799B1 (en) 2021-01-04 2022-01-04 Capital One Services, Llc Secure generation of one-time passcodes using a contactless card
US11682012B2 (en) 2021-01-27 2023-06-20 Capital One Services, Llc Contactless delivery systems and methods
US11687930B2 (en) 2021-01-28 2023-06-27 Capital One Services, Llc Systems and methods for authentication of access tokens
US11792001B2 (en) 2021-01-28 2023-10-17 Capital One Services, Llc Systems and methods for secure reprovisioning
US11562358B2 (en) 2021-01-28 2023-01-24 Capital One Services, Llc Systems and methods for near field contactless card communication and cryptographic authentication
US11438329B2 (en) 2021-01-29 2022-09-06 Capital One Services, Llc Systems and methods for authenticated peer-to-peer data transfer using resource locators
US11777933B2 (en) 2021-02-03 2023-10-03 Capital One Services, Llc URL-based authentication for payment cards
US11637826B2 (en) 2021-02-24 2023-04-25 Capital One Services, Llc Establishing authentication persistence
US11245438B1 (en) 2021-03-26 2022-02-08 Capital One Services, Llc Network-enabled smart apparatus and systems and methods for activating and provisioning same
US11935035B2 (en) 2021-04-20 2024-03-19 Capital One Services, Llc Techniques to utilize resource locators by a contactless card to perform a sequence of operations
US11961089B2 (en) 2021-04-20 2024-04-16 Capital One Services, Llc On-demand applications to extend web services
US11902442B2 (en) 2021-04-22 2024-02-13 Capital One Services, Llc Secure management of accounts on display devices using a contactless card
US11354555B1 (en) 2021-05-04 2022-06-07 Capital One Services, Llc Methods, mediums, and systems for applying a display to a transaction card
US12041172B2 (en) 2021-06-25 2024-07-16 Capital One Services, Llc Cryptographic authentication to control access to storage devices
US12061682B2 (en) 2021-07-19 2024-08-13 Capital One Services, Llc System and method to perform digital authentication using multiple channels of communication
US12062258B2 (en) 2021-09-16 2024-08-13 Capital One Services, Llc Use of a payment card to unlock a lock
US11991525B2 (en) 2021-12-02 2024-05-21 T-Mobile Usa, Inc. Wireless device access and subsidy control
US12069173B2 (en) 2021-12-15 2024-08-20 Capital One Services, Llc Key recovery based on contactless card authentication
US12124903B2 (en) 2023-03-16 2024-10-22 Capital One Services, Llc Card with a time-sensitive element and systems and methods for implementing the same

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI106902B (fi) 1992-02-28 2001-04-30 Nokia Networks Oy Radiopuhelin
US5564020A (en) * 1994-06-30 1996-10-08 Compaq Computer Corporation Apparatus for reducing interference between a computer device and a radio transceiver utilizing separated units with an infrared link
GB2292047B (en) 1994-07-28 1998-09-16 Motorola Ltd Communications system
DE19543843C2 (de) 1995-11-24 2001-02-08 Acer Peripherals Inc Verfahren zur Aktualisierung der Software in einem mikrocomputergestützten Telefon
US5887254A (en) * 1996-04-26 1999-03-23 Nokia Mobile Phones Limited Methods and apparatus for updating the software of a mobile terminal using the air interface
US6876295B1 (en) * 1998-12-16 2005-04-05 Symbol Technologies, Inc. Wireless communication devices configurable via passive tags
US6975632B2 (en) * 1999-03-15 2005-12-13 Cisco Technology, Inc. Multi-service architecture with any port any service (APAS) hardware platform
KR20010050212A (ko) 1999-09-13 2001-06-15 스테븐 디.피터스 메모리 카드에 기록된 파일에 대한 접근 제어 시스템
US6829222B2 (en) * 2000-04-25 2004-12-07 Board Of Regents The University Of Texas System Clusterhead selection in wireless ad hoc networks
US6880086B2 (en) * 2000-05-20 2005-04-12 Ciena Corporation Signatures for facilitating hot upgrades of modular software components
GB0103918D0 (en) * 2001-02-16 2001-04-04 Pathfinder Tech Resources Ltd Mobile telephone operation
GB2386504B (en) * 2002-03-12 2005-03-02 Toshiba Res Europ Ltd Alternative radio system monitoring
JP2004064289A (ja) * 2002-07-26 2004-02-26 Ntt Docomo Inc 複数無線通信システム対応の通信端末、ソフトウェア送信サーバ及びicカード書き込み装置
EP2317736A3 (en) 2002-10-07 2011-07-06 Panasonic Corporation Communication apparatus and reconfiguration method
AU2003284292A1 (en) * 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US20040230965A1 (en) * 2003-02-28 2004-11-18 Harri Okkonen Mobile handset network that facilitates interaction between a generic intelligent responsive agent and a service broker server
US7139372B2 (en) * 2003-03-07 2006-11-21 July Systems, Inc Authorized distribution of digital content over mobile networks
EP1473845A1 (en) 2003-04-29 2004-11-03 Sony Ericsson Mobile Communications AB Front end of a multi-standard two-channel direct-conversion quadrature receiver
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
US20050010916A1 (en) * 2003-05-24 2005-01-13 Hagen David A. System for providing software application updates to multiple clients on a network
US7359698B2 (en) * 2003-09-08 2008-04-15 Kyocera Wireless Corp. Systems and methods for enhanced over-the-air programming
US20050055689A1 (en) * 2003-09-10 2005-03-10 Abfalter Scott A. Software management for software defined radio in a distributed network
US7305090B1 (en) * 2003-09-12 2007-12-04 Sprint Spectrum L.P. Method and system for use of common provisioning data to activate cellular wireless devices
US7565650B2 (en) * 2003-10-23 2009-07-21 International Business Machines Corporation Method, apparatus and computer program product for deploying software via post-load images
US7461374B1 (en) * 2003-12-01 2008-12-02 Cisco Technology, Inc. Dynamic installation and activation of software packages in a distributed networking device
US7260382B1 (en) * 2004-09-21 2007-08-21 Sprint Spectrum L.P. Method and system for customizing a wireless device's user-interface based on which vendor distributed the wireless device
US7200390B1 (en) * 2004-12-30 2007-04-03 Cellco Partnership Device software update transport and download
US7516206B2 (en) * 2005-01-28 2009-04-07 Cassatt Corporation Management of software images for computing nodes of a distributed computing system
JP2006270910A (ja) * 2005-02-22 2006-10-05 Mitsubishi Electric Corp ソフトウェア無線携帯電話通信システム及びソフトウェア無線携帯電話端末
US7355509B2 (en) * 2005-02-25 2008-04-08 Iwapi Inc. Smart modem device for vehicular and roadside applications
US20060203722A1 (en) * 2005-03-14 2006-09-14 Nokia Corporation System and method for managing performance of mobile terminals via remote diagnostics
US20060221918A1 (en) * 2005-04-01 2006-10-05 Hitachi, Ltd. System, method and computer program product for providing content to a remote device
JP2006309533A (ja) * 2005-04-28 2006-11-09 Hitachi Kokusai Electric Inc 分散処理プログラム
JP2006331307A (ja) * 2005-05-30 2006-12-07 Hitachi Kokusai Electric Inc 分散システム
CN101278260B (zh) * 2005-06-07 2012-07-18 威睿公司 使软件程序免于弱点和攻击的约束注入方法
DE602005018921D1 (de) 2005-09-01 2010-03-04 France Telecom Personalisierung von Mobilstationen
WO2007080559A2 (en) * 2006-01-16 2007-07-19 Zlango Ltd. Iconic communication
US20080266595A1 (en) * 2006-09-11 2008-10-30 Christopher Wright Independently-addressable cellular wireless digital network-based fax machine
KR20080052050A (ko) * 2006-12-07 2008-06-11 한국전자통신연구원 에스디알 단말기와 이의 무선 데이터 서비스 방법
US7950045B2 (en) * 2006-12-13 2011-05-24 Cellco Partnership Techniques for managing security in next generation communication networks
US8150425B1 (en) * 2007-03-16 2012-04-03 At&T Mobility Ii Llc Systems and methods for merchandising new offers to mobile telephone users based on changes to the mobile telephone's components
JP4842183B2 (ja) * 2007-03-20 2011-12-21 Kddi株式会社 ソフトウェア無線端末および端末管理装置
US8839221B2 (en) * 2007-09-10 2014-09-16 Moka5, Inc. Automatic acquisition and installation of software upgrades for collections of virtual machines
US7934083B2 (en) * 2007-09-14 2011-04-26 Kevin Norman Taylor Configurable access kernel
US20090075698A1 (en) * 2007-09-14 2009-03-19 Zhimin Ding Removable Card And A Mobile Wireless Communication Device
US8189549B2 (en) * 2007-10-22 2012-05-29 T-Mobile Usa, Inc. System and method for indicating a subscriber's zone within converged telecommunications networks
US20090215449A1 (en) * 2008-02-26 2009-08-27 Netanel Avner System and Method for Virtual Roaming of Mobile Communication Devices
WO2010102259A2 (en) * 2009-03-06 2010-09-10 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices
US8453140B2 (en) * 2009-04-28 2013-05-28 Qualcomm Incorporated Method for generically handling carrier specific provisioning for computer cellular wireless cards
US8417234B2 (en) * 2009-05-17 2013-04-09 Qualcomm Incorporated Method and apparatus for tracking the programming of a mobile device with multiple service accounts
US8966101B2 (en) * 2009-08-10 2015-02-24 Sling Media Pvt Ltd Systems and methods for updating firmware over a network
US8756256B2 (en) * 2010-05-26 2014-06-17 Qualcomm Incorporated Method and systems for the management of non volatile items and provisioning files for a communication device with multiple service accounts

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523259B1 (ko) * 2013-07-08 2015-06-02 연세대학교 산학협력단 홈 네트워크 서비스 제공 방법 및 장치
KR20160091384A (ko) * 2013-11-27 2016-08-02 노르딕 세미컨덕터 에이에스에이 집적 회로 무선 장치

Also Published As

Publication number Publication date
HUE047345T2 (hu) 2020-04-28
EP2433438B1 (en) 2019-10-23
WO2010135257A1 (en) 2010-11-25
US8417231B2 (en) 2013-04-09
CN102422658A (zh) 2012-04-18
ES2767876T3 (es) 2020-06-18
KR101417241B1 (ko) 2014-07-16
CN102422658B (zh) 2014-10-08
JP5613762B2 (ja) 2014-10-29
JP2012527206A (ja) 2012-11-01
EP2433438A1 (en) 2012-03-28
US20100291898A1 (en) 2010-11-18

Similar Documents

Publication Publication Date Title
KR101417241B1 (ko) 다수의 서비스 어카운트들을 갖는 모바일 디바이스를 프로그래밍하는 방법 및 장치
US8417234B2 (en) Method and apparatus for tracking the programming of a mobile device with multiple service accounts
US10334443B2 (en) Method for configuring profile of subscriber authenticating module embedded and installed in terminal device, and apparatus using same
US10652731B2 (en) Method and system for downloading and installing UICC terminal profile on a terminal from a profile manager
EP2578005B1 (en) Method and apparatus for the management of non volatile items and provisioning files for a communication device with multiple service accounts
US8204475B2 (en) Method and apparatus for preventing unauthorized use of computing devices
US8649789B2 (en) Method and apparatus for switching virtual SIM service contracts when roaming
KR102082854B1 (ko) 업데이트된 프로파일을 다운로드하기 위한 방법, 서버들 및 시스템
KR20170041597A (ko) 통신 시스템에서 프로파일을 원격으로 제공하는 방법 및 장치
JP2018510517A (ja) ダイナミック加入者識別モジュール
CN113678484B (zh) 提供订阅配置档的方法、用户身份模块和订阅服务器
US20120270524A1 (en) Enabling portability of credentials across dual mode devices
US20180013759A1 (en) Method of managing shared files and device for authenticating subscriber by using same
US20190364416A1 (en) Installation of a profile in an embedded subscriber identity module
MX2014003351A (es) Manejo de identidades en dispositivos moviles.
EP3413600B1 (en) Communication device and method of managing profiles
US9973921B2 (en) Conflict detection
KR20220115256A (ko) 가입자 인증 모듈의 초기화 방법 및 가입자 인증 모듈을 초기화하는 사용자 단말
CN116088885A (zh) 操作系统更新方法、装置、通用集成电路卡及存储介质
CN118339864A (zh) eUICC上的订户简档的管理
KR20160114877A (ko) 이동통신시스템에서 단말에 정책을 설정하는 방법 및 장치

Legal Events

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

Payment date: 20170330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 6