์ด ํ์ด์ง์์๋ SBC๋ฅผ ๊ตฌ์ฑํ๊ณ ๊ฒ์ฆํ๋ ๊ณผ์ ์ ์๋ดํฉ๋๋ค.
์ง์๋๋ ๊ณต๊ธ์ ์ฒด ๋ฐ ํ์จ์ด
๊ตฌ์ฑ์ ์์ํ๊ธฐ ์ ์ ์ง์๋๋ SBC ๊ณต๊ธ์ ์ฒด ๋๋ ๋ชจ๋ธ ๋ฐ ํ์จ์ด ๋ฒ์ ํ๋ฅผ ๊ฒํ ํ์ธ์.
์ง์๋๋ SBC ์ ํธ ๋ฐ ๋ฏธ๋์ด ํ๋กํ ์ฝ
์ง์๋๋ ์ ํธ ๋ฐ ๋ฏธ๋์ด ํ๋กํ ์ฝ์ SBC ์ ํธ ๋ฐ ๋ฏธ๋์ด ํ๋กํ ์ฝ ๋ฌธ์์ ๋ช
์๋์ด ์์ต๋๋ค.
AES_CM_128_HMAC_SHA1_80
๋ง ์ง์๋๋ SRTP ์ํธํ ์ค์ํธ์
๋๋ค.
SBC์ TLS ๊ตฌ์ฑ
์น์ธ๋ ์ธ์ฆ ๊ธฐ๊ด ๊ณต๊ธ์ ์ฒด์์ SBC์ฉ TLS ์ธ์ฆ์๋ฅผ ์์ฒญํฉ๋๋ค. ์์ผ๋ ์นด๋ ์ธ์ฆ์๋ ์ง์๋์ง ์์ต๋๋ค.
TLS ์ธ์ฆ์ ๋ด์์ ์ผ๋ฐ ์ด๋ฆ (CN) ์์ฑ ๋๋ ์ฃผ์ฒด ๋์ฒด ์ด๋ฆ (SAN) ์์ฑ์ SBC์ ์ ๊ทํ๋ ๋๋ฉ์ธ ์ด๋ฆ (FQDN)์ ํ์ํด์ผ ํฉ๋๋ค. ์ฌ๋ฌ SBC์ ๋ํด ํ๋์ TLS ์ธ์ฆ์๋ฅผ ์์ฒญํ๋ ๊ฒฝ์ฐ ์ธ์ฆ์์ SAN์ ๋ชจ๋ SBC FQDN์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
์น์ธ๋ ์ธ์ฆ ๊ธฐ๊ด ๊ณต๊ธ์ ์ฒด
- DigiCert
- Entrust DataCard
- GlobalSign
- GoDaddy
- Sectigo (์ด์ ๋ช ์นญ: Comodo)
SBC TLS ๊ตฌ์ฑ
- ์์ฒญ๋ TLS ์ธ์ฆ์์ ์ฐ๊ฒฐ๋ ๋ฃจํธ CA ์ธ์ฆ์๋ฅผ SBC์ ์ ๋ขฐ ์ฒด์ธ์ ์ค์นํฉ๋๋ค.
Google์ ์ ๋ขฐํ ์ ์๋ ๋ฃจํธ CA๋ฅผ SBC์ ์ ๋ขฐ ์ฒด์ธ์ ์ค์นํฉ๋๋ค. Google ๋ฃจํธ ์ธ์ฆ์๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Google์ ์ ๋ขฐํ ์ ์๋ ๋ฃจํธ CA๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค.
- GTS Root R1 (GTSR1)์ ์ถ์ถํฉ๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ GlobalSign ๋ฃจํธ CA ์ธ์ฆ์๋ฅผ ์ถ์ถํฉ๋๋ค.
- SBC ํค ์ ์ฅ์์ ๋ฃจํธ ์ธ์ฆ์๋ฅผ ์ ๋ก๋ํฉ๋๋ค.
- SBC์ ๋ํ ์ํธ ์ธ์ฆ์ ์ฌ์ฉ ์ค์ ํฉ๋๋ค.
์ง์๋๋ TLS ๋ฒ์ ๋ฐ ์ํธํ ์ค์ํธ ๊ตฌ์ฑ TLS ๋ฒ์ 1.2 ์ด์์ด ์ง์๋ฉ๋๋ค. ์ง์๋๋ ์ํธํ ์ค์ํธ:
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
HTLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
GTP์์ SIP ํธ๋ ํฌ ๋ง๋ค๊ธฐ
- ํตํฉ ์ฝ์๋ก ์ด๋ํ์ฌ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
- SIP ํธ๋ ํฌ ํญ์ผ๋ก ์ด๋ํ ๋ค์ SIP ํธ๋ ํฌ ์ถ๊ฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๋ชจ๋ ํ์ ์ ๋ ฅ๋์ ์์ฑํฉ๋๋ค.
- ๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ํ ํต์ ์ฐ๊ฒฐ ๋คํธ์ํฌ ์๊ตฌ์ฌํญ ๊ฒํ
๋คํธ์ํฌ ๋ฐ ์ฐ๊ฒฐ ์๊ตฌ์ฌํญ ํ๋ ๊ฐ๋ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ํ์ด์ง๋ฅผ ์ฐธ๊ณ ํ์ธ์.
GTP์ ๋ํ SIP ์ฐ๊ฒฐ์ ์ํด SBC ๊ตฌ์ฑ
์ง์๋๊ณ ์ธ์ฆ๋ SBC ๊ณต๊ธ์ ์ฒด ์ค ํ๋๋ฅผ ์ฌ์ฉํ์ฌ SBC๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ํด๋น ๊ณต๊ธ์ ์ฒด์ ๊ดํ ์์ธํ ์๋ด๋ SBC ์ ํธ ๋ฐ ๋ฏธ๋์ด ํ๋กํ ์ฝ ๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์.
SIP ํ๋กํ์ด ํน์ ์ง์ญํ๋ GTP์ SIP ์๋ฒ (์: us.telephony.goog
)๋ฅผ ํ๊ฒํ
ํ๋ TCP ํฌํธ 5672๋ฅผ ํตํด TLS๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑ๋์ด ์๋์ง ํ์ธํฉ๋๋ค. SIP ๋ฐ SIPREC ํตํฉ ๊ตฌ์ฑ:
- Dialogflow ๊ฐ์ ์์ด์ ํธ์ ์ฐ๊ฒฐํ๋ ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ SBC์์ SIP ํตํฉ์ ๊ตฌ์ฑํฉ๋๋ค.
- ๋ํํ AI Agent Assist ๋๋ Insights ์ฌ์ฉ ์ฌ๋ก์ ๊ฒฝ์ฐ ๋ฏธ๋์ด ์คํธ๋ฆผ ์ฌ๋ณธ์ด GTP๋ก ํฌํฌ๋๋๋ก SBC์์ SIPREC ํตํฉ์ ๊ตฌ์ฑํฉ๋๋ค. ํน์ SBC ๊ณต๊ธ์ ์ฒด์ ํจ๊ป SIPREC๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณ๋์ ๋ผ์ด์ ์ค ๊ธฐ๋ฅ์ผ ์ ์์ผ๋ฉฐ, ์ด ๊ฒฝ์ฐ ๊ตฌ๋งคํ๊ณ ํ์ฑํํด์ผ ํฉ๋๋ค.
SIP OPTIONS ํ์ ์ฌ์ฉํ SIP ์ฐ๊ฒฐ ํ ์คํธ
๊ณ ๊ฐ SBC์์ GTP๋ก SIP OPTIONS ํ ํ
์คํธ๋ฅผ ์คํํ์ฌ SBC๊ฐ GTP์์ SIP 200 OK
๋ฅผ ์์ ํ๋์ง ํ์ธํฉ๋๋ค. SIP 200 OK
๊ฐ ์์ ๋์ง ์์ผ๋ฉด SIP ๋ฌธ์ ํด๊ฒฐ ์น์
์ ์ฐธ๊ณ ํ์ฌ ์์ธํ ๋ด์ฉ์ ํ์ธํ์ธ์.
๋ํํ AI ๋ํ์ SIP ํค๋ ๊ตฌ์ฑ
- SIP INVITE ์ค์ SIP ํค๋ (
Call-Info
๋๋ UUI)๋ฅผ ๊ตฌ์ฑํ์ฌ ๋ํํ AI์ ๋ํ ID๋ฅผ ์ค์ ํฉ๋๋ค. Call-Info
SIP ํค๋๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ด ์ง์๋์ง ์๋ ๊ฒฝ์ฐ User-to-User-Info (UUI) SIP ํค๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ SIP ํค๋๋ฅผ ์ฐธ๊ณ ํ์ธ์.- (์ ํ์ฌํญ) ์ฐธ์ฌ์ ์ญํ (
END_USER
๋ฐHUMAN_AGENT
)๊ณผ ๋ฏธ๋์ด ์คํธ๋ฆผ ์์๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฐธ์ฌ์ ์ญํ ์น์ ์ ์ฐธ๊ณ ํ์ธ์. - (์ ํ์ฌํญ) ํน์ ๋ํ์ ์ถ๊ฐ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ๋ ค๋ฉด
MatchIntentRequest
API๋ฅผ ํธ์ถํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ถ๊ฐ ๋งค๊ฐ๋ณ์ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
ํ ์คํธ ํตํ ์ํ
ํ
์คํธ ํตํ๋ฅผ ์งํํ๊ณ SIP์ ๋ฏธ๋์ด๊ฐ GTP SIP ์๋ฒ (74.125.88.128/25
) ๋ฐ RTP ๋ฏธ๋์ด ์๋ฒ (74.125.39.0/24
)๋ก ์ด๋ํ๋์ง ํ์ธํฉ๋๋ค. SIP 200 OK
์๋ต ๋ฉ์์ง๊ฐ ํ์๋์ด์ผ ํฉ๋๋ค.
SIP 400's
์ค๋ฅ ์๋ต ์ฝ๋๊ฐ ์์ ๋๋ฉด GTP๊ฐ SIP ํค๋ ๋๋ SIP ๋ฏธ๋์ด SDP ๊ตฌ์ฑ์ ๊ฑฐ๋ถํ ๊ฒ์ผ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฌธ์ ํด๊ฒฐ ์น์
์ ์ฐธ๊ณ ํ์ธ์. SIP 600's
์ค๋ฅ ์๋ต ์ฝ๋๊ฐ ํ์๋๋ฉด ํ ๋น๋ ๊ด๋ จ ๋ฌธ์ ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
Dialogflow ๋ํ ๊ธฐ๋ก ๊ฒํ
์ด ์น์ ์ Dialogflow ๊ฐ์ ์์ด์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋ฉ๋๋ค.
์ด์ ํ
์คํธ ํธ์ถ์์ SIP 200 OK
์๋ต์ด ๋ฐํ๋ ๊ฒฝ์ฐ Conversational AI Google Cloud ํ๋ก์ ํธ์ Dialogflow ๋ํ ๊ธฐ๋ก์ ํ์ธํ์ฌ ์ ๋ํ๊ฐ ๋ก๊น
๋๊ณ ํธ์ถ ์ ๋ณด ํค๋์ ์ง์ ๋ ๋ํ ID๊ฐ ํฌํจ๋๋์ง ํ์ธํฉ๋๋ค.
(์ ํ์ฌํญ) Google Cloud ๋ก๊ทธ ํ์๊ธฐ ๊ฒํ
๋ํํ AI Google Cloud ํ๋ก์ ํธ์ ๋ก๊ทธ ํ์๊ธฐ 'incoming_call' ๋ก๊ทธ์์ Dialogflow ํ๋์ ํ์ธํฉ๋๋ค.
๋ค์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ Dialogflow์ ์์ ์ ํ ํ๋์ ๊ฒํ ํ ๋ค์ '์ฟผ๋ฆฌ ์คํ'์ ํด๋ฆญํฉ๋๋ค.
logName="projects/$PROJECT_ID/logs/dialogflow.googleapis.com%2Fincoming_call
$PROJECT_ID
= ์ ํ ํต์ ํตํฉ์ ๊ตฌ์ฑํ๋ ๋ฐ ์ฌ์ฉํ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.๋๋ ๋ก๊ทธ ํ์๊ธฐ์ ๋ชจ๋ ๋ก๊ทธ ์ด๋ฆ ๋๋กญ๋ค์ด ์์๋ก ์ด๋ํ์ฌ ๋ก๊ทธ ์ด๋ฆ
incoming_call
๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ด ํ์ผ์ ์ ํํ๊ณ ์ ์ฉ์ ํด๋ฆญํฉ๋๋ค.Dialogflow๊ฐGoogle Cloud ํ๋ก์ ํธ์ ๋ก๊ทธ ํ์๊ธฐ์์ ๋ํ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ง๋ค์๋์ง ํ์ธํฉ๋๋ค (์ด ๋จ๊ณ๋ ๊ฐ์ฌ ๋ก๊น ์ด Dialogflow API์ ์ฌ์ฉ ์ค์ ๋ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๋จ). ๋ค์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ํน์ Google Cloud ํ๋ก์ ํธ ๋ฐ ๋ํ ํ๋กํ์ Dialogflow ๋ํ ์์ฑ ์ด๋ฒคํธ๋ฅผ ๊ฒํ ํ ํ ์ฟผ๋ฆฌ ์คํ์ ํด๋ฆญํฉ๋๋ค.
protoPayload.serviceName=~"dialogflow" protoPayload.methodName=~"google.cloud.dialogflow.*.Conversations.CreateConversation" protoPayload.request.conversation.conversationProfile="projects/$PROJECT_ID/locations/global/conversationProfiles/$CONVERSATION_PROFILE_ID"
$PROJECT_ID
= ํตํฉ์ ๊ตฌ์ฑํ ๋ ์ ์๋ Google Cloud ํ๋ก์ ํธ ID์ ๋๋ค.$CONVERSATION_PROFILE_ID
= ํตํฉ์ ๊ตฌ์ฑํ ๋ ๋ง๋ ๋ํ ํ๋กํ ID์ ๋๋ค.