AI Tech

[AI Tech] AICC 아키텍처, VoIP Infra, AI 시스템 구성.

moonzoo 2024. 2. 13. 17:09

AICC인공 지능(AI) 기술을 활용하여 고객 서비스를 자동화하고 최적화하는 최신 콜센터 솔루션입니다. AI, 머신러닝, 자연어 처리(NLP) 등의 기술을 통해 고객의 요구를 예측하고, 개인화된 서비스를 제공합니다.

 

AICC는 기존 IPCC에 AI 기술을 접목한 것인데, VoIP 인프라부터 AI 시스템까지의 AICC 전체적인 아키텍처에 대해 아래 아리시스 AICC 구성도를 바탕으로 정리해보도록 하겠습니다. (VoIP 인프라의 아키텍처를 그나마 포함한 구성도가 이것 뿐이라...)

 

http://arisys.co.kr/solutions/%EC%86%94%EB%A3%A8%EC%85%98-%EC%86%8C%EA%B0%9C/ : 아리시스 AICC 구성도

 

 

VoIP Infra

VoIP Infra에서는 고객의 전화에서 아리시스 PBX까지의 통화 경로를 설명합니다.

 

1. 고객의 전화 (010-XXXX-XXXX) → PSTN(15XX-15XX)

  • 과정: 고객이 자신의 휴대폰(010-xxxx-xxxx)을 사용하여 A기업의 PSTN(15xx-15xx) 번호로 전화를 걸게 됩니다.
  • 목적: 고객이 A 기업의 음성 챗봇을 사용하기 위한 첫 번째 단계입니다. 고객의 전화는 A기업의 PSTN(공중교환전화망)을 통해 지정된 번호로 연결됩니다.

 

* 용어

PSTN : PSTN은 전 세계적으로 연결된 전화 네트워크로, 어떤 전화기에서도 다른 전화기로의 연결을 가능하게 합니다.

 

PSTN 번호: 회사가 고객 서비스를 위해 제공하는 공개된 연락처입니다.

 

2. PSTN(15XX-15XX) → MEDIA G/W (착신전환, 070-XXXX-XXXX)

MEDIA G/W, 즉 미디어 게이트웨이(Media Gateway)는 다양한 통신 네트워크 간에 오디오, 비디오, 그리고 다른 형태의 미디어 스트림을 변환하고 전송하는 장치 또는 소프트웨어를 말합니다. 

 

회사에서 자체 MEDIA G/W를 사용할 수도 있지만, 별정사업자와 협력해 회사 PBX에 음성을 전송할 수 있습니다.

 

위의 구성도 처럼 MEDIA G/W를 예시로 설명을 진행할 수도 있지만, 별정사업자를 거쳐 착신전환을 하는 과정으로 설명하는 것이 더 많은 내용을 다룰 수 있어서 착신전환하는 프로세스로 설명을 진행하겠습니다.

 

  • 과정: 고객이 A기업의 PSTN 번호로 전화를 걸면, 사전에 설정된 라우팅 규칙에 따라 별정사업자가 제공하는 070-XXXX-XXXX 번호로 자동으로 착신전환됩니다. PSTN(공중 전화망)에서 별정사업자의 VoIP 전화기로 착신전환 되는 과정에서 아날로그 신호를 디지털 신호로 변환하는 과정이 포함됩니다.
    1. 디지털 신호 변환: PSTN에서 발신된 아날로그 신호는 VoIP 시스템으로 연결되기 전에 디지털 신호로 변환되어야 합니다. 이 변환 과정은 일반적으로 VoIP 게이트웨이 또는 ATA(Analog Telephone Adapter)를 통해 이루어집니다. 이 장치들은 아날로그 음성 신호를 디지털 데이터 패킷으로 변환하며, 이 데이터 패킷은 인터넷 프로토콜(IP)을 사용하여 전송됩니다.
    2. VoIP 전화기로의 전송: 변환된 디지털 데이터 패킷은 인터넷이나 기타 IP 네트워크를 통해 전송되어, 최종적으로 처음넷의 VoIP 전화기나 PBX 시스템에 도달합니다. 추후, VoIP 전화기는 이 디지털 데이터 패킷을 받아서 다시 사람의 귀로 들을 수 있는 음성 신호로 변환합니다.
  • 목적 : 이 변환 과정은 VoIP 기술을 전통적인 PSTN과 현대적인 IP 네트워크 기반 통신 시스템 사이의 다리 역할을 할 수 있게 해줍니다.

 

*용어

라우팅(Routing) : 라우팅은 네트워크에서 데이터 패킷이 송신지에서 목적지까지 전달되는 경로를 결정하는 과정입니다.

 

착신전환 서비스 : 사용자가 특정 조건 하에서 전화를 다른 번호로 자동으로 전환할 수 있도록 하는 서비스를 제공합니다. 예를 들어, 고객이 PSTN 번호로 전화를 걸면, 별정사업자는 이를 VoIP를 통해 회사의 내부 네트워크나 다른 지정된 번호로 전환할 수 있습니다.

 

별정통신사업자(VoIP 서비스 제공자) : 별정통신사업자는 기존의 공중통신망(PSTN)이나 이동통신망을 이용하지 않고, 인터넷과 같은 데이터 네트워크를 통해 음성, 데이터, 영상 등의 통신 서비스를 제공하는 사업자를 의미합니다.

3. 착신전환(VoIP) → 별정사업자 PBX Proxy Server

  • 과정: 착신전환된 통화는 별정사업자의 PBX Proxy Server에 도달합니다. 이 서버는 이미 디지털 형태로 변환된 통화 데이터를 관리하고 처리하는 중앙 허브 역할을 합니다. 서버는 통화를 SIP 네트워크를 통해 최종 목적지로 라우팅하며, 필요한 인증 절차를 수행합니다.
  • 목적: PBX Proxy Server는 주로 IP 기반 통신 환경에서의 통화 라우팅, 관리, 그리고 보안 인증을 담당합니다. 여기서 아날로그 신호에서 디지털 신호로의 변환PBX Proxy Server 서버의 직접적인 역할이 아니며, 이 과정은 주로 PSTN과 VoIP 시스템 간의 인터페이스 역할을 하는 다른 장치에 의해 수행됩니다.

 

*용어

SIP Trunking: VoIP의 표준 프로토콜인 SIP를 사용하여, 기업의 PBX 전화 시스템을 인터넷 서비스 제공업체(처음넷)의 네트워크에 연결하는 기술입니다. 이를 통해 기업은 전통적인 전화 회선을 사용하지 않고 디지털 변환 없이 인터넷망을 통해 SIP 도메인을 연결하여, 음성, 비디오 통화 및 기타 스트리밍 서비스를 제공받을 수 있습니다.

 

PBX Proxy Server: PBX (Private Branch Exchange)는 기업이나 조직 내부의 전화 통신을 관리하는 시스템입니다. PBX Proxy Server는 내부 통화, 외부로의 통화 연결, 통화 전환, 회의 통화 등 다양한 통신 기능을 수행할 수 있습니다.

  • 통화 라우팅: PBX Proxy Server의 역할은 주로 SIP 또는 다른 IP 기반 프로토콜을 사용하는 통화의 라우팅 및 관리입니다. 즉, 들어오는 통화를 적절한 내부 네트워크 사용자나 장치로 라우팅하는 역할을 합니다. 이는 사용자가 다이얼한 번호나 다른 라우팅 규칙에 기반하여 결정됩니다. 이 과정에서 주로 디지털 데이터(음성, 비디오, 텍스트 메시지)를 처리합니다.

따라서, PBX Proxy Server는 VoIP 시스템 내에서 중요한 역할을 하며, 기존의 전화 시스템과 IP 네트워크 간의 통합을 용이하게 합니다.

 

IP-PBX: 전통적인 PBX의 기능을 인터넷 프로토콜(IP) 네트워크를 통해 제공하는 현대적인 전화 시스템입니다.

  • 기능: IP-PBX는 내부 통신을 IP 네트워크를 통해 처리하며, 이를 통해 음성, 데이터 및 비디오 통신을 지원할 수 있습니다.
  • 구성 요소: IP 전화기, 라우터, 스위치, VoIP 서버 등으로 구성되며, 일반적으로 소프트웨어 기반으로 운영됩니다.
  • 기술적 특성: 음성 데이터를 디지털 신호로 변환하고 IP 패킷으로 전송합니다. 이는 인터넷 또는 LAN (Local Area Network)을 통해 이루어집니다. 
  • 역할: IP-PBX는 AICC 시스템과 연동되어, 외부로부터의 전화를 받고, 적절한 내부 직원 또는 자동 응답 시스템으로 라우팅하는 역할을 합니다.

4. 별정사업자 PBX Proxy Server →(SIP Network) → 아리시스 PBX

  • 과정: 별정사업자의 PBX Proxy Server에서 통화는 SIP(Session Initiation Protocol) 네트워크를 통해 아리시스 PBX로 라우팅합니다.
  • 목적: SIP 네트워크를 사용함으로써, 통화는 인터넷을 통해 전송되어 위치에 상관없이 연결이 가능해집니다. 이는 데이터 패킷 형태로 전송되며, 전송 경로는 네트워크의 현재 상태와 효율성을 기반으로 동적으로 결정됩니다.

 

*용어

SIP Network : VoIP (Voice over Internet Protocol) 및 기타 IP 기반 통신 시스템에서 사용되는 핵심 프로토콜입니다. SIP는 인터넷 프로토콜 네트워크를 통해 세션을 설정, 수정 및 종료하는 데 사용되며, 이를 통해 음성 통화, 비디오 컨퍼런스, 인스턴트 메시징 등 다양한 형태의 멀티미디어 통신이 가능해집니다.

주요 기능

  1. 세션 설정: SIP는 사용자 간의 통신 세션을 시작하는 데 사용됩니다. 예를 들어, 전화를 걸거나 비디오 컨퍼런스를 시작할 때 SIP 요청이 발생하여 통신이 시작됩니다.
  2. 세션 관리: SIP는 세션 동안 발생하는 다양한 이벤트(예: 통화 전송, 통화 종료)를 관리합니다. 사용자가 통화를 종료하거나 다른 사용자를 통화에 추가하는 등의 작업을 수행할 수 있습니다.
  3. 세션 종료: 통신 세션이 더 이상 필요하지 않을 때 SIP를 통해 세션을 종료할 수 있습니다. 이는 사용자가 통화를 끝내거나 컨퍼런스를 종료할 때 발생합니다.

구성요소

  1. SIP 클라이언트: SIP 프로토콜을 사용하여 통신을 시작하고 관리하는 장치나 소프트웨어입니다. VoIP 전화기, 스마트폰의 VoIP 애플리케이션, 컴퓨터의 소프트폰 등이 여기에 해당합니다.
  2. SIP 서버: SIP 요청을 처리하고, 사용자 간의 통신을 중개하는 서버입니다. SIP 서버는 다음과 같이 세분화될 수 있습니다:
    • Registrar Server: 사용자의 위치 정보를 등록하고 관리합니다.
    • Proxy Server: SIP 요청을 적절한 목적지로 라우팅합니다.
    • Redirect Server: 요청을 받은 후 사용자를 다른 주소로 리디렉션합니다.
  3. SIP 네트워크: SIP 클라이언트와 서버 간의 통신을 가능하게 하는 IP 기반 네트워크입니다. 인터넷이나 기업의 내부 네트워크를 사용할 수 있습니다.

AICC 시스템 구성

아리시스 AICC 구성도

5. 아리시스 PBX → AI VoG(음성모듈)

 

  • 과정1: 아리시스 PBX 시스템에서 발생하는 통화 요청이 AI VoG 음성 모듈의 메인 컴포넌트로 전달됩니다. 이 단계에서는 통화 설정 및 관리를 위한 초기 처리가 이루어집니다.
  • 목적1: 통화 요청을 인식하고, 이를 처리하기 위한 준비 과정을 진행합니다. 필요한 자원 할당 및 통화의 기본 파라미터 설정을 포함합니다.

 

다음은 AI VoG 음성모듈의 세부 프로세스를 추정해 작성했습니다.

 

  • 과정2: 음성 모듈 내에서 별도의 스레드를 생성하여, 실시간으로 통화 데이터를 처리할 수 있도록 합니다.
  • 목적2: 실시간 통신의 요구사항을 충족하기 위해 별도의 실행 흐름을 제공합니다. 이는 통화 처리의 효율성을 높이고, 동시에 여러 통화를 관리할 수 있게 합니다.

 

  • 과정3: RTP(Real-time Transport Protocol) 서버를 통해 실시간 음성 데이터의 전송을 진행합니다. 이 컴포넌트는 통화 중인 오디오 스트림을 관리하고, 전송한 음성 데이터는 음성 처리(에코 캔슬링, 노이즈 감소) 프로세스를 거칠 수 있습니다.
  • 목적3: 음성 데이터의 실시간 전송 및 수신을 보장합니다. 네트워크 지연과 패킷 손실을 최소화하여 고품질의 음성 통신을 유지합니다.

 

*용어

SIP NETWORK (REGISTER, INVITE, BYE)

 

IP-PBX(아리시스 PBX) 음성 모듈(AI VoG) 간의 통신 과정에서 SIP 네트워크를 사용하여 REGISTER, INVITE, BYE SIP 메시지를 주고받는 과정을 통해 사용자는 VoIP 서비스를 이용할 수 있게 되며, 통화의 시작부터 종료까지의 전체 흐름을 관리할 수 있습니다.

 

1. REGISTER

  • 과정: REGISTER 메시지는 SIP 클라이언트(AI VoG) SIP 서버(아리시스 PBX)에 자신의 네트워크 상의 주소를 등록하는 데 사용됩니다. 이 과정을 통해 아리시스 PBX 음성모듈(AI VoG)에 도달하기 위한 정보를 알게 됩니다.
  • 목적: 음성 모듈의 등록을 통해 아리시스 PBX는 어떤 네트워크 주소로 통화를 라우팅해야 하는지 알 수 있게 됩니다. 이는 통화 설정과 관리를 위한 기본 단계입니다.

2. INVITE

  • 과정: INVITE 메시지는 실제 통화를 시작하기 위해 사용됩니다. 아리시스 PBX 음성 모듈(AI VoG)로부터 INVITE 요청을 받고, 이를 기반으로 세션을 설정합니다. 이 메시지에는 통화에 필요한 세션 설명 정보(SDP - Session Description Protocol)가 포함되어, 통화 형식, 사용 가능한 코덱, 통신에 사용될 미디어 포트 등이 명시됩니다.
  • 목적: INVITE 메시지의 주된 목적은 통화 세션을 설정하고, 통화에 참여할 양쪽 당사자 간의 미디어 스트림 협상을 수행하는 것입니다.

3. BYE

  • 과정: BYE 메시지는 활성화된 통화 세션을 종료하기 위해 사용됩니다. 통화 참여자 중 한 명이 통화를 종료하고자 할 때, 해당 참여자의 SIP 클라이언트는 BYE 메시지를 상대방에게 전송하여 세션 종료를 알립니다. 단, 통화 세션 종료 시 BYE 메시지를 전송하는 SIP 클라이언트는 음성 모듈을 포함하여 SIP 프로토콜을 사용하는 모든 장치나 애플리케이션을 지칭합니다.
  • 목적: BYE 메시지는 통화 세션을 정상적으로 종료하고, 사용된 리소스를 해제하는 과정에서 중요한 역할을 합니다. 이를 통해 통화가 성공적으로 종료되었음을 양쪽 당사자가 알 수 있으며, 시스템은 다음 통화 준비를 위해 리소스를 재할당할 수 있습니다.

 

6. AI VoG(음성모듈) -> TTS(Text-to-Speech), STT(Speech-to-Text)

  • 설명: AI VoG에 전송된 음성 데이터에 AI 기술을 적용하는 단계입니다. TTS는 텍스트 메시지를 음성으로 변환하고, STT는 사용자의 음성을 텍스트로 변환합니다. 
  • 목적: STT 기술을 사용함으로써, 사용자의 음성 데이터를 텍스트 형태로 변환합니다. 이는 시스템이 사용자의 요청을 텍스트 기반으로 분석하고 처리할 수 있게 하여, 자동화된 서비스 제공이 가능해집니다. 예를 들어, 사용자의 음성 명령을 텍스트로 변환하여 분석하고, 사용자의 질문에 적절한 답변을 생성해주는 모델이 답변을 반환합니다.

 

7. STT(Speech-to-Text) 변환 적용 후 -> Socket

과정: 데이터 패키징. 변환된 텍스트 데이터는 Socket 프로토콜을 사용하여 전송할 수 있는 형태로 패키징됩니다. 이 단계에서는 데이터 포맷팅, 압축, 필요한 경우 암호화 등이 이루어집니다.

목적: 이 과정은 STT 기술을 통해 변환된 텍스트 데이터를 채팅봇과 같은 AI 서비스로 신속하고 안정적으로 전달하는 중요한 역할을 하며, 이를 통해 고객 서비스의 효율성과 반응성을 향상시킵니다.

 

 

*용어

Socket: Socket은 양방향, 실시간, 비동기 통신을 지원하여, 효율적인 데이터 전송이 가능합니다. Socket의 양방향 통신 능력실시간 데이터 처리를 가능하게 하여 사용자의 음성 입력에 대한 즉각적인 피드백 제공이 가능합니다. 즉, 데이터를 수신한 서비스(채팅봇)는 이를 처리하고 필요한 경우 응답을 생성하여 Socket을 통해 다시 전송하여 사용자 요청에 대한 실시간 응답 생성을 가능하게 합니다.

 

단, STT(Speech-to-Text) 기술을 적용하지 않고도 Socket을 통해 데이터를 전송할 수 있습니다. Socket 프로토콜 자체의 데이터 전송 기능과는 독립적입니다.

 

 

8. Socket > AI 서비스 (채팅봇)

1. HTTP를 통한 AI 서비스와의 통신

  • 과정: 초기화 과정에서 Socket 클라이언트는 HTTP 프로토콜을 사용하여 AI 서비스 서버에 요청을 전송합니다. 이 단계는 Socket 통신을 시작하기 전에 필요한 사용자 인증, 세션 설정, 통신을 위한 초기 파라미터 설정 등을 수행합니다.
  • 목적: 이 과정의 목적은 사용자 인증을 보장하고, 통신 세션을 설정하여, Socket을 통한 후속 통신이 원활하게 진행될 수 있는 기반을 마련하는 것입니다.

2. Request_response를 통한 AI 서비스와의 통신

  • 과정: Socket 클라이언트는 Request_response을 사용하여 AI 서비스에 요청을 전송합니다. 이 패턴에서 클라이언트는 단일 요청을 보내고, 서버(채팅 봇)는 그 요청에 대한 단일 응답을 반환합니다.
  • 목적: Request_response의 목적은 요청-응답 상호작용을 위한 것입니다. 이는 사용자 질문에 대한 답변 제공이나 특정 작업의 실행 결과를 반환하는 데 사용합니다.

3. Request_Stream을 통한 AI 서비스로부터 데이터 스트림 전송받기

  • 과정: Request_Stream에서는 Socket 클라이언트가 AI 서비스에 단일 요청을 보내고, AI 서비스는 이에 대해 여러 개의 응답을 스트림 형태로 전송합니다. 이 방식은 지속적인 데이터 흐름이 필요한 상황에 적합한데, 실시간으로 업데이트되는 정보 또는 연속적인 이벤트 스트림을 클라이언트에 전송하는 경우가 있습니다.
  • 목적: Request_Stream의 목적은 클라이언트가 연속적인 데이터 흐름을 받을 수 있게 하여, 동적인 정보를 실시간으로 처리하고 반응할 수 있도록 합니다. 이는 사용자에게 지속적인 피드백이나 업데이트를 제공하는 상황에서 유용합니다.

9. AI 서비스 (채팅봇) -> 고객

이제 AI 서비스 (채팅봇)에서 고객의 음성에 대한 적절한 답변을 생성했다면, 지금까지의 과정을 반대로 거쳐서 고객에게 전달합니다. 이 과정을 통해 실시간으로 효율적으로 고객의 요구를 충족시킬 수 있습니다.


마치며...

AICC에 대해 공부하면서 세부 프로세스를 정리했는데, VoIP 인프라부터 AI 시스템의 아키텍처를 자세하게 그린 구성도가 없어서 우선 아리시스의 구성도를 활용해 설명을 진행하면서 세부적인 설명을 추가했습니다. 위의 과정은 인바운드(고객이 기업에 전화)를 예시로 들었고, 아웃바운드(기업이 고객에게 전화)에 대해선 다음에 작성해보도록 하겠습니다.