<p>Just to avoid any confusion, the doc should be updated with a diagram:</p>
<p>For a successful call we have:</p>
<pre><code>UAC proxy UAS presence server
|--INVITE->| | |
|<-100-----|--INVITE->| |
| |--PUBLISH(trying)----->|
| |<-100-----| |
| | | |
| |<-18x-----| |
|<-18x-----|--PUBLISH(early)------>|
| | | |
| |<-200-----| |
|<-200-----|--PUBLISH(confirmed)-->|
|--ACK---->| | |
| |--ACK---->| |
| | | |
</code></pre>
<p>If we choose to avoid the "trying" state, then "early" will be triggered on the first 18x provisional reply.<br>
Something like this:</p>
<pre><code>UAC proxy UAS presence server
|--INVITE->| | |
|<-100-----|--INVITE->| |
| |<-100-----| |
| | | |
| |<-18x-----| |
|<-18x-----|--PUBLISH(early)------>|
| | | |
| |<-200-----| |
|<-200-----|--PUBLISH(confirmed)-->|
|--ACK---->| | |
| |--ACK---->| |
| | | |
</code></pre>
<p>The issue is with rejected calls. If we don't have a 18x provisional reply, then we have this:</p>
<pre><code>UAC proxy UAS presence server
|--INVITE->| | |
|<-100-----|--INVITE->| |
| |--PUBLISH(trying)----->|
| |<-100-----| |
| | | |
| |<-456xx---| |
| |--PUBLISH(terminated)->|
|<-456xx---|--ACK---->| |
|--ACK---->| | |
</code></pre>
<p>If we don't have a 18x provisional reply and we avoid the "trying" state, then we don't have any PUBLISH at all:</p>
<pre><code>UAC proxy UAS presence server
|--INVITE->| | |
|<-100-----|--INVITE->| |
| |<-100-----| |
| | | |
| |<-456xx---| |
|<-456xx---|--ACK---->| |
|--ACK---->| | |
</code></pre>
<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href='https://github.com/OpenSIPS/opensips/issues/142#issuecomment-30758792'>view it on GitHub</a>.<img src='https://github.com/notifications/beacon/5479561__eyJzY29wZSI6Ik5ld3NpZXM6QmVhY29uIiwiZXhwaXJlcyI6MTcwMjgyNjE2MywiZGF0YSI6eyJpZCI6MjExMDQ2ODh9fQ==--805499ac1ac7d2346ea2cbd91665af14864e0c79.gif' height='1' width='1'></p>