Subject: [sipcore] Modifying early media authorization by an UAC using P-Early-Media header

From: Dinoop <[email-masked]>
Date: Thu, 9 Aug 2018 17:15:03 +0530

Hello,

RFC 5009 mainly talks about early media authorization  by UAS toward UAC
only. It is not clear how to handle the ealry media authorization request
coming from UAC. Currently we encountered an issue on our B2BUA
implementation.

As per the implementation requirement by the client, B2BUA has to repeat
the previous P-Early-Media value received from UAS towards UAC in all
supported messages (eg 18x, Update & PRACK ) messages. For an example if
UAS has sent P-Early-Media :senonly on 1st 18x, and if subsequent 18x from
UAS doesn't contain P-Early-Media header, then B2BUA has to remember the
P-Early-Media received on 18x and to provide it to UAC. This fine and works
well.

The issue started occurring network when B2BUA started sending
P-Early-Media in PRACk request towards UAS. For an example,

   UAC                        B2BUA                    UAS
    |        1:INVITE(SDP)    |                        |
    +----------------------->|                        |
    |       2:100[INV]       |                        |
    |<-----------------------+                        |
    |                        |     3:INVITE(SDP)      |
    |                        +----------------------->|
    |                        |       4:100[INV]       |
    |                        |<-----------------------+
    |                        |   5:180[INVITE](SDP)   |
    |                        |<-----------------------+
    |    6:180[INVITE](SDP)  |P-Early-Media=sendonly  |
    |<-----------------------|                        |
    |P-Early-Media=sendonly  |                        |
    |                        |   7:183[INVITE]        |
    |                        |<-----------------------+
    |    8:180[INVITE](SDP)  |                          |
    |<-----------------------|                        |
    | P-Early-Media=sendonly |                        |
    |                        |                        |
    |    9:PRACK                 |                          |
    +----------------------->|   10:PRACK              |
    |                        |----------------------->|
    |                        | P-Early-Media=sendonly |

Here you can see the message 10 B2BUA repeated the P-Early-Media value of
that dialog towards UAS and caused issues at UAS.

The question is
1) How the P-Early-Media value sent by UAC is interpreted?
2) Can you please explain a P-Early-Media value of sendrecv, sendonly ,
recvonly & inactive by UAC has to be interpreted by UAS.
3) Can we treat P-Early-Media sent by UAS and UAC independently or is those
are relative?
4) If UAS sent P-Early-Media sendonly on 18x for enabling backward media
and if B2BUA has to include P-Early-Media (due to some business logic) in
PRACK request, what has to be the value (sendonly or recvonly)?. The value
must not affect backward media flow.

-- 
Thanks,
Dinoop p