CANCEL pjsua bug?

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

 



media stream activity detection. How do you do this?
regards mark






________________________________
Von: Gang Liu <gangban..lau at gmail.com>
An: pjsip list <pjsip at lists.pjsip.org>
Gesendet: Freitag, den 25. September 2009, 04:57:04 Uhr
Betreff: Re: [pjsip] CANCEL pjsua bug?

Yes, you could go this way.

At my side, I prefer let it be, and 200 OK timer or media stream activity detection will clear such calls.  

regards,
Gang


On Thu, Sep 24, 2009 at 11:37 PM, M.S. <hamstiede at yahoo.de> wrote:

>Hi Gang,
>my work around (in application layer) looks like this:
>
>void CSIP_Wrapper::on_call_tsx_state(pjsua_call_id call_id, pjsip_transaction *tsx, pjsip_event *e)
>{
>   /* PJSIP Bugfix: early CANCEL for incomming calls doesn' produce call hangup
>>    i saw it  in call_info.state: PJSIP_INV_STATE_CONNECTING and  PJSIP_INV_STATE_INCOMING */
>                     
>        if (tsx->method.id==PJSIP_CANCEL_METHOD)
>>        {       if (tsx->role==PJSIP_ROLE_UAS)
> 
>                {   pjsua_call_hangup(call_id,0, NULL, NULL);
>        }       }    
>}
>
>this fix is working fine.
>
>regards 
>
> Mark
>
>
>
________________________________
Von: Gang Liu <gangban.lau at gmail.com>
>An: pjsip list <pjsip at lists.pjsip.org>
>Gesendet: Donnerstag, den 24. September 2009, 10:28:25 Uhr
>Betreff: Re: [pjsip] CANCEL pjsua bug?
>
>inline.
>
>
>On Thu, Sep 17, 2009 at 7:51 PM, M.S. <hamstiede at yahoo.de> wrote:
>
>>>
>>
>>
>>
>>
>>>>
________________________________
Von: Gang Liu <gangban.lau at gmail.com>
>>An: pjsip list <pjsip at lists.pjsip.org>
>>Gesendet: Donnerstag, den 17. September 2009, 10:29:36 Uhr
>>Betreff: Re: [pjsip] CANCEL pjsua bug?
>>
>>in your log message, inv transaction was sent 200 OK and it was complete.
>>>>
>> VOIP2009/09/16
>> 12:05:19.904                  
>>    -HDL-  cSipWrapper.cxx(1140)     dlg0x2b1894  Sending Response msg
>> 200/INVITE/cseq=5448 (tdta0x2b6650)
>>
>>> yes, i think this is the race condition, pjsua answered the invite, and  the opposite sent the CANCEL request.
>>
>>
>You are right. 
>>
> 
>>>
>>>> VOIP2009/09/16 12:05:19.968                  
>>    -HDL-  cSipWrapper.cxx(1140)     dlg0x2b1894  Transaction tsx0x2b4c7c state changed to Completed
>>
>>Do you see a SIP UA will drop the call when it recv CANCEL after call connected?
>>
>>> No of cause, the call will not droped. I received no  PJSIP_INV_STATE_DISCONNECTED in the pjsua callback on_call_state(...)
>>
>>
>
>It is because UAC sent ACK after CANCEL. So the call was connected. If no ACK incoming,  pjsua would drop the call after 200 OK retransmission timeout.
>
> VOIP2009/09/16 12:05:20.289    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2b4c7c  Incoming Request msg
> ACK/cseq=5448 (rdata0x41a23854) in state Completed 
>
>I saw another race condition before which may cause pjsip-ua api (0.9.0 release) deadlock.
>
>UAC                    UAS
>         -- INV -->
>         <-- 100 --
>>
>         <-- 4XX --
>         --- ACK -->
>         -- CANCEL -->
>
>ACK and CANCEL came in at the same millisecond, but ACK first. If multi threads were polling pjsip endpoint events, deadlock maybe happen.. But I couldn't find a solution to fix this issue.
>
>regards,
>Gang
>
>
>>>
>>>>
>>regards mark
>>
>>reagrds,
>>Gang
>>
>>
>>
>>
>>On Thu, Sep 17, 2009 at 3:40 PM, M.S. <hamstiede at yahoo.de> wrote:
>>
>>>>>
>>>answered from which side? the opposite sent a CANCEL. My application answered every incomming call, but this is
>>>>>>the race condition. I think the sip state machine must transfer the call to a disconnecting state.
>>>
>>>regards 
>>>
>>>   Mark 
>>>
>>>
>>>
>>>>>>
>>>
>>>
>>>
________________________________
Von: Gang Liu <gangban.lau at gmail.com>
>>>An: pjsip list <pjsip at lists.pjsip.org>
>>>Gesendet: Donnerstag, den 17. September 2009, 04:52:06 Uhr
>>>Betreff: Re: [pjsip] CANCEL pjsua bug?
>>>
>>>It seems your call was answered.
>>>
>>>regards,
>>>Gang
>>>
>>>
>>>On Wed, Sep 16, 2009 at 10:38 PM, M.S. <hamstiede at yahoo.de> wrote:
>>>
>>>>>>>
>>>>
>>>>Hi,
>>>>>>>>if i made testcalls with very short incomming calls  (<1sec)  it happens, that incomming CANCEL 
>>>>messages wasn't handled by stack. Here is the log:
>>>>I used Version V1.4
>>>>
>>>>>>>>
>>>>
>>>>
>>>>regards mark
>>>>
>>>>#OK incomming call will proceed everything is fine:
>>>>
>>>>VOIP2009/09/16 12:05:19.628                      -HDL-  cSipWrapper.cxx(1140)    strm0x2b8184  Decoder stream started
>>>> VOIP2009/09/16 12:05:19.646                      -HDL- 
>>>> cSipWrapper.cxx(2037)  SAG     OnStreamCreated CALL-ID:8
>>>> VOIP2009/09/16 12:05:19.664                      -HDL-  cSipWrapper.cxx(1307)  SCO     InitMediaCall CALL_ID:8 PTime:40 SPF:320
>>>> VOIP2009/09/16 12:05:19.684                      -HDL-  cSipWrapper.cxx(1140)    conference.c  Creating conference bridge with 4 ports
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:19.711                      -HDL-  cSipWrapper.cxx(2043)  SAG     CALL-ID:8 BC:0
>>>> VOIP2009/09/16
>>>> 12:05:19.730                      -HDL-  cSipWrapper.cxx(1140)   pjsua_media.c  Media updates, stream #0: PCMU (sendrecv)
>>>> VOIP2009/09/16 12:05:19.750                      -HDL-  cSipWrapper..cxx(1103)  SRW     OnCallMedia:MediaActiv CALL-ID:8
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:19.770                      -HDL-  cSipWrapper.cxx(489)   SWR     SSP Register Slot:2
>>>> VOIP2009/09/16 12:05:19..788                      -HDL- 
>>>> cSipWrapper.cxx(1140)    conference.c  Port 1 (CALL) transmitting to port 2 (SSP)
>>>> VOIP2009/09/16 12:05:19..811                      -HDL-  cSipWrapper.cxx(500)   SRW     SSP Channel CALL-ID:8 SrcID:1 SnkID:2 CNT:3 DEV:/dev/mySSP1
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:19.835                      -HDL-  cSipWrapper..cxx(1140)     inv0x2b1894  Sending Response msg 200/INVITE/cseq=5448 (tdta0x2b6650)
>>>> VOIP2009/09/16 12:05:19.904                      -HDL-  cSipWrapper.cxx(1140)     dlg0x2b1894  Sending Response msg
>>>> 200/INVITE/cseq=5448 (tdta0x2b6650)
>>>> VOIP2009/09/16 12:05:19.924                      -HDL-  cSipWrapper...cxx(1140)     tsx0x2b4c7c  Sending Response msg 200/INVITE/cseq=5448 (tdta0x2b6650) in state Proceeding
>>>> VOIP2009/09/16 12:05:19..947                      -HDL-  cSipWrapper.cxx(1140)     tsx0x2b4c7c  State changed from Proceeding to Completed, event=TX_MSG
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:19.968                      -HDL-  cSipWrapper.cxx(1140)     dlg0x2b1894  Transaction tsx0x2b4c7c state changed to Completed
>>>> VOIP2009/09/16
>>>> 12:05:19.988                      -HDL-  cSipWrapper.cxx(1017)  SRW     OnCallState CALL-ID:8 ST:4
>>>>
>>>>
>>>># here comes the CANCEL Message from the opposite:
>>>>
>>>> VOIP2009/09/16 12:05:20.006    ThreadID=0x00020009      cSipWrapper.cxx(1140)  sip_endpoint.c  Processing incoming message: Request msg CANCEL/cseq=5448 (rdata0x41a23854)
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.022    ThreadID=0x00020009      cSipWrapper.cxx(1140)     dlg0x2b1894  Received Request msg CANCEL/cseq=5448 (rdata0x41a23854)
>>>> VOIP2009/09/16 12:05:20.049    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2bece4  Transaction created for Request msg
>>>> CANCEL/cseq=5448 (rdata0x41a23854)
>>>> VOIP2009/09/16 12:05:20.070    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2bece4  Incoming Request msg CANCEL/cseq=5448 (rdata0x41a23854) in state Null
>>>>
>>>>
>>>># the CANCEL message  response will created
>>>>>>>>
>>>>
>>>>
>>>> 
>>>>VOIP2009/09/16 12:05:20.091    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2bece4  State changed from Null to Trying, event=RX_MSG
>>>> VOIP2009/09/16 12:05:20.110    ThreadID=0x00020009      cSipWrapper.cxx(1140)     dlg0x2b1894  Transaction tsx0x2bece4 state changed to Trying
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.129    ThreadID=0x00020009      cSipWrapper.cxx(1140)        endpoint  Response msg
>>>> 200/CANCEL/cseq=5448 (tdta0x2bf488) created
>>>> VOIP2009/09/16 12:05:20.150    ThreadID=0x00020009      cSipWrapper..cxx(1140)     dlg0x2b1894  Sending Response msg 200/CANCEL/cseq=5448 (tdta0x2bf488)
>>>> VOIP2009/09/16 12:05:20.169    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2bece4  Sending Response msg 200/CANCEL/cseq=5448 (tdta0x2bf488) in state Trying
>>>>
>>>>
>>>># and here i expecting a change to "disconnecting" state  but nothing happens  !!!! the call looks like connected forever...
>>>>
>>>> VOIP2009/09/16 12:05:20.192    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2bece4  State changed from Trying to Completed, event=TX_MSG
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.213   
>>>> ThreadID=0x00020009      cSipWrapper.cxx(1140)     dlg0x2b1894  Transaction tsx0x2bece4 state changed to Completed
>>>> VOIP2009/09/16 12:05:20.232    ThreadID=0x00020009      cSipWrapper.cxx(1017)  SRW     OnCallState CALL-ID:8 ST:4
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.250    ThreadID=0x00020009      cSipWrapper..cxx(1017)  SRW     OnCallState CALL-ID:8 ST:4
>>>> VOIP2009/09/16 12:05:20.268    ThreadID=0x00020009      cSipWrapper.cxx(1140)  sip_endpoint..c  Processing incoming message: Request msg ACK/cseq=5448 (rdata0x41a23854)
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.289    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2b4c7c  Incoming Request msg
>>>> ACK/cseq=5448 (rdata0x41a23854) in state Completed
>>>> VOIP2009/09/16 12:05:20.317    ThreadID=0x00020009      cSipWrapper.cxx(1140)     tsx0x2b4c7c  State changed from Completed to Confirmed, event=RX_MSG
>>>> VOIP2009/09/16 12:05:20.345    ThreadID=0x00020009      cSipWrapper.cxx(1140)     dlg0x2b1894  Transaction tsx0x2b4c7c state changed to Confirmed
>>>>>>>>
>>>>
>>>>
>>>> VOIP2009/09/16 12:05:20.362    ThreadID=0x00020009      cSipWrapper.cxx(1017)  SRW     OnCallState CALL-ID:8 ST:5
>>>> 
>>>>
>>>>
>>>>
>>>>_______________________________________________
>>>>>>>>Visit our blog: http://blog.pjsip.org
>>>>
>>>>>>>>pjsip mailing list
>>>>pjsip at lists.pjsip.org
>>>>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>>
>>>>
>>>
>>>
>>>_______________________________________________
>>>>>>Visit our blog: http://blog.pjsip.org
>>>
>>>>>>pjsip mailing list
>>>pjsip at lists.pjsip..org
>>>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>>
>>>
>>
>>
>>_______________________________________________
>>>>Visit our blog: http://blog.pjsip.org
>>
>>>>pjsip mailing list
>>pjsip at lists.pjsip.org
>>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>>
>
>
>_______________________________________________
>>Visit our blog: http://blog.pjsip.org
>
>>pjsip mailing list
>pjsip at lists.pjsip.org
>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20090925/55a4c631/attachment-0001.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