KR102472916B1 - 대화형 콘텐츠 제공 시스템 및 방법 - Google Patents

대화형 콘텐츠 제공 시스템 및 방법 Download PDF

Info

Publication number
KR102472916B1
KR102472916B1 KR1020180016210A KR20180016210A KR102472916B1 KR 102472916 B1 KR102472916 B1 KR 102472916B1 KR 1020180016210 A KR1020180016210 A KR 1020180016210A KR 20180016210 A KR20180016210 A KR 20180016210A KR 102472916 B1 KR102472916 B1 KR 102472916B1
Authority
KR
South Korea
Prior art keywords
network
bot
message
electronic device
rcs
Prior art date
Application number
KR1020180016210A
Other languages
English (en)
Other versions
KR20190096589A (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 삼성전자주식회사
Priority to KR1020180016210A priority Critical patent/KR102472916B1/ko
Priority to PCT/KR2019/001576 priority patent/WO2019156506A1/en
Priority to US16/270,954 priority patent/US10911378B2/en
Publication of KR20190096589A publication Critical patent/KR20190096589A/ko
Application granted granted Critical
Publication of KR102472916B1 publication Critical patent/KR102472916B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/066Format adaptation, e.g. format conversion or compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/56Unified messaging, e.g. interactions between e-mail, instant messaging or converged IP messaging [CPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Abstract

다양한 실시예에 따르면, 통신 회로, 통신 회로에 작동적으로(operatively) 연결된 프로세서 및 프로세서에 작동적으로 연결된 메모리를 포함하는 전자 장치가 개시된다. 전자 장치는, 통신 회로를 이용하여 제1 외부 전자 장치로부터 복수의 RCS(rich communication suite) 네트워크들 중 제1 외부 전자 장치에 연관된 제1 네트워크를 통하여 제2 외부 전자 장치로의 메시지를 수신하고, 메모리에 저장된 상기 복수의 RCS 네트워크 중 상기 제1 네트워크에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함하는 상기 제2 외부 전자 장치의 프로필 및 상기 제1 네트워크의 네트워크 상태에 기반하여 상기 메시지의 전송 여부를 판단하고, 메시지를 전송하는 것으로 판단되면, 메시지를 제2 네트워크의 프로토콜에 기반하여 변환하고, 변환된 메시지를 상기 제2 네트워크를 통하여 상기 제2 외부 전자 장치로 전송하도록 설정될 수 있다. 이 외에도 명세서를 통해 파악되는 다양한 실시예가 가능하다.

Description

대화형 콘텐츠 제공 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING CONVERSATIONAL CONTENTS}
다양한 실시예들은 대화형 콘텐츠(conversational contents) 또는 대화 기반 양방향 콘텐츠(dialog based interactive contents)를 제공하기 위한 시스템, 전자 장치, 서버, 및 제공 방법에 관한 것이다.
스마트폰과 같은 다양한 휴대용 전자 장치들의 보급에 따라서, 사용자들은 쉽게 무선 네트워크를 통하여 인터넷에 접속할 수 있다. 예를 들어, 사용자들은 검색어를 검색 엔진에 전송하고, 검색 엔진으로부터 검색 결과를 수신함으로써 원하는 정보를 검색할 수 있다. 이 경우, 사용자는 원하는 정보의 검색을 위하여 적절한 검색어를 입력할 수 있다. 적절한 검색어의 선택의 어려움을 감소시키기 위하여, 대화형 콘텐츠 또는 대화 기반 양방향 콘텐츠 제공 서비스가 시도되고 있다. 예를 들어, 대화형 콘텐츠 또는 대화 기반 양방향 콘텐츠 제공 서비스는, 자연어 이해에 기반하여, 사용자의 요청에 대응하는 콘텐츠를 대화 형식으로 제공 할 수 있다.
예를 들어, 확장성이 높은 대화형 서비스를 제공하기 위하여, RCS(rich communication suite)에 기반한 대화형 콘텐츠가 제공될 수 있다. RCS 네트워크는 차세대 통합 메시징 서비스의 국제표준(예: GSMA (global system for mobile communication association) 표준) 프로토콜을 준수(compliant with)할 수 있다. 각각의 네트워크 운영자(network operator)(예: mobile network operator, MNO)는 별도의 RCS 네트워크를 운영할 수 있기 때문에, RCS 기반 대화형 콘텐츠의 제공자는 각각의 MNO에 따라서 별도의 대화형 콘텐츠 제공을 위한 플랫폼을 구축하여야 할 수도 있다.
본 문서에 개시된 다양한 실시예들에 따르면, 대화형 콘텐츠를 제공하기 위한 플랫폼을 통하여 다양한 RCS 네트워크들에 대하여 통일된 대화형 콘텐츠 제공 서비스가 구현될 수 있다. 예를 들어, 하나의 대화형 콘텐츠 제공 플랫폼을 통하여 복수의 MNO들에 대하여 대화형 콘텐츠를 제공할 수 있는 플랫폼의 구조가 제공될 수 있다.
일 실시예에 따른 전자 장치는, 통신 회로, 상기 통신 회로에 작동적으로(operatively) 연결된 프로세서, 및 상기 프로세서에 작동적으로 연결된 메모리를 포함할 수 있다. 상기 메모리는 실행되었을 때 상기 프로세서로 하여금, 상기 통신 회로를 이용하여 제1 외부 전자 장치로부터 복수의 RCS(rich communication suite) 네트워크들 중 상기 제1 외부 전자 장치에 연관된 제1 네트워크를 통하여 제2 외부 전자 장치로의 메시지를 수신하고, 상기 메모리에 저장된 상기 복수의 RCS 네트워크 중 상기 제1 네트워크에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함하는 상기 제2 외부 전자 장치의 프로필 및 상기 제1 네트워크의 네트워크 상태에 기반하여 상기 메시지의 전송 여부를 판단하고, 상기 메시지를 전송하는 것으로 판단되면, 상기 메시지를 제2 네트워크의 프로토콜에 기반하여 변환하고, 상기 변환된 메시지를 상기 제2 네트워크를 통하여 상기 제2 외부 전자 장치로 전송하게 하는 명령어들(instructions)을 저장할 수 있다.
일 실시예에 전자 장치는, 통신 회로, 상기 통신 회로에 작동적으로(operatively) 연결된 프로세서, 및 상기 프로세서에 작동적으로 연결된 메모리를 포함할 수 있다. 상기 메모리는 실행되었을 때 상기 프로세서로 하여금, 상기 통신 회로를 이용하여 제1 외부 전자 장치로부터 제1 네트워크를 통하여 제2 외부 전자 장치로의 메시지를 수신하고, 상기 메모리에 저장된 사용자 정보에 기반하여 복수의 RCS(rich communication suite) 네트워크들 중 상기 제2 외부 전자 장치와 연관된 제2 네트워크를 확인하고, 상기 제2 네트워크의 프로토콜에 기반하여 상기 메시지를 변환하고, 상기 변환된 메시지를 상기 제2 네트워크를 통하여 상기 제2 외부 전자 장치로 전송하게 하는 명령어들을 저장할 수 있다.
일 실시예에 따른 전자 장치는, 통신 회로, 상기 통신 회로에 작동적으로(operatively) 연결된 프로세서, 및 상기 프로세서에 작동적으로 연결된 메모리를 포함할 수 있다. 상기 메모리는, 적어도 하나의 챗봇(chatbot)의 챗봇 정보를 관리하도록 설정된 봇 레지스트리(bot registry) 모듈, 사용자 정보를 관리하도록 설정된 사용자 레지스트리 모듈, 상기 적어도 하나의 챗봇에 연관된 스로틀링(throttling)을 제어하도록 설정된 스로틀링 시스템 모듈, 상기 적어도 하나의 챗봇과 상기 전자 장치 사이의 메시지를 제어하도록 설정된 봇 서비스 모듈, 및 제1 프로토콜에 기반하여 생성된 메시지를 제2 프로토콜에 따라 변환하거나 상기 제2 프로토콜에 따라 생성된 메시지를 상기 제1 프로토콜에 따라 변환하고 상기 전자 장치와 사용자 장치 사이의 메시지 송수신을 제어하도록 설정된 복수의 봇 에이전트 모듈들을 포함하고, 상기 복수의 봇 에이전트 모듈들은 제1 봇 에이전트 모듈과 제2 봇 에이전트 모듈을 포함하고, 상기 제1 봇 에이전트 모듈에 연관된 제1 네트워크와 상기 제2 봇 에이전트 모듈에 연관된 제2 네트워크는 서로 상이한 네트워크 운영자에 연관될 수 있다.
다양한 실시예들에 따르면, 대화형 콘텐츠 제공 플랫폼을 통하여 복수의 MNO들에 대하여 통일된 관리가 제공될 수 있다.
다양한 실시예들에 따르면, RCS 네트워크에 기반한 스로틀링(throttling) 제어를 통하여 안정적인 서비스가 제공될 수 있다.
다양한 실시예들에 따르면, RCS 네트워크에 연관된 챗봇(chatbot)의 스로틀링 상태가 사용자 장치(user equipment, UE)에 제공될 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 다양한 실시예들에 따른 네트워크에서 전자 장치의 블록도를 나타낸다.
도 2는 다양한 실시예들에 따른 대화형 콘텐츠 제공 시스템의 구성을 도시한다.
도 3a, 3b, 및 3c는 다양한 실시예들에 따른 사용자 장치의 메시지 전송 방법의 흐름도이다.
도 4는 다양한 실시예들에 따른 봇 장치의 메시지 전송 방법의 흐름도이다.
도 5는 다양한 실시예들에 따른 봇 정보 전송 방법을 설명하기 위한 도면이다.
도 6은 다양한 실시예들에 따른 플랫폼 서버의 블록도이다.
도 7은 다양한 실시예들에 따른 목적 사용자로의 메시지 전송 방법의 흐름도이다.
도 8은 다양한 실시예들에 따른 네트워크 상태에 기반한 목적 사용자로의 메시지 전송 방법의 흐름도이다.
도 9는 다양한 실시예들에 따른 RCS 네트워크 프로필 조정 방법의 흐름도이다.
도면의 설명과 관련하여, 동일 또는 유사한 구성요소에 대해서는 동일 또는 유사한 참조 부호가 사용될 수 있다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)은, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)이 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(198) 또는 제 2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 하나 이상의 안테나들을 포함할 수 있고, 이로부터, 제 1 네트워크 198 또는 제 2 네트워크 199와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예들에 따른 대화형 콘텐츠 제공 시스템(200)의 구성을 도시한다.
다양한 실시예들에 따르면, 대화형 콘텐츠 제공 시스템(200)은 사용자 장치(101-1, 101-2, 및 101-3), 플랫폼 서버(202 및 203), 및 봇(bot)(201)을 포함할 수 있다.
다양한 실시예들에 따르면, 사용자 장치(101-1, 101-2, 및 101-3)는 도 1의 전자 장치(101)(예: 스마트 폰, 컴퓨터 장치, 태블릿 PC, 랩탑 PC, 웨어러블 장치, 또는 데스크톱 PC )에 대응할 수 있다. 도 2를 참조하여, 예를 들어, 제1 사용자 장치(101-1)는 제1 RCS 네트워크(291)에 연관되고, 제2 사용자 장치(101-2)는 제2 RCS 네트워크(292)에 연관되며, 제3 사용자 장치(101-3)는 제3 RCS 네트워크(293)에 연관될 수 있다. 일 실시예에 따르면, 제1 RCS 네트워크(291), 제2 RCS 네트워크(292), 및 제3 RCS 네트워크(293)는 지역(예: 국가) 또는 네트워크 운영자(예: MNO) 중 적어도 하나가 상이할 수 있다. 예를 들어, 제1 RCS 네트워크(291)와 제2 RCS 네트워크(292)는 제1 지역에 위치되고 서로 상이한 MNO에 의하여 운영될 수 있다. 예를 들어, 제3 RCS 네트워크(293)는 제1 지역과 상이한 제2 지역에 위치될 수 있다. 이하에서, 전자 장치(101)는 제1 사용자 장치(101-1), 제2 사용자 장치(101-2), 또는 제3 사용자 장치(101-3)를 지칭할 수 있다.
다양한 실시예들에 따르면, 전자 장치(101)와 플랫폼 서버(202 및 203)는 RCS 네트워크(291, 292, 및 293) 또는 데이터 네트워크(예: 데이터 네트워크(299))를 통하여 통신할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 웹 브라우저 어플리케이션을 이용하여 지정된 웹 페이지에 접속함으로써 플랫폼 서버(202 및 203)에 접속할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 전용 어플리케이션을 이용하여 플랫폼 서버(202 및 203)에 접속할 수도 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 플랫폼 서버(202 및 203)를 통하여 적어도 하나의 대화형 콘텐츠 제공자를 검색할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 RCS 네트워크에 기반한 어플리케이션(예: 메신저 어플리케이션)을 이용하여 적어도 하나의 콘텐츠 제공자를 검색할 수 있다. 예를 들어, RCS 네트워크에 기반한 어플리케이션은 HTTP(hypertext transfer protocol) 또는 HTTPS(HTTP secure)에 기반하여 플랫폼 서버(202 및 203)를 통하여 적어도 하나의 대화형 콘텐츠 제공자의 검색을 수행할 수 있다. 예를 들어, 대화형 콘텐츠 제공자(contents provider, CP)의 검색은 콘텐츠 제공자 서버 및/또는 챗봇(예: 봇(201))의 검색을 포함할 수 있다. 일 실시예에 따르면, 전자 장치(101)는 디스플레이(예: 도 1의 표시 장치(160))에 검색 결과를 표시하도록 설정될 수 있다. 예를 들어, 검색 결과는 각각의 대화형 콘텐츠 제공자에 연관된 상태 정보(예: 스로틀링 정보)를 포함할 수도 있다. 일 실시예에 따르면, 전자 장치(101)는 사용자 입력에 기반하여 검색된 대화형 콘텐츠 제공자를 구독(subscribe)할 수 있다. 예를 들어, 전자 장치(101)는 구독된 대화형 콘텐츠 제공자의 목록을 디스플레이에 표시하도록 설정될 수도 있다.
다양한 실시예들에 따르면, 전자 장치(101)는 RCS 네트워크(291, 292, 및 293)를 통하여 플랫폼 서버(202 및 203)로 메시지를 전송하거나 플랫폼 서버(202 및 203)로부터 메시지를 수신할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는 제1 RCS 네트워크(291)를 통하여 제1 플랫폼 서버(202)로 메시지를 전송하거나 제1 플랫폼 서버(202)로부터 메시지를 수신할 수 있다.
다양한 실시예들에 따르면, RCS 네트워크(291, 292, 및 293)는 지정된 프로토콜(예: RCS 프로토콜)에 기반한 데이터 통신을 수행하도록 설정될 수 있다. 일 실시예에 따르면, RCS 네트워크(291, 292, 및 293)는 전화번호(예: mobile station international subscriber directory number, MSISDN)에 기반하여 가입자들(예: 전자 장치(101), 및 봇(201))을 특정할 수 있다. OTT(over the top) 기반 메신저 어플리케이션과 달리, 예를 들어, 사용자가 전화번호에 기반하여 특정될 수 있기 때문에, 전자 장치(101)의 사용자는 별도의 가입 절차 또는 로그인 절차 없이 연관된 RCS 네트워크(291, 292, 및 293)를 통하여 대화형 콘텐츠를 이용할 수 있다.
다양한 실시예들에 따르면, 봇(201)은 대화형 콘텐츠를 제공하기 위한 챗봇(chatbot)을 포함할 수 있다. 예를 들어, 봇(201)은 대화형 콘텐츠의 콘텐츠 제공자 서버(미도시)에 위치될 수 있다. 도 2에는 하나의 봇(201)이 도시되어 있으나, 복수의 봇들이 하나의 플랫폼 서버(202 또는 203)에 연관될 수 있다. 일 실시예에 따르면, 봇(201)은 머신 러닝(machine learning) 또는 인공지능(artificial intelligence)을 지원하는 NLP(natural language processing) 모듈 및/또는 NLU(natural language understanding) 모듈을 포함할 수 있다. 이하에서, 용어 “봇”은 채팅 봇, 컨텐츠 제공자 서버, 봇 모듈, 또는 봇 프로그램으로 참조될 수 있다.
다양한 실시예들에 따르면, 플랫폼 서버(202, 203)는 전자 장치(101)와 봇(201) 사이의 메시지를 전달할 수 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)는 제1 RCS 네트워크(291)를 통하여 제1 사용자 장치(101-1)로부터 봇(201)에 연관된 메시지를 수신하고, 메시지를 데이터 네트워크(299)를 통하여 봇(201)에 전송할 수 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)는 제1 사용자 장치(101-1)에 연관된 메시지를 봇(201)으로부터 수신하고, 메시지를 제1 RCS 네트워크(291)를 통하여 제1 사용자 장치(101-1)에 전송할 수 있다. 도 2에서, 제1 플랫폼 서버(202)와 봇(201)은 데이터 네트워크(299)를 통하여 통신하는 것으로 도시되어 있으나, 제1 플랫폼 서버(202)와 봇(201)은 별도의 데이터 통신을 이용하여 통신할 수도 있다. 예를 들어, 제1 플랫폼 서버(202)와 봇(201)은 유선 연결을 통하여 통신할 수도 있다. 예를 들어, 봇(201)은 제1 플랫폼 서버(202) 내부에 구현될 수도 있다.
다양한 실시예들에 따르면, RCS 네트워크(291, 292, 및 293)와 데이터 네트워크(299)는 서로 상이한 프로토콜에 기반한 네트워크일 수 있다. 예를 들어, RCS 네트워크(291, 292, 및 293)는 SIP(session initiation protocol) 또는 MSRP(message session relay protocol)에 기반한 통신을 수행하고, 데이터 네트워크(299)는 HTTP 또는 HTTPS에 기반한 통신을 수행하도록 설정될 수 있다.
다양한 실시예들에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 서로 상이한 물리적 위치에 위치될 수 있다. 예를 들어, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 서로 상이한 국가에 위치될 수 있다. 예를 들어, 제1 플랫폼 서버(202)는 제1 지역에 위치되고, 제2 플랫폼 서버(203)는 제2 지역에 위치될 수 있다. 이하에서, 제1 플랫폼 서버(202)를 중심으로 플랫폼 서버의 동작이 설명된다. 이하에서 설명되는 제1 플랫폼 서버(202)의 동작들은 제2 플랫폼 서버(203)에 의하여 유사 또는 동일한 방식으로 수행될 수 있다. 제2 플랫폼 서버(203)의 구성들에 대한 설명은 동일한 명칭을 갖는 제1 플랫폼 서버(202)의 구성에 대한 설명에 의하여 참조될 수 있다.
다양한 실시예들에 따르면, 제1 플랫폼 서버(202)는 적어도 하나의 봇 에이전트(예: 제1 봇 에이전트(241) 및 제2 봇 에이전트(242)) 및 공통 영역(210)을 포함할 수 있다. 도 2에는 제1 플랫폼 서버(202)가 제1 봇 에이전트(241) 및 제2 봇 에이전트(242)를 포함하는 것으로 도시되어 있으나, 봇 에이전트의 수는 이에 제한되는 것은 아니다.
다양한 실시예들에 따르면, 제1 봇 에이전트(241)와 제2 봇 에이전트(242)는 서로 상이한 MNO에 연관될 수 있다. 예를 들어, 제1 봇 에이전트(241)는 제1 RCS 네트워크(291)에 연관되고 제2 봇 에이전트(242)는 제2 RCS 네트워크(292)에 연관될 수 있다. 이하에서 설명되는 제1 봇 에이전트(241)에 연관된 설명은 제2 봇 에이전트(242) 및 제3 봇 에이전트(243)에 적용될 수 있다.
다양한 실시예들에 따르면, 제1 봇 에이전트(241)는 봇(201)의 인스턴스(instance) 및/또는 사용자의 컨택트(contact) 포인트일 수 있다. 일 실시예에 따르면, 적어도 하나의 봇 에이전트(예: 제1 및 제2 봇 에이전트(241, 242))가 하나의 봇 서비스(217)와 연동되어 동작할 수 있다. 예를 들어, 제1 봇 에이전트(241)는 봇 서비스(217)와 통신할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 연관된 봇(예: 봇(201))으로부터의 메시지를 연관된 RCS 네트워크(예: 제1 RCS 네트워크(291))를 통하여 적어도 하나의 사용자 장치(예: 제1 사용자 장치(101-1))에 전송 또는 분배할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 제1 RCS 네트워크(291)에 속한 제1 사용자 장치(101-1)로부터의 메시지를 수집하거나 봇 서비스(217)에 전송할 수 있다. 일 실시예에 따르면, 하나의 봇 에이전트는 하나 이상의 봇 서비스와 연동되어 동작할 수도 있다.
다양한 실시예들에 따르면, 제1 봇 에이전트(241)는 스로틀링 시스템(throttling system)(215) 또는 봇 서비스(217)로부터 전달 또는 라우팅된 메시지를 연관된 RCS 네트워크(예: 제1 RCS 네트워크(291))를 통하여 메시지의 목적 사용자 장치(target user equipment)(예: 제1 사용자 장치(101-1))에 전달할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 RCS 네트워크(예: 제1 RCS 네트워크(291))의 제1 프로토콜(예: SIP(session initiation protocol) 또는 MSRP(message session relay protocol))에 기반한 메시지를 데이터 네트워크(299)의 제2 프로토콜(예: HTTP 또는 HTTPS)에 기반한 메시지로 변환할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 제2 프로토콜에 기반한 메시지를 제1 프로토콜에 기반한 메시지로 변환할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 제1 사용자 장치(101-1)로부터 제1 RCS 네트워크(291)를 통하여 제1 프로토콜에 기반한 제1 메시지를 수신하고, 제1 메시지를 제2 프로토콜에 기반한 제2 메시지로 변환하여 공통 영역(210)(예: 봇 서비스(217))에 전달할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 공통 영역(210)(예: 봇 서비스(217))으로부터 수신된 제2 프로토콜에 기반한 제3 메시지를 수신하고, 제3 메시지를 제1 프로토콜에 기반한 제4 메시지로 변환하여 제1 RCS 네트워크(291)를 통하여 제1 사용자 장치(101-1)에 전송할 수 있다. 일 실시예에 따르면, 상술된 메시지 변환은 공통 영역(210)(예: 봇 서비스(217))에서 수행될 수도 있다.
다양한 실시예들에 따르면, 제1 봇 에이전트(241)는 연관된 봇(예: 봇(201))의 상태(예: 스로틀링 상태)에 기반하여 메시지를 전달할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 제1 사용자(101-1)로부터 메시지가 수신되면, 스로틀링 시스템(215)을 통하여 봇(201)의 네트워크 상태를 확인할 수 있다. 예를 들어, 스로틀링 시스템(215)에 의하여 메시지 전송이 가능함이 지시되면, 제1 봇 에이전트(241)는 메시지를 공통 영역(210)(예: 봇 서비스(217))에 전달할 수 있다. 예를 들어, 스로틀링 시스템(215)에 의하여 메시지 전송이 불가능함이 지시되면, 제1 봇 에이전트(241)는 메시지의 재전송을 지정된 주기로 수행하거나, 에러 메시지를 제1 사용자 장치(101-1)에 전송하거나, 또는 메시지의 재전송을 예약할 수도 있다. 예를 들어, 스로틀링 시스템(215)에 의하여 메시지 전송이 불가능함이 지시되면, 제1 봇 에이전트(241)는 메시지의 지연 전송을 수행할 수도 있다.
다양한 실시예들에 따르면, 공통 영역(210)은 제1 플랫폼 서버(202)의 봇 에이전트들(예: 제1 봇 에이전트(241) 및 제2 봇 에이전트(242))에 대하여 공통적인 기능들을 수행하기 위한 구성들을 포함할 수 있다. 공통 영역(210)을 통하여, 콘텐츠 제공자는 각각의 MNO에 대하여 통합된 관리를 수행할 수도 있다. 일 실시예에 따르면, 공통 영역(210)은 봇 레지스트리(211), 사용자 레지스트리(213), 스로틀링 시스템(215), 및 봇 서비스(217)를 포함할 수 있다.
다양한 실시예들에 따르면, 봇 레지스트리(211)는 봇 데이터베이스(미도시)에 저장된 봇 정보(예: 챗봇의 식별자)를 관리할 수 있다. 예를 들어, 챗봇의 식별자는 챗봇의 MSISDN 및/또는 URI(uniform resource indicator)(예: SIP URI)를 포함할 수 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 봇 서비스(217)의 제어에 따라서 봇 정보를 읽거나 쓸 수 있다.
다양한 실시예들에 따르면, 사용자 레지스트리(213)는 사용자 데이터베이스(미도시)에 저장된 사용자/구독자 정보(user/subscriber information)를 관리할 수 있다. 예를 들어, 사용자/구독자 정보는 사용자 ID, 챗 ID, 또는 사용자 장치의 식별 정보(예: MSISDN) 중 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 사용자 레지스트리(213)는 봇 서비스(217)의 제어 하에 사용자/구독자 정보를 읽거나 쓸 수 있다. 일 실시예에 따르면, 사용자 레지스트리(213) 및 봇 레지스트리(211)는 통합된 모듈로서 구현될 수도 있다.
다양한 실시예들에 따르면, 스로틀링 시스템(215)은 봇(201)의 네트워크 상태에 기반하여 트래픽을 제어할 수 있다. 일 실시예에 따르면, 스로틀링 시스템(215)은 각각의 RCS 네트워크에 연관된 프로필 및 트래픽에 기반하여 메시지 전송 여부를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 제1 봇 에이전트(241)로부터 트래픽 확인 요청이 수신되면 제1 RCS 네트워크(291)에 대한 제1 프로필 및 제1 RCS 네트워크(291)에 대한 봇(201)의 트래픽에 기반하여 메시지 전송 여부를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 제2 봇 에이전트(242)로부터 트래픽 확인 요청이 수신되면 제2 RCS 네트워크(292)에 대한 제2 프로필 및 제2 RCS 네트워크(292)에 대한 봇(201)의 트래픽에 기반하여 메시지 전송 여부를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 트래픽이 지정된 기준을 초과하는 경우에, 에러 메시지를 연관된 봇 에이전트로 전송할 수 있다. 예를 들어, 스로틀링 시스템(215)은 트래픽이 지정된 기준 이내인 경우에, 메시지 전송을 지시하는 정보를 연관된 봇 에이전트로 전송할 수 있다.
다양한 실시예들에 따르면, 봇 서비스(217)는 대화형 콘텐츠 제공 시스템(200)의 상향 중재 모듈(uptown mediator module)로서 동작할 수 있다. 일 실시예에 따르면, 봇 서비스(217)는 챗봇(201)으로부터의 메시지를 봇 에이전트(예: 제1 봇 에이전트(241) 또는 제2 봇 에이전트(242))로 라우팅(routing)할 수 있다.
일 실시예에 따르면, 봇 서비스(217)는 봇 서비스(217)에서 처리되는 메시지들의 수신처 식별자 및/또는 발신처 식별자를 상호 변환할 수 있다. 예를 들어, 봇 서비스(217)는 제1 사용자 장치(101-1)에서 생성된 제1 메시지의 수신처를 MSISDN에서 URI로 변환하거나, 및/또는 제1 메시지의 발신처를 MSISDN에서 고유 식별자로 변환할 수 있다. 예를 들어, 봇 서비스(217)는 챗봇(201)에서 생성된 제2 메시지의 발신처를 URI에서 MSISDN로 변환하거나, 및/또는 제2 메시지의 수신처를 고유 식별자에서 MSISDN로 변환할 수도 있다.
일 실시예에 따르면, 봇 서비스(217)는 챗봇(201)의 URI(예: callback-URL(uniform resource locator)) 또는 URI에 대응하는 MSISDN을 획득(retrieve)하기 위하여 봇 레지스트리(211)와 통신할 수 있다. 일 실시예에 따르면, 봇 서비스(217)는 사용자 장치들(101-1 및 101-2) 각각의 고유 식별자(예: UserID, 또는 ChatID), 또는 고유 식별자에 대응하는 MSISDN을 획득하기 위하여 사용자 레지스트리(213)와 통신할 수 있다.
다양한 실시예들에 따르면, 봇 서비스(217)는 새로이 퍼블리시된 챗봇으로부터의 생성 알림(create notification)을 듣고(listen), 새로이 퍼블리시된 챗봇의 등재를 위하여 봇 레지스트리(211)와 통신할 수도 있다.
일 실시예에 따르면, 상술된 제1 플랫폼 서버(202)의 구성들은 소프트웨어 모듈로서, 메모리 상에 로드(load)된 후, 프로세서의 컴퓨팅 리소스에 의하여 각 구성에 할당된 기능이 실행될 수 있다. 예를 들어, 상술된 제1 플랫폼 서버(202) 및 그 구성들의 동작은 프로세서에 의한 동작으로 이해될 수 있다. 일 실시예에 따르면, 상술된 제1 플랫폼 서버(202)의 구성들은 물리적으로 구별되는 복수의 서버들에 의하여 구현될 수도 있다. 예를 들어, 제1 플랫폼 서버(202)의 구성들 중 적어도 하나는 제1 플랫폼 서버(202)와 통신하는 적어도 하나의 다른 서버에서 구현될 수도 있다.
다양한 실시예들에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 서로 상이한 물리적 지역에 대한 챗봇 서비스를 제공하기 위한 플랫폼일 수 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 데이터 네트워크(299)를 통하여 데이터를 송수신할 수도 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 VPN(virtual private network) 또는 다이렉트 링크(direct link)를 통하여 데이터 트래픽을 주고받을 수 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 사용자 레지스트리(213)에 연관된 사용자 데이터베이스와 사용자 레지스트리(223)에 연관된 사용자 데이터베이스의 적어도 일부를 주기적으로 또는 요청에 기반하여 동기화시킬 수 있다. 일 실시예에 따르면, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)는 봇 레지스트리(211)에 연관된 봇 데이터베이스와 봇 레지스트리(221)에 연관된 봇 데이터베이스의 적어도 일부를 주기적으로 또는 요청에 기반하여 동기화시킬 수 있다.
다양한 실시예들에 따르면, 제1 플랫폼 서버(202)는 적어도 하나의 챗봇의 챗봇 정보를 관리하도록 설정된 봇 레지스트리(211), 사용자 정보를 관리하도록 설정된 사용자 레지스트리(213), 적어도 하나의 챗봇에 연관된 스로틀링을 제어하도록 설정된 스로틀링 시스템(215), 및 복수의 봇 에이전트(241, 242)를 포함할 수 있다. 예를 들어, 복수의 봇 에이전트(241, 242)는 서로 상이한 네트워크 운영자에 연관된 RCS 네트워크에 연관될 수 있다. 일 실시예에 따르면, 복수의 봇 에이전트(241, 242)는 제1 프로토콜(예: SIP 또는 MSRP)에 기반하여 생성된 메시지를 제2 프로토콜(예: HTTP 또는 HTTPS)에 따라 변환하거나 제2 프로토콜에 기반하여 생성된 메시지를 제1 프로토콜에 따라서 변환할 수 있다.
일 실시예에 따르면, 스로틀링 시스템(215)은 적어도 하나의 챗봇 중 챗봇(201)에 대하여 설정된 프로필에 기반하여 챗봇(201)에 대한 트래픽을 제어하도록 설정될 수 있다. 예를 들어, 프로필은 제1 RCS 네트워크(291) 및 제2 RCS 네트워크(292) 각각에 대하여 설정된 적어도 하나의 스로틀링 기준을 포함할 수 있다.
도 3a, 3b, 및 3c는 다양한 실시예들에 따른 사용자 장치의 메시지 전송 방법의 흐름도이다.
도 3a의 흐름도(300a)를 참조하여, 다양한 실시예들에 따르면, 동작 305에서, 제1 사용자 장치(user equipment; UE)(101-1)는 DNS(domain name system, 390)로 DNS 쿼리를 전송할 수 있다. 예를 들어, DNS(390)는 대화형 플랫폼의 도메인(예: botplatform.maaprcs.com)에 대응하는 도메인 서버를 지칭할 수 있다. 일 실시예에 따르면, 제1 사용자 장치(101-1)는 지정된 웹 페이지 또는 전용 어플리케이션을 이용하여 DNS 쿼리를 전송할 수 있다. 일 실시예에 따르면, 제1 사용자 장치(101-1)는 데이터 네트워크(예: 도 2의 데이터 네트워크(299))를 통하여 DNS 쿼리를 전송할 수 있다.
다양한 실시예들에 따르면, 동작 310에서, 제1 사용자 장치(101-1)는 DNS(390)로부터 DNS 응답을 수신할 수 있다. 예를 들어, DNS 응답은 제1 사용자 장치(101-1)가 속한 지역의 봇 레지스트리(211)의 주소(예: IP 어드레스)를 포함할 수 있다.
다양한 실시예들에 따르면, 동작 315에서, 제1 사용자 장치(101-1)는 수신된 봇 레지스트리(211)의 주소로 봇 검색 요청을 전송할 수 있다. 일 실시예에 따르면, 봇 검색 요청은 봇 검색을 위한 콘텐트 유형에 대한 정보를 포함할 수 있다.
다양한 실시예들에 따르면, 봇 레지스터(211)는 다수의 네트워크 운영자(예: MNO)에 대한 봇(201)의 정보를 관리할 수 있다. 예를 들어, 다수의 네트워크 사용자로부터의 메시지 수신을 위하여, 봇 레지스터(211)는 다수의 MNO 사업자로부터 메시지를 수신할 수 있는 번호 또는 식별자에 대한 정보를 관리할 수 있다. 예를 들어, 봇 레지스터(211)는 봇(201)에 연관된 복수의 MNO 사업자에 대한 번호 또는 식별자 정보를 봇 데이터베이스에 저장할 수도 있다. 일 실시예에 따르면, 하나의 사업자의 네트워크에 대하여 MSISDN 기반 메시지 및/또는 SIP URI 기반(또는 MSRP 기반) 메시지가 지원될 수 있다. 예를 들어, 봇 레지스터(211)는 봇(201)에 대하여 대화형 콘텐츠 제공 시스템(예: 도 2의 대화형 콘텐츠 제공 시스템(200)) 또는 제1 플랫폼 서버(202)에 대하여 설정된 고유 ID 및 고유 ID에 연관된 각각의 MNO에 할당된 봇 콘택트(contact) 정보를 포함하는 매칭 테이블을 관리 및 저장할 수 있다. 예를 들어, 일 예시에 따른 매칭 테이블은 하기의 표 1과 같을 수 있다.
봇 ID MNO(지원 ID 유형) MNO 별 ID

aaa@bbb.com
MNO1 (TEL URI) +8210-xxxx-xxxx
MNO2 (SIP URI) aaa@mno2.com
MNO3 (TEL URI) +1451-xxx-xxxx
위 표 1에서, 예를 들어, bbb.com은 DNS(390)의 도메인 주소(예: maaprcs.com)를 지시할 수 있다. 예를 들어, mno2.com은 MNO 2의 도메인 주소를 지시할 수 있다.
다양한 실시예들에 따르면, 동작 320에서, 봇 레지스트리(211)는 봇 결과를 제1 사용자 장치(101-1)에 전송할 수 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 봇 검색 요청에 포함된 콘텐츠 유형 정보에 기반하여 검색된 봇 리스트를 포함하는 봇 결과를 전송할 수 있다. 일 실시예에 따르면, 봇 결과는 검색된 봇의 이름, 봇의 퍼블리셔(publisher) 정보, 봇의 MSISDN, 봇의 ID, 봇의 아이콘의 URL 정보, 봇 네트워크 상태 정보 (예: 스로틀링 정보), 봇 간략 정보, 또는 봇 상세 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 제1 사용자 장치(101-1)에 연관된 MNO에 대응하는 봇(201)의 식별자를 봇 결과에 포함시킬 수 있다.
일 실시예에 따르면, 봇 네트워크 상태 정보는 검색된 봇의 응답 속도, 트래픽 양, 또는 스로틀링 정보 중 적어도 하나를 포함할 수 있다. 예를 들어, 봇 레지스트리(211)는 스로틀링 시스템(215)으로부터 봇 네트워크 상태 정보를 획득할 수도 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 봇 네트워크 상태 정보를 주기적으로 또는 요청에 기반하여 갱신할 수 있다.
일 실시예에 따르면, 제1 사용자 장치(101-1)는 수신된 봇 결과에 기반하여 검색된 봇의 리스트를 디스플레이(예: 도 1의 표시 장치(160))에 표시할 수 있다. 예를 들어, 봇의 리스트는 봇의 이름, 봇의 아이콘, 봇의 설명, 또는 봇의 네트워크 상태 중 적어도 하나를 포함할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는 봇의 네트워크 상태에 기반하여 정렬된 봇의 리스트를 디스플레이에 표시할 수 있다. 예를 들어, 봇의 네트워크 상태는 봇의 부하 상태를 지시할 수 있다. 예를 들어, 사용자는 동일한 종류의 봇들 가운데 부하가 낮은 봇을 선택하거나 또는 부하가 높은(예를 들어, 인기가 높은) 봇을 선택할 수 있다.
일 실시예에 따르면, 지정된 범위를 초과한 부하 상태의 봇에 대하여는 접속이 제한될 수 있다. 예를 들어, 봇 레지스트리(211)는 부하 상태가 지정된 범위를 초과하는 봇을 검색 결과로부터 제외할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는 부하 상태가 지정된 범위를 초과하는 봇을 검색 결과로부터 제외할 수 있다.
일 실시예에 따르면, 제1 사용자 장치(101-1)는 봇의 네트워크 상태(예: 봇의 부하 상태)를 지시하는 이미지(예: 아이콘)를 봇의 리스트와 함께 디스플레이할 수 있다. 예를 들어, 봇의 부하 상태가 지정된 범위를 초과하는 경우, 제1 사용자 장치(101-1)는 부하상태를 지시하는 제1 이미지를 연관된 봇 정보(예: 이름 또는 식별자)와 함께 표시할 수 있다. 예를 들어, 봇의 부하 상태가 지정된 범위 이하인 경우, 제1 사용자 장치(101-1)는 정상상태를 지시하는 제2 이미지를 연관된 봇 정보와 함께 함께 표시할 수 있다. 봇의 네트워크 상태는 2단계로 설명되었으나, 일 실시예에 따르면, 봇의 네트워크 상태는 복수의 네트워크 상태들로 구분될 수도 있다. 예를 들어, 복수의 이미지들이 복수의 네트워크 상태 각각에 대응하도록 설정될 수도 있다.
다양한 실시예들에 따르면, 동작 325에서, 제1 사용자 장치(101-1)는 제1 봇 에이전트(241)로 메시지를 전송할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는 봇 리스트 중 하나의 봇에 대한 사용자 입력에 적어도 기반하여 메시지를 전송할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는, 제1 RCS 네트워크(291)의 MNO에 대하여 할당된 봇 식별자(예: 전화 번호(예: MSISDN) 또는 SIP URI 중 적어도 하나)를 이용하여, 제1 RCS 네트워크(291)를 통하여 봇 에이전트(241)로 메시지를 전송할 수 있다. 예를 들어, 제1 사용자 장치(101-1)는 제1 RCS 네트워크(291)의 RCS 어플리케이션 서버(application server; AS)(391)를 통하여 제1 플랫폼 서버(202)로 메시지를 전송할 수 있다. 예를 들어, 동작 325에서, 메시지는 SIP 또는 MSRP에 기반한 메시지일 수 있다. 일 실시예에 따르면, 메시지는 제1 사용자 장치(101-1)의 사용자에 의하여 입력된 메시지, 봇 ID, 챗 ID, 또는 메시지의 콘택트 정보 중 적어도 하나를 포함할 수 있다.
도 3a의 실시예에 있어서, 제1 사용자 장치(101-1)가 봇(201)에 대한 정보를 이미 가지고 있는 경우, 동작 305 내지 320은 생략될 수도 있다. 예를 들어, 사용자 장치(101-1)는 저장된 봇 리스트(예: 구독한 봇들의 리스트)에 대한 선택 입력에 기반하여 선택된 봇(201)에 대하여 동작 325를 수행할 수도 있다
도 3b의 흐름도(300b)를 참조하여, 다양한 실시예들에 따르면, 제1 봇 에이전트(241)는 제1 사용자 장치(101-1)로부터 메시지가 수신되면, 네트워크 상태를 스로틀링 시스템(215)에 조회할 수 있다.
다양한 실시예들에 따르면, 동작 326에서, 제1 봇 에이전트(241)는 제1 사용자 장치(101-1)로부터 봇(201)으로 전송되는 메시지를 전송할 수 있는지를 조회하기 위해 스로틀링 시스템(215)에 네트워크 상태 쿼리를 전송할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 제1 사용자 장치(101-1)에 연관된 RCS 네트워크(예: 제1 RCS 네트워크(291))의 네트워크 상태 쿼리를 전송할 수 있다. 예를 들어, 네트워크 상태는 봇(201)에 대한 제1 RCS 네트워크(291)의 스로틀링 상태를 포함할 수 있다.
다양한 실시예들에 따르면, 동작 327에서, 스로틀링 시스템(215)은 쿼리에 응답하여 메시지 전송 네트워크 상태 응답을 제1 봇 에이전트(241)에 전송할 수 있다. 일 실시예에 따르면, 스로틀링 시스템(215)은 봇(201)의 제1 네트워크에 대한 스로틀링 상태에 기반하여 메시지의 전송 여부를 판단할 수 있다. 스로틀링 시스템(215)은 판단된 메시지 전송 여부를 지시하는 정보를 네트워크 상태 응답에 포함시킬 수도 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 네트워크 상태 응답에 기반하여 제1 사용자 장치(101-1)로부터 수신된 메시지의 전송 여부를 판단할 수 있다. 예를 들어, 네트워크 상태 응답은 제1 봇(201)의 제1 RCS 네트워크(291)에 대하여 설정된 적어도 하나의 스로틀링 기준 및 제1 RCS 네트워크(291)의 네트워크 상태(예: 스로틀링 정보)를 포함할 수 있다.
다양한 실시예들에 따르면, 네트워크 상태가 메시지의 전송 불가를 지시하거나 네트워크 상태가 부하 상태임을 지시하는 경우, 제1 봇 에이전트(241)는 메시지의 재전송을 시도하거나 메시지의 전송 오류를 판단할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 동작 326 및 327을 지정된 주기로 반복할 수도 있다. 예를 들어, 제1 봇 에이전트(241)는 네트워크 상태 응답이 메시지 전송 가능을 지시하면 후술되는 도 3c의 동작들을 수행할 수 있다. 예를 들어, 제1 봇 에이전트(241)는 동작 326 및/또는 327의 반복이 지정된 횟수를 초과하면 메시지 전송 오류를 판단하고 오류 메시지를 제1 사용자 장치(101-1)에 전송할 수 있다.
일 실시예에 따르면, 제1 봇 에이전트(241)가 네트워크 상태 응답에 기반하여 메시지의 전송을 수행하는 경우, 도 3c의 후속절차들을 수행할 수 있다. 예를 들어, 제1 봇 에이전트(241)는 메시지 전송을 지시하는 네트워크 상태 응답을 수신하거나 네트워크 상태 응답에 기반하여 메시지 전송이 판단되는 경우, 도 3c의 후속절차들을 수행할 수 있다. 도 3c의 흐름도(300c)를 참조하여, 다양한 실시예들에 따르면, 동작 330에서, 제1 봇 에이전트(241)는 제1 사용자 장치(101-1)로부터 수신한 메시지를 봇 서비스(217)에 전송할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 SIP 또는 MSRP에 기반한 메시지를 HTTP 또는 HTTPS에 기반한 메시지로 변환한 뒤에 변환된 메시지를 봇 서비스(217)에 전송할 수도 있다.
다양한 실시예들에 따르면, 동작 335에서, 봇 서비스(217)는 DNS(390)에 DNS 쿼리를 전송할 수 있다. 예를 들어, 봇 서비스(217)는 DNS(390)에 제1 봇 에이전트(241)로부터 수신된 메시지에 포함된 봇 ID에 대응하는 주소(예: callback URL)를 문의할 수 있다.
다양한 실시예들에 따르면, 동작 340에서, 봇 서비스(217)는 DNS(390)로부터 봇(201)의 식별자(예: callback URL)를 포함하는 DNS 응답을 수신할 수 있다.
다양한 실시예들에 따르면, 동작 345에서, 봇 서비스(217)는 DNS 응답에 포함된 봇(201)의 식별자를 이용하여 봇(201)에 메시지를 전송할 수 있다. 예를 들어, 봇 서비스(217)는 HTTP 또는 HTTPS에 기반하여 메시지를 봇(201)에 전송할 수 있다.
다양한 실시예들에 따르면, 봇(201)의 정보(예: 봇 식별자)는 봇 레지스트리(211)에 저장되어 있을 수도 있다. 일 실시예에 따르면, 봇 서비스(217)는 봇(201)의 식별자(예: callback URL)에 대한 정보를 봇 레지스트리(211)로부터 획득할 수도 있다. 예를 들어, 봇 레지스트리(211)로부터 봇(201)의 식별자가 획득될 수 있는 경우, 동작 335 및 동작 340은 생략될 수도 있다.
도 4는 다양한 실시예들에 따른 봇 장치의 메시지 전송 방법의 흐름도(400)이다.
일 실시예에 따르면, 봇(201)은 봇(201)에 연관된 챗봇 서비스의 가입자 또는 구독자 중 적어도 일부에 메시지를 전송할 수 있다. 예를 들어, 봇(201)은 특정 사용자 장치(예: 도 1의 전자 장치(101))로부터의 메시지에 대한 응답으로써 또는 다수의 사용자 장치들에 대한 멀티캐스트(multicast) 또는 방송(broadcast)으로서 메시지를 전송할 수 있다. 일 실시예에 따르면, 봇(201)은 제1 플랫폼 서버(202)와 동일한 영역(예: 제1 영역)에 위치되고, 제1 영역과 상이한 영역(예: 제2 영역)에 위치된 제3 사용자 장치(101-3)에 메시지를 전송할 수 있다. 예를 들어, 제3 사용자 장치(101-3)는 제3 RCS 네트워크(293)에 연관되고, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203)간의 메시지 전송을 통하여 대화형 콘텐츠를 제공받을 수 있다.
다양한 실시예들에 따르면, 동작 405에서, 봇(201)은 DNS(390)에 DNS 쿼리를 전송할 수 있다. 동작 410에서, 봇(201)은 DNS(390)로부터 DNS 응답을 수신함으로써, 봇(201)에 대응하는 위치의 플랫폼 서버의 엔드 포인트(end point)를 찾을 수 있다. 일 실시예에 따르면, 봇(201)이 제1 영역에 위치된 경우, 봇(201)은 DNS 응답을 통하여 제1 플랫폼 서버(202)의 엔드 포인트를 찾을 수 있다. 일 실시예에 따르면, 봇(201)은 자신의 위치에 연관된 플랫폼 서버의 엔드 포인트 정보에 기반하여 동작 415를 수행할 수도 있다. 예를 들어, 봇(201)이 자신의 위치에 연관된 플랫폼 서버의 엔드 포인트 정보를 가지고 있는 경우, 동작 405 및 410은 생략될 수도 있다.
다양한 실시예들에 따르면, 동작 415에서, 봇(201)은 제1 플랫폼 서버(202)의 봇 서비스(217)로 메시지를 전송할 수 있다. 예를 들어, 메시지는 봇 ID, 메시지가 속한 챗(chat) ID, 사용자 ID, 전화번호, 또는 봇(201)이 전송하는 메시지 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 동작 420에서, 봇 서비스(217)는 메시지의 목적(target) 사용자(예: 목적 사용자 장치)의 MNO를 검색하기 위하여 로컬 캐쉬(local cache)를 확인할 수 있다. 예를 들어, 봇(201)으로부터의 메시지가 제3 사용자 장치(101-3)로부터의 메시지의 응답인 경우, 봇 서비스(217)는 제3 사용자 장치(101-3)의 정보(예: MSISDN) 또는 제3 사용자 장치(101-3)에 연관된 MNO 정보(예: 제3 RCS 네트워크(293)의 MNO 정보) 중 적어도 하나를 제1 플랫폼 서버(202)의 로컬 캐쉬에 저장할 수 있다.
다양한 실시예들에 따르면, 동작 425에서, 봇 서비스(217)는 메시지의 목적 사용자의 MNO를 사용자 레지스트리(213)를 이용하여 검색할 수 있다. 예를 들어, 제3 사용자 장치(101-3)의 사용자가 봇(201)에 의한 챗봇 서비스 약관(terms & services)에 동의하면, 사용자 정보가 제3 사용자 장치(101-3)에 연관된 플랫폼 서버(예: 제2 플랫폼 서버(203))의 사용자 레지스트리(예: 도 2의 사용자 레지스트리(223))에 저장될 수 있다. 예를 들어, 사용자 정보는 제3 사용자 장치(101-3)의 식별자(예: MSISDN) 또는 제3 사용자 장치(101-3)가 가입된 MNO 정보 중 적어도 하나를 포함할 수 있다. 일 실시예에 따르면, 서로 상이한 지역에 위치된 플랫폼 서버들 사이에 사용자 정보가 공유 또는 동기화될 수 있다. 예를 들어, 제1 플랫폼 서버(202)의 사용자 레지스트리(213)에 연관된 사용자 정보(예: 사용자 데이터베이스 내의 정보)와 제2 플랫폼 서버(203)의 사용자 레지스트리(223)에 연관된 사용자 정보가 공유 또는 동기화될 수 있다. 일 실시예에 따르면, 봇 서비스(217)는 사용자 레지스트리(213)를 이용하여 제3 사용자 장치(101-3)의 사용자 정보를 검색할 수 있다.
상술된 동작 420 및 425 중 적어도 하나는 생략될 수 있다. 일 실시예에 따르면, 동작 425는 동작 420에 의하여 목적 사용자의 사용자 정보가 검색되지 않는 경우에 수행될 수도 있다.
다양한 실시예들에 따르면, 동작 430에서, 봇 서비스(217)는 제2 사용자 장치(101-3)의 MNO에 연관된 제2 플랫폼 서버(203)를 동작 420 또는 동작 425를 통하여 검색하고, 제1 플랫폼 서버(202)와 제2 플랫폼 서버(203) 사이의 연결을 통하여 제2 플랫폼 서버(203)의 봇 서비스(227)로 메시지를 전송할 수 있다.
다양한 실시예들에 따르면, 동작 435에서, 봇 서비스(227)는 메시지의 목적 사용자인 제3 사용자 장치(101-3)의 MNO에 연관된 봇 에이전트(예: 제3 봇 에이전트(243))로 메시지를 전송(또는 라우팅)할 수 있다.
다양한 실시예들에 따르면, 동작 440에서, 제3 봇 에이전트(243)는 제3 RCS 네트워크의 RCS AS(493)로 메시지를 전송할 수 있다. 예를 들어, 제3 봇 에이전트(243)는 봇 서비스(227)로부터의 메시지를 제3 RCS 네트워크(293)의 프로토콜(예: SIP 또는 MSRP)에 기반한 메시지로 변환하고, 변환된 메시지를 RCS AS(493)로 전송할 수 있다.
다양한 실시예들에 따르면, 동작 445에서, RCS AS(493)는 메시지에 포함된 사용자 정보(예: MSISDN)를 이용하여 제3 사용자 장치(101-3)로 메시지를 전송할 수 있다.
도 5는 다양한 실시예들에 따른 봇 정보 전송 방법을 설명하기 위한 도면이다.
도 5의 대화형 콘텐츠 제공 시스템(500)을 참조하여, 다양한 실시예들에 따르면, 플랫폼 서버는 복수의 봇들과 연관될 수도 있다. 일 실시예들에 따르면, 복수의 봇들(예: 제1 봇(201), 제2 봇(501), 및 제 3 봇(503))이 제1 플랫폼 서버(202)와 연관될 수 있다. 예를 들어, 봇 레지스트리(211)는 복수의 봇들(예: 제1 봇(201), 제2 봇(501), 및 제 3 봇(503))에 대한 정보를 관리할 수 있다.
도 3의 동작 315 및 320과 관련하여 상술한 바와 같이, 일 실시예에 따르면, 전자 장치(101)는 봇 레지스트리(211)를 이용하여 봇 검색을 수행할 수 있다. 예를 들어, 봇 레지스트리(211)는 전자 장치(101)로부터 봇 검색 요청을 수신하고, 수신된 봇 검색 요청에 대응한 검색 결과를 전자 장치(101)에 전송할 수 있다. 예를 들어, 검색 결과는 봇 리스트를 포함할 수 있다. 예를 들어, 검색 결과는 봇의 이름, 봇의 퍼블리셔(publisher) 정보, 봇의 MSISDN, 봇의 ID, 봇의 아이콘의 URL 정보, 봇 네트워크 상태 정보 (예: 스로틀링 정보), 봇 간략 정보, 또는 봇 상세 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 봇 레지스트리(211)는 전자 장치(101)로부터 봇 검색 요청이 수신되면 검색 조건(예: 검색어)에 대응하는 봇을 검색하고, 검색된 봇의 스로틀링 정보를 스로틀링 시스템(215)으로부터 획득할 수 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 검색된 봇의 스로틀링 정보를 전자 장치(101)에 전송할 수 있다.
일 실시예에 따르면, 봇 레지스트리(211)는 전자 장치(101)로부터 봇 조회 요청이 수신되면 조회 요청이 수신된 봇에 대응하는 스로틀링 정보를 스로틀링 시스템(215)으로부터 획득할 수 있다. 일 실시예에 따르면, 봇 레지스트리(211)는 요청된 봇의 스로틀링 정보를 전자 장치(101)에 전송할 수 있다.
일 실시예에 따르면, 스로틀링 시스템(215)은 지정된 기간 동안 측정된 제1 플랫폼 서버(202)에 연관된 각각의 봇(201, 501, 및 503)에 대한 스로틀링 정보를 관리할 수 있다. 이하에서 도 2를 다시 참조하여, 스로틀링 시스템(215)의 동작들이 설명된다.
도 2를 다시 참조하여, 일 실시예에 따르면, 동일한 플랫폼 서버에 연관된 복수의 RCS 네트워크에 대하여 서로 상이한 스로틀링 메커니즘 또는 스로틀링 프로필이 설정될 수 있다. 예를 들어, 제1 RCS 네트워크(291)와 제2 RCS 네트워크(292)에 대하여, 스로틀링 시스템(215)은 상이한 프로필 또는 알고리즘에 기반한 스로틀링 제어를 수행할 수 있다.
일 실시예에 따르면, RCS 네트워크(291, 292, 293)는 가입된 사용자 장치의 능력(capability) 정보를 관리하는 프레젠스(presence) 서버를 포함할 수 있다. 예를 들어, 사용자 장치의 능력 정보는 사용자 장치의 상태(예: 개통 여부, 가입 여부, 통화 중(busy), 비디오/음성 통화, 활성화, 비활성화, 및/또는 해지 여부)를 지시하는 정보를 포함할 수 있다. 일 실시예에 따르면, RCS 네트워크들(291, 292, 및 293)은 서로 상이한 프로토콜에 기반하여 능력 정보를 획득할 수 있다. 예를 들어, 제1 RCS 네트워크(291)는 XMPP(extensible messaging and presence protocol)에 기반하여 사용자 장치(예: 도 1의 전자 장치(101))의 능력(capability)을 확인할 수 있다. 예를 들어, 제2 RCS 네트워크(292)는 SIP에 기반한 옵션 메시지(options message)(예: SIP OPTIONS)를 이용하여 사용자 장치(101)의 능력을 확인할 수 있다. 동일한 기능에 대하여 서로 상이한 메시지 포맷 및/또는 SIP 시그널링 절차가 이용될 수 있기 때문에, 각각의 RCS 네트워크에 대하여 상이한 스로틀링 제어가 수행될 수 있다.
일 실시예에 따르면, 제1 RCS 네트워크(291)의 최대 동시(concurrent) 세션 수는 1만개이고, 제2 RCS 네트워크(292)의 최대 동시 세션 수는 10만개일 수 있다. 이 경우, 제1 RCS 네트워크(291)와 제2 RCS 네트워크(292)가 봇(201)에 대하여 허용할 수 있는 자원은 서로 상이할 수 있다. 따라서, 사용자 장치(101)가 연관된 RCS 네트워크의 프로필에 따라서 상이한 스로틀링 제어가 적용될 수 있다. 예를 들어, RCS 네트워크의 프로필은 RCS 네트워크에 연관된 스로틀링을 제어하기 위한 적어도 하나의 스로틀링 기준을 포함할 수 있다. 예를 들어, RCS 네트워크의 프로필은 RCS 네트워크에 대하여 설정된 최대 동시 연결 세션 수 (concurrent open sessions), 최대 봇 정보 조회율 (bot info query rate), 최대 단말 presence 정보 조회율 (presence query rate), 최대 메시지 전송률(message rate), 최대 메시지 데이터 대역폭 (message data bandwidth), 최대 그룹 챗 수(group chats), 최대 그룹 챗 인원(group chat members), 최대 브로드캐스트 인원(broadcast recipients), 또는 최대 파일 전송율 (file transmission rate) 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 스로틀링 시스템(215)은 MNO에 따라서 상이한 프로필(예: 스로틀링 프로필)을 관리할 수 있다. 일 실시예에 따르면, 스로틀링 시스템(215)은 MNO 또는 RCS 네트워크에 따라서 서로 상이한 시간 당 메시지(예: message/sec) 및/또는 동시 연결 세션 수(concurrent open sessions)를 허용할 수 있다.
도 5를 다시 참조하여, 일 실시예에 따르면, 동일한 플랫폼 서버에 연관된 복수의 봇(201, 501, 및 503)에 대하여 서로 상이한 스로틀링 메커니즘 또는 스로틀링 프로필이 설정될 수 있다. 예를 들어, 스로틀링 시스템(215)은 동일한 제1 RCS 네트워크(291)에 대하여도 봇(201), 봇(501), 및 봇(503)에 대하여 상이한 프로필 또는 알고리즘에 기반한 스로틀링 제어를 수행할 수 있다.
일 실시예에 따르면, 스로틀링 시스템(215)은 각각의 봇(201, 501, 및 503)에 대하여 MNO, RCS 네트워크, 또는 봇 에이전트에 따라서 상이하게 설정된 프로필을 이용하여 스로틀링 제어를 수행할 수 있다. 예를 들어, 봇 (201)에 대하여, 제1 MNO에 대하여는 제1 프로필이, 제2 MNO에 대하여는 제2 프로필이, 또는 제3 MNO에 대하여는 제3 프로필이 설정될 수 있다. 예를 들어, 봇(501)에 대하여는, 제1 MNO에 대하여는 제4 프로필이, 제2 MNO에 대하여는 제5 프로필이 설정될 수 있다. 예를 들어, 각각의 프로필은 적어도 하나의 스로틀링 기준을 포함할 수 있다.
다양한 실시예들에 따르면, 스로틀링 시스템(215)이 각각의 MNO, RCS 네트워크, 및/또는 봇에 따라서 스로틀링을 관리하기 위한 스로틀링 기준(throttling metric)은 하기의 표 2의 기준들 중 적어도 하나를 포함할 수 있다.
스로틀링 기준 설명 단위 (예시)
동시 연결 세션 수 (concurrent open sessions) 각 사업자 네트워크에 따른 최대 동시 유지 세션 수에 대한 제한 Sessions
봇 정보 조회율 (bot info query rate) 플랫폼 API를 이용한 단위 시간당 최대 봇 정보 조회 수에 대한 제한 queries/sec
단말 presence 정보 조회율 (presence query rate) 각 사업자 네트워크에 따른 단위 시간당 최대 presence 메시지 교환 수에 대한 제한 queries/sec,
queries/day
메시지 전송률
(message rate)
각 사업자 네트워크에 따른 단위 시간당 최대 메시지 전송 수에 대한 제한 message/sec,
message/day
메시지 데이터 대역폭 (message data bandwidth) 각 사업자 네트워크에 따른 단위 시간당 최대 메시지 전송 데이터 양에 대한 제한 KB/sec
최대 그룹 챗 수
(max group chats)
단위 시간에 생성할 수 있는 그룹 챗 수에 대한 제한 Chats/day
최대 그룹 챗 인원
(max group chat members)
그룹 챗에 포함될 수 있는 최대 인원 수에 대한 제한 Members/chat
최대 브로드캐스트 인원 (max broadcast recipients) 각 사업자 망에 따른 봇의 브로드캐스트 인원 수에 대한 제한 recipients/day
파일 전송율 (file transmission rate) 각 사업자 망에 따른 단위 시간당 최대 파일 전송 수에 대한 제한 files/second,
files/minute,
files/day
일 실시예에 따르면, 사용자 장치(101)가 봇(201)으로 메시지를 전송할 수 있다. 예를 들어, 제1 봇 에이전트(241)는 제1 RCS 네트워크(291)를 통하여 메시지를 수신할 수 있다. 일 실시예에 따르면, 제1 봇 에이전트(241)는 스로틀링 시스템(215)에 메시지의 전송 여부를 조회(query)할 수 있다. 스로틀링 시스템(215)은 메시지에 연관된 봇(201)의 제1 RCS 네트워크(291)에 대한 프로필(예: 스로틀링 기준)에 기반하여 메시지의 전송 여부를 판단할 수 있다. 예를 들어, 봇(201)에 대하여 설정된 제1 RCS 네트워크(291)의 세션 수가 지정된 값(예: 최대 동시 연결 세션 수)에 도달한 경우, 스로틀링 시스템(215)은 오류 메시지를 제1 봇 에이전트(241)에 전송할 수 있다. 예를 들어, 오류 메시지는 오류 사유(clause) 정보를 포함할 수 있다. 예를 들어, 봇(201)의 제1 RCS 네트워크(291)에 대한 프로필에 기반하여 메시지 전송이 허용되면, 스로틀링 시스템(215)은 메시지 전송을 지시하는 메시지를 제1 봇 에이전트(241)에 전송할 수 있다.
일 실시예에 따르면, 봇(201)이 사용자 장치(101)를 포함하는 복수의 사용자 장치들로 메시지를 전송할 수 있다. 예를 들어, 봇 서비스(217)는 데이터 네트워크(299)를 통하여 봇(201)으로부터 메시지를 수신할 수 있다. 일 실시예에 따르면, 봇 서비스(217)는 스로틀링 시스템(215)에 메시지의 전송 여부를 조회할 수 있다. 스로틀링 시스템(215)은 메시지에 연관된 봇(201)의 제1 RCS 네트워크(291)에 대한 프로필(예: 스로틀링 기준)에 기반하여 메시지의 전송 여부를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 제1 RCS 네트워크(291)의 현재 세션의 수와 메시지에 의하여 생성될 세션의 수의 합이 제1 RCS 네트워크(291)에 대하여 설정된 최대 동시 연결 세션 수를 초과하면, 메시지의 적어도 일부에 대한 전송 오류를 판단할 수 있다. 예를 들어, 메시지의 수신자들 중 제1 RCS 네트워크(291)에 연관된 수신자들의 수가 봇(201)에 대하여 설정된 제1 RCS 네트워크(291) 최대 브로드캐스트 인원 수를 초과하는 경우, 메시지의 적어도 일부에 대한 전송 오류를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 전송 요청된 메시지로 인하여 제1 RCS 네트워크(291)에 인가될 메시지 전송률이 제1 RCS 네트워크(291)에 대하여 설정된 최대 메시지 전송률을 초과하면, 메시지의 적어도 일부에 대한 전송 오류를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 전송 요청된 메시지에 의하여 요구되는 제1 RCS 네트워크(291)에 대한 대역폭을 포함하는 제1 RCS 네트워크(291)의 메시지 데이터 대역폭이 제1 RCS 네트워크(291)에 대하여 설정된 최대 메시지 메시지 데이터 대역폭을 초과하면, 메시지의 적어도 일부에 대한 전송 오류를 판단할 수 있다. 예를 들어, 스로틀링 시스템(215)은 전송 요청된 메시지로 인하여 초래될 수 있는 제1 RCS 네트워크(291)의 파일 전송률이 제1 RCS 네트워크(291)에 대하여 설정된 최대 파일 전송률을 초과하면, 메시지의 적어도 일부에 대한 전송 오류를 판단할 수 있다. 메시지의 적어도 일부에 대한 전송 오류가 판단되면, 스로틀링 시스템(215)은 오류 메시지를 봇 서비스(217) 및/또는 봇(201)에 전송할 수 있다. 예를 들어, 봇(201)의 제1 RCS 네트워크(291)에 대한 프로필에 기반하여 메시지 전송이 허용되면, 스로틀링 시스템(215)은 제1 RCS 네트워크(291)에 대한 메시지 전송을 지시하는 메시지를 봇 서비스(217)에 전송할 수 있다.
도 6은 다양한 실시예들에 따른 플랫폼 서버의 블록도(600)이다.
다양한 실시예들에 따르면, 제1 플랫폼 서버(202)는 프로세서(620), 메모리(630), 또는 통신 모듈(690) 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로세서(620)는 메모리(630) 및 통신 모듈(690)과 작동적으로(operatively) 연결되고, 메모리(630), 통신 모듈(690), 및 제1 플랫폼 서버(202)의 동작들을 제어할 수 있다.
일 실시예에 따르면, 메모리(630)는 프로세서(620)와 작동적으로 또는 전기적으로 연결되고, 다양한 정보들을 저장할 수 있다. 예를 들어, 메모리(630)는 사용자 데이터베이스 및 봇 데이터베이스를 저장할 수 있다. 예를 들어, 메모리(630)는 프로세서(620)로 하여금 다양한 동작들을 수행하게 하는 명령어들을 저장할 수 있다.
다양한 실시예들에 따르면, 통신 모듈(690)은 사용자 장치(예: 도 1의 전자 장치(101)) 및 봇(201)과의 통신을 제공할 수 있다. 예를 들어, 통신 모듈(690)은 제1 RCS 네트워크(291) 및/또는 데이터 네트워크(예: IP 네트워크)를 통하여 사용자 장치(101)와 통신할 수 잇다. 예를 들어, 통신 모듈(690)은 데이터 네트워크를 통하여 봇(201)과 통신할 수 있다.
다양한 실시예들에 따르면, 프로세서(620)는 메모리(630)에 저장된 명령어들에 따라서, 적어도 하나의 소프트웨어 모듈을 생성할 수 있다. 예를 들어, 도 2와 관련하여 상술된 제1 플랫폼 서버(202)의 구성들은 프로세서(620)에 의하여 생성된 소프트웨어 모듈일 수 있다.
다양한 실시예들에 따르면, 프로세서(620)는 통신 모듈(690)을 이용하여 사용자 장치(101)로부터 복수의 RCS 네트워크들 중 사용자 장치(101)에 연관된 제1 RCS 네트워크(291)를 통하여 봇(201)으로의 메시지를 수신할 수 있다. 프로세서(620)는 메모리(630)에 저장된 봇(201)의 프로필 및 제1 RCS 네트워크(291)의 상태에 기반하여 수신된 메시지의 전송 여부를 판단할 수 있다. 프로세서(620)는 메시지를 전송하기로 판단되면, 메시지를 데이터 네트워크(299)의 프로토콜에 기반하여 변환하고, 변환된 메시지를 데이터 네트워크(299)를 통하여 봇(201)으로 전송할 수 있다. 예를 들어, 봇(201)의 프로필은 복수의 RCS 네트워크들 중 제1 RCS 네트워크(291)에 대한 적어도 하나의 스로틀링 기준을 포함할 수 있다. 일 실시예에 따르면, 프로세서(620)는 메시지를 전송하지 않는다는 판단에 기반하여 오류 메시지를 제1 RCS 네트워크(291)를 통하여 사용자 장치(101)로 전송할 수 있다.
예를 들어, 복수의 RCS 네트워크들은 서로 상이한 네트워크 운영자에 연관될 수 있다. 일 실시예에 따르면, 복수의 RCS 네트워크들은 제1 RCS 네트워크(291) 및 제2 RCS 네트워크(미도시)를 포함할 수 있다. 예들 들어, 봇(201)의 프로필은 제1 RCS 네트워크(291)에 대하여 설정된 적어도 하나의 제1 스로틀링 기준 및 제2 RCS 네트워크에 대하여 설정된 적어도 하나의 제2 스로틀링 기준을 포함할 수 있다. 예를 들어, 제1 스로틀링 기준과 제2 스로틀링 기준은 서로 상이할 수 있다.
예를 들어, 적어도 하나의 제1 스로틀링 기준은 제1 RCS 네트워크(291)에 대한, 최대 동시 연결 세션(concurrent open sessions) 수, 봇 정보 조회율(bot information query rate), 프레젠스 조회율(presence query rate), 메시지 전송률, 메시지 데이터 대역 폭, 최대 그룹 챗 수(maximum group chats), 최대 그룹 챗 인원 수(maximum group chat members), 최대 브로드캐스트 인원(maximum broadcast recipients), 또는 최대 파일 전송율(maximum file transmission rate) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 메모리(630)는 봇(201)에 대한 고유 식별자, 고유 식별자에 연관된 제1 RCS 네트워크(291)에 대한 봇(201)의 제1 식별자, 및 고유 식별자에 연관된 제2 RCS 네트워크에 대한 봇(201)의 제2 식별자를 저장할 수 있다.
일 실시예에 따르면, 프로세서(620)는 사용자 장치(101)로부터 수신된 메시지에 포함된 제1 식별자에 연관된 봇(201)의 고유 식별자를 확인하고, 고유 식별자를 이용하여, 변환된 메시지를 봇(201)으로 전송할 수 있다.
일 실시예에 따르면, 봇(201)의 제1 식별자 및 제2 식별자 각각은 MSISDN(mobile station international subscriber directory number) 또는 SIP(session initiation protocol) URI(uniform resource indicator) 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 프로세서(620)는 통신 모듈(690)을 이용하여 봇(201)로부터 데이터 네트워크를 통하여 사용자 장치(101)로의 메시지를 수신하고, 메모리(630)에 저장된 사용자 정보에 기반하여 복수의 RCS(rich communication suite) 네트워크들 중 사용자 장치(101)와 연관된 제1 RCS 네트워크(291)를 확인하고, 제1 RCS 네트워크(291)의 프로토콜에 기반하여 메시지를 변환하고, 변환된 메시지를 상기 제1 RCS 네트워크(291)를 통하여 사용자 장치(101)로 전송할 수 있다.
예를 들어, 복수의 RCS 네트워크들은 서로 상이한 네트워크 운영자(network operator)에 연관될 수 있다.
일 실시예에 따르면, 메모리(630)는 적어도 하나의 봇(예: 봇(201))에 대한 정보를 포함하는 봇 데이터베이스를 포함할 수 있다 예를 들어, 메모리(630)는 봇(201)의 고유 식별자에 대한 복수의 RCS 네트워크 각각의 식별자를 저장할 수 있다. 예를 들어, 복수의 RCS 네트워크 각각의 식별자는 MSISDN(mobile station international subscriber directory number) 또는 SIP(session initiation protocol) URI(uniform resource indicator) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 메모리(630)는 적어도 하나의 봇에 연관된 사용자 정보를 포함하는 사용자 데이터베이스를 포함할 수 있다. 예를 들어, 사용자 데이터베이스는 사용자 식별 정보(예: MSISDN), 사용자에 연관된 RCS 네트워크 정보, 사용자에 연관된 네트워크 운영자 정보, 사용자에 연관된 위치 정보 또는 사용자가 가입한 봇 정보 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 메모리(630)는 도 2의 제1 플랫폼 서버(202)의 구성들을 포함할 수 있다. 예를 들어, 메모리(630)는 제1 봇 에이전트(241), 제2 봇 에이전트(242), 봇 레지스트리(211), 사용자 레지스트리(213), 스로틀링 시스템(215), 또는 봇 서비스(217) 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 프로세서(620)는 제1 RCS 네트워크(291)의 상태 및 봇(201)에 대하여 설정된 프로필에 기반하여 메시지의 전송 여부를 판단할 수 있다. 예를 들어, 프로필은 제1 RCS 네트워크(291)에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함할 수 있다.
다양한 실시예들에 따르면, 메모리(630)는 실행되었을 때 프로세서(620)로 하여금, 통신 회로(예: 통신 모듈(690))를 이용하여 제1 외부 전자 장치(예: 사용자 장치(101))로부터 복수의 RCS(rich communication suite) 네트워크들(예: 도 2의 RCS 네트워크(291, 292, 293)) 중 제1 외부 전자 장치(101)에 연관된 제1 네트워크(예: 제1 RCS 네트워크(291))를 통하여 제2 외부 전자 장치(예: 봇(201))로의 메시지를 수신하고, 메모리(630)에 저장된 복수의 RCS 네트워크(291, 292, 293) 중 제1 네트워크(291)에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함하는 제2 외부 전자 장치(201)의 프로필 및 제1 네트워크(291)의 네트워크 상태에 기반하여 메시지의 전송 여부를 판단하고, 메시지를 전송하는 것으로 판단되면, 메시지를 제2 네트워크(예: 데이터 네트워크(299))의 프로토콜에 기반하여 변환하고, 변환된 메시지를 상기 제2 네트워크(299)를 통하여 제2 외부 전자 장치(201)로 전송하게 하는 명령어들(instructions)을 저장할 수 있다.
일 실시예에 따르면, 메모리(630)에 저장된 명령어들은, 프로세서(620)로 하여금, 메시지를 전송하지 않는다는 판단에 기반하여 오류 메시지를 제1 네트워크(291)를 통하여 제1 외부 전자 장치(101)로 전송하게 할 수 있다.
예를 들어, 상기 복수의 RCS 네트워크들(291, 292, 293)은 서로 상이한 네트워크 운영자(network operator)에 연관될 수 있다.
예를 들어, 복수의 RCS 네트워크들(291, 292, 293)은 제1 네트워크(291) 및 제3 네트워크(예: 제2 RCS 네트워크 (292))를 적어도 포함하고, 프로필은 상기 제1 네트워크(291)에 대하여 설정된 적어도 하나의 제1 스로틀링 기준 및 상기 제3 네트워크(292)에 대하여 설정된 적어도 하나의 제2 스로틀링 기준을 포함할 수 있다. 예를 들어, 상기 적어도 하나의 제1 스로틀링 기준과 상기 적어도 하나의 제2 스로틀링 기준은 서로 상이하게 설정될 수 있다.
예를 들어, 상기 적어도 하나의 제1 스로틀링 기준 및/또는 적어도 하나의 제2 스로틀링 기준은, 상기 제1 네트워크(291) 및/또는 상기 제3 네트워크(292)에 대한, 최대 동시 연결 세션(concurrent open sessions) 수, 봇 정보 조회율(bot information query rate), 프레젠스 조회율(presence query rate), 메시지 전송률, 메시지 데이터 대역 폭, 최대 그룹 챗 수(maximum group chats), 최대 그룹 챗 인원 수(maximum group chat members), 최대 브로드캐스트 인원(maximum broadcast recipients), 또는 최대 파일 전송율(maximum file transmission rate) 중 적어도 하나를 포함할 수 있다.
예를 들어, 메모리(630)는 제2 외부 전자 장치(201)에 대한 고유 식별자, 상기 고유 식별자에 연관된 상기 제1 네트워크(291)에 대한 상기 제2 외부 전자 장치(201)의 제1 식별자, 및 상기 고유 식별자에 연관된 상기 제3 네트워크(292)에 대한 상기 제2 외부 전자 장치(201)의 제2 식별자를 저장할 수 있다.
예를 들어, 상기 명령어는, 상기 프로세서(620)로 하여금, 상기 제1 외부 전자 장치(101)로부터 수신된 메시지에 포함된 상기 제1 식별자에 연관된 상기 제2 외부 전자 장치(201)의 고유 식별자를 확인하고, 상기 고유 식별자를 이용하여 상기 변환된 메시지를 상기 제2 외부 전자 장치(201)로 전송하도록 할 수 있다.
예를 들어, 상기 제1 식별자 및 상기 제2 식별자 각각은 MSISDN(mobile station international subscriber directory number) 또는 SIP(session initiation protocol) URI(uniform resource indicator) 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 메모리(630)는 통신 회로(690)를 이용하여 제2 외부 전자 장치(201)로부터 제2 네트워크(299)를 통하여 제1 외부 전자 장치(101)로의 메시지를 수신하고, 메모리(630)에 저장된 사용자 정보에 기반하여 복수의 RCS(rich communication suite) 네트워크들(291, 292, 293) 중 상기 제1 외부 전자 장치(101)와 연관된 제1 네트워크(291)를 확인하고, 제1 네트워크(291)의 프로토콜에 기반하여 상기 메시지를 변환하고, 상기 변환된 메시지를 상기 제1 네트워크(291)를 통하여 제1 외부 전자 장치(101)로 전송하게 하는 명령어들을 저장할 수 있다.
예를 들어, 메모리(630)는 프로세서(620)로 하여금 제1 네트워크(291)의 상태 및 상기 제2 외부 전자 장치(201)에 대하여 설정되고 상기 제1 네트워크(291)에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함하는 프로필에 기반하여 상기 메시지의 전송 여부를 판단하도록 하는 명령어들을 더 포함할 수 있다.
일 실시예에 따르면, 상기 제2 외부 전자 장치(201)로부터 수신된 상기 제1 외부 전자 장치(101)로의 메시지는, 제3 외부 전자 장치(예: 전자 장치(600)와 상이한 지역(예: 상이한 국가)에 위치된 플랫폼 서버)에 의하여 전자 장치(600)로 라우팅(routing)될 수 있다. 예를 들어, 전자 장치(600)와 상기 제1 외부 전자 장치(101)는 서로 동일한 위치(예: 국가)에 위치될 수 있다.
다양한 실시예들에 따르면, 메모리(630)는 적어도 하나의 챗봇(chatbot)(예: 봇 (201))의 챗봇 정보를 관리하도록 설정된 봇 레지스트리(bot registry) 모듈(예: 도 2의 챗 레지스트리(211)), 사용자 정보를 관리하도록 설정된 사용자 레지스트리 모듈(예: 도 2의 사용자 레지스트리(213)), 적어도 하나의 챗봇에 연관된 스로틀링(throttling)을 제어하도록 설정된 스로틀링 시스템 모듈(예: 도 2의 스로틀링 시스템(215)), 적어도 하나의 챗봇과 전자 장치(600) 사이의 메시지를 제어하도록 설정된 봇 서비스 모듈(예: 도 2의 봇 서비스(217)), 및 제1 프로토콜에 기반하여 생성된 메시지를 제2 프로토콜에 따라 변환하거나 상기 제2 프로토콜에 따라 생성된 메시지를 상기 제1 프로토콜에 따라 변환하고 상기 전자 장치(600)와 사용자 장치(101) 사이의 메시지 송수신을 제어하도록 설정된 복수의 봇 에이전트 모듈들(예: 도 2의 제1 봇 에이전트(241) 및 제2 봇 에이전트(242))을 포함할 수 있다. 예를 들어, 복수의 봇 에이전트 모듈들(241, 242)은 제1 봇 에이전트 모듈(241)과 제2 봇 에이전트 모듈(242)을 포함하고, 상기 제1 봇 에이전트 모듈(241)에 연관된 제1 네트워크(예: 도 2의 제1 RCS 네트워크(291))와 상기 제2 봇 에이전트 모듈(242)에 연관된 제2 네트워크(예: 도 2의 제2 RCS 네트워크(292))는 서로 상이한 네트워크 운영자에 연관될 수 있다.
예를 들어, 상기 스로틀링 시스템 모듈(215)은 상기 적어도 하나의 챗봇 중 제1 챗봇(201)에 대하여 설정된 프로필에 기반하여 상기 제1 챗봇(201)에 대한 트래픽(traffic)을 제어하도록 설정되고, 상기 프로필은 상기 제1 네트워크(291) 및 상기 제2 네트워크(292) 각각에 대하여 설정된 적어도 하나의 스로틀링 기준을 포함할 수 있다.
도 7은 다양한 실시예들에 따른 목적 사용자로의 메시지 전송 방법의 흐름도(700)이다.
다양한 실시예들에 따르면, 동작 705에서, 전자 장치(예: 도 6의 제1 플랫폼 서버(202))의 프로세서(620)는 통신 모듈(690)을 이용하여 제1 외부 전자 장치(예: 도 5의 봇(201))로부터 메시지를 수신할 수 있다. 예를 들어, 메시지는 제1 네트워크(예: IP 네트워크(299)) 프로토콜(예: HTTP 또는 HTTPS)에 기반한 메시지일 수 있다. 일 실시예에 따르면, 프로세서(620)는 통신 모듈(690)을 이용하여 제1 네트워크(299)를 통하여 제1 외부 전자 장치(201)로부터 메시지를 수신할 수 있다.
다양한 실시예들에 따르면, 동작 710에서, 프로세서(620)는 메시지의 목적 사용자 장치인 제2 외부 전자 장치(예: 사용자 장치(101))에 연관된 네트워크 운영자를 확인할 수 있다. 예를 들어, 프로세서(620)는, 도 4의 동작 420 및 425와 관련하여 상술된 바와 같이, 로컬 캐쉬 또는 사용자 데이터베이스로부터 제2 외부 전자 장치(101)에 연관된 네트워크 운영자를 확인할 수 있다.
일 실시예에 따르면, 프로세서(620)는 확인된 네트워크 운영자에 연관된 프로필(예: 스로틀링 기준)을 확인하고, 프로필에 기반하여 메시지의 전송 여부를 판단할 수 있다. 예를 들어, 메시지를 전송하기로 판단한 경우, 프로세서(620)는 후술하는 동작 715를 수행할 수 있다. 예를 들어, 메시지를 전송하지 않기로 판단한 경우, 프로세서(620)는 통신 모듈(690)을 통해 제1 외부 전자 장치(201)에 오류 메시지를 전송할 수 있다.
다양한 실시예들에 따르면, 동작 715에서, 프로세서(620)는 확인된 네트워크 운영자에 연관된 제2 네트워크(예: 제1 RCS 네트워크(291)) 프로토콜(예: SIP 또는 MSRP)에 기반한 메시지로 메시지를 변환할 수 있다.
다양한 실시예들에 따르면, 동작 720에서, 프로세서(620)는 통신 모듈(690)을 이용하여 제2 네트워크(291)를 통하여 제2 외부 전자 장치(101)로 변환된 메시지를 전송할 수 있다.
도 8은 다양한 실시예들에 따른 네트워크 상태에 기반한 목적 사용자 장치로의 메시지 전송 방법의 흐름도(800)이다.
다양한 실시예들에 따르면, 전자 장치(예: 도 6의 제1 플랫폼 서버(202))의 프로세서(620)는 통신 모듈(690)을 이용하여 제1 외부 전자 장치(예: 사용자 장치(101))로부터 메시지를 수신할 수 있다. 예를 들어, 프로세서(620)는 제1 외부 전자 장치(예: 사용자 장치(101))에 연관된 제1 네트워크(예: 제1 RCS 네트워크(291))를 통하여 제1 외부 전자 장치(101)로부터 메시지를 수신할 수 있다. 예를 들어, 메시지는 제1 네트워크의 제1 프로토콜(예: SIP 또는 MSRP)에 기반한 메시지일 수 있다.
다양한 실시예들에 따르면, 동작 810에서, 프로세서(620)는 제1 외부 전자 장치(101)에 연관된 제1 네트워크(291)의 네트워크 상태를 확인할 수 있다. 예를 들어, 프로세서(620)는 제1 네트워크(291) 동시 연결 세션의 수, 제1 네트워크(291)의 스로틀링에 연관된 정보를 확인할 수 있다.
다양한 실시예들에 따르면, 동작 815에서, 프로세서(620)는 제1 네트워크(291)의 네트워크 상태가 지정된 조건에 대응하는지 판단할 수 있다. 예를 들어, 지정된 조건은 표 2와 관련하여 상술된 스로틀링 기준 중 적어도 하나를 포함할 수 있다. 예를 들어, 지정된 조건은 제1 네트워크(291)에 대하여 설정된 스로틀링 기준(예: 최대 동시 세션 수)을 만족하는 네트워크 상태를 지칭할 수 있다.
다양한 실시예들에 따르면, 동작 820에서, 네트워크 상태가 지정된 상태에 대응하면, 프로세서(620)는 메시지에 연관된 제2 외부 전자 장치(예: 봇(201))로 메시지를 전송할 수 있다. 일 실시예에 따르면, 프로세서(620)는 메시지를 제2 네트워크(예: IP 네트워크(299))를 통하여 제2 외부 전자 장치(201)로 전송할 수 있다. 일 실시예에 따르면, 프로세서(620)는 제2 네트워크의 프로토콜(예: HTTP 및/또는 HTTPS)에 따라서 메시지를 변환하고, 변환된 메시지를 제2 네트워크(299)를 통하여 전송할 수 있다.
다양한 실시예들에 따르면, 동작 825에서, 네트워크 상태가 지정된 상태에 대응하지 않으면 프로세서(620)는 통신 모듈(690)을 이용하여 제1 외부 전자 장치(101)에 오류 메시지를 전송할 수 있다. 일 실시예에 따르면, 프로세서(620)는 제1 네트워크(291)를 통하여 제1 외부 전자 장치(101)에 오류 메시지를 전송할 수 있다.
일 실시예에 따르면, 네트워크 상태가 지정된 상태에 대응하지 않으면 프로세서(620)는 지정된 시간 후에 메시지의 재전송을 시도할 수 있다. 예를 들어, 프로세서(620)는 지정된 시간 후에 네트워크 상태가 지정된 조건에 대응하는지 다시 판단할 수 있다. 예를 들어, 프로세서(620)는 지정된 주기에 따라서 메시지의 재전송을 시도할 수도 있다. 프로세서(620)는 메시지의 재전송을 위한 큐(queue)를 생성할 수도 있다. 일 실시예에 따르면, 지정된 횟수 이상 메시지의 전송 및/또는 재전송을 실패하거나, 또는 지정된 전송 시간 구간 내에 메시지의 전송 및 재전송에 실패한 경우, 프로세서(620)는 동작 825를 수행할 수도 있다. 예를 들어, 프로세서(620)는 메시지의 전송 실패를 지시하는 카운터 또는 전송 시간 구간에 기반하여 설정된 타이머를 이용할 수도 있다. 예를 들어, 프로세서(620)는 카운터가 지정된 수를 초과하거나 타이머가 만료된 경우에 동작 825를 수행할 수 있다.
도 9는 다양한 실시예들에 따른 RCS 네트워크 프로필 조정 방법의 흐름도(900)이다.
다양한 실시예들에 따르면, 동작 905에서, 전자 장치(예: 도 6의 제1 플랫폼 서버(202))의 프로세서(620)는 제1 RCS 네트워크(291)의 네트워크 상태를 확인할 수 있다. 일 실시예에 따르면, 프로세서(620)는 요청에 기반하여 네트워크 상태를 확인할 수 있다. 예를 들어, 요청은 제1 외부 전자 장치(예: 사용자 장치(101)) 또는 제2 외부 전자 장치(예: 봇(201))로부터의 메시지 수신을 포함할 수 있다. 일 실시예에 따르면, 프로세서(620)는 지정된 주기로 제1 RCS 네트워크(291)의 네트워크 상태를 확인할 수 있다. 예를 들어, 네트워크 상태는 네트워크의 스로틀링에 연관된 정보를 포함할 수 있다. 예를 들어, 네트워크 상태는 제1 RCS 네트워크(291)의 동시 연결 세션 수, 봇 정보 조회율, 단말 프레젠스 정보 조회율, 메시지 전송률, 그룹 챗 수, 또는 파일 전송율 중 적어도 하나를 포함할 수 있다.
다양한 실시예들에 따르면, 동작 910에서, 프로세서(620)는 제1 RCS 네트워크(291)의 네트워크 상태에 적어도 기반하여 제2 외부 전자 장치(201)의 제1 RCS 네트워크 프로필을 조정할 수 있다. 예를 들어, 제1 RCS 네트워크 프로필은 상술된 표 2의 스로틀링 기준 중 적어도 하나를 포함할 수 있다. 예를 들어, 프로필의 조정은 상술된 스로틀링 기준 중 적어도 하나의 하나의 조정을 포함할 수 있다.
일 실시예에 따르면, 프로세서(620)는 지정된 기간 동안의 제1 RCS 네트워크(291)의 네트워크 상태에 적어도 기반하여 제2 외부 전자 장치(201)의 제1 RCS 네트워크 프로필을 조정할 수 있다. 예를 들어, 프로세서(620)는 지정된 기간 동안 측정된 제1 RCS 네트워크(291)의 네트워크 상태의 통계값(예: 평균 값)에 기반하여 제2 외부 전자 장치(201)의 제1 RCS 네트워크 프로필을 조정할 수 있다.
일 실시예에 따르면, 프로세서(620)는 전자 장치(202)에 복수의 봇들이 연관된 경우, 다른 봇의 네트워크 상태에 적어도 기반하여 제2 외부 전자 장치(201)의 제1 RCS 네트워크 프로필을 조정할 수도 있다. 예를 들어, 제1 RCS 네트워크(291)에 대하여, 제2 외부 전자 장치(201)의 최대 동시 연결 세션 수와 다른 봇의 최대 동시 연결 세션 수가 동일하게 설정될 수 있다. 예를 들어, 제2 외부 전자 장치(201)의 제1 RCS 네트워크(291)에 대한 동시 연결 세션 수는 다른 봇의 제1 RCS 네트워크(291)에 대한 동시 연결 세션 수 보다 클 수 있다. 이 경우, 프로세서(620)는 제2 외부 전자 장치(201)의 제1 RCS 네트워크(291)에 대한 최대 동시 연결 세션 수를 증가시키고 다른 봇의 제1 RCS 네트워크(291)에 대한 동시 최대 동시 연결 세션 수를 감소시킬 수도 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", “A 또는 B 중 적어도 하나,”"A, B 또는 C," "A, B 및 C 중 적어도 하나,”및 “A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, “기능적으로” 또는 “통신적으로”라는 용어와 함께 또는 이런 용어 없이, “커플드” 또는 “커넥티드”라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체 는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (20)

  1. 전자 장치에 있어서,
    통신 회로;
    상기 통신 회로에 작동적으로(operatively) 연결된 프로세서; 및
    상기 프로세서에 작동적으로 연결된 메모리를 포함하고, 상기 메모리는 실행되었을 때 상기 프로세서로 하여금:
    상기 통신 회로를 이용하여 챗봇(chatbot) 장치로부터 복수의 RCS(rich communication suite) 네트워크들 중 상기 챗봇 장치에 연관된 제1 네트워크를 통하여 모바일 장치로의 메시지를 수신하고, 상기 복수의 RCS 네트워크들 각각은 서로 상이한 네트워크 운영자들에 연관됨,
    상기 메모리에 저장된 상기 복수의 RCS 네트워크들 중 상기 제1 네트워크에 대한 적어도 하나의 스로틀링(throttling) 기준을 포함하는 상기 모바일 장치의 프로필 및 상기 제1 네트워크의 네트워크 상태에 기반하여 상기 메시지의 전송 여부를 판단하고,
    상기 메시지를 전송하는 것으로 판단되면, 상기 메시지를 제2 네트워크의 프로토콜에 기반하여 변환하고, 상기 변환된 메시지를 상기 제2 네트워크를 통하여 상기 모바일 장치로 전송하게 하는 명령어들(instructions)을 저장하는,
    전자 장치.
  2. 제 1 항에 있어서,
    상기 명령어들은, 상기 프로세서로 하여금:
    상기 메시지를 전송하지 않는다는 판단에 기반하여 오류 메시지를 상기 제1 네트워크를 통하여 상기 챗봇 장치로 전송하는, 전자 장치.
  3. 삭제
  4. 제 1 항에 있어서,
    상기 복수의 RCS 네트워크들은 상기 제1 네트워크 및 제3 네트워크를 적어도 포함하고,
    상기 프로필은 상기 제1 네트워크에 대하여 설정된 적어도 하나의 제1 스로틀링 기준 및 상기 제3 네트워크에 대하여 설정된 적어도 하나의 제2 스로틀링 기준을 포함하고,
    상기 적어도 하나의 제1 스로틀링 기준과 상기 적어도 하나의 제2 스로틀링 기준은 서로 상이한, 전자 장치.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 제1 스로틀링 기준은,
    상기 제1 네트워크에 대한, 최대 동시 연결 세션(concurrent open sessions) 수, 봇 정보 조회율(bot information query rate), 프레젠스 조회율(presence query rate), 메시지 전송률, 메시지 데이터 대역 폭, 최대 그룹 챗 수(maximum group chats), 최대 그룹 챗 인원 수(maximum group chat members), 최대 브로드캐스트 인원(maximum broadcast recipients), 또는 최대 파일 전송율(maximum file transmission rate) 중 적어도 하나를 포함하는, 전자 장치.
  6. 제 4 항에 있어서,
    상기 메모리는 상기 모바일 장치에 대한 고유 식별자, 상기 고유 식별자에 연관된 상기 제1 네트워크에 대한 상기 모바일 장치의 제1 식별자, 및 상기 고유 식별자에 연관된 상기 제3 네트워크에 대한 상기 모바일 장치의 제2 식별자를 저장한, 전자 장치.
  7. 제 6 항에 있어서,
    상기 명령어는, 상기 프로세서로 하여금:
    상기 챗봇 장치로부터 수신된 메시지에 포함된 상기 제1 식별자에 연관된 상기 모바일 장치의 고유 식별자를 확인하고,
    상기 고유 식별자를 이용하여 상기 변환된 메시지를 상기 모바일 장치로 전송하도록 하는 전자 장치.
  8. 제 6 항에 있어서,
    상기 제1 식별자 및 상기 제2 식별자 각각은 MSISDN(mobile station international subscriber directory number) 또는 SIP(session initiation protocol) URI(uniform resource indicator) 중 적어도 하나를 포함하는, 전자 장치.
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 전자 장치에 있어서,
    통신 회로;
    상기 통신 회로에 작동적으로(operatively) 연결된 프로세서; 및
    상기 프로세서에 작동적으로 연결된 메모리를 포함하고,
    상기 메모리는:
    복수의 챗봇(chatbot)의 챗봇 정보를 관리하도록 설정된 봇 레지스트리(bot registry) 모듈;
    사용자 정보를 관리하도록 설정된 사용자 레지스트리 모듈;
    상기 복수의 챗봇에 연관된 스로틀링(throttling)을 제어하도록 설정된 스로틀링 시스템 모듈;
    상기 복수의 챗봇과 상기 전자 장치 사이의 메시지를 제어하도록 설정된 봇 서비스 모듈; 및
    제1 프로토콜에 기반하여 생성된 메시지를 제2 프로토콜에 따라 변환하거나 상기 제2 프로토콜에 따라 생성된 메시지를 상기 제1 프로토콜에 따라 변환하고 상기 전자 장치와 사용자 장치 사이의 메시지 송수신을 제어하도록 설정된 복수의 봇 에이전트 모듈들을 포함하고,
    상기 복수의 봇 에이전트 모듈들은 제1 봇 에이전트 모듈과 제2 봇 에이전트 모듈을 포함하고,
    상기 제1 봇 에이전트 모듈에 연관된 제1 RCS 네트워크와 상기 제2 봇 에이전트 모듈에 연관된 제2 RCS 네트워크는 서로 상이한 네트워크 운영자에 연관되고,
    상기 스로틀링 시스템 모듈은 상기 복수의 챗봇 중 제1 챗봇에 대하여 설정된 프로필의 상기 제1 RCS 네트워크 및 상기 제2 RCS 네트워크 각각에 대하여 설정된 스로틀링 기준에 기반하여, 상기 제1 챗봇의 메시지 송신을 위한 RCS 네트워크의 스로틀링 기준에 따라서 상기 제1 챗봇의 메시지의 송신 여부를 결정하여 상기 제1 봇 에이전트 모듈에 연관된 상기 제1 챗봇의 트래픽을 제어하도록 설정된, 전자 장치.
  17. 삭제
  18. 제 16 항에 있어서,
    상기 스로틀링 기준은,
    최대 동시 연결 세션(concurrent open sessions) 수, 봇 정보 조회율(bot information query rate), 프레젠스 조회율(presence query rate), 메시지 전송률, 메시지 데이터 대역 폭, 최대 그룹 챗 수(maximum group chats), 최대 그룹 챗 인원 수(maximum group chat members), 최대 브로드캐스트 인원(maximum broadcast recipients), 또는 최대 파일 전송율(maximum file transmission rate) 중 적어도 하나를 포함하는, 전자 장치.
  19. 삭제
  20. 삭제
KR1020180016210A 2018-02-09 2018-02-09 대화형 콘텐츠 제공 시스템 및 방법 KR102472916B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180016210A KR102472916B1 (ko) 2018-02-09 2018-02-09 대화형 콘텐츠 제공 시스템 및 방법
PCT/KR2019/001576 WO2019156506A1 (en) 2018-02-09 2019-02-08 System and method for providing conversational contents
US16/270,954 US10911378B2 (en) 2018-02-09 2019-02-08 System and method for providing conversational contents

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180016210A KR102472916B1 (ko) 2018-02-09 2018-02-09 대화형 콘텐츠 제공 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20190096589A KR20190096589A (ko) 2019-08-20
KR102472916B1 true KR102472916B1 (ko) 2022-12-02

Family

ID=67541246

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180016210A KR102472916B1 (ko) 2018-02-09 2018-02-09 대화형 콘텐츠 제공 시스템 및 방법

Country Status (3)

Country Link
US (1) US10911378B2 (ko)
KR (1) KR102472916B1 (ko)
WO (1) WO2019156506A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10863347B2 (en) * 2019-03-28 2020-12-08 T-Mobile Usa, Inc. Policy enhancement for mixed capability devices
US11178093B2 (en) * 2019-04-12 2021-11-16 Google Llc Inter-operative message notification agent
US11553314B2 (en) * 2019-07-12 2023-01-10 nativeMsg, Inc. Method and system for providing interoperability for rich communication suite (RCS) messaging with local and remote applications with e-commerce and data collection
JP6736102B1 (ja) * 2019-07-29 2020-08-05 株式会社アクリート メッセージ通信装置及びメッセージ通信プログラム
KR20210082731A (ko) * 2019-12-26 2021-07-06 삼성전자주식회사 파일을 다운로드하는 전자 장치 및 그 동작 방법
CN112437002B (zh) * 2020-11-23 2023-05-12 彩讯科技股份有限公司 一种基于rcs消息的点餐方法、系统、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170063977A1 (en) * 2015-08-25 2017-03-02 Tech Mahindra Limited Systems and methods to achieve interworking between rcs and non-rcs networks
US20170134322A1 (en) * 2007-10-22 2017-05-11 Strongview Systems, Inc. Systems and Methods for Adaptive Communication Control Using A Profile
US20170366478A1 (en) * 2016-06-20 2017-12-21 Microsoft Technology Licensing, Llc Communication System

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130079440A (ko) * 2010-05-14 2013-07-10 삼성전자주식회사 리치 커뮤니케이션 서비스 시스템과 비-리치 커뮤니케이션 서비스 시스템간의 통신을 가능하게 하는 시스템 및 방법
US20140122619A1 (en) * 2012-10-26 2014-05-01 Xiaojiang Duan Chatbot system and method with interactive chat log
US20140372557A1 (en) * 2013-06-18 2014-12-18 Research In Motion Limited System and Method for Adaptation of Capability Discovery for a Multitude of Transport Protocol Requirements/Scenarios Through Interworking
US9313164B2 (en) * 2013-06-24 2016-04-12 Qualcomm Incorporated Updating rich communication suite capability information over a communications network
US10116596B2 (en) * 2014-09-29 2018-10-30 International Business Machines Corporation Personalizing data system components and data sources as chatbots in a group chat session
KR102311613B1 (ko) 2015-03-23 2021-10-13 삼성전자주식회사 통합 메시지 발신 방법 및 그 장치
US10326789B1 (en) * 2015-09-25 2019-06-18 Amazon Technologies, Inc. Web Bot detection and human differentiation
KR102174346B1 (ko) * 2015-12-21 2020-11-04 구글 엘엘씨 메시징 애플리케이션들을 위한 자동적인 제안들 및 다른 콘텐츠
US10439979B2 (en) * 2016-08-30 2019-10-08 Ncr Corporation Messaging integration
KR102266879B1 (ko) 2017-04-14 2021-06-22 삼성전자주식회사 대화형 콘텐츠 제공 시스템
US10498898B2 (en) * 2017-12-13 2019-12-03 Genesys Telecommunications Laboratories, Inc. Systems and methods for chatbot generation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170134322A1 (en) * 2007-10-22 2017-05-11 Strongview Systems, Inc. Systems and Methods for Adaptive Communication Control Using A Profile
US20170063977A1 (en) * 2015-08-25 2017-03-02 Tech Mahindra Limited Systems and methods to achieve interworking between rcs and non-rcs networks
US20170366478A1 (en) * 2016-06-20 2017-12-21 Microsoft Technology Licensing, Llc Communication System

Also Published As

Publication number Publication date
US10911378B2 (en) 2021-02-02
WO2019156506A1 (en) 2019-08-15
KR20190096589A (ko) 2019-08-20
US20190253368A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
KR102472916B1 (ko) 대화형 콘텐츠 제공 시스템 및 방법
US11290769B2 (en) Network-based remote control
EP3389230B1 (en) System for providing dialog content
US9958841B2 (en) Method and device for remotely controlling household appliance, and computer readable storage medium
KR102304086B1 (ko) 대화형 콘텐츠를 제공하는 전자 장치, 서버 및 이를 위한 방법
CN105162678B (zh) 语音聊天的模式自适应方法及装置
US9591524B2 (en) Method and apparatus for transmitting data in network system, and data transmission system
KR102398502B1 (ko) 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법
US9065788B2 (en) Method, device and system for voice communication
KR101999780B1 (ko) 가상 챗봇을 이용하여 인스턴트 메시징 서비스를 제공하는 서버, 단말 및 방법
EP2750325A2 (en) Communication apparatus, communication system, communication method, and recording medium storing communication control program
WO2020164526A1 (zh) 一种分布式系统中的节点控制方法和相关装置
KR102498486B1 (ko) 전자 장치 및 그의 통신 중계 방법
EP2974159B1 (en) Method, device and system for voice communication
EP3805938A1 (en) Server node selection method and terminal device
US20140344423A1 (en) Method, apparatus and system for switching function mode
KR102457007B1 (ko) 리치 통신 스위트 서비스를 통한 비디오 공유 제어 방법 및 전자 장치
JP6806410B2 (ja) 異なるアプリケーションプログラムの間でコンテンツを転送するための方法および装置
KR102442628B1 (ko) 대화 서비스를 제공하기 위한 전자 장치 및 그 작동 방법
CN113259732B (zh) 一种数据传输的方法
US20230125545A1 (en) Shared Control Of A Remote Client
US20130132478A1 (en) Establishing Communication Among Parties Based on Location
US20230344893A1 (en) Third Party Application Control Of A Client
WO2023185836A1 (zh) 边缘应用服务器选择的指示方法、终端及网络侧设备
US20230052857A1 (en) Method and device for controlling communication path of dual subscriber identification module according to call

Legal Events

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