"TCP re-registration fails in keepAliveFunction - PJSIP_EBUSY"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Everybody,

when my iOS4 App (iPhone4, iOS4.1, PJSIP 1.8.5) is put in background, everthing (e.g. KeepAlive re-regstrations) works as expected (or hoped, rather :-)) for about two hours. Then, all of the sudden, the re-registration fails. This happens, without the device even being touched... Attached is the relevant part of the debugger log.
It seems, as if the keepAliveFunction() kicks-in with it's re-registration disturbing the process of UDP socket replacement. - My implementation of "KeepAlive while in backgound" is copied from the pjsua-reference-implementation. 

It would be very nice, if someone could shed some light on this. - And, how can this situation be avoided?

Thanks in advance!

-Thomas

 05:15:28.957     ioq_select  Attempting to replace UDP socket 16
 05:15:28.957     ioq_select  UDP has been replaced successfully!
 05:15:28.957     ioq_select  Attempting to replace UDP socket 17
 05:15:28.957     ioq_select  UDP has been replaced successfully!
 05:15:28.957     ioq_select  Attempting to replace UDP socket 8
 05:15:28.963     ioq_select  UDP has been replaced successfully!
 05:15:37.158   tcpc0x868014  TCP client transport created
 05:15:37.161   tcpc0x868014  TCP transport 192.168.1.102:50312 is connecting to 87.230.73.56:5060...
 05:15:37.162   pjsua_core.c  TX 599 bytes Request msg REGISTER/cseq=15699 (tdta0x84ac00) to tcp 87.230.73.56:5060:
REGISTER sip:sip.finotel.com;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 192.168.1.102:50312;rport;branch=z9hG4bKPjlvyPHfXBGzgkdHr.XJ.gR9b-s9s8vStO
Route: <sip:sip.finotel.com;transport=tcp;lr>
Max-Forwards: 70
From: <sip:1234567890@xxxxxxxxxxxxxxx>;tag=VSVH1a93g6a0F3U0mxbHZQ-CZMHnSwph
To: <sip:1234567890 at sip.finotel.com>
Call-ID: MnwrxqSE1aQrm.7clhFkCgJkTBM4Xcv7
CSeq: 15699 REGISTER
User-Agent: SIP01
Contact: <sip:1234567890 at 82.113.104.242:25238;transport=tcp>
Expires: 300
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
Content-Length:  0


--end msg--
 05:15:37.179   tcpc0x865214  TCP transport destroyed with reason 70016: End of file (PJ_EEOF)
 05:15:45.966     ioq_select  Attempting to replace UDP socket 10
 05:15:45.966     ioq_select  UDP has been replaced successfully!
 05:15:45.966     ioq_select  Attempting to replace UDP socket 11
 05:15:45.966     ioq_select  UDP has been replaced successfully!
 05:15:45.966     ioq_select  Attempting to replace UDP socket 12
 05:15:45.967     ioq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 13
 05:15:45.967     ioq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 14
 05:15:45.967     ioq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 15
 05:15:45.967     ioq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 16
 05:15:45.967     ioq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 17
 05:15:45.967     i2010-11-24 05:15:45.972 SIP01[1173:307] 

keepAliveFunction --- BEFORE re-registration :  timeout = 600	acct.expires = 0

oq_select  UDP has been replaced successfully!
 05:15:45.967     ioq_select  Attempting to replace UDP socket 8
 05:15:45.973      sip_reg.c  Unable to send request, regc has another transaction pending
 05:15:45.976     ioq_select  UDP has been replaced successfully!
 05:15:45.987   tcpc0x868014  TCP connect() error: Connection refused [code=120061]
 05:15:45.987    tsx0x885464  Failed to send Request msg REGISTER/cseq=15699 (tdta0x84ac00)! err=120061 (Connection refused)
 05:15:45.987    pjsua_acc.c  Unable to create/send REGISTER: Object is busy (PJSIP_EBUSY) [status=171001]
 05:15:45.987    pjsua_acc.c  SIP registration failed, status=503 (Connection refused)

SIPStack::__registrationStateChanged(SIPAccountID 2)
Status = Service Unavailable --- Expires in -1 seconds
 05:15:45.988    pjsua_acc.c  Account id 2 deleted
 05:15:45.988   tcpc0x868014  TCP transport destroyed with reason 120061: Connection refused
2010-11-24 05:15:45.988 SIP01[1173:307] 

keepAliveFunction --- AFTER re-registration :  timeout = 600	acct.expires = 0

 05:25:46.074     ioq_select  Attempting to replace UDP socket 10
 05:25:46.074     ioq_select  UDP has been replaced successfully!
 05:25:46.074     ioq_select  Attempting to replace UDP socket 11
 05:25:46.074     ioq_select  UDP has been replaced successfully!
 05:25:46.074     ioq_select  Attempting to replace UDP socket 12
 05:25:46.074     ioq_select  UDP has been replaced successfully!
 05:25:46.074     ioq_select  Attempting to replace UDP socket 13
 05:25:46.074     ioq_select  UDP has been replaced successfully!
 05:25:46.074     ioq_select  Attempting to replace UDP socket 14




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux