2009/1/9 Bernhard Suttner <bernhard.sutt...@comdasys.com>:
> Step 3
> SIP Client send a ReINVITE with "a=inactive"
> B responses with 488 (Not acceptable here)
> SIP Client ACK's
>
> Step 4
> B send a ReINVITE with "a=sendrecv"
> SIP Client accepts this with "a=inactive" <-- WHY???
> B ACK's
>
> In my opinion the mistake is in Step 3. The SIP Client want to set the
> session to a=inactive but the Server does reject this. Now the SIP Stack
> should re-set the state and should not save the "a=inactive" which it
> will sadly use in Step 4. To fix that "by hand" I have added a short
> section in the SIP Client in the "nua_r_invite":
>
> nua_set_hparams(nh, SOATAG_HOLD(""), TAG_END());
>
> What do you think? Is that a bug in the SIP Stack or is that a task
> which has to be done in the SIP Client (and not in the stack)?

Your app  give NUA or SOA a desired target state for the media ("user
sdp" plus some tags in nua_invite()) which is tries to reach. When you
get 488, there is two possible approaches: stack reverts back to
previous target or the stack changes the target. Currently, stack does
not keep track of the previous target but flushes it immediately when
the nua_invite() is called. While it is perfectly possible to track
the previous state, that would require much more work.

I'd go for the option B, let the SIP client modify the target again
like you already do w/ nua_set_hparams().

-- 
Pekka.Pessi mail at nokia.com

------------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It is the best place to buy or sell services for
just about anything Open Source.
http://p.sf.net/sfu/Xq1LFB
_______________________________________________
Sofia-sip-devel mailing list
Sofia-sip-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sofia-sip-devel

Reply via email to