@startuml
'title SIP INVITE Sending Flow

skinparam monochrome true
autonumber "F00 "
hide footbox
skinparam BoxPadding 10

'skinparam headerFontSize 14
'skinparam headerFontColor red
'header SIP-0

box "caller"
participant "INVITE client transaction" as UAC_ITC << UAC >>
end box

box "proxy"
participant "INVITE server transaction" as Proxy_ITS << Server >>
participant "INVITE client transaction" as Proxy_ITC << Server >>
end box

box "callee"
participant "INVITE server transaction" as UAS_ITS << UAS >>
end box

'hnote over UAC_ITC: None
activate UAC_ITC
hnote over UAC_ITC: Calling
UAC_ITC -> Proxy_ITS: INVITE
activate Proxy_ITS
hnote over Proxy_ITS: Proceeding
UAC_ITC <- Proxy_ITS: 100 Trying
hnote over UAC_ITC: Proceeding
'hnote over Proxy_ITC: None
Proxy_ITS -> Proxy_ITC: INVITE
activate Proxy_ITC
hnote over Proxy_ITC: Calling
Proxy_ITC -> UAS_ITS: INVITE
activate UAS_ITS
hnote over UAS_ITS: Proceeding
Proxy_ITC <- UAS_ITS: 180 Ringing
note right of UAS_ITS: Ringing
hnote over Proxy_ITC: Proceeding
Proxy_ITS <- Proxy_ITC: 180 Ringing
UAC_ITC <- Proxy_ITS: 180 Ringing
note left of UAC_ITC: Ringing
== wait for HUMAN input ==

skinparam footerFontSize 14
footer INVITE request is delivered hop-by-hop

@enduml