Hi Roger,
- Why the transaction is living that long?
Timer J 64*T1 for UDP Section 17.2.2 Wait time for
0s for TCP/SCTP non-INVITE request
If you are using UDP, transaction context are kept 64*T1 seconds in order to
reply to retransmissions.
- Would it be save to kill that transaction from within the "send messge callback"?
Unlike TCP, UDP requires to handle retransmissions in the application layer and it would be
a bug to not way for retransmission at all.
- Why the resent OPTIONS requests are no more detected as OPTIONS request?
If a retransmission of a non-INVITE request is received, it should call the method
attached to OSIP_NIST_REQUEST_RECEIVED_AGAIN.
This method is set like this:
osip_set_message_callback (osip, OSIP_NIST_REQUEST_RECEIVED_AGAIN, &cb_rcvreq_retransmission);
First OPTION request received will call the method attached to OSIP_NIST_OPTIONS_RECEIVED:
This method is set like this:
osip_set_message_callback (osip, OSIP_NIST_OPTIONS_RECEIVED, &cb_rcvrequest);
So if you set different methods for those events, different methods will be called!
retransmission do not need to be announced to app layer, this is why there is
a different callback for them!
Hope that answer all your questions!
Regards,
Aymeric