[Freeswitch-users] INVITE and hangup in the middle of a call

Oleg Stolyar olegstolyar at gmail.com
Thu May 21 23:19:11 MSD 2015


Hi Michael,

I followed your suggestion and tested the same call using sip.js.  You are
right sip.js does not disconnect the call after receiving the re-invite.
However, it does send back the message below.  I agree that it's a more
graceful way to handle the problem but the original problem on both JsSip
and SIP.JS is still that there is something wrong with the re-INVITE
message from FS.
By the way a side effect of this is that FS does not send any more
re-invites for this session after that first attempt.

I'll be happy to run any other tests that could help fix this.  For now I
will either switch to sip.js or use JsSip's new session timer capability
which makes JsSip send regular update messages, so FS does not need to send
re-invites at all.


   ------------------------------------------------------------------------
recv 379 bytes from wss/[69.53.236.236]:17084 at 19:11:35.832686:
   ------------------------------------------------------------------------
   SIP/2.0 488 Not Acceptable Here
   Via: SIP/2.0/WSS ##.##.##.##:5067;branch=z9hG4bK9rtFZNj1vK09D
   To: <sip:oleg1234 at something.com>;tag=c6tjtcraq7
   From: <sip:echo-test at something.com>;tag=c29e7F87NvQNp
   Call-ID: 1v8ll5j5dcqj1d2fimo1
   CSeq: 75781683 INVITE
   Warning: 399 sipjs "Cannot update media description"
   Supported: outbound
   User-Agent: SIP.js/0.7.0
   Content-Length: 0


On Thu, May 21, 2015 at 7:59 AM, Oleg Stolyar <olegstolyar at gmail.com> wrote:

> Thanks Michael!
>
> There are some internal reasons why it's not trivial for us to switch to
> sip.js but as I said we'll be looking into that as well.
> On a side note, JsSip did come back - they are actively releasing new
> versions.
>
> Also, I have a question about best practices.  If a client originates a
> call to FS, do you think it's better to have the client be the session
> refresher or FS?  Any reason one way or another?
>
> On Thu, May 21, 2015 at 7:50 AM, Michael Jerris <mike at jerris.com> wrote:
>
>> I think its incredibly easy to switch to sip.js as its pretty close API
>> to jssip, and looking at the invite you posted, it does have a full sdp.
>>  jssip has been mostly abandoned for many months (maybe they came back, but
>> it has serious bitrot either way), its not worth the time to mess with
>> something we know is broken when there is an easy alternative we know works.
>>
>> On May 21, 2015, at 10:44 AM, Oleg Stolyar <olegstolyar at gmail.com> wrote:
>>
>> The suggestion about switching to SIP.JS?  We are considering this but it
>> will take a us a while to get it done and ready for production.  In the
>> meantime I was able to enable debugging on JsSip and it seems that we get
>> this error when receiving re-INVITE from FS:
>> rtcninja:ERROR:RTCPeerConnection setLocalDescription() | error: +0ms
>> Failed to set local answer sdp: Session error code: ERROR_CONTENT. Session
>> error description: Failed to set audio receive codecs..
>>
>> It seems that FS is not including codecs info in re-INVITES.  JsSip
>> developers are saying that all invites including re-invites should include
>> all the info.  What do you think?
>>
>>
>>
>> On Wed, May 20, 2015 at 8:19 PM, Michael Jerris <mike at jerris.com> wrote:
>>
>>> See my previous suggestion earlier in this thread
>>>
>>>
>>> On Wednesday, May 20, 2015, Oleg Stolyar <olegstolyar at gmail.com> wrote:
>>>
>>>> I looked at my logs more carefully and noticed that FS sends such
>>>> re-INVITES for many of my calls but not all.  It is always sent about one
>>>> minute after the call is established, so it's probably not based on session
>>>> timer, right?
>>>>
>>>> In most cases when it's sent JsSip answers with a 100 Trying.  In this
>>>> case the call stays on.  In some rare cases JsSip does not respond and FS
>>>> disconnects the call with NORMAL_TEMPORARY_FAILURE we see in the log
>>>> above.
>>>>
>>>> I will investigate why JsSip sometimes does not respond but I would
>>>> still like to figure out why FS is sending those re-INVITES to begin with?
>>>>
>>>> I thought it could be happening if JsSip does not respond to OK with an
>>>> ACK but that's not the case.  The ACK is there for these calls.
>>>>
>>>> There is a variable nonce-ttl in the sip profile that defaults to 60
>>>> seconds.  Perhaps it has something to do with that?  This profile does not
>>>> require authentication or registration at all, though.
>>>>
>>>> On Wed, May 20, 2015 at 7:40 AM, Oleg Stolyar <olegstolyar at gmail.com>
>>>> wrote:
>>>>
>>>>> But isn't that based on the session-timeout param which defaults to 30
>>>>> min?  My re-invites occur much sooner than 30 min into a call.  Or does
>>>>> session-timeout param only control sessions initiated by FS while incoming
>>>>> sessions use the minimum-session-expires param if it's not explicitly
>>>>> passed by the session initiator?
>>>>>
>>>>> On Tue, May 19, 2015 at 11:40 PM, Michael Jerris <mike at jerris.com>
>>>>> wrote:
>>>>>
>>>>>> session timer
>>>>>>
>>>>>>
>>>>>> On Tuesday, May 19, 2015, Oleg Stolyar <olegstolyar at gmail.com> wrote:
>>>>>>
>>>>>>> Thanks Michael, I'll see if we can do that!
>>>>>>>
>>>>>>> So, is the re-INVITE legit and the problem is that JsSip does not
>>>>>>> respond to it?  Still, I am curious what is triggering the re-INVITE.
>>>>>>>
>>>>>>> On Tue, May 19, 2015 at 8:05 PM, Michael Jerris <mike at jerris.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I think the sip.js guys fixed this issue when they forked jssip.
>>>>>>>> I'd suggest using that.
>>>>>>>>
>>>>>>>> > On May 19, 2015, at 10:01 PM, Oleg Stolyar <olegstolyar at gmail.com>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > Hi guys,
>>>>>>>> >
>>>>>>>> > Several weeks ago I started getting an occasional problem where
>>>>>>>> FS is sending an INVITE to the other side in the middle of a call, the
>>>>>>>> other side does not respond and FS hangs up the leg.  Below is the relevant
>>>>>>>> log.  The user experience is that they keep talking and hearing each other
>>>>>>>> up to the very end.  I have a recording of that call, so can confirm.
>>>>>>>> >
>>>>>>>> > The call uses WebRTC and is originated by JsSip from Chrome.
>>>>>>>> Then the user is put into a conference but I doubt it's relevant in this
>>>>>>>> case since the INVITE and disconnect are not happening from mod_conference
>>>>>>>> >
>>>>>>>> > I suspect it's a re-INVITE but what triggers FS to send it?  I
>>>>>>>> couldn't find anything in the logs that could shed light.
>>>>>>>> >
>>>>>>>> > send 1625 bytes to wss/[##.##.##.##]:50292 at 00:00:19.702933:
>>>>>>>> >
>>>>>>>> ------------------------------------------------------------------------
>>>>>>>> >    INVITE sip:dj012n41 at u40rf5qikah5.invalid;transport=ws;ob
>>>>>>>> SIP/2.0
>>>>>>>> >    Via: SIP/2.0/WSS 10.97.158.232:5067
>>>>>>>> ;branch=z9hG4bK7Xm4tjevU45Sr
>>>>>>>> >    Max-Forwards: 70
>>>>>>>> >    From: <
>>>>>>>> sip:answer-c4e14a20-fe82-11e4-95ed-22000b358f22 at anonymous.invalid
>>>>>>>> >;tag=KQecUSr12rSQp
>>>>>>>> >    To: "user1" <sip:anonymous at anonymous.invalid>;tag=v1rlqab64i
>>>>>>>> >    Call-ID: g8980rbrbk2t45oj5mru
>>>>>>>> >    CSeq: 75703945 INVITE
>>>>>>>> >    Contact: <
>>>>>>>> sip:answer-c4e14a20-fe82-11e4-95ed-22000b358f22@##.##.###.###:5080;transport=udp
>>>>>>>> >
>>>>>>>> >    User-Agent: FreeSWITCH-mod_sofia/1.5.15b~64bit
>>>>>>>> >    Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO,
>>>>>>>> UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE
>>>>>>>> >    Supported: timer, path, replaces
>>>>>>>> >    Session-Expires: 120;refresher=uac
>>>>>>>> >    Min-SE: 120
>>>>>>>> >    Content-Type: application/sdp
>>>>>>>> >    Content-Disposition: session
>>>>>>>> >    Content-Length: 825
>>>>>>>> >
>>>>>>>> >    v=0
>>>>>>>> >    o=FreeSWITCH 1432057287 1432057288 IN IP4 ##.##.##.##
>>>>>>>> >    s=FreeSWITCH
>>>>>>>> >    c=IN IP4 ##.##.##.##
>>>>>>>> >    t=0 0
>>>>>>>> >    a=msid-semantic: WMS uZEfxiWc2Dm3Mj8pRAdC8BQDwtTzC6hW
>>>>>>>> >    m=audio 22670 RTP/SAVPF 9 126 106
>>>>>>>> >    a=rtpmap:9 G722/8000
>>>>>>>> >    a=rtpmap:126 telephone-event/8000
>>>>>>>> >    a=rtpmap:106 CN/8000
>>>>>>>> >    a=ptime:20
>>>>>>>> >    a=fingerprint:sha-256
>>>>>>>> E4:E2:DD:6C:60:61:69:9D:FD:21:64:79:66:C0:14:58:DD:67:CE:29:35:35:58:65:2E:91:70:85:4C:6C:47:69
>>>>>>>> >    a=rtcp-mux
>>>>>>>> >    a=rtcp:22670 IN IP4 ##.##.##.##
>>>>>>>> >    a=ssrc:1029894069 cname:VL2jTPmLiyFVIEaq
>>>>>>>> >    a=ssrc:1029894069 msid:uZEfxiWc2Dm3Mj8pRAdC8BQDwtTzC6hW a0
>>>>>>>> >    a=ssrc:1029894069 mslabel:uZEfxiWc2Dm3Mj8pRAdC8BQDwtTzC6hW
>>>>>>>> >    a=ssrc:1029894069 label:uZEfxiWc2Dm3Mj8pRAdC8BQDwtTzC6hWa0
>>>>>>>> >    a=ice-ufrag:5dS3Fzx1Thrmdy9Z
>>>>>>>> >    a=ice-pwd:a19UHlvPK1BjvBzrFilbII2s
>>>>>>>> >    a=candidate:3876535948 1 udp 659136 107.20.175.160 22670 typ
>>>>>>>> host generation 0
>>>>>>>> >
>>>>>>>> ------------------------------------------------------------------------
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:19.376858
>>>>>>>> [DEBUG] switch_core_session.c:1061 Send signal
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [BREAK]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:19.376858
>>>>>>>> [DEBUG] sofia.c:6627 Channel
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid entering state
>>>>>>>> [calling][0]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [DEBUG] switch_core_session.c:1061 Send signal
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [BREAK]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [DEBUG] switch_core_session.c:1061 Send signal
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [BREAK]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [DEBUG] sofia.c:6627 Channel
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid entering state
>>>>>>>> [terminating][503]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [NOTICE] sofia.c:7543 Hangup
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [CS_EXECUTE]
>>>>>>>> [NORMAL_TEMPORARY_FAILURE]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [DEBUG] switch_channel.c:3242 Send signal
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [KILL]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.616874
>>>>>>>> [DEBUG] switch_core_session.c:1396 Send signal
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid [BREAK]
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] mod_conference.c:5057 Channel leaving conference, cause:
>>>>>>>> NORMAL_TEMPORARY_FAILURE
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] mod_conference.c:9650
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid skip receive message
>>>>>>>> [UNBRIDGE] (channel is hungup already)
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_media.c:7772
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid skip receive message
>>>>>>>> [REFER_EVENT] (channel is hungup already)
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_codec.c:246
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid Restore previous
>>>>>>>> codec G722:9.
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_session.c:2901
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid skip receive message
>>>>>>>> [APPLICATION_EXEC_COMPLETE] (channel is hungup already)
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:535 (
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid) State EXECUTE going
>>>>>>>> to sleep
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:472 (
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid) Running State Change
>>>>>>>> CS_HANGUP
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:735 (
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid) Callstate Change
>>>>>>>> ACTIVE -> HANGUP
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:737 (
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid) State HANGUP
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] mod_sofia.c:413 Channel
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid hanging up, cause:
>>>>>>>> NORMAL_TEMPORARY_FAILURE
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:60
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid Standard HANGUP,
>>>>>>>> cause: NORMAL_TEMPORARY_FAILURE
>>>>>>>> > fc1927a8-2257-400f-b4cb-67aff7297170 2015-05-20 00:00:22.636900
>>>>>>>> [DEBUG] switch_core_state_machine.c:737 (
>>>>>>>> sofia/leia_agent/anonymous at anonymous.invalid) State HANGUP going
>>>>>>>> to sleep
>>>>>>>> >
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _________________________________________________________________________
>>>>>>>> Professional FreeSWITCH Consulting Services:
>>>>>>>> consulting at freeswitch.org
>>>>>>>> http://www.freeswitchsolutions.com
>>>>>>>>
>>>>>>>> Official FreeSWITCH Sites
>>>>>>>> http://www.freeswitch.org
>>>>>>>> http://confluence.freeswitch.org
>>>>>>>> http://www.cluecon.com
>>>>>>>>
>>>>>>>> FreeSWITCH-users mailing list
>>>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>>>> UNSUBSCRIBE:
>>>>>>>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>>>> http://www.freeswitch.org
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _________________________________________________________________________
>>>>>> Professional FreeSWITCH Consulting Services:
>>>>>> consulting at freeswitch.org
>>>>>> http://www.freeswitchsolutions.com
>>>>>>
>>>>>> Official FreeSWITCH Sites
>>>>>> http://www.freeswitch.org
>>>>>> http://confluence.freeswitch.org
>>>>>> http://www.cluecon.com
>>>>>>
>>>>>> FreeSWITCH-users mailing list
>>>>>> FreeSWITCH-users at lists.freeswitch.org
>>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>>>>> UNSUBSCRIBE:
>>>>>> http://lists.freeswitch.org/mailman/options/freeswitch-users
>>>>>> http://www.freeswitch.org
>>>>>>
>>>>>
>>>>>
>>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> http://www.freeswitchsolutions.com
>>>
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://confluence.freeswitch.org
>>> http://www.cluecon.com
>>>
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://confluence.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://confluence.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20150521/33ed8fd8/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list