replace in early dialog

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

 



Hi Benny
I have asked you this question before, and there is no response from you.
I want to follow this issue again.
I excerpt from the http://www.pjsip.org/pjsip/docs/html/group__PJSIP__REPLACES.htm and RFC3891.
-------------------------------------------------------------------------------------------------
The Replaces header contains information used to match an existing SIP dialog (call-id, to-tag, and from-tag). 
Upon receiving an INVITE with a Replaces header, the User Agent (UA) attempts to match this information with a confirmed or early dialog.
--------------------------------------------------------------------------------------------------
It seems that PJSIP stack supports "early transfer", but it does not support.
The early transfer target will fail.
I check the function pjsip_replaces_verify_request() in sip_replace.c, there is a comment as below:
/* If "early-only" flag is present, check that the invite session
* has not been confirmed yet. If the session has been confirmed, 
* return 486 "Busy Here" response.
*/
if (inv->state <= PJSIP_INV_STATE_EARLY && inv->role != PJSIP_ROLE_UAC) {
code = PJSIP_SC_CALL_TSX_DOES_NOT_EXIST;
warn_text = "Found early INVITE session but not initiated by this UA";
goto on_return;
? }
? 
If I modify the condition as "if(inv->state < PJSIP_INV_STATE_EARLY && inv->role != PJSIP_ROLE_UAC)"
It will cause system assert, and the log is as below.
../src/pjsip-ua/sip_inv.c:1876: pjsip_inv_answer: Assertion `inv->invite_tsx' failed.
?
Do you have plan to enhance it, or how or where can I modify the code let pjsip can accept the early state call replace?
?
Best Regards
DaCheng


      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20100224/b39d1ba9/attachment.html>


[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