@startuml
component ERA as " " {
port sip_int as "SIP (UDP 5060)"
port sip_ext as "SIP (UDP 5080)"
port rtp as "RTP (UDP 10000-20000)"
portin tftp as "TFTP (UDP 69)"
portin pnp as "PNP"
portin http as "HTTP(s) (TCP 80,443)"
portin websocket as "WS(s) (TCP 80,443)"
component facades as "Edge services" {
component sg
component esg
component ws
component ap
component mg
component bgmg
}
portout o_http as "HTTP(S)"
portout o_smtp as "SMTP"
portout o_imap as "IMAP"
portout o_pop3 as "POP3"
portout o_odbc as "ODBC"
portout o_postgres as "PG"
portout o_kafka as "KAFKA"
portout o_clickhouse as "CH"
portout o_s3 as "S3"
portout o_ldap as "LDAP"
component internals #darkgray {
component script {
portout s_imap as "IMAP"
portout s_pop3 as "POP3"
portout s_smtp as "SMTP"
portout s_odbc as "ODBC"
portout s_ldap as "LDAP"
portout s_s3 as "S3"
portout s_http as "HTTP"
component ivr
component svc
}
component email
component im
component recmover
component dms
component mdc
}
facades .[#white]. internals
sip_int <--> sg
sip_ext <--> esg
rtp <--> mg
rtp <--> bgmg
tftp --> ap
pnp --> ap
http --> ws
websocket --> ws
'' note left of script : asdf
email ---> o_imap
email ---> o_smtp
email ---> o_pop3
im ---> o_http
s_imap ---> o_imap
s_smtp ---> o_smtp
s_pop3 ---> o_pop3
s_odbc ---> o_odbc
s_ldap ---> o_ldap
s_http ---> o_http
s_s3 ---> o_s3
recmover ---> o_s3
mdc ---> o_postgres
dms ---> o_postgres
dms ---> o_kafka
dms ---> o_clickhouse
internals ---> o_kafka
'' sg --> b2b
'' esg --> b2b
'' b2b .. mg
'' esg .. bgmg
'' sg .. bgmg
'' ws .. internals
}
@enduml