SDP Negotiation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 12, 2008 at 11:59 AM, Sasa Coh <sasacoh at gmail.com> wrote:
> Hello Benny!
>
> I have question regarding SDP negotiation process. We managed to establish
> signaling connection with the other party but there was no (correct) voice
> path established.
>
> Here is how it goes:
>  - pjsua makes call through Call Agent: INVITE with SDP (offer).
>  - Call Agent responds with 180 Ringing with SDP (answer). Here SDP points
> to the Media Server that provides "Ring Back" tone to the caller.
>  - When called party accepts the call, Call Agent sends 200 OK with yet
> another SDP (offer/answer?) points to the called party.
>  - After that there is no voice path? to be exact, voice path is still
> established to the media server providing tones but not to the called party
> as directed in the latter SDP.
>
> The same situation works with other clients (X-Lite).
>
> Does pjsip support this kind of SDP negotiation? Should we handle some
> callback we are not aware of?
>

I think this is quite a complicated scenario, and which one it is
depends on whether the server changes the To tag between 18x and 2xx
response. If it does change, then this is a similar scenario to
forking with early media, which we don't handle at PJSUA-LIB level (we
do have basic forking handler at PJSIP level, but I don't implement
forking at PJSUA-LIB level due to complexities in handling the media).

If the To-tag doesn't change, then it further depends on whether the
SIP transport is reliable or not. If the transport is not reliable, it
means server is sending "provisional" SDP in 18x response and the
"final" SDP in the 2xx response which the UAC should use. This, albeit
hairy is a valid SIP scenario. But we don't seem to handle this
either. If the transport is reliable, then the SDP in 18x is the final
one and UAC must ignore the SDP in 2xx since it belongs to the same
transaction, and if this is the case, PJSIP is doing the right thing.

So there you go. :)

Cheers
 Benny



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux