Opened 13 years ago

Closed 13 years ago

#89 closed enhancement (fixed)

Implement transaction timeout in REGISTER request

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-0.5.10
Component: pjsip Version: 0.5.9
Keywords: Cc:
Backport to 1.x milestone: Backported:

Description (last modified by bennylp)

Currently there is no timeout in SIP UAC transaction after provisional response is received. This will cause client to wait indefinetely if server crashes after it sends provisional response.

Note that this shouldn't be neccessary if the server is compliant with RFC 4420 and 4421 (re: not sending provisional response for non-INVITE transaction). But some popular open souce PBX out there does this anyway, so we'd better support this.

Change History (4)

comment:1 Changed 13 years ago by bennylp

  • Description modified (diff)

comment:2 Changed 13 years ago by bennylp

  • Resolution set to worksforme
  • Status changed from new to closed
  • Summary changed from Implement transaction timeout to Implement transaction timeout in REGISTER request

Implemented in r932.

Currently this is implemented at pjsip_endpt_send_request() level rather than at sip_transaction.c since the later requires bigger modification.

And since pjsip_endpt_send_request() is only used by the client registration, this fix work only with the outgoing REGISTER request only.

Thanks Frank Wiersma for reporting the problem.

comment:3 Changed 13 years ago by bennylp

  • Resolution worksforme deleted
  • Status changed from closed to reopened

This causes crash when transaction is terminated/destroyed manually (for example when transaction layer is unloaded), because (user) timer will not be destroyed when the transaction is destroyed.

Maybe the best way to implement this is to implement the timer in the transaction itself.

comment:4 Changed 13 years ago by bennylp

  • Resolution set to fixed
  • Status changed from reopened to closed

Implemented more generically in ticket #99.

Note: See TracTickets for help on using tickets.