[reSIProcate] Session Timers and WebRTC

Scott Godin sgodin at sipspectrum.com
Fri Oct 28 10:59:26 CDT 2016


Hi Dario,

You could receive notification of the TCP connection down via the
ConnectionTerminated notification as on option.  See
DialogUsageManager::registerForConnectionTermination.

However, I think you are right about treating 430 as General error.  430
was added relatively recently and there really wasn't any thought as to
what type of DUM error this should be.  I see 430 as very similar to a 408
for UDP.  Is there anyone that disagrees with this?

Best Regards,
Scott



On Fri, Oct 28, 2016 at 11:44 AM, Dario Bozzali <Dario.Bozzali at ifmgroup.it>
wrote:

> Hello,
>
> I need some help about Session Timers and WebRTC.
>
>
>
> I wrote a UAS using reSIProcate (1.10.2 release) and I’m using sipml5 as
> WebRTC client in Chrome.
>
> sipml5 does not support Outbound (RFC 5626), Session Timers (RFC 4028) and
> KeepAlive (CRLF) messages, so I cannot use FlowTerminated mechanism present
> in DUM, but my UAS can send (re)INVITE to refresh session (sipml5 does not
> support UPDATE method).
>
>
>
> If I kill Chrome while there is an active call, my UAS does not receive
> any event (I don’t know if I could receive a connection terminated event
> and I’m not handling it), but when it tries to send INVITE for session
> refresh, transaction fails with cause 430 Flow failed (set in
> TransactionState::processNoDnsResults() method).
>
> InviteSession::toEvent() method converts 430 to OnInviteFailure, so in
> InviteSession::dispatchSentReinvite() method dialog state is changed from
> SentReInvite to Connected and onOfferRejected() method is invoked for
> session handle with status message with cause 430.
>
> In this way my UAS can detect the remote endpoint is no more active and I
> can end local call.
>
> Is this behavior right in your opinion?
>
>
>
> It seems to me that Session Timers behavior is different when using UDP in
> a similar scenario.
>
> If (re)INVITE fails with cause 408 Request Timeout or 481 Call/Transaction
> Does Not Exist, InviteSession::toEvent() method converts them to
> OnGeneralFailure and in InviteSession::dispatchSentReinvite() method
> dialog state is changed from SentReInvite to Terminated and onTermianted()
> method is invoked for session handle with reason
> InviteSessionHandler::Error.
>
> Should InviteSession::toEvent() method convert 430 to OnGeneralFailure in
> your opinion?
>
>
>
> Thank you in advance for any support or comment.
>
> Best regards,
>
> Dario
>
> _______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20161028/fd568fe3/attachment.htm>


More information about the resiprocate-devel mailing list