KR102240904B1 - WebRTC 기반 콜센터 서비스 방법 및 그 장치 - Google Patents

WebRTC 기반 콜센터 서비스 방법 및 그 장치 Download PDF

Info

Publication number
KR102240904B1
KR102240904B1 KR1020200009900A KR20200009900A KR102240904B1 KR 102240904 B1 KR102240904 B1 KR 102240904B1 KR 1020200009900 A KR1020200009900 A KR 1020200009900A KR 20200009900 A KR20200009900 A KR 20200009900A KR 102240904 B1 KR102240904 B1 KR 102240904B1
Authority
KR
South Korea
Prior art keywords
terminal
message
webrtc
call
pbx
Prior art date
Application number
KR1020200009900A
Other languages
English (en)
Other versions
KR20200092272A (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 KR20200092272A publication Critical patent/KR20200092272A/ko
Application granted granted Critical
Publication of KR102240904B1 publication Critical patent/KR102240904B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • G06Q50/50
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/247Telephone sets including user guidance or feature selection means facilitating their use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/51Centralised call answering arrangements requiring operator intervention, e.g. call or contact centers for telemarketing
    • H04M3/5183Call or contact centers with computer-telephony arrangements
    • H04M3/5191Call or contact centers with computer-telephony arrangements interacting with the Internet

Abstract

WebRTC 기반 콜센터 서비스를 제공하는 방법 및 그 장치가 제공된다. 이 방법은 고객 단말의 호 연결을 요청하는 SIP(Session Initiation Protocol) 메시지를 IP-PBX(Private Branch Exchange)로부터 수신하는 단계, 상기 호 연결을 요청하는 SIP 메시지를 WebRTC 메시지로 변환하여 상담원 단말에게 전송하는 단계, 상기 상담원 단말로부터 호 연결에 응답하는 WebRTC 메시지를 수신하면, 상기 WebRTC 메시지를 SIP 메시지로 변환하여 상기 고객 단말로 전송하는 단계, 그리고 상기 고객 단말과 SIP 프로토콜 통신을 수행하고, 상기 상담원 단말과 WebRTC 통신을 수행하여, 상기 고객 단말과 상기 상담원 단말 간의 통화 데이터를 중계(Relay)하는 단계를 포함한다.

Description

WebRTC 기반 콜센터 서비스 방법 및 그 장치{METHO AND APPARSTUS FOR PROVIDING FOR CALL CENTER SERVICE}
본 발명은 WebRTC(Web Real-Time Communications) 기반 콜센터 서비스 방법 및 그 장치에 관한 것이다.
최근, 공공 기관 등 많은 기관들은 이용 고객의 편의를 제공하거나, 은행이나 증권사 등의 금융기관은 곳곳에 지점이 분포되어 운영되는 사업체에서는 해당 지점에서만 처리 가능한 업무를 제외한 나머지 업무 즉, 일반적인 정보 또는 서비스를 요청하는 업무에 대한 고객의 전화를 응대하기 위하여 고객 콜센터를 운영하고 있다. 고객 콜센터는 고객으로부터 상담 전화가 걸려오면, 다수의 상담원 중에서 현재 응답이 가능한 상담원을 연결하여 줌으로써 고객 서비스를 제공하게 된다.
콜센터를 물리적인 전화단말이 없이도 소프트웨어만으로도 구성할 수 있는 콜센터 시스템이 필요하다. 이동 중이거나 외근, 재택 근무 등 고정적인 업무 환경뿐만 아니라 유동적인 업무환경에서도 쉽고 간단히 콜센터 서비스를 수행할 수 있는 콜센터 시스템이 필요하다.
콜센터는 고객의 전화를 수신하여 서비스를 제공하는 인바운드 콜(inbound call) 서비스 및 고객에게 전화를 발신하여 서비스를 제공하는 아웃바운드 콜(outbound call) 서비스를 제공한다.
최근 콜센터는 기업의 중요한 이익창출 역할을 수행하게 되면서 기업마다 콜센터의 규모도 점점 커져 가고 있다. 이에 따라 콜센터의 기능을 제고할 수 있는 콜센터 시스템의 필요성이 증가하였다.
본 발명이 해결하고자 하는 과제는 콜센터를 물리적인 전화단말이 없이도 소프트웨어만으로도 구성할 수 있는 WebRTC 기반 콜센터 서비스 방법 및 그 장치를 제공하는 것이다.
본 발명의 하나의 특징에 따르면, 컴퓨팅 장치가 WebRTC(Web Real-Time Communications) 통신을 이용한 콜센터 서비스를 제공하는 방법으로서, 고객 단말의 호 연결을 요청하는 SIP(Session Initiation Protocol) 메시지를 IP-PBX(Private Branch Exchange)로부터 수신하는 단계, 상기 호 연결을 요청하는 SIP 메시지를 WebRTC 메시지로 변환하여 상담원 단말에게 전송하는 단계, 상기 상담원 단말로부터 호 연결에 응답하는 WebRTC 메시지를 수신하면, 상기 WebRTC 메시지를 SIP 메시지로 변환하여 상기 고객 단말로 전송하는 단계, 그리고 상기 고객 단말과 SIP 프로토콜 통신을 수행하고, 상기 상담원 단말과 WebRTC 통신을 수행하여, 상기 고객 단말과 상기 상담원 단말 간의 통화 데이터를 중계(Relay)하는 단계를 포함한다.
상기 IP-PBX는, 상기 고객 단말로부터 호 연결 요청 메시지가 수신되면, 상기 고객 단말과 음성 호를 임시로 연결하여 상기 고객 단말에게 링백톤을 송출하고, CTI(Computer Telephony Integration) 게이트웨이에게 상담원 단말의 배정을 요청하여 배정된 상담원 단말의 정보를 획득하며, 상기 수신하는 단계는, 상기 CTI 게이트웨이로부터 배정받은 상담원 단말로 호 연결을 요청하는 메시지를 상기 IP-PBX로부터 수신할 수 있다.
상기 수신하는 단계 이전에, 상기 상담원 단말로부터 가입자 전화번호가 포함된 등록 요청 메시지를 수신하는 단게, 그리고 상기 등록 요청 메시지를 SIP 메시지로 변환하여 상기 IP-PBX에 전송하는 단계를 더 포함하고, 상기 IP-PBX로부터 수신되는 호 연결 요청 메시지는, 상기 상담원 단말의 가입자 전화번호가 수신자 필드에 포함될 수 있다.
상기 상담원 단말은 웹 단말을 포함하고, 상기 등록 요청 메시지는, 상기 고객 단말로부터 호 연결 요청 메시지를 수신하기 전에 상기 상담원 단말로부터 수신될 수 있다.
상기 상담원 단말은 모바일 단말을 포함하고, 상기 IP-PBX는, 상기 배정받은 상담원 단말의 정보를 포함하는 푸쉬 메시지를 상기 상담원 단말로 전송하도록 푸쉬 서버에게 요청하고, 상기 등록 요청 메시지는, 상기 링백톤을 송출한 이후에 상기 상담원 단말이 상기 푸쉬 메시지를 클릭한 경우, 상기 상담원 단말로부터 수신될 수 있다.
상기 고객 단말로부터 수신한 호 연결 요청 메시지는, 콜센터 대표 전화번호를 포함하고, 상기 IP-PBX로부터 수신하는 호 연결 요청 메시지는, CTI(Computer Telephony Integration) 게이트웨이로부터 상기 IP-PBX가 배정받은 상담원 단말의 전화번호를 수신자로 포함할 수 있다.
상기 고객 단말로부터 수신한 호 연결 요청 메시지는, 특정 상담원 단말의 전화번호를 포함하고, 상기 IP-PBX로부터 수신하는 호 연결 요청 메시지는, 상기 특정 상담원 단말의 전화번호를 그대로 포함할 수 있다.
상기 중계하는 단계 이후, 제1 상담원 단말로부터 수신한 호 전환을 요청하는 WebRTC 메시지를 재연결 메시지(reINVITE)로 변환하여 상기 고객 단말에게 전송하고, 상기 고객 단말로부터 수신한 상기 재연결 메시지에 대한 응답 메시지를 상기 WebRTC 메시지로 변환하여 상기 제1 상담원 단말에게 전송하여, 상기 제1 상담원 단말과 상기 고객 단말 간의 세션을 홀드(Hold)하는 단계, 그리고 상기 제1 상담원 단말이 요청한 제2 상담원 단말에게 호 연결을 요청하여 응답이 수신되면, 상기 홀드한 세션을 종료하고 상기 제2 상담원 단말과 상기 고객 단말 간의 세션을 생성하는 단계를 더 포함할 수 있다.
상기 홀드하는 단계와 상기 세션을 생성하는 단계 사이에, 상기 제2 상담원 단말에게 세션 전환 요청이 발생하였음을 알리는 메시지를 전송하여 응답을 수신하는 단계를 더 포함할 수 있다.
본 발명의 다른 특징에 따르면, 컴퓨팅 장치는 통신 장치, 메모리, 그리고 상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함하고, 상기 프로그램은, IP-PBX(Private Branch Exchange)와 SIP(Session Initiation Protocol) 통신을 하고, 상담원 단말과 웹소켓을 연결하여 WebRTC(Web Real-Time Communications) 통신을 하며, 고객 단말과 상기 상담원 단말 간의 콜센터 서비스를 위한 호 처리 및 통화 데이터를 통화 데이터를 중계(Relay)하는 명령어들(Instructions)을 포함한다.
상기 프로그램은, 전화망을 통해 상기 고객 단말이 전송한 호 연결 요청 메시지를 상기 IP-PBX로부터 수신하여 상기 상담원 단말로 전달하거나, 또는 데이터망을 통해 상기 고객 단말로부터 수신한 호 연결 요청 메시지를 상기 IP-PBX로 전달하고 상기 IP-PBX로부터 수신한 호 연결 요청 메시지를 상기 상담원 단말로 전달하는 명령어들을 포함하고, 상기 IP-PBX로부터 수신한 호 연결 요청 메시지는, 상기 고객 단말이 설정한 특정 상담원 단말의 전화번호를 포함하거나 또는 상기 IP-PBX가 CTI(Computer Telephony Integration) 게이트웨이로부터 배정받은 상담원 단말의 전화번호를 수신자 정보로 포함할 수 있다.
상기 프로그램은, 상기 고객 단말 및 상기 상담원 단말과 웹 소켓으로 연결한 후, 상기 고객 단말 및 상기 상담원 단말로부터 수신한 토큰 ID가 기 발급한 토큰 ID와 일치하는지 비교하여 불일치하면, 세션을 초기화하며, 상기 고객 단말 및 상기 상담원 단말과 주기적으로 핑퐁을 교환하고 핑퐁 교환에 실패하면, 기 연결된 세션을 종료하는 명령어들을 포함할 수 있다.
상기 프로그램은, 제1 상담원 단말 및 상기 고객 단말 간의 통화 세션이 연결된 상태에서, 상기 제1 상담원 단말의 호 전환 요청이 수신되면, 연결되 통화 세션을 홀드(Hold)하고, 상기 제1 상담원 단말이 요청한 제2 상담원 단말과 호 설립 절차를 수행한 후, 상기 홀드 상태의 통화 세션을 종료하고 상기 고객 단말과 상기 제2 상담원 단말 간의 통화 세션으로 전환하는 명령어들을 포함할 수 있다.
상기 프로그램은, 상기 상담원 단말에서 실행된 전용 앱과 통신하는 명령어들을 포함하고, 상기 전용 앱은, 수신 이력, 발신 이력, 상담 내역 관리, 녹음 청취, 모니터링 및 통계 중 적어도 하나를 포함하는 CRM(Customer Relationship Management) 기능과, 전화 기능, 전화 수신을 알리는 푸쉬 메시지 팝업 기능을 포함할 수 있다.
실시예에 따르면, 상담원 단말을 WebRTC 기반 소프트웨어로 제공함으로써 다양하고 유연한 콜센터 서비스 환경을 제공할 수 있다. 따라서, 초기 과도한 시스템 투자없이 소프트웨어만으로 쉽고 간단하게 콜센터 환경을 구성할 수 있고, 비용절감 및 상담업무 환경 개선 등을 기대할 수 있다.
또한, 전통적인 물리적 기반의 콜센터가 아닌 소프트웨어 기반의 클라우드 콜센터 서비스를 제공할 수도 있다. 클라우드 기반이기 때문에 고객은 비용절감 및 관리인력 감소 등의 추가적인 효과를 기대할 수 있다.
또한, 상담원이 이동 중이거나 외근, 재택 근무 등 고정적인 업무 환경뿐만 아니라 유동적인 업무환경에서도 쉽고 간단히 콜센터 서비스를 수행할 수 있다.
또한, 전화 기능 외에 콜센터 상담사에게 필요한 수/발신 콜이력, 상담내용 저장/관리/조회, 수신전화정보 팝업, 녹음청취 등의 다양한 기능을 제공하고 콜센터 실시간 현황을 모니터링하고 집계하여 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 WebRTC 기반의 콜센터 시스템의 구성을 나타낸 블록도이다.
도 2는 본 발명의 한 실시예에 따른 고객 전화 단말이 대표번호로 전화한 경우, 콜 플로우(Call Flow)를 나타낸다.
도 3은 본 발명의 다른 실시예에 따른 고객 전화 단말이 대표번호로 전화한 경우, 콜 플로우를 나타낸다.
도 4는 도 2 및 도 3의 실시예에 적용되는 콜 플로우를 나타낸다.
도 5는 본 발명의 또 다른 실시예에 따른 고객 WebRTC 단말이 대표번호로 전화한 경우, 콜 플로우를 나타낸다.
도 6은 본 발명의 실시예에 따른 고객 WebRTC 단말과 WebRTC 미디어 서버 간의 통신 세션 설립 및 해제 플로우를 나타낸다.
도 7은 본 발명의 실시예에 따른 상담원 단말과 WebRTC 미디어 서버 간의 통신 세션 설립 및 해제 플로우를 나타낸다.
도 8은 본 발명의 한 실시예에 따른 고객 전화 단말이 상담원 전화번호로 전화한 경우, 콜 플로우를 나타낸다.
도 9는 본 발명의 다른 실시예에 따른 고객 WebRTC 단말이 상담원 전화번호로 전화한 경우, 콜 플로우를 나타낸다.
도 10은 본 발명의 실시예에 따른 협의 호 전환을 위한 홀드(Hold) 및 신규 호 생성 플로우를 나타낸다.
도 11은 본 발명의 실시예에 따른 협의 호 전환을 위한 플로우를 나타낸다.
도 12는 본 발명의 실시예에 따른 즉시 호 전환을 위한 플로우를 나타낸다.
도 13은 본 발명의 한 실시예에 따른 상담원 단말에 알림을 푸시하는 과정을 나타낸 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 상담원 단말에 알림을 푸시하는 과정을 나타낸 흐름도이다.
도 15는 본 발명의 실시예에 따른 콜센터 상담사를 위한 어플리케이션의 기능을 설명하는 화면이다.
도 16은 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성을 나타낸 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함" 한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
또한, 명세서에 기재된 "…부", "…기", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 "전송 또는 제공" 은 직접적인 전송 또는 제공하는 것 뿐만 아니라 다른 장치를 통해 또는 우회 경로를 이용하여 간접적으로 전송 또는 제공도 포함할 수 있다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
본 명세서에서 도면에 관계없이 동일한 도면번호는 동일한 구성요소를 지칭하며, "및/또는" 은 언급된 구성 요소들의 각각 및 하나 이상의 모든 조합을 포함할 수 있다.
WebRTC(Web Real-Time Communication)는 웹 브라우저 간에 별도 플러그인의 도움 없이도 서로 통신할 수 있도록 설계된 API(Application Programming Interface)이다. WebRTC는 웹 브라우저 상에서의 음성 통화, 영상 통화, P2P (peer to peer) 파일 공유 등으로 활용될 수 있다. WebRTC 기술은 HTML(Hyper Text Markup Language) 5와 자바스크립트(Javascript)만을 이용하여 실시간 통신을 구현하므로, WebRTC 통신을 위한 별도의 플러그인을 웹브라우저에 설치하지 않는다.
본 발명의 실시예는 이러한 WebRTC 기술을 이용하는 콜센터 시스템을 구현한다. 이에 대하여 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 WebRTC 기반의 콜센터 시스템의 구성을 나타낸 블록도이다.
도 1을 참조하면, 콜센터 시스템(100)은 통신망(201, 203)을 통해 고객 단말(301, 303)과 연결된다.
콜센터 시스템(100)은 고객 단말(301, 303)과 호를 연결하여 고객 단말(301, 303)에게 콜센터 서비스를 제공한다. 콜센터 서비스는 공지의 서비스이므로, 자세한 설명은 생략한다.
통신망(201, 203)은 콜센터 시스템(100)과 고객 단말(301, 303) 간의 통화 연결을 제공하는 통신사업자의 망으로서, 전화망(PSTN, public switched telephone network)(201)과 데이터망(PSDN, Public Switched Data Network)(203)을 포함한다.
고객 단말(301, 303)은 콜센터 서비스를 제공받기를 원하는 사용자의 단말로서, 고객 전화 단말(301)과 고객 WebRTC 단말(303)을 포함한다.
고객 전화 단말(301)과 고객 WebRTC 단말(303)은 유선 전화기, PC, 노트북, 휴대폰, 스마트폰, 태블릿 PC 등을 포함할 수 있다.
이때, 고객 전화 단말(301)은 전화망(PSTN)(201)을 통해 콜센터 시스템(100)과 연결된다. 고객 전화 단말(301)은 일반적인 통화 연결 방식을 사용하여 콜센터 시스템(101) 내의 IP-PBX(103)와 호 세션을 연결한다.
고객 WebRTC 단말(303)은 데이터망(PSDN)(203)을 통해 콜센터 시스템(100)과 연결된다. 고객 WebRTC 단말(303)은 WebRTC를 지원하는 웹 브라우저를 구동하여 콜센터 시스템(101) 내의 국선 WebRTC 서버(109)와 호 세션을 연결한다.
콜센터 시스템(100)은 IP(Internet Protocol) 트렁크(Trunk) 게이트웨이(101), IP-PBX(Private Branch Exchange)(103), CTI(Computer Telephony Integration) 게이트웨이(105), 내선 WebRTC 서버(107), 국선 WebRTC 서버(109), 내선 프록시(Proxy) 서버(111), 내선 TURN(Traversal Using Relay NAT) 서버(113), 국선 프록시 서버(115), 국선 TURN 서버(117), 푸쉬(Push) 서버(119), 푸쉬 중개 서버(121), 상담원 단말(123) 및 운용 관리 서버(125)를 포함한다.
IP 트렁크 게이트웨이(101)는 IP-PBX(103)에 할당된 콜센터 대표 전화번호와 IP-PBX(103)에 할당된 IP 주소 정보를 매핑하여 저장한다.
IP 트렁크 게이트웨이(101)는 PSTN(201)으로부터 수신한 호 연결 요청에 포함된 전화번호를 기초로 IP-PBX(103)의 IP 주소 정보를 확인하고, 확인한 IP 주소 정보를 이용하여 IP-PBX(103)로 호 연결 요청을 전달한다.
IP 트렁크 게이트웨이(101)는 NAT(Network Address Translation) 기능 및 방화벽 기능을 포함할 수 있다.
IP-PBX(103)는 IP 주소를 가진 고객 단말(301, 303)과 상담원 단말(123) 간의 회선 교환을 수행한다.
IP-PBX(103)는 고객 단말(301, 303)로부터 호 연결 요청이 수신되면, 링백톤(Ringback Tone)을 고객 단말(301, 303)로 송출하고, CTI 게이트웨이(105)로 호 연결 요청을 전달한다.
IP-PBX(103)는 링백톤(Ringback Tone)을 고객 단말(301, 303)로 송출하면서, 동시에 상담원 단말(123)과 호 설립(Call Establishment)을 수행한다. 이때, 호 설립이 완료되면, 즉, 상담원 단말(123)로부터 응답 메시지가 수신되면, 링백톤을 중단하고, 고객 단말(301, 303)로 재연결(re-invite)을 통해 RTP 통신을 위한 절차를 진행한다.
CTI 게이트웨이(105)는 IP-PBX(103)와 상담원 단말(123) 사이에 연결되어, IP-PBX(103)로부터 수신된 고객 단말(301, 303)의 호 연결 요청에 따라 상담원 단말(123)과 고객 단말(301, 303) 간의 통화로를 연결한다.
CTI 게이트웨이(105)는 IP-PBX(103)를 통해 고객 단말(301, 303)로부터 수신되는 고객 정보를 상담원 단말(123)로 전달할 수 있다.
CTI 게이트웨이(105)는 상담원 단말(123)들의 통화 연결 상태를 확인한 후, 통화 대기 중인 상담원 단말(123)을 선택하여 고객 단말(301, 303)과 통화 호를 연결할 수 있다.
CTI 게이트웨이(105)는 복수의 상담원 단말(123) 중에서 고객 단말(301, 303)과 통화 세션을 연결할 상담원 단말(123)을 고객 단말(301, 303)에게 분배한다.
고객 단말(301, 303)이 콜센터 대표 전화번호로 호 연결 요청을 하면, 이러한 호 연결 요청은 IP-PBX(105)로 인입된다.
IP-PBX(105)는 CTI 게이트웨이(105)로 상담원 분배를 요청하고, CTI 게이트웨이(105)는 이미 알고 있는, 즉, 로그인 등록된 복수의 상담원 단말(123) 중에 하나의 상담원 단말(123)을 선택한다.
이때, PSTN(201)을 통해 전달되는 호 연결 요청은 IP-PBX(105)로 먼저 유입된다. PSDN(203)을 통해 전달되는 호 연결 요청은 국선 프록시 서버(115)를 거쳐 국선 WebRTC 서버(109)로 유입된 후, 다시, IP-PBX(105)로 라우팅된다.
상담원 단말(123)이 분배에 참여하려면, 상담원 단말(123)은 CTI 게이트웨이(105)에 로그인하여 자신의 상태를 통화 대기 상태로 설정해야 한다. 그리고 상담원 단말(123)은 자신의 가입자 전화번호(DN, Direct Number)를 IP-PBX(105)에 등록(Register)하고, 이러한 DN이 CTI 게이트웨이(105)로 공유되어야 한다.
내선 WebRTC 서버(107)는 상담원 단말(123)과 웹소켓(WebSocket) 통신을 한다. 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)과 웹소켓(WebSocket) 통신을 한다.
내선 WebRTC 서버(107) 및 국선 WebRTC 서버(109)의 세션 컨트롤러(107A, 109A)는 WebRTC 통신을 위한 호 처리를 한다. 호 처리는 SIP(Session Initiation Protocol)와 자체 규격(websocket 기반의 json 형태) 간에 변환을 포함한다. 세션 컨트롤러(107A, 109A)는 웹소켓을 통해 상담원 단말(123)과 고객 단말(303) 각각에게 서로 간의 WebRTC 세션에 필요한 정보를 전달한다.
내선 WebRTC 서버(107) 및 국선 WebRTC 서버(109)의 미디어 컨트롤러(107B, 109B)는 UDP(User Datagram Protocol) 기반의 RTP(Real-time Transport Protocol) 와 DTLS(Datagram Transport Layer Security)-SRTP(Secure Real-time Transport Protocol)(WebRTC 기반)간의 변환을 한다. 미디어 컨트롤러(107B, 109B)는 상담원 단말(123)과 고객 단말(303) 간에 ICE(Interactive Connectivity Establishment) 협상을 위해 STUN(Session Traversal Utilities for NAT) 통신을 하고 WebRTC 미디어 스트림을 전달한다.
세션 컨트롤러(107A, 109A)는 고객 단말(303) 및 상담원 단말(123) 간의 웹 소켓 시그널(websocket signal)을 SIP로 변환하여 IP-PBX(105)로 호를 라우팅한다. 그리고 미디어 컨트롤러(107B, 109B)는 WebRTC(DTLS-SRTP)를 RTP로 상호 변환하여 중계한다.
내선 프록시(Proxy) 서버(111), 국선 프록시 서버(115)는 HTTP(HyperText Transfer Protocol) 프록시 기능을 수행할 수 있다.
내선 프록시(Proxy) 서버(111)는 상담원 단말(123)의 가입자 번호(DN, Dialing Number)를 내선 WebRTC 서버(107)에 등록한다. 가입자 번호(DN)는 상담원을 구분하기 위한 내선번호이다.
내선 프록시 서버(111)는 상담원 단말(123)과 웹소켓의 연결 및 해제를 수행한다. 상담원 단말(123)과 연결된 웹 소켓을 통해 상담원 단말(123)과 내선 WebRTC 서버(107) 간의 WebRTC 통신을 위한 시그널링을 중계한다.
국선 프록시 서버(115)는 고객 WebRTC 단말(303)과 웹소켓의 연결 및 해제를 수행한다. 고객 WebRTC 단말(303과 연결된 웹 소켓을 통해 고객 WebRTC 단말(303과 국선 WebRTC 서버(109) 간의 WebRTC 통신을 위한 시그널링을 중계한다.
내선 TURN 서버(113) 및 국선 TURN 서버(117)는 공인 또는 사설 IP를 가지는 상담원 단말(123)과 고객 단말(303) 사이의 미디어 스트림을 중계한다.
이와 같이, PSTN(201)으로부터 전송된 호 연결 요청은 IP-PBX(103)로 먼저 유입된다. 그러나, PSDN(203)으로부터 전송된 호 연결 요청은 국선 프록시 서버(115)를 거쳐 국선 WebRTC 서버(109)로 유입이 된 후, IP-PBX(103)로 라우팅된다.
또한, 내선 WebRTC 서버(107)와 국선 WebRTC 서버(109), 내선 프록시(Proxy) 서버(111)와 국선 프록시 서버(115), 내선 TURN 서버(113) 및 국선 TURN 서버(117)는 별개의 서버로 설명하였지만, 물리적으로 단일 서버 장치로 구현될 수도 있다.
PSTN(201)을 통해 유입되는 호는 고객 단말(301) ↔ IP 트렁크 게이트웨이(101) ↔ IP-PBX(103) ↔ 내선 WebRTC 서버(107) ↔ 내선 프록시 서버(111) ↔ 상담원 단말(123)의 경로로 전달된다.
PSTN(201)을 통해 유입되는 통화 데이터(미디어)는 고객 단말(301) ↔ IP 트렁크 게이트웨이(101) ↔ 내선 WebRTC 서버(107) ↔ 내선 TURN 서버(113) ↔ 상담원 단말(123)의 경로로 전달된다.
PSDN(203)을 통해 유입되는 호는 고객 단말(303) ↔ 국선 프록시 서버(115) ↔ 국선 WebRTC 서버(109) ↔ IP-PBX(103) ↔ 내선 WebRTC 서버(107) ↔ 내선 프록시 서버(111) ↔ 상담원 단말(123)의 경로로 전달된다.
PSDN(203)을 통해 유입되는 통화 데이터(미디어)는 고객 단말(301) ↔ 국선 TURN 서버(117) ↔ 국선 WebRTC 서버(109) ↔ 내선 WebRTC 서버(107) ↔ 내선 TURN 서버(113) ↔ 상담원 단말(123)의 경로로 전달된다.
한 실시예에 따르면, 상담원 단말(123)이 모바일 단말인 경우, ICAPI를 통해 CTI 게이트웨이(105)로 로그인한다. PSTN(201), PSDN(203)을 통해 IP-PBX(103)에 호 인입되면, 고객 단말(301, 303)에게 큐대기음(링백톤)을 송출한다. IP-PBX(103)는 CTI 게이트웨이(105)로 상담원 분배를 요청한다.
CTI 게이트웨이(105)는 라우팅 정책에 기초하여 최적 상담원을 헌팅하고, 그 결과를 IP-PBX(103)로 제공한다. IP-PBX(103)는 푸쉬 서버(119)를 통해 호 라우팅 정보를 상담원 단말(123)에게 전달(Push Notification)한다. 상담원 단말(123)이 푸쉬 메시지를 터치하면, CTI 게이트웨이(105)로 ICAPI Call Deliver Event가 전달된다. 또한, 상담원 단말(123)은 자신의 DN을 내선 WebRTC 서버(107) 및 IP-PBX(103)에 등록(Register)한다.
IP-PBX(103)는 등록(register)된 상담원 단말(123)로 내선 WebRTC 서버(107)를 거쳐 호 라우팅을 한다. 상담원 단말(123)이 전화를 받은 후(Call Establish 후) 미디어를 webRTC를 통해 통신한다. 고객 단말(301, 303)과 상담원 단말(123)간에 호/미디어 세션을 지속시킨 후 호 종료 절차를 진행한다.
다른 실시예에 따르면, 상담원 단말(123)이 웹 단말인 경우, ICAPI를 통해 CTI 게이트웨이(105)로 로그인하고, 자신의 DN을 내선 WebRTC 서버(107) 및 IP-PBX(103)에 등록(Register)한다. PSTN(201), PSDN(203)을 통해 IP-PBX(103)에 호 인입되면, 고객 단말(301, 303)에게 큐대기음(링백톤)을 송출한다. IP-PBX(103)는 CTI 게이트웨이(105)로 상담원 분배를 요청한다. CTI 게이트웨이(105)는 라우팅 정책에 기초하여 최적 상담원을 헌팅하고, 그 결과를 IP-PBX(103)로 제공한다. IP-PBX(103)는 등록(register)된 상담원 단말(123)로 내선 WebRTC 서버(107)를 거쳐 호 라우팅을 한다. 상담원 단말(123)이 전화를 받은 후(Call Establish 후) 미디어를 webRTC를 통해 통신한다. 고객 단말(301, 303)과 상담원 단말(123)간에 호/미디어 세션을 지속시킨 후 호 종료 절차를 진행한다.
IP-PBX(103)와 WebRTC 서버(107, 109)는 하나의 주소 구간으로 연동한다. IP-PBX(103)는 인입된 호를 라우팅하기 위해서 내부적으로 메모리에 관리하는 상담원 내선 번호(to, 상담원 단말이 register 했을때의 DN) 테이블을 조회하여 해당 상담원의 웹소켓(websocket) 세션을 탐색하여 인입된 호를 상담원 단말(123)로 라우팅한다.
푸쉬 서버(119)는 CTI 게이트웨이(105)가 고객 단말(301, 303)과 연결할 상담원 단말(123)을 선택하면, 그 선택된 상담원 단말(123)에게 호 연결을 요청하는 푸쉬 메시지를 생성한다.
푸쉬 알림 전송 장치(121)는 푸쉬 서버(119)가 생성한 푸쉬 메시지를 상담원 단말(123)에게 전송한다. 이때, 푸쉬 알림 전송 장치(121)는 상담원 단말(123)의 단말 규격에 따라 복수개 존재할 수 있다. 예를들어, 안드로이드 OS(Operating System)를 사용하는 상담원 단말(123)과 iOS를 사용하는 상담원 단말(123) 별로 각각의 푸쉬 알림 전송 장치(121)가 존재할 수 있다.
푸쉬 서버(119)는 사전에 상담원 단말(123)의 식별 정보 별로 단말 규격 정보를 저장하고 있기에 단말 규격에 맞는 푸쉬 알림 전송 장치(121)를 지정하여 푸쉬 메시지를 전송 할 수 있다. 따라서, 푸쉬 서버(119)는 CTI 게이트웨이(105)로부터 상담원 단말(123)의 선택 정보가 수신되면, 그 선택 정보로부터 확인한 식별 정보를 기초로 확인한 단말 규격에 해당하는 푸쉬 알림 전송 장치(121)를 선택할 수 있다.
상담원 단말(123)은 복수개이나, 설명의 편의를 위하여 고객 단말(301, 303)과 호 연결되도록 분배된 하나의 상담원 단말(123)을 도시하였다.
상담원 단말(123)은 WebRTC 콜센터 서비스를 제공하는 전용 앱이 설치된 단말로서, PC 등과 같은 유선 단말 또는 태블릿 PC, 스마트폰, 노트북 등과 같은 모바일 단말을 포함할 수 있다. 상담원 단말(123)은 고객 단말(301, 303)과 달리 WebRTC 통신만 수행한다. 즉, 기존의 SIP 물리 단말에서 WebRTC 기반의 단말로 교체되었다.
전용 앱은 WebRTC 통신 기능, CRM(Customer Relationship Management) 기능을 구비하며, WebRTC 통신 기능을 위한 에이전트를 포함할 수 있다.
상담원 단말(123)은 콜센터 서비스를 제공하기 위한 등록 절차를 수행한다.
등록 절차는 두가지로 구분할 수 있는데, 상담원을 분배하기 위한 CTI 등록(로그인)과 호를 상담원 단말(123)로 라우팅하기 위한 PBX 등록(register)으로 구분된다. 상담원 단말(123)이 CTI 게이트웨이(105)에 로그인되어있다 하더라도 IP-PBX(103)에 등록(register)되어있지 않으면 상담원 분배가 되지 않는다. 따라서, IP-PBX(103)는 등록(register)된 DN을 CTI 게이트웨이(105)와 실시간 공유한다.
상담원 단말(123)이 모바일 단말이 아닌 웹 단말(예, PC, 노트북 등)일 경우, 등록(register)은 CTI 게이트웨이(105)에 로그인한 시점과 동시에 이루어진다.
상담원 단말(123)이 모바일 단말일 경우, 등록(register)은 고객 단말(301, 303)로부터 발신이 시도되고 상담원이 분배된 시점에 이루어진다. 구체적으로, 상담원 단말(123)이 호 라우팅이 요청된 푸쉬 메시지가 팝업되고 사용자가 푸쉬 메시지를 클릭한 경우, 등록(register)은 이루어진다.
상담원 단말(123)이 모바일 단말일 경우, IP-PBX(103)와 항상 접속 상태를 유지할 수는 없다. CTI 게이트웨이(105)는 로그인시 상담원 단말(123)의 정보를 취득한 후, IP-PBX(103)에 등록(register)되어 있지 않은 상담원 단말(123)도 상담원 분배시 참여시킨다. 다만, 상담원 단말(123)이 IP-PBX(103)에 미등록 상태이므로, IP-PBX(103)는 호를 라우팅하기 위하여 상담원 단말(123)에게 푸쉬 메시지를 전송하여 등록(register)하도록 유도한다.
운용 관리 서버(125)는 세션이 종료되면, 내선 WebRTC 서버(107)로부터 통화상세기록(Call Detaial Record, CDR)을 수신하여 저장한다. 운용 관리 서버(125)는 CDR을 가공한 통계 정보 등을 생성하여 상담원 단말(123)로 제공할 수 있다.
도 2, 3, 4는 고객 전화 단말(301)과 상담원 단말(123) 간의 콜 플로우(Call Flow)를 나타내고, 도 5, 6, 7은 고객 WebRTC 단말(303)과 상담원 단말(123) 간의 콜 플로우를 나타낸다.
도 2는 본 발명의 한 실시예에 따른 고객 전화 단말이 콜센터 대표 전화번호로 전화한 경우, 콜 플로우(Call Flow)를 나타낸다.
특히, 상담원 단말(123)이 모바일 단말인 경우의 실시예에 해당된다.
도 2를 참조하면, 상담원 단말(123)은 ICAPI(CTI Application Programming Interface)를 통해 CTI 게이트웨이(105)에 로그인(S101)하여 자신의 상태를 통화 대기 상태로 설정한다(S103). 여기서, ICAPI는 CTI 연동 인터페이스로 정의된다.
상담원 단말(123)은 자신의 상태 정보 전달 또는 정보 조회를 위해 CTI 게이트웨이(105)와 직접 연동한다. 예를들어, 상담원이 현재 전화를 받을 수 없는 상태인 경우 CTI 게이트웨이(105)에 현재 상태를 통화 보류 상태 또는 통화 거절 상태로 설정하여 자신의 단말이 분배되지 않도록 한다.
상담원 단말(123)이 로그인시 CTI 게이트웨이(105)는 해당 상담원의 상태 정보를 초기화한다. CTI 게이트웨이(105)는 상담원 단말(123)과의 연결 및 해제가 반복되더라도 통화 상태는 이전 설정을 유지할 수 있다.
이때, 상담원 단말(123)은 호 처리 연동을 위하여 내선 프록시 서버(111) → 내선 WebRTC 서버(107) → IP-PBX(103)로 연결된다.
고객 전화 단말(301)이 콜센터 대표 번화번호로 발신하면, 인바이트(INVITE) 메시지가 IP-PBX(103)로 전송된다(S105).
여기서, 인바이트(INVITE) 메시지는 고객 전화 단말(301)의 전화번호를 비롯한 고객 정보와, 고객 전화 단말(301)에서 요청하는 M1 SDP(Session Description Protocol)를 포함할 수 있다. M1 SDP는 고객 전화 단말(301)의 미디어 정보를 포함한다.
IP-PBX(103)는 상담원 단말(123)과 연결되기 전까지 큐대기음(링백)을 고객 전화 단말(301)로 송출하기 위하여 음성호를 임시로 연결한다. 이를 위하여 IP-PBX(103)는 음성호 연결을 위한 SDP(SDP-audio)를 포함하는 200 OK 메시지를 고객 전화 단말(301)로 전송한다(S107).
IP-PBX(103)는 고객 전화 단말(301)로부터 ACK 메시지를 수신(S109)하면, 고객 전화 단말(301)에게 RTP(Real-time Transport Protocol) 방식으로 큐대기음을 송출한다(S111).
이어서, IP-PBX(103)는 CTI 게이트웨이(105)에게 상담원 연결 요청을 전송한다(S113). CTI 게이트웨이(105)는 통화 대기 상태로 설정된 복수의 상담원 단말(123) 중에서 라우팅 정책에 기초하여 최적의 상담원 단말을 헌팅한다(S115).
CTI 게이트웨이(105)는 헌팅(S115)한 상담원 단말(123)의 내선번호(DN, Dialing Number)를 포함하는 상담원 분배 응답을 IP-PBX(103)로 전송한다(S117).
IP-PBX(103)는 푸쉬 서버(119)에게 헌팅(S115)된 상담원 단말(123)에게 호 라우팅 정보를 푸쉬하도록 요청한다(S119). 그러면, 푸쉬 서버(119)는 상담원 단말(123)에게 푸쉬 메시지를 전송한다(S121).
상담원 단말(123)에는 전용 앱이 백그라운드(Background) 상태로 실행되어 있다. 이 상태에서 푸쉬 메시지가 수신되면, 상담원 단말(123)은 푸쉬 메시지를 팝업하는데, 상담원이 팝업창을 클릭(터치 등)(S123)하면, 전용 앱은 포어그라운드(Foreground)로 상태 변환된다. 포어그라운드는 사용자와 인터랙티브가 가능한 상태를 의미하므로, 전용 앱이 휴면 상태에서 활성화 상태가 되었음을 의미한다.
상담원 단말(123)은 푸쉬 메시지가 클릭(S123)되면, CTI 게이트웨이(105)로부터 상담원 분배, 호의 상태 정보 등이 포함된 Call Deliver Event를 수신한다(S125).
상담원 단말(123)은 등록 요청 메시지(req-register)를 내선 WebRTC 서버(107)로 전송한다(S127). 이때, 등록 요청 메시지(req-register)는 상담원 단말(123)의 DN을 필수적으로 포함하고, 기타 정보를 포함할 수 있다. 기타 정보는 상담원 단말(123)이 속한 상담원 그룹, 상담원 로그인 정보(ID/Password), 상담원명등을 포함할 수 있다. DN 및 기타 정보는 상담 완료 후 WebRTC 서버(107)가 운용 관리 서버(125)로 전송할 CDR 정보를 생성하는데 사용된다.
이때, 상담원 로그인 정보(ID/Password)는 IP-PBX(105)가 등록(register)을 위한 MD5(Message-Digest algorithm 5) 인증을 요구할 경우, MD5 인증을 위해 사용될 수 있다.
내선 WebRTC 서버(107)는 S127 단계에서 수신한 DN을 포함하는 등록 메시지(Register)를 IP-PBX(105)로 전송한다(S129).
IP-PBX(105)는 DN을 등록하고, 200 OK 메시지를 내선 WebRTC 서버(107)로 전송한다(S131). 내선 WebRTC 서버(107)는 200 OK 메시지가 수신되면, 등록 응답 메시지(event-registered)를 상담원 단말(123)로 전송한다(S133).
상담원 단말(123)이 등록 응답 메시지(event-registered)를 수신하면, 발/착신이 가능하게 된다.
도 3은 본 발명의 다른 실시예에 따른 고객 전화 단말이 콜센터 대표 전화번호로 전화한 경우, 콜 플로우를 나타낸다.
특히, 상담원 단말(123)이 PC 또는 노트북 등과 같은 웹 단말인 경우의 실시예에 해당된다.
도 3의 단계들은 대부분 도 2와 유사하므로, 도 2와 유사한 동작에 대해서는 상세한 설명을 생략한다.
도 3을 참조하면, 도 2와 마찬가지로, 상담원 단말(123)은 ICAPI(CTI Application Programming Interface)를 통해 CTI 게이트웨이(105)에 로그인(S201)하여 자신의 상태를 통화 대기 상태로 설정한다(S203).
또한, 상담원 단말(123)은 등록 요청 메시지(req-register)를 내선 WebRTC 서버(107)로 전송한다(S205).
내선 WebRTC 서버(107)는 S205 단계에서 수신한 DN을 포함하는 등록 메시지(Register)를 IP-PBX(105)로 전송한다(S207).
IP-PBX(105)는 DN을 등록하고, 200 OK 메시지를 내선 WebRTC 서버(107)로 전송한다(S209).
내선 WebRTC 서버(107)는 200 OK 메시지가 수신되면, 등록 응답 메시지(event-registered)를 상담원 단말(123)로 전송한다(S211).
이후, 고객 전화 단말(301)이 콜센터 대표 번화번호로 발신하면, M1 SDP를 포함하는 인바이트(INVITE) 메시지가 IP-PBX(103)로 전송된다(S213).
IP-PBX(103)는 음성호 연결을 위한 SDP(SDP-audio)를 포함하는 200 OK 메시지를 고객 전화 단말(301)로 전송한다(S215).
IP-PBX(103)는 고객 전화 단말(301)로부터 ACK 메시지를 수신(S217)하면, 고객 전화 단말(301)에게 RTP 방식으로 큐대기음(링백)을 송출한다(S219).
이어서, IP-PBX(103)는 CTI 게이트웨이(105)에게 상담원 연결 요청을 전송한다(S221). CTI 게이트웨이(105)는 통화 대기 상태로 설정된 복수의 상담원 단말(123) 중에서 라우팅 정책에 기초하여 최적의 상담원 단말을 헌팅한다(S223).
CTI 게이트웨이(105)는 헌팅(S223)한 상담원 단말(123)의 DN을 포함하는 상담원 분배 응답을 IP-PBX(103)로 전송한다(S225).
상담원 단말(123)은 CTI 게이트웨이(105)의 요청에 따라 Call Deliver Event를 통해 상담원 분배, 호의 상태 정보 등을 CTI 게이트웨이(105)로부터 수신한다(S227).
도 4는 도 2 및 도 3의 실시예에 적용되는 콜 플로우를 나타내며, 특히, 도 2의 S131 단계 이후, 또는 도 3의 S225 단계 이후 수행되는 콜 플로우를 나타낸다.
도 4를 참조하면, IP-PBX(103)는 상담원 분배가 완료되면, 헌팅된 상담원 단말(123)의 DN을 SIP 헤더 필드에 수록한 인바이트(INVITE) 메시지를 내선 WebRTC 서버(107)로 전송한다(S301). 이때, 인바이트 메시지는 SDP를 포함하지 않는다(No-SDP).
내선 WebRTC 서버(107)는 인바이트(INVITE) 메시지의 헤더 필드에 수록된 DN에 해당하는 상담원 단말(123)로 event-newcall 메시지를 전송한다(S303). 여기서, event-newcall은 전화가 왔음을 알리는 이벤트 메시지이다.
내선 WebRTC 서버(107)는 상담원 단말(123)로부터 응답 메시지(req-accepted)를 수신(S305)하면, IP-PBX(103)에게 180 Ringing 메시지를 전송한다(S307).
상담원 단말(123)은 상담원 단말(123)이 요청하는 Ag-SDP를 포함하는 응답 요청 메시지(req-answered)를 내선 WebRTC 서버(107)로 전송한다(S309). 그러면, 내선 WebRTC 서버(107)는 내선 WebRTC 서버(107)가 요청하는 미디어 정보를 기술한 M2-SDP를 포함하는 200 0K 메시지를 IP-PBX(103)에게 전송한다(S311).
IP-PBX(103)는 S311 단계에서 수신한 M2-SDP를 포함하는 리인바이트(re-invite) 메시지를 고객 전화 단말(301)로 전송한다(S313). 이어서 IP-PBX(103)는 IP-PBX(103)가 설정한 IE-SDP를 포함하는 ACK 메시지를 내선 WebRTC 서버(107)로 전송한다(S315).
내선 WebRTC 서버(107)는 상담원 단말(123)로 내선 WebRTC 서버(107)가 설정한 M3-SDP를 포함하는 event-connected 메시지를 전송한다(S317).
고객 전화 단말(301)은 S313 단계의 리인바이트(re-invite) 메시지에 대한 200 OK 메시지를 IP-PBX(103)로 전송한다(S319). 이때, 200 OK 메시지는 S313 단계에서 수신한 M2-SDP를 고려해서 수정한 M1'-SDP를 포함한다.
IP-PBX(103)는 S319 단계에서 수신한 M1'-SDP를 포함하는 리인바이트(re-invite) 메시지를 내선 WebRTC 서버(107)로 전송한다(S321).
내선 WebRTC 서버(107)는 M1'-SDP를 고려해서 수정한 M2'-SDP를 포함하는 200 OK 메시지를 IP-PBX(103)로 전송한다(S323).
IP-PBX(103)는 ACK 메시지를 고객 전화 단말(301)로 전송(S325)하고, 내선 WebRTC 서버(107)에게 전송한다(S327).
이상의 S301 단계 ~ S327 단계를 통해 호 설립(Call Establish) 과정이 완료되면, 고객 전화 단말(301)은 상담원 단말(123)과 WebRTC 통신으로 미디어를 송수신한다. 즉, 고객 전화 단말(301)은 내선 WebRTC 서버(107)와 UDP/RTP 통신을 한다(S329). 내선 WebRTC 서버(107) 및 상담원 단말(123)은 STUN(Session Traversal Utilities for NAT)/DTLS(Datagram Transport Layer Security)/SRTP(Secure Real-time Transport Protocol) 통신을 한다(S331).
이후, IP-PBX(103)는 고객 전화 단말(301)로부터 Bye 메시지가 수신(S333)되면, 내선 WebRTC 서버(107)로 Bye 메시지를 전송한다(S335).
내선 WebRTC 서버(107)는 세션 종료 메시지(event-endcall)를 상담원 단말(123)로 전송한다(S337).
상담원 단말(123)은 req-disconnect 메시지를 내선 WebRTC 서버(107)로 전송한다(S339).
내선 WebRTC 서버(107)는 200 OK 메시지를 IP-PBX(103)로 전송한다(S341).
IP-PBX(103)는 200 OK 메시지를 고객 전화 단말(301)로 전송한다(S343). 이상의 S333 단계~S343 단계를 통하여 WebRTC 통신 세션이 종료된다.
도 5는 본 발명의 또 다른 실시예에 따른 고객 WebRTC 단말이 대표번호로 전화한 경우, 콜 플로우를 나타낸다.
이때, 도 5는 도 2의 실시예에서 설명한 상담원 단말(123)이 모바일 단말인 경우와 도 3의 실시예에서 설명한 상담원 단말(123)이 웹 단말인 경우가 각각 적용될 수 있다.
또한, 도 5의 각 단계들은 도 2, 3, 4에서 설명한 내용과 유사하므로, 유사한 단계들에 대해서는 자세한 설명은 생략하고, 차별되는 구성 위주로 설명한다.
도 5를 참조하면, 고객 WebRTC 단말(303)이 콜센터 대표 전화번호로 발신하면, 국선 WebRTC 서버(109)로 호 요청 메시지(req-newcall)를 전송한다(S401). 이때, req-newcall에는 고객 WebRTC 단말(303)이 설정한 Cu-SDP가 포함된다.
국선 WebRTC 서버(109)는 IP-PBX(103)로 국선 WebRTC 서버(109)가 설정한 미디어 정보인 M1-SDP를 포함하는 인바이트 메시지를 전송한다(S403). 그리고 고객 WebRTC 단말(303)에게 호 수락 메시지(event-accepted)를 전송한다(S405).
IP-PBX(103)는 국선 WebRTC 서버(109)에게 IP-PBX(103)가 설정한 IE SDP-audio를 포함하는 200 OK 메시지를 전송한다(S407).
국선 WebRTC 서버(109)는 국선 WebRTC 서버(109)가 설정한 미디어 정보인 M2 SDP를 포함하는 event-answered 메시지를 고객 WebRTC 단말(303)에게 전송한다(S409).
고객 WebRTC 단말(303)는 국선 WebRTC 서버(109)에게 req-connect 메시지를 전송한다(S411).
국선 WebRTC 서버(109)는 ACK 메시지를 IP-PBX(103)에게 전송한다(S413).
S401 단계~ S413 단계를 통해 임시 호가 연결되면, 고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/DTLS/SRTP 통신을 하고, 국선 WebRTC 서버(109)는 IP-PBX(103)와 UDP/RTP 통신을 한다. 그리고 이러한 통신을 통해 고객 WebRTC 단말(303)은 IP-PBX(103)로부터 큐대기음(링백)을 수신한다(S415, S417).
이때, 상담원 단말(123)이 모바일 단말인 경우, 도 2의 S101 단계, S103 단계는 ⓑ 이전에 수행되고, 도 2의 S113 단계~ S133 단계는 ⓒ에서 수행된다.
또한, 상담원 단말(123)이 웹 단말인 경우, 도 3의 S201 단계 ~ S211 단계는 ⓑ 이전에 수행되고, 도 3의 S221 단계 ~ S227 단계는 ⓒ에서 수행된다.
IP-PBX(103)는 상담원 분배가 완료되면, SDP를 포함하지 않고 헌팅된 상담원 단말(123)의 DN을 SIP 헤더 필드에 수록한 인바이트(INVITE) 메시지를 내선 WebRTC 서버(107)로 전송한다(S419).
내선 WebRTC 서버(107)는 인바이트(INVITE) 메시지의 헤더 필드에 수록된 DN에 해당하는 상담원 단말(123)로 전화가 왔음을 알리는 메시지(event-newcall)를 전송한다(S421).
내선 WebRTC 서버(107)는 상담원 단말(123)로부터 전화 응답 메시지(req-accepted)를 수신(S423)하면, IP-PBX(103)에게 180 Ringing 메시지를 전송한다(S425).
상담원 단말(123)은 상담원 단말(123)이 요청하는 Ag-SDP를 포함하는 전화 응답 요청 메시지(req-answered)를 내선 WebRTC 서버(107)로 전송한다(S427).
그러면, 내선 WebRTC 서버(107)는 내선 WebRTC 서버(107)가 설정한 미디어 정보인 M3-SDP를 포함하는 200 0K 메시지를 IP-PBX(103)에게 전송한다(S429).
IP-PBX(103)는 S429 단계에서 수신한 M3-SDP를 포함하는 리인바이트(re-invite) 메시지를 국선 WebRTC 서버(109)로 전송한다(S431).
국선 WebRTC 서버(109)는 event-recall 메시지를 고객 WebRTC 단말(303)로 전송한다(S433).
고객 WebRTC 단말(303)은 S401 단계에서 설정한 미디어 정보를 수정한 Cu' SDP를 포함하는 req-answered 메시지를 국선 WebRTC 서버(109)로 전송한다(S435).
국선 WebRTC 서버(109)는 S403 단계에서 전송한 미디어 정보를 수정한 M1' SDP를 포함하는 200 OK 메시지를 IP-PBX(103)로 전송한다(S437).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 M1' SDP를 포함하는 리인바이트(re-invite) 메시지를 전송한다(S439). 그러면, 내선 WebRTC 서버(107)로부터 수정된 M3'-SDP를 포함하는 200 OK 메시지를 수신한다(S441).
IP-PBX(103)는 국선 WebRTC 서버(109)에게 ACK 메시지를 전송한다(S443). 그리고 내선 WebRTC 서버(107)로 ACK 메시지를 전송한다(S445).
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 수정한 M2'-SDP를 포함하는 event-connected 메시지를 전송한다(S447).
이상의 S419 단계 ~ S447 단계를 통해 호 설립 과정이 완료되면, 고객 WebRTC 단말(303)은 상담원 단말(123)과 WebRTC 통신으로 미디어를 송수신한다. 즉, 고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/ DTLS/SRTP 통신(S449)을 하고, 상담원 단말(123)은 내선 WebRTC 서버(107)와 STUN/ DTLS/SRTP 통신(S451)을 하고, 국선 WebRTC 서버(109)와 내선 WebRTC 서버(107)는 UDP/RTP 통신을 한다(S453).
이후, 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)로부터 req-endcall 메시지를 수신(S455)하면, IP-PBX(103)에게 Bye 메시지를 전송한다(S457).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 Bye 메시지를 전송한다(S459).
내선 WebRTC 서버(107)는 상담원 단말(123)에게 event-endcall 메시지를 전송한다(S461).
내선 WebRTC 서버(107)는 상담원 단말(123)로부터 req-disconnect 메시지를 수신(S463)하면, IP-PBX(103)에게 200 OK 메시지를 전송한다(S465).
IP-PBX(103)는 200 OK 메시지를 국선 WebRTC 서버(109)에게 전달한다(S467). 그리고 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-disconnect 메시지를 전달한다(S469).
도 6은 본 발명의 실시예에 따른 고객 WebRTC 단말과 국선 WebRTC 서버 간의 통신 세션 설립 및 해제 플로우를 나타낸다.
도 6을 참조하면, 고객 WebRTC 단말(303)이 국선 WebRTC 서버(109)와 웹 소켓(websocket) 접속(socketconnect)된다(S501).
고객 WebRTC 단말(303)은 S501 단계 이후, t0 시간 이내에 req-ws-init 메시지를 국선 WebRTC 서버(109)로 전송한다(S503).
고객 WebRTC 단말(303)은 네트워크 또는 단말/서버의 이상으로 소켓(socket) 접속이 해제되었다가 다시 연결된 경우, 고객 WebRTC 단말(303)은 기존에 발급받은 token_ID를 포함하는 req-ws-init 메시지를 국선 WebRTC 서버(109)로 전송한다(S503).
국선 WebRTC 서버(109)는 req-ws-init 메시지를 수신하면, 고객 WebRTC 단말(303)에게 event-ws-init 메시지를 전송한다(S505). 이때, event-ws-init 메시지는 발급한 token_ID, ka_interval, timeout 값을 포함할 수 있다.
국선 WebRTC 서버(109)는 S503 단계에서 수신한 req-ws-init 메시지에 token_ID가 포함되지 않은 경우, 고유한 token_ID를 발급한다. 반면, S503 단계에서 수신한 req-ws-init 메시지에 token_ID가 포함된 경우, event-ws-init 메시지에는 S503 단계에서 수신한 token_ID를 포함시킨다. 다만, 타이머(timer)에 의해 모든 세션이 이미 종료되어 기존 token_ID가 소멸된 경우, 새로운 token_ID를 발급한다.
고객 WebRTC 단말(303)은 기 저장한 token_ID와 S505 단계에서 수신한 token_ID가 일치하는지 판단한다(S507).
불일치하면, 고객 WebRTC 단말(303)은 기존 세션을 모두 초기화(S509)하고, 새로운 세션의 생성을 요청(req-newcall)한다(S511).
여기서, 초기화(S509)는 웹 소켓 초기화로서, 고객 WebRTC 단말(303) 및 상담원 단말(123)이 웹소켓으로 WebRTC 서버(107, 109)에 접속하여 hand-shake 과정(일반적인 웹접속 과정)을 거치고 SSL 사용시 SSL 인증절차를 거친 후 req-ws-init 메시지 및 event-ws-init 메시지를 교환하는 과정에 해당된다.
여기서, event-ws-init 메시지는 token id(websocket 구분자, 재접속시 동일한 token id 사용), keep alive interval(ping 메시지 전송주기), keep alive timeout(ping 메시지 타임아웃), owms id(재접속시 사용) 등을 포함할 수 있다.
상담원 단말(123)은 웹소켓 초기화가 완료되면 단말 등록 절차(register)를 수행하고, 고객 WebRTC 단말(303)은 호 발신을 수행한다.
이때, 국선 WebRTC 서버(109)는 소켓 연결후 t1 시간 이내에 req-newcallD이수신되지 않으면 S501 단계에서 설정된 socket 연결을 해제한다.
고객 WebRTC 단말(303)은 S507 단계에서 일치로 판단되거나 또는 S511 단계 이후, S505 단계에서 수신한 인터벌 주기(ka_interval)가 도래하는지 판단한다(S513).
고객 WebRTC 단말(303)은 인터벌 주기가 도래하면, 국선 WebRTC 서버(109)에게 req_ws_ping을 전송(S515)한다.
국선 WebRTC 서버(109)는 타임아웃(Timeout)이 만료(S517)하기 전에 event_ws_pong을 고객 WebRTC 단말(303)에게 전송한다(S519).
고객 WebRTC 단말(303)은 타임아웃(Timeout)이 만료하기 전에 event_ws_pong을 수신하지 못하면, 소켓 접속을 해제한다(socket close)(S521).
이때, 국선 WebRTC 서버(109)는 항상 타임아웃(Timeout)을 인터벌 주기(ka_interval)보다 크게 설정한다.
도 7은 본 발명의 실시예에 따른 상담원 단말과 내선 WebRTC 서버 간의 통신 세션 설립 및 해제 플로우를 나타낸다.
도 7을 참조하면, 상담원 단말(123)이 내선 WebRTC 서버(107)와 websocket 접속(socketconnect)된 상태(S601)에서 t0 시간 이내에 내선 WebRTC 서버(107)에게 req-ws-init 메시지를 전송한다(S603).
이때, 상담원 단말(123)이 네트워크 또는 시스템의 이상으로 소켓이 끊어졌다 재접속한 경우 기존 token_id 값을 포함하는 req-ws-init 메시지를 전송한다(S603).
내선 WebRTC 서버(107)는 req-ws-init 메시지를 수신하면, token_id, ka_interval, timeout 값을 포함하는 event-ws-init 메시지를 상담원 단말(123)에게 전송한다(S605).
내선 WebRTC 서버(107)는 S603 단계에서 수신한 req-ws-init 메시지에 token_ID가 포함되지 않은 경우, 고유한 token_ID를 발급한다. 반면, S603 단계에서 수신한 req-ws-init 메시지에 token_ID가 포함된 경우, event-ws-init 메시지에는 S603 단계에서 수신한 token_ID를 포함시킨다. 다만, 타이머(timer)에 의해 모든 세션이 이미 종료되어 기존 token_ID가 소멸된 경우, 새로운 token_ID를 발급한다.
상담원 단말(123)은 기 저장한 token_ID와 S605 단계에서 수신한 token_ID가 일치하는지 판단한다(S607).
불일치하면, 상담원 단말(123)은 기존 세션을 모두 초기화(S609)한다. 상담원 단말(123)은 내선 WebRTC 서버(107)에게 DN이 포함된 req-register 메시지를 전송한다(S611).
상담원 단말(123)은 웹소켓이 잠시 끊어졌다 재연결되었을때 현재 상태가 세션 연결 중인 상태도 아니고 세션 연결을 위해 어떤 메시지도 주고 받은 상태가 아니면 반드시 기존에 사용한 call_id를 포함하여 req-register 메시지를 전송한다.
이때, 내선 WebRTC 서버(107)는 상담원 단말(123)과 소켓 연결후 t1 시간 이내에 req-register 메시지가 수신되지 않으면 S601 단계에서 설정된 socket 연결을 해제한다.
내선 WebRTC 서버(107)는 IP-PBX(105)로 register 메시지를 전송(S613)하고 200 OK 메시지를 수신한다(S615). 그리고 상담원 단말(123)에게 event-registered 메시지를 전송한다(S617). 이러한 S613 단계 ~ S617 단계는 도 2의 S127 ~ S133, 도 3의 S205 ~ S211와 동일하다.
이때, S617 단계에는 내선 WebRTC 서버(107)가 상담원 단말(123)의 register을 거절 하고자 할 경우 사유를 포함하여 event-rejected 메시지를 전송할 수 있다.
또한, 상담원 단말(123)은 내선 WebRTC 서버(107)로 DN의 등록 해제를 요청하는 req-unregister 메시지를 전송할 수 있다(S619). 내선 WebRTC 서버(107)는 IP-PBX(105)로 unregister 메시지를 전송(S621)하고 200 OK 메시지를 수신한다(S623). 그리고 상담원 단말(123)에게 event-unregistered 메시지를 전송한다(S625).
한편, 상담원 단말(123)은 S607 단계에서 일치로 판단되거나 또는 S617 단계 이후, S605 단계에서 수신한 인터벌 주기(ka_interval)가 도래하는지 판단한다(S627).
상담원 단말(123)은 인터벌 주기가 도래하면, 내선 WebRTC 서버(107)에게 req_ws_ping을 전송(S629)한다.
내선 WebRTC 서버(107)는 타임아웃(Timeout)이 만료(S631)하기 전에 event_ws_pong을 상담원 단말(123)에게 전송한다(S633).
상담원 단말(613)은 타임아웃(Timeout)이 만료하기 전에 event_ws_pong을 수신하지 못하면, 소켓 접속을 해제한다(socket close)(S635).
이때, 내선 WebRTC 서버(107)는 항상 타임아웃(Timeout)을 인터벌 주기(ka_interval)보다 크게 설정한다.
도 8는 본 발명의 한 실시예에 따른 고객 전화 단말이 상담원 전화번호로 전화한 경우, 콜 플로우를 나타낸다.
도 8을 참조하면, 고객 전화 단말(301)이 특정 DN을 포함하고 고객 전화 단말(301)이 설정한 미디어 정보인 M1 SDP를 포함하는 인바이트 메시지를 IP-PBX(103)로 전송한다(S701).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 M1 SDP를 포함하는 인바이트 메시지를 전송한다(S703).
내선 WebRTC 서버(107)는 인바이트 메시지의 수신자 필드에 수록된 DN에 대응하는 상담원 단말(123)에게 SDP 없이 event-newcall을 요청한다(S705).
상담원 단말(123)은 req-accept를 내선 WebRTC 서버(107)에게 전송한다(S707).
내선 WebRTC 서버(107)는 180 Ringing 메시지를 IP-PBX(103)에게 전송한다(S709).
이때, 내선 WebRTC 서버(107)는 event-newcall을 요청한 이후, t2 시간이내에 req-accept가 수신되지 않으면, IP-PBX(103)에게 408 메시지(Request Time-out)를 전송하고 상담원 단말(123)에게 event-cancel을 보내서 세션 생성을 중지할 수 있다.
IP-PBX(103)는 180 Ringing 메시지를 고객 전화 단말(301)에게 전송한다(S711).
상담원 단말(123)은 S707 단계 이후, 미디어 자원을 생성하고 코덱 정보와 함께 B SDP를 포함하는 req-answer 메시지를 내선 WebRTC 서버(107)에게 전송한다(S713).
내선 WebRTC 서버(107)는 내선 WebRTC 서버(107)가 설정한 미디어 정보인 M2 SDP를 포함하는 200 OK 메시지를 IP-PBX(103)에게 전송(S715)하고, IP-PBX(103)는 고객 전화 단말(301)에게 M2 SDP를 포함하는 200 OK 메시지를 전송(S717)한다.
고객 전화 단말(301)은 ACK 메시지를 IP-PBX(103)에게 전송한다(S719).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 ACK 메시지를 전송한다(S721).
내선 WebRTC 서버(107)는 내선 WebRTC 서버(107)가 설정한 미디어 정보인 M4 SDP를 포함하는 event-connected 메시지를 상담원 단말(123)에게 전송한다(S723).
이때, 상담원 단말(123)은 S713 단계에서 req-answer 메시지를 전송한 이후, t4 시간 이내에 event-connected 메시지가 수신되지 않으면, 내선 WebRTC 서버(107)로 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
S701 단계 ~ S723 단계를 통해 호 설립이 완료되면, 고객 전화 단말(301)은 상담원 단말(123)과 WebRTC 통신으로 미디어를 송수신한다. 즉, 고객 전화 단말(301)은 내선 WebRTC 서버(107)와 UDP/RTP 통신을 한다(S725). 그리고 내선 WebRTC 서버(107)는 상담원 단말(123)과 STUN/ DTLS/SRTP 통신을 한다(S727).
도 9은 본 발명의 다른 실시예에 따른 고객 WebRTC 단말이 상담원 전화번호로 전화한 경우, 콜 플로우를 나타낸다.
도 9을 참조하면, 고객 WebRTC 단말(303)이 상담원 단말(123) 간의 통신 세션 생성은 3-way handshaking 원칙을 따른다.
고객 WebRTC 단말(303)은 설정한 미디어 정보인 A SDP를 포함하는 req-newcall 메시지를 국선 WebRTC 서버(109)에게 전송한다(S801). 이때, req-newcall 메시지는 특정 상담원 단말(123)의 DN을 포함한다. 이러한 DN은 S803, S805의 인바이트 메시지의 수신자 필드에 수록되며, 내선 WebRTC 서버(107)는 인바이트 메시지의 수신자 필드의 DN에 해당하는 상담원 단말(123)로 호 연결을 요청한다(S807).
이때, 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)과 웹소켓 연결된 후, t1 시간 이내에 req-newcall 메시지가 수신되지 않으면, 웹소켓 연결을 해제한다.
국선 WebRTC 서버(109)는 설정한 미디어 정보인 M1 SDP를 포함하는 인바이트 메시지를 IP-PBX(103)에게 전송한다(S803).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 M1 SDP를 포함하는 인바이트 메시지를 전송한다(S805).
내선 WebRTC 서버(107)는 인바이트 메시지의 수신자 필드에 수록된 DN에 대응하는 상담원 단말(123)에게 SDP 없이 event-newcall을 요청한다(S807).
상담원 단말(123)은 req-accept를 내선 WebRTC 서버(107)에게 전송한다(S809).
이때, 내선 WebRTC 서버(107)는 event-newcall을 요청한 이후, t2 시간 이내에 req-accept가 수신되지 않으면 IP-PBX(103)에게 408 메시지(Request Time-out)를 전송하고 상담원 단말(123)에게 event-cancel을 보내서 세션 생성을 중지할 수 있다.
내선 WebRTC 서버(107)는 180 Ringing 메시지를 IP-PBX(103)에게 전송한다(S811). IP-PBX(103)는 180 Ringing 메시지를 국선 WebRTC 서버(109)에게 전송한다(S813).
국선 WebRTC 서버(109)는 event-accepted 메시지를 고객 WebRTC 단말(303)에게 전송한다(S815).
고객 WebRTC 단말(303)은 S801 단계 이후, t2 시간 이내에 event-accepted 메시지가 수신되지 않으면, 국선 WebRTC 서버(109)에게 req-cancel 전송하여 세션 생성을 중지할 수 있다.
상담원 단말(123)은 S809 단계 이후, 미디어 자원을 생성하고 코덱 정보와 함께 설정한 미디어 정보인 B-SDP를 포함하는 req-answer 메시지를 내선 WebRTC 서버(107)에게 전송한다(S817).
내선 WebRTC 서버(107)는 IP-PBX(103)에게 설정 미디어 정보인 M2 SDP를 포함하는 200 OK 메시지를 전송(S819)하고, IP-PBX(103)는 국선 WebRTC 서버(109)에게 M2 SDP를 포함하는 200 OK 메시지를 전송(S821)한다.
국선 WebRTC 서버(109)는 IP-PBX(103)로부터 200 OK를 수신(S821)하면 고객 WebRTC 단말(303)로 설정 미디어 정보인 M3 SDP를 포함하는 event-answered를 전송한다(S823).
이때, 내선 WebRTC 서버(107)는 S809 단계에서 req-accept를 수신한 이후 t3 시간 이내에 req-answer를 수신하지 못하면 IP-PBX(103)로 408 메시지(Request Time-out)를 전송하고 상담원 단말(123)에게 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
또한, 고객 WebRTC 단말(303)은 S815 단계에서 event-accept를 수신한 이후 t3 시간 이내에 event-answered를 수신하지 못하면 국선 WebRTC 서버(109)로 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 세션 협상에 문제가 없으면, 국선 WebRTC 서버(109)로 req-connect를 전송한다(S825).
여기서, 세션 협상은 req-newcall의 SDP와 event-answered의 SDP 간에 미디어 협상을 의미한다. 이를 테면 일치하는 코덱이 없거나 일치하는 영상 해상도가 없는 경우 협상에 실패하고 그 경우 고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)로 req-cancel 메시지를 보내 취소한다.
이때, 국선 WebRTC 서버(109)는 S823 단계에서 event-answered를 전송한 이후, t4 시간 이내에 req-connect를 수신하지 못하는 경우, IP-PBX(103)에게 Bye 메시지를 전송하고 고객 WebRTC 단말(303)에게는 event-endcall을 보내서 세션을 종료할 수 있다.
S825 단계 이후, 국선 WebRTC 서버(109)는 ACK 메시지를 IP-PBX(103)에게 전송한다(S827). IP-PBX(103)는 내선 WebRTC 서버(107)에게 ACK 메시지를 전송한다(S829).
내선 WebRTC 서버(107)는 상담원 단말(123)에게 설정 미디어 정보인 M4 SDP를 포함하는 event-connected 메시지를 전송한다(S831).
이때, 상담원 단말(123)은 S817 단계에서 req-answer 메시지를 전송한 이후, t4 시간 이내에 event-connected 메시지가 수신되지 않으면, 내선 WebRTC 서버(107)로 req-endcall을 전송하여 세션 생성을 중지할 수 있다.
S801 단계 ~ S831 단계를 통해 호 설립이 완료되면, 고객 WebRTC 단말(303)은 상담원 단말(123)과 WebRTC 통신으로 미디어를 송수신한다. 즉, 고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/ DTLS/SRTP 통신(S833)을 하고, 상담원 단말(123)은 내선 WebRTC 서버(107)와 STUN/ DTLS/SRTP 통신(S835)을 하고, 국선 WebRTC 서버(109)와 내선 WebRTC 서버(107)는 UDP/RTP 통신을 한다(S837).
한편, 상담원 단말 A가 고객 단말(303)과 통화 세션이 연결된 상태에서 상담원 단말 A에 의해 홀드(hold) 요청이 발생하는 경우, 상담원 단말 B와의 협의 호 전환 과정에 대하여 도 10 및 도 11을 참고하여 설명하고, 즉시 호 전환 과정에 대하여 도 12를 참고하여 설명한다.
여기서, 협의 호 전환 및 즉시 호 전환은 적어도 두 상담원 단말이 참여하는 다중 세션을 생성하는 과정이다. 이러한 호 전환은 고객 단말(303)이 상담원 단말 A와 통화하다가 상담원 단말 B로 호를 전환하여 상담원 단말 A와의 호를 종료하고 상담원 단말 B와 호를 연결한다.
도 10는 본 발명의 실시예에 따른 협의 호 전환을 위한 홀드(Hold) 및 신규 호 생성 플로우를 나타낸다.
도 10을 참조하면, 도 5 내지 도 9에서 설명한 바와 같이, 상담원 단말 A(123)이 고객 WebRTC 단말(303)과 통화 중인 상태에서 시작된다. 이때, 상담원 단말(123)이 새로운 세션을 생성하고자 할 경우, 상담원 단말 A(123)이 내선 WebRTC 서버(107)에게 req-newcall을 전송한다(S901).
이때, 기존 통화 세션의 미디어를 일시적으로 중단시키기 위해서 hold 기능이 필요한 경우, 상담원 단말 A(123)는 미디어 모드를 sendonly 또는 inactive로 변경한 req-recall을 내선 WebRTC 서버(107)에게 전송한다.
미디어 모드의 종류는 sendrecv, sendonly, recvonly, inactive 중 하나일 수 있다. Sendrecv는 미디어(음성/영상)을 주고 받는 모드이다. Sendonly는 미디어(음성/영상)을 송신만 하는 모드이다. Recvonly는 미디어(음성/영상)를 수신만 하는 모드이다. Inactive는 미디어(음성/영상)을 보내지도 받지도 않는 모드이다.
이때, S901 단계는 SDP에 포함되는 정보로 새로운 호 생성시 기존 호로부터 미디어가 수신되지 않도록 하기위해 재협상하는 과정으로서, 후술할 전환(Hold) 과정과 동일하다.
내선 WebRTC 서버(107)는 sendonly 또는 inactive를 포함한 reINVITE를 IP-PBX(103)에게 전송한다(S903).
IP-PBX(103)는 IP-PBX(103)의 보류음을 보내줄 IP-PBX(103)의 SDP를 포함하는 reINVITE를 국선 WebRTC 서버(109)에게 전송한다(S905).
국선 WebRTC 서버(109)는 국선 WebRTC 서버(109)가 설정한 미디어 정보인 M3' SDP를 포함하는 event-recall을 고객 WebRTC 단말(303)에게 전송한다(S907).
고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)에게 설정 미디어 정보인 A' SDP를 포함하는 req-answer을 전송한다(S909).
국선 WebRTC 서버(109)는 S907 단계 이후 t3 시간 이내에 S909 단계가 이루어지지 않으면, 고객 단말(303)에게 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
국선 WebRTC 서버(109)는 IP-PBX(103)에게 국선 WebRTC 서버(109)가 설정한미디어 정보인 M1 SDP를 포함하는 200 OK 메시지를 전송한다(S911).
IP-PBX(103)는 inactive를 포함하는 200 OK 메시지를 내선 WebRTC 서버(107)에게 전송한다(S913).
내선 WebRTC 서버(107)는 상담원 단말 A(123)에게 inactive를 포함하는 event-answer를 전송한다(S915).
상담원 단말 A(123)는 req-reconnect를 내선 WebRTC 서버(107)에게 전송한다(S917).
이때, 상담원 단말 A(123)는 S901 단계 이후, t3 시간 이내에 S915 단계가 이루어지지 않으면, 내선 WebRTC 서버(107)로 event-cancel을 전송하여 세션 재협상을 취소할 수 있다.
내선 WebRTC 서버(107)는 ACK를 IP-PBX(103)에게 전송한다(S919). IP-PBX(103)는 ACK를 국선 WebRTC 서버(109)에게 전송한다(S921).
이때, 내선 WebRTC 서버(107)는 t4 시간 이내에 req-reconnect가 수신되지 않으면, 세션 재협상을 중지하고 기존 미디어 상태로 돌아간다.
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-reconnected를 전송한다(S923).
그러면, 고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/DTLS/RTP 통신을 하고(S925), 국선 WebRTC 서버(109)는 IP-PBX(103)와 UDP/RTP 통신을 한다(S927). 이때, S925 단계 및 S927 단계에서 통화 홀드에 따른 보류음을 고객 WebRTC 단말(303)로 송출한다. S901 단계 ~ S927 단계를 통해 상담원 단말 A(123)은 설정한 미디어 정보 고객 WebRTC 단말(303)과의 통화 세션을 홀드한다.
이어서, S917 단계 이후, 상담원 단말 A(123)은 설정한 미디어 정보인 B SDP를 포함하는 req-newcall을 내선 WebRTC 서버(107)에게 전송한다(S929). 이때, req-newcall은 상담원 단말 B(123)의 DN을 포함한다.
여기서, S929 단계 이후의 과정은 도 5의 S425 단계 이후와 유사하게 동작한다.
내선 WebRTC 서버(107)는 IP-PBX(103)에게 내선 WebRTC 서버(107)가 설정한 미디어 정보인 M5 SDP를 포함하는 인바이트 메시지를 전송한다(S931). 이때, 인바이트 메시지의 수신자 필드에는 S929 단계에서 수신한 DN을 포함한다.
IP-PBX(103)는 M5 SDP를 포함하는 인바이트 메시지를 내선 WebRTC 서버(107)에게 전송한다(S933).
내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-newcall을 전송한다(S935). 그리고 상담원 단말 B(123)로부터 상담원 단말 B(123)이 지정한 미디어 정보인 C SDP를 포함하는 req-answer을 수신한다(S937).
이때, 내선 WebRTC 서버(107)는 S935 단계 이후 t3 시간 이내에 S937 단계가 이루어지지 않으면, 상담원 단말 B(123)에게 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
내선 WebRTC 서버(107)는 설정한 미디어 정보인 M6 SDP를 포함하는 200 OK 메시지를 IP-PBX(103)에게 전송한다(S939).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 M6 SDP를 포함하는 200 OK 메시지를 전송한다(S941).
내선 WebRTC 서버(107)는 설정한 미디어 정보인 M7 SDP를 포함하는 event-answered를 상담원 단말 A(123)에게 전송한다(S943).
이때, 상담원 단말 A(123)는 S929 단계 이후 t3 시간 이내에 S943 단계가 이루어지지 않으면, 내선 WebRTC 서버(107)에게 req-cancel을 전송하여 세션 생성을 중지할 수 있다.
상담원 단말 A(123)는 내선 WebRTC 서버(107)에게 req-connect를 전송한다(S945).
내선 WebRTC 서버(107)는 IP-PBX(103)에게 ACK 메시지를 전송(S947)하고, IP-PBX(103)로부터 ACK 메시지를 수신한다(S949).
이때, 내선 WebRTC 서버(107)는 S943 단계 이후, S945 단계가 t4 시간 이내에 이루어지지 않으면, 상담원 단말 A(123)에게 event-cancel을 전송하여 세션 생성을 중지할 수 있다.
내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-connected를 전송한다(S951). 이때, 상담원 단말 B(123)은 S937 단계 이후, S951 단계가 이루어지지 않으면, 내선 WebRTC 서버(107)에게 req-endcall을 전송하여 세션 생성을 중지할 수 있다.
내선 WebRTC 서버(107)는 상담원 단말 A(123)와 STUN/DTLS/RTP 통신을 하고(S953), 상담원 단말 B(123)와 STUN/DTLS/RTP 통신을 한다(S955).
이때, 상담원 단말 A(123) 또는 상담원 단말 B(123)가 신규호를 끊으면, S929 단계 이전의 홀드 상태로 돌아간다.
이와 같이, S901 단계 ~ S923 단계까지는 통화 홀드 플로우를 나타낸다. 그리고 S929 단계 ~ S951 단계까지는 고객 WebRTC 단말(303)과 상담원 단말 B(123)간의 신규 호를 생성하는 플로우를 나타낸다. 이 플로우들은 이는 협의 호 전환의 전초 과정이다.
도 11는 본 발명의 실시예에 따른 협의 호 전환을 위한 플로우를 나타낸다.
도 11를 참조하면, 도 10의 통화 홀드 및 고객 WebRTC 단말(303)과 상담원 단말 B(123)간의 신규 호가 생성된 상태에서 시작한다.
상담원 단말 A(123)은 호 전환을 요청하는 req-refer 메시지를 내선 WebRTC 서버(107)에게 전송한다(S1001). 이때, req-refer 메시지는 전환할 대상의 착신번호, 즉, 상담원 단말 B(123)의 DN을 포함한다.
내선 WebRTC 서버(107)는 IP-PBX((103)에게 전환 메시지(REFER)를 전송한다(S1003). 전환 메시지(REFER)는 웹소켓으로 수신된 req-refer 메시지를 SIP로 변환한 메시지이다.
내선 WebRTC 서버(107)는 IP-PBX((103)로부터 202 Accepted 메시지를 수신(S1005)하면 rsp-referred 메시지를 상담원 단말 B(123)로 전송한다(S1007).
또한, IP-PBX(103)는 S1005 단계 이후, 이어서 NOTIFY(refer) 메시지를 내선 WebRTC 서버(107)에게 전송한다(S1009).
내선 WebRTC 서버(107)는 event-notify(refer) 메시지를 상담원 단말 A(123)에게 전송한다(S1011).
상담원 단말 A(123)는 ack-notified(refer) 메시지를 내선 WebRTC 서버(107)로 전송한다(S1013). 내선 WebRTC 서버(107)는 IP-PBX(103)에게 200 OK 메시지를 전송한다(S1015).
IP-PBX(103)는 상담원 단말 A(123)의 호를 모두 종료하기 위해 내선 WebRTC 서버(107)에게 BYE 메시지를 전송하여 상담원 단말 A(123)에 연결된 기존 호 및 신규 호의 종료를 요청한다(S1017, S1021). 여기서, 기존 호는 상담원 단말 A(123)와 고객 WebRTC 단말(303) 간의 통화 호를 말한다. 신규 호는 상담원 단말 A(123)와 상담원 단말 B(123) 간의 통화 호를 말한다.
내선 WebRTC 서버(107)는 기존 호 종료 및 신규 호 종료를 요청하는 event-endcall 메시지를 상담원 단말 A(123)에게 전송한다(SS1019, S1023).
상담원 단말 A(123)는 기존 호 세션 및 신규 호 세션을 종료하는 req-disconnect 메시지를 내선 WebRTC 서버(107)에게 전송(S1025, S1029)한다.
내선 WebRTC 서버(107)는 S1025, S1029에서 수신한 req-disconnect 메시지들 각각에 대한 200 OK 메시지를 IP-PBX(103)에게 전송한다(S1027, S2031).
IP-PBX(103)는 상담원 단말 A(123)의 호를 종료시키는 동안 상담원 단말 B(123)의 호를 유지시키기 위해 내선 WebRTC 서버(107)에게 IP-PBX(103)의 SDP를 포함하는 reINVITE 메시지를 전송한다(S1033).
reINVITE 메시지는 고객측 세션을 재협상하는 일련의 과정 사이(S1049 단계 ~ S1055 단계)에 기존에 상담원 단말 A(123)과 통화(이미 끊어진 통화) 중 이었던 상담원 단말 B(123)의 미디어가 끊어지지 않도록 일시적으로 연결해주기 위함 이다.
내선 WebRTC 서버(107)는 reINVITE 메시지를 수신하면 협상 조건에 따라 바로 200OK 메시지를 IP-PBX(103)로 전송할 수 있다(S1039). 혹은 상담원 단말 B(123)에게 event-recall 메시지를 전송(S1035)해서 req-answer 메시지를 수신(S1037)하면 200OK 메시지를 IP-PBX(103)로 전송할 수 있다(S1039).
IP-PBX(103)는 ACK 메시지를 내선 WebRTC 서버(107)에게 전송한다(S1041).
내선 WebRTC 서버(107)는 event-reconnected를 상담원 단말 B(123)에게 전송한다(S1043).
IP-PBX(103)는 UDP/RTP 및 STRUN/DTLS/RTP를 통해 상담원 단말 B(123)에게 대기음을 송출한다(S1045, S1047).
IP-PBX(103)는 상담원 단말 A(123)와의 호가 종료되면, 고객 WebRTC 단말(303)과 상담원 단말 B(123)간의 연결을 위해서 국선 WebRTC 서버(109)에게 No SDP INVITE 메시지를 전송한다(S1049).
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-recall 메시지를 전송한다(S1051). 고객 WebRTC 단말(303)은 req-answer 메시지를 국선 WebRTC 서버(109)에게 전송한다(S1053).
국선 WebRTC 서버(109)는 IP-PBX(103)에게 200 OK 메시지를 전송한다(S1055).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 reINVITE 메시지를 전송한다(S1057).
내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-recall 메시지를 전송한다(S1059). 그리고 상담원 단말 B(123)로부터 req-answer 메시지를 수신한다(S1061).
내선 WebRTC 서버(107)는 200 OK 메시지를 IP-PBX(103)에게 전송한다(S1063).
IP-PBX(103)는 국선 WebRTC 서버(109)에게 ACK 메시지를 전송한다(S1065).
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-reconnected 메시지를 전송한다(S1067).
또한, IP-PBX(103)는 내선 WebRTC 서버(107)에게 ACK 메시지를 전송한다(S1069). 내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-reconnected 메시지를 전송한다(S1071).
고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/ DTLS/SRTP 통신(S1073)을 하고, 상담원 단말 B(123)은 내선 WebRTC 서버(107)와 STUN/ DTLS/SRTP 통신(S1075)을 하고, 국선 WebRTC 서버(109)와 내선 WebRTC 서버(107)는 UDP/RTP 통신을 한다(S1077).
S1065 단계 및 S1069 단계 이후, 고객 WebRTC 단말(303)와 상담원 단말 B(123) 간에 통화가 이루어진다.
도 12은 본 발명의 실시예에 따른 즉시 호 전환(blind transfer)을 위한 플로우를 나타낸다.
즉, 상담원 단말 B가 호 전환 사실을 인지하지 못하게 호 전환하는 과정을 나타낸다. 즉시 호 전환은 도 10 및 도 11과 달리, 상담원 단말 A와 상담원 단말 B 간의 협의 없이 호를 상담원 단말 B로 전환한다.
이때, 도 5 내지 도 9에서 설명한 바와 같이, 상담원 단말 A(123)이 고객 WebRTC 단말(303)과 통화 중인 상태에서 시작된다.
도 12를 참조하면, 상담원 단말(123)이 새로운 세션을 생성하고자 할 경우, 상담원 단말 A(123)이 내선 WebRTC 서버(107)에게 req-newcall을 전송한다(S1101).
이때, req-newcall은 상담원 단말 B(123)의 DN을 포함한다.
이때, 기존 통화 세션의 미디어를 일시적으로 중단시키기 위해서 hold 기능이 필요한 경우, 상담원 단말 A(123)는 미디어 모드를 sendonly 또는 inactive로 변경한 req-recall을 내선 WebRTC 서버(107)에게 전송한다.
내선 WebRTC 서버(107)는 sendonly 또는 inactive를 포함한 reINVITE를 IP-PBX(103)에게 전송한다(S1103).
IP-PBX(103)는 IP-PBX(103)의 SDP를 포함하는 reINVITE를 국선 WebRTC 서버(109)에게 전송한다(S1105).
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-recall을 전송한다(S1107).
고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)에게 req-answer을 전송한다(S1109).
국선 WebRTC 서버(109)는 IP-PBX(103)에게 200 OK 메시지를 전송한다(S1111).
IP-PBX(103)는 국선 WebRTC 서버(109)에게 ACK 메시지를 전송한다(S1113).
국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-reconnected 메시지를 전송한다(S1115).
고객 WebRTC 단말(303)는 국선 WebRTC 서버(109)와 STUN/DTLS/RTP 통신을 하고(S1117), 국선 WebRTC 서버(109)는 IP-PBX(103)와 UDP/RTP 통신을 한다(S1119).
이때, S1117 단계 및 S1119 단계에서 통화 홀드에 따른 보류음을 고객 WebRTC 단말(303)로 송출한다.
S1101 단계 ~ S1119 단계를 통해 상담원 단말 A(123)은 고객 WebRTC 단말(303)과의 통화 세션을 홀드한다.
이어서, IP-PBX(103)는 내선 WebRTC 서버(107)에게 200 OK 메시지를 전송한다(S1121).
내선 WebRTC 서버(107)는 상담원 단말 A(123)에게 event-answer 메시지를 전송한다(S1123).
상담원 단말 A(123)는 req-reconnect를 내선 WebRTC 서버(107)에게 전송한다(S1125).
내선 WebRTC 서버(107)는 ACK 메시지를 IP-PBX(103)에게 전송한다(S1127).
상담원 단말 A(123)은 S1125 단계 이후, 내선 WebRTC 서버(107)에게 호 전환을 요청하는 req-refer 메시지를 전송한다(S1129). 이때, req-refer 메시지는 전환할 대상의 착신번호, 즉, 상담원 단말 B(123)의 DN을 포함한다.
내선 WebRTC 서버(107)는 IP-PBX(103)에게 전환 메시지(REFER)를 전송한다(S1131).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 202 Accepted 메시지를 전송한다(S1133). 내선 WebRTC 서버(107)는 rsp-referred 메시지를 상담원 단말 B(123)로 전송한다(S1135).
또한, IP-PBX((103)는 S1133 단계 이후, 이어서 NOTIFY(refer) 메시지를 내선 WebRTC 서버(107)에게 전송한다(S1137).
내선 WebRTC 서버(107)는 event-notify(refer) 메시지를 상담원 단말 A(123)에게 전송한다(S1139).
상담원 단말 A(123)는 ack-notified(refer) 메시지를 내선 WebRTC 서버(107)로 전송한다(S1141). 내선 WebRTC 서버(107)는 IP-PBX(103)에게 200 OK 메시지를 전송한다(S1143).
IP-PBX(103)는 상담원 단말 A(123)의 호를 종료하기 위해 내선 WebRTC 서버(107)에게 BYE 메시지를 전송하여 상담원 단말 A(123)에 연결된 호의 종료를 요청한다(S1145).
내선 WebRTC 서버(107)는 호 종료를 요청하는 event-endcall 메시지를 상담원 단말 A(123)에게 전송한다(S1147).
상담원 단말 A(123)는 호 세션을 종료하는 req-disconnect 메시지를 내선 WebRTC 서버(107)에게 전송(S1149)한다.
내선 WebRTC 서버(107)는 200 OK 메시지를 IP-PBX(103)에게 전송한다(S1151).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 INVITE 메시지를 전송한다(S1153).
내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-newcall 메시지를 전송(S1155)해서 req-answer 메시지를 수신(S1157)하면 200 OK 메시지를 IP-PBX(103)로 전송할 수 있다(S1159).
IP-PBX(103)는 reINVITE 메시지를 국선 WebRTC 서버(109)에게 전송한다(S1161). 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-recall 메시지를 전송한다(S1163).
고객 WebRTC 단말(303)은 req-answer 메시지를 국선 WebRTC 서버(109)에게 전송한다(S1165).
국선 WebRTC 서버(109)는 IP-PBX(103)에게 200 OK 메시지를 전송한다(S1167).
IP-PBX(103)는 내선 WebRTC 서버(107)에게 ACK 메시지를 전송한다(S1169).
내선 WebRTC 서버(107)는 상담원 단말 B(123)에게 event-connected 메시지를 전송한다(S1171).
또한, IP-PBX(103)는 국선 WebRTC 서버(109)에게 ACK 메시지를 전송한다(S1173). 국선 WebRTC 서버(109)는 고객 WebRTC 단말(303)에게 event-connected 메시지를 전송한다(S1175).
고객 WebRTC 단말(303)은 국선 WebRTC 서버(109)와 STUN/ DTLS/SRTP 통신(S1177)을 하고, 상담원 단말 B(123)은 내선 WebRTC 서버(107)와 STUN/ DTLS/SRTP 통신(S1179)을 하고, 국선 WebRTC 서버(109)와 내선 WebRTC 서버(107)는 UDP/RTP 통신을 한다(S1181).
이후, 고객 WebRTC 단말(303)와 상담원 단말 B(123) 간에 통화가 이루어진다.
또한, 도 11 및 도 12에서 t3, t4는 도 1 ~ 도 10에서 설명한 바와 같이, 전 단계가 일정 시간내에 이루어지지 않은 경우, event-cancel 등과 같은 메시지를 전송하여 세션 생성을 중지하는데 사용될 수 있다.
도 13는 본 발명의 한 실시예에 따른 상담원 단말에 알림을 푸시하는 과정을 나타낸 흐름도이다.
도 13을 참조하면, 안드로이드 OS를 사용하는 상담원 단말(123)을 대상으로 하는 푸시 동작을 나타낸다.
푸쉬 서버(119)와 푸쉬 알림 전송 장치(121)는 웹소켓 접속된다(S1201).
상담원 단말(123)은 전용 앱을 설치한 후, 푸쉬 알림 전송 장치(121)에게 Push Token을 요청한다(S1203). 여기서, Push Token은 푸쉬 알림 전송 장치(121)가 상담원 단말(123)을 인식할 수 있는 유일한 키값이다. Push Token은 푸쉬 알림 전송 장치(121)가 푸쉬 메시지를 상담원 단말(123)에게 전송할 때, 함께 전송된다.
상담원 단말(123)은 푸쉬 알림 전송 장치(121)로부터 Push Token을 수신한다(S1205).
상담원 단말(123)은 푸쉬 서버(119)에게 S1205 단계에서 수신한 Push Token 을 전송한다(S1207).
IP-PBX(103)는 상담원 분배가 완료되면, 푸쉬 서버(119)에게 분배된 상담원 단말(123)과 통화 연결을 위한 RESTful API Request를 전송한다(S1209). RESTful API Request는 요청 데이터 및 상담사 정보를 포함할 수 있다.
푸쉬 서버(119)는 푸쉬 알림 전송 장치(121)에게 IP-PBX(103)로부터 제공받은 요청 데이터 및 상담사 정보와, S1207 단계에서 수신한 Push Token을 포함하는 푸쉬 메시지를 전송한다(S1211).
푸쉬 알림 전송 장치(121)는 S1211 단계에서 수신한 푸쉬 메시지를 포함하는 통지 메시지(Push Notification)를 상담원 단말(123)에게 전송한다(S1215).
상담원 단말(123)은 ACK/NACK 메시지를 푸쉬 알림 전송 장치(121)에게 전송(S1217)하고, 푸쉬 알림 전송 장치(121)는 ACK/NACK 메시지를 푸쉬 서버(119)에게 전송한다(S1219). 여기서, ACK 메시지는 푸쉬 메시지의 수락 메시지이고, NACK 메시지는 푸쉬 메시지의 거절 메시지이다.
도 14는 본 발명의 다른 실시예에 따른 상담원 단말에 알림을 푸시하는 과정을 나타낸 흐름도이다.
도 14를 참조하면, iOS를 사용하는 상담원 단말(123)을 대상으로 한 푸시 동작을 나타낸다.
상담원 단말(123)은 전용 앱을 설치한 후, 푸쉬 알림 전송 장치(121)에게 Device Token을 요청한다(S1301). 여기서, Device Token은 푸쉬 알림 전송 장치(121)가 상담원 단말(123)을 인식할 수 있는 유일한 키값이다. Device Token은 푸쉬 알림 전송 장치(121)가 푸쉬 메시지를 상담원 단말(123)에게 전송할 때, 함께 전송된다.
상담원 단말(123)은 푸쉬 알림 전송 장치(121)로부터 Device Token을 수신한다(S1303).
상담원 단말(123)은 푸쉬 서버(119)에게 S1303 단계에서 수신한 Device Token을 전송한다(S1305).
IP-PBX(103)는 상담원 분배가 완료되면, 푸쉬 서버(119)에게 분배된 상담원 단말(123)과 통화 연결을 위한 RESTful API Request를 전송한다(S1307). RESTful API Request는 요청 데이터 및 상담사 정보를 포함할 수 있다.
푸쉬 서버(119)는 푸쉬 알림 전송 장치(121)와 웹 소켓 접속을 한다(S1309).
푸쉬 서버(119)는 푸쉬 알림 전송 장치(121)에게 IP-PBX(103)로부터 제공받은 요청 데이터 및 상담사 정보와, S1305 단계에서 수신한 Device Token을 포함하는 푸쉬 메시지를 전송한다(S1311).
푸쉬 알림 전송 장치(121)는 푸쉬 서버(119)에게 응답 메시지를 전송한다(S1313). 그리고 S1311 단계에서 수신한 푸쉬 메시지를 포함하는 통지 메시지(Push Notification)를 상담원 단말(123)에게 전송한다(S1315).
푸쉬 알림 전송 장치(121)는 S1309 단계에서의 웹소켓 접속을 해제한다(S1317). 그리고 IP-PBX(103)에게 RESTful API Response를 전송한다(S1319).
도 15는 본 발명의 실시예에 따른 콜센터 상담사를 위한 어플리케이션의 기능을 설명하는 화면이다.
도 15을 참조하면, 콜센터 상담사를 위한 상담원 단말의 전용 앱(App)은 소프트폰 기능외에 수/발신이력, 문의/상담내역 관리와 녹음청취, 각종 모니터링과 통계 등의 CRM(Customer Relationship Management) 기능을 제공한다.
상담원 단말(123)은 소프트폰 기반의 전용 앱만 가지고도 각종 전화 응대 및 상담에 필요한 기능과 화면을 제공받아 서비스를 진행할 수 있다. 그 기능은 다음 표 1과 같을 수 있다.
상담사 상태 설정 - 대기, 휴식, 후처리, 다이얼패드, 로그아웃
실시간 고객 대기 현황
실시간 고객 응대 현황
실시간 일별 콜인입/응대 추이
상담사 실시간 현황 - 통화중, 휴식, 대기, 후처리
상담사 일별 통계
호처리 통계
수/발신 상담 이력
콜백 관리
더보기 : 설정, 공지사항
한편, 도 16는 본 발명의 실시예에 따른 컴퓨팅 장치의 하드웨어 구성을 나타낸 블록도로서, 특히, 도 1 ~ 도 15에서 설명한 콜센터 시스템(100)의 하드웨어 구성을 나타낸다.
도 16를 참조하면, 콜센터 시스템(100)은 적어도 하나의 프로세서에 의해 동작하는 컴퓨팅 장치(400)에서 본 발명의 동작을 실행하도록 기술된 명령들(instructions)이 포함된 프로그램을 실행할 수 있다.
컴퓨팅 장치(400)의 하드웨어는 적어도 하나의 프로세서(401), 메모리(403), 스토리지(405), 통신 인터페이스(407)를 포함할 수 있고, 버스(bus)를 통해 연결될 수 있다. 이외에도 입력 장치 및 출력 장치 등의 하드웨어가 포함될 수 있다. 컴퓨팅 장치(400)는 프로그램을 구동할 수 있는 운영 체제(Operating System, OS)를 비롯한 각종 소프트웨어가 탑재될 수 있다.
프로세서(401)는 컴퓨팅 장치(400)의 동작을 제어하는 장치로서, 프로그램에 포함된 명령들을 처리하는 다양한 형태의 프로세서일 수 있고, 예를들면, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 등 일 수 있다. 메모리(403)는 본 발명의 동작을 실행하도록 기술된 명령들이 프로세서(401)에 의해 처리되도록 해당 프로그램을 로드할 수 있다. 메모리(403)는 예를 들면, ROM(read only memory), RAM(random access memory) 등 일 수 있다. 스토리지(405)는 본 발명의 동작을 실행하는데 요구되는 각종 데이터, 프로그램 등을 저장할 수 있다. 통신 인터페이스(407)는 유/무선 통신 모듈일 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (14)

  1. 컴퓨팅 장치가 WebRTC(Web Real-Time Communications) 통신을 이용한 콜센터 서비스를 제공하는 방법으로서,
    고객 단말의 호 연결을 요청하는 SIP(Session Initiation Protocol) 메시지를 IP-PBX(Private Branch Exchange)로부터 수신하는 단계,
    상기 호 연결을 요청하는 SIP 메시지를 WebRTC 메시지로 변환하여 상담원 단말에게 전송하는 단계,
    상기 상담원 단말로부터 호 연결에 응답하는 WebRTC 메시지를 수신하면, 상기 WebRTC 메시지를 SIP 메시지로 변환하여 상기 고객 단말로 전송하는 단계, 그리고
    상기 고객 단말과 SIP 프로토콜 통신을 수행하고, 상기 상담원 단말과 WebRTC 통신을 수행하여, 상기 고객 단말과 상기 상담원 단말 간의 통화 데이터를 중계(Relay)하는 단계
    를 포함하는, 방법.
  2. 제1항에서,
    상기 IP-PBX는,
    상기 고객 단말로부터 호 연결 요청 메시지가 수신되면, 상기 고객 단말과 음성 호를 임시로 연결하여 상기 고객 단말에게 링백톤을 송출하고, CTI(Computer Telephony Integration) 게이트웨이에게 상담원 단말의 배정을 요청하여 배정된 상담원 단말의 정보를 획득하며,
    상기 수신하는 단계는,
    상기 CTI 게이트웨이로부터 배정받은 상담원 단말로 호 연결을 요청하는 메시지를 상기 IP-PBX로부터 수신하는, 방법.
  3. 제2항에서,
    상기 수신하는 단계 이전에,
    상기 상담원 단말로부터 가입자 전화번호가 포함된 등록 요청 메시지를 수신하는 단게, 그리고
    상기 등록 요청 메시지를 SIP 메시지로 변환하여 상기 IP-PBX에 전송하는 단계를 더 포함하고,
    상기 IP-PBX로부터 수신되는 호 연결 요청 메시지는,
    상기 상담원 단말의 가입자 전화번호가 수신자 필드에 포함되는, 방법.
  4. 제3항에서,
    상기 상담원 단말은 웹 단말을 포함하고,
    상기 등록 요청 메시지는,
    상기 고객 단말로부터 호 연결 요청 메시지를 수신하기 전에 상기 상담원 단말로부터 수신되는, 방법.
  5. 제3항에서,
    상기 상담원 단말은 모바일 단말을 포함하고,
    상기 IP-PBX는,
    상기 배정받은 상담원 단말의 정보를 포함하는 푸쉬 메시지를 상기 상담원 단말로 전송하도록 푸쉬 서버에게 요청하고,
    상기 등록 요청 메시지는,
    상기 링백톤을 송출한 이후에 상기 상담원 단말이 상기 푸쉬 메시지를 클릭한 경우, 상기 상담원 단말로부터 수신되는, 방법.
  6. 제1항에서,
    상기 고객 단말로부터 수신한 호 연결 요청 메시지는,
    콜센터 대표 전화번호를 포함하고,
    상기 IP-PBX로부터 수신하는 호 연결 요청 메시지는,
    CTI(Computer Telephony Integration) 게이트웨이로부터 상기 IP-PBX가 배정받은 상담원 단말의 전화번호를 수신자로 포함하는, 방법.
  7. 제1항에서,
    상기 고객 단말로부터 수신한 호 연결 요청 메시지는,
    특정 상담원 단말의 전화번호를 포함하고,
    상기 IP-PBX로부터 수신하는 호 연결 요청 메시지는,
    상기 특정 상담원 단말의 전화번호를 그대로 포함하는, 방법.
  8. 제1항에서,
    상기 중계하는 단계 이후,
    제1 상담원 단말로부터 수신한 호 전환을 요청하는 WebRTC 메시지를 재연결 메시지(reINVITE)로 변환하여 상기 고객 단말에게 전송하고, 상기 고객 단말로부터 수신한 상기 재연결 메시지에 대한 응답 메시지를 상기 WebRTC 메시지로 변환하여 상기 제1 상담원 단말에게 전송하여, 상기 제1 상담원 단말과 상기 고객 단말 간의 세션을 홀드(Hold)하는 단계, 그리고
    상기 제1 상담원 단말이 요청한 제2 상담원 단말에게 호 연결을 요청하여 응답이 수신되면, 상기 홀드한 세션을 종료하고 상기 제2 상담원 단말과 상기 고객 단말 간의 세션을 생성하는 단계
    를 더 포함하는, 방법.
  9. 제8항에서,
    상기 홀드하는 단계와 상기 세션을 생성하는 단계 사이에,
    상기 제2 상담원 단말에게 세션 전환 요청이 발생하였음을 알리는 메시지를 전송하여 응답을 수신하는 단계
    를 더 포함하는, 방법.
  10. 통신 장치,
    메모리, 그리고
    상기 메모리에 저장된 프로그램을 실행하는 프로세서를 포함하고,
    상기 프로그램은,
    IP-PBX(Private Branch Exchange)와 SIP(Session Initiation Protocol) 통신을 하고, 상담원 단말과 웹소켓을 연결하여 WebRTC(Web Real-Time Communications) 통신을 하며,
    고객 단말이 전송한 호 연결을 요청하는 SIP 메시지를 상기 IP-PBX로부터 수신하여 WebRTC 메시지로 변환하고, 변환한 WebRTC 메시지를 상기 상담원 단말로 전달하며, 상기 상담원 단말로부터 수신한 호 연결에 응답하는 WebRTC 메시지를 SIP 메시지로 변환하고 변환한 SIP 메시지를 상기 고객 단말로 전송하며,
    상기 고객 단말과 상기 상담원 단말 간의 콜센터 서비스를 위한 호 처리 및 통화 데이터를 중계(Relay)하는 명령어들(Instructions)을 포함하는, 컴퓨팅 장치.
  11. 제10항에서,
    상기 프로그램은,
    전화망을 통해 상기 고객 단말이 전송한 호 연결 요청 메시지를 상기 IP-PBX로부터 수신하여 상기 상담원 단말로 전달하거나, 또는 데이터망을 통해 상기 고객 단말로부터 수신한 호 연결 요청 메시지를 상기 IP-PBX로 전달하고 상기 IP-PBX로부터 수신한 호 연결 요청 메시지를 상기 상담원 단말로 전달하는 명령어들을 포함하고,
    상기 IP-PBX로부터 수신한 호 연결 요청 메시지는,
    상기 고객 단말이 설정한 특정 상담원 단말의 전화번호를 포함하거나 또는 상기 IP-PBX가 CTI(Computer Telephony Integration) 게이트웨이로부터 배정받은 상담원 단말의 전화번호를 수신자 정보로 포함하는, 컴퓨팅 장치.
  12. 제10항에서,
    상기 프로그램은,
    상기 고객 단말 및 상기 상담원 단말과 웹 소켓으로 연결한 후, 상기 고객 단말 및 상기 상담원 단말로부터 수신한 토큰 ID가 기 발급한 토큰 ID와 일치하는지 비교하여 불일치하면, 세션을 초기화하며,
    상기 고객 단말 및 상기 상담원 단말과 주기적으로 핑퐁을 교환하고 핑퐁 교환에 실패하면, 기 연결된 세션을 종료하는 명령어들을 포함하는, 컴퓨팅 장치.
  13. 제10항에서,
    상기 프로그램은,
    제1 상담원 단말 및 상기 고객 단말 간의 통화 세션이 연결된 상태에서, 상기 제1 상담원 단말의 호 전환 요청이 수신되면, 연결된 통화 세션을 홀드(Hold)하고,
    상기 제1 상담원 단말이 요청한 제2 상담원 단말과 호 설립 절차를 수행한 후, 상기 홀드 상태의 통화 세션을 종료하고 상기 고객 단말과 상기 제2 상담원 단말 간의 통화 세션으로 전환하는 명령어들을 포함하는, 컴퓨팅 장치.
  14. 제10항에서,
    상기 프로그램은,
    상기 상담원 단말에서 실행된 전용 앱과 통신하는 명령어들을 포함하고,
    상기 전용 앱은,
    수신 이력, 발신 이력, 상담 내역 관리, 녹음 청취, 모니터링 및 통계 중 적어도 하나를 포함하는 CRM(Customer Relationship Management) 기능, 전화 기능 및 전화 수신을 알리는 푸쉬 메시지 팝업 기능 중 적어도 하나의 기능을 포함하는, 컴퓨팅 장치.
KR1020200009900A 2019-01-24 2020-01-28 WebRTC 기반 콜센터 서비스 방법 및 그 장치 KR102240904B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190009342 2019-01-24
KR20190009342 2019-01-24

Publications (2)

Publication Number Publication Date
KR20200092272A KR20200092272A (ko) 2020-08-03
KR102240904B1 true KR102240904B1 (ko) 2021-04-15

Family

ID=72043061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200009900A KR102240904B1 (ko) 2019-01-24 2020-01-28 WebRTC 기반 콜센터 서비스 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102240904B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102522675B1 (ko) * 2020-11-10 2023-04-18 에스케이스토아 주식회사 미디어 제공 서버, 커머스 컨텐츠에 대한 주문 대기인원 발생시, 다른 주문 방법의 절차로 연결하는 컨텐츠를 제공하는 방법 및 컴퓨터 프로그램
CN113905023B (zh) * 2021-08-25 2024-02-27 贝壳找房(北京)科技有限公司 基于网页即时通信技术的外呼系统及方法
CN113727051A (zh) * 2021-08-31 2021-11-30 深圳市思迪信息技术股份有限公司 基于虚拟坐席的双向视频方法及系统、设备及存储介质
CN113630424B (zh) * 2021-09-15 2023-04-28 上海哔哩哔哩科技有限公司 WebRTC通信方法及系统
KR102459864B1 (ko) * 2021-09-16 2022-10-28 주식회사 나로수 영상 통화를 제공하는 방법, 서버 및 디바이스
KR102556286B1 (ko) * 2021-11-24 2023-07-17 주식회사 디오티스 인터넷 환경에서의 WebRTC 기반 통화 연결 방법 및 그 장치
KR102605953B1 (ko) * 2022-02-17 2023-11-24 주식회사 마인드웨어웍스 컨택센터 서비스 연계 제공 시스템
KR102546662B1 (ko) * 2022-12-19 2023-06-22 (주)옴니스토리 공중교환전화망 통신 및 웹 실시간 통신 연동형 컨퍼런스 제공 시스템 및 그 방법
CN116319706B (zh) * 2023-03-17 2024-02-13 飞虎互动科技(北京)有限公司 尽职调查系统、方法、电子设备及存储介质
KR102646144B1 (ko) * 2023-10-13 2024-03-11 에이비케이 주식회사 개인 정보 보호를 위한 음성 통신 플랫폼

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101496963B1 (ko) 2013-12-03 2015-03-02 (주)모임스톤 WebRTC 기반 VoIP 전화기
KR101825073B1 (ko) 2013-04-26 2018-03-14 인텔 아이피 코포레이션 인터넷 프로토콜 멀티미디어 서브시스템(ims)에 액세스하는 웹 기반 실시간 통신(webrtc)에 대한 아키텍처

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150026217A (ko) * 2013-09-02 2015-03-11 주식회사 케이티 전화번호를 이용한 웹 기반 통화 서비스 시스템 및 이동통신 단말
US9906568B2 (en) * 2014-08-28 2018-02-27 Avaya Inc. Hybrid cloud media architecture for media communications
EP3292675B1 (en) * 2015-05-05 2023-07-12 Ipalive AB Establishing media paths in real time communications

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101825073B1 (ko) 2013-04-26 2018-03-14 인텔 아이피 코포레이션 인터넷 프로토콜 멀티미디어 서브시스템(ims)에 액세스하는 웹 기반 실시간 통신(webrtc)에 대한 아키텍처
KR101496963B1 (ko) 2013-12-03 2015-03-02 (주)모임스톤 WebRTC 기반 VoIP 전화기

Also Published As

Publication number Publication date
KR20200092272A (ko) 2020-08-03

Similar Documents

Publication Publication Date Title
KR102240904B1 (ko) WebRTC 기반 콜센터 서비스 방법 및 그 장치
US20150350723A1 (en) Video Communication Method, Home Terminal, and Home Server
US10055742B2 (en) Call transfers for web-delivered calls
US8695077B1 (en) Establishing and controlling communication sessions between SIP devices and website application servers
JP2001156828A5 (ko)
US20180255182A1 (en) Web Real-Time Client Communication Over a Stimulus Based Network
CN111050000A (zh) 一种呼叫中心软电话实现的方法、装置和系统
US20120242778A1 (en) Streaming of Telepresence Video Content
EP3357211B1 (en) Data communications
US20140254788A1 (en) Communication between a mobile device and a call center
JP2009176289A (ja) サービス提供システム、サービス提供方法およびサービス提供プログラム
JP2018191220A (ja) 画像処理装置の遠隔保守システム、通信確立方法、及びプログラム
CN105516176B (zh) 一种呼叫中心系统及其通信连接方法和装置
US20240022494A1 (en) System and method for testing real-time communications between browsers and contact centers
KR102107197B1 (ko) 스마트 컨택 관리 서버 및 이를 이용한 스마트 컨택 서비스 시스템
JP5325953B2 (ja) 通信システム
JP2015118478A (ja) 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム
JP5296602B2 (ja) サービス提供システムおよびサービス提供方法
KR101137069B1 (ko) 비즈니스 인텔리전스 서비스 시스템 및 방법 그리고 이에 사용되는 서버
RU2759798C1 (ru) Способ реализации аудиосоединения по протоколу sip без установки sip модуля в интерактивные панели домофона
JP5983602B2 (ja) 通話連動システム、宅内制御装置、通話連動方法
CN101656754A (zh) 一种在即时通信工具中穿越防火墙的方法
JP2008147881A (ja) 通話データ管理方法、通話記録サーバ、および、コールセンタシステム
JP6631300B2 (ja) 通信制御システム、通信制御方法、通信制御プログラム、および、通信制御装置
CN105721726A (zh) 控制话机的方法和系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right