On Thu, Sep 29, 2011 at 12:57 PM, Gustavo Garcia Bernardo <ggb at tid.es> wrote: > Hi, > > I'm trying to use pjsip support of RFC5626 for TCP and I found the following inconsistencies with the standard: > > 1. PJSIP keepalives are CRLF instead of the recommended CRLFCRLF I think we do use CRLF-CRLF, it's the PJSIP_TCP_KEEP_ALIVE_DATA setting. > 2. PJSIP doesn't process the pong response from the server to decide if the connection is broken or not. That's true. I expect broken connection will be broken i.e. disconnected. > 3. keep_alive timeout for TCP is always set 90 seconds, and the value of acc.ka_interval in pjsua is only used for UDP The setting is PJSIP_TCP_KEEP_ALIVE_INTERVAL instead. For stream oriented transport, keep-alive is done at the transport level and not pjsua-lib level. > 4. Any activity on the TCP transport resets the keep_alive timer and it shouldn't True. > 5. There are no method to request sending the keepalive from the application layer (this is needed to send keepalives from an iphone app while in background) > You can use pjsip_endpt_send_raw_to_uri(), or if you have the transport pointer you can just send the keep alive data to it using PJSIP API. > Do you agree with these issues or did I misunderstand something? ?Are there any plans to implement it according to the spec? > We took the pragmatic approach when implementing this, and while few things may not strictly comply with the RFC, I think it should do the job. Unless there is a compatibility problem with server, I'd prefer to keep it simple this way. Thanks for the feedback! Benny > Thank you, > G. >