Handling connection drops on a mobile client

JL
Johan Lantz
Wed, Feb 25, 2009 11:10 AM

Hi

I have a general question on how to handle connection drops for a Mobile
pjsip client, in this case Windows Mobile. In particular I would be very
interested in which scenarios I can expect pjsip to resolve a connection
reestablishment and where I have to take action myself.

In particular I am currently looking at what happens with my publish
sessions if the connection is lost. One scenario is that the presence
refresh timer is 300sec. I put the Windows Mobile phone into powersave
by tapping the power button. Since wifi is used at this time the
connection is instantly dropped. I then wait for more then 300 seconds
which leads to the user presence beeing set to unknown in the server.
When the connection is restored pjsip attempts to refresh the Publish
but using the old e-tag value leading to the server sending a 412 in
return. I assume this is because the server does not think the e-tag is
valid anymore since the phone did not republish within 300 sec. As this
happens my publish session is destroyed and I am not sure on the best
approach to recover.

The questions:

  1. For this specific case, do you think pjsip is doing this the right
    way or should a complete Publish be sent instead?

  2. In general I am a unsure on how to handle connection drops and
    Publish failures. From my understanding the publish session is destroyed
    if a Publish fails. Is it completly up to the application to handle this
    scenario and do a complete republish when this occurs or do you have any
    guidelines for handling connection drops in general.

  3. How does pjsip detect that a connection is again available. Is it on
    socket level or something else?

Sorry for beeing a bit vague I will try to get back with even more
detailed scenarios when I understand what is my responsibility and what
is handled by pjsip.

/Johan

Hi I have a general question on how to handle connection drops for a Mobile pjsip client, in this case Windows Mobile. In particular I would be very interested in which scenarios I can expect pjsip to resolve a connection reestablishment and where I have to take action myself. In particular I am currently looking at what happens with my publish sessions if the connection is lost. One scenario is that the presence refresh timer is 300sec. I put the Windows Mobile phone into powersave by tapping the power button. Since wifi is used at this time the connection is instantly dropped. I then wait for more then 300 seconds which leads to the user presence beeing set to unknown in the server. When the connection is restored pjsip attempts to refresh the Publish but using the old e-tag value leading to the server sending a 412 in return. I assume this is because the server does not think the e-tag is valid anymore since the phone did not republish within 300 sec. As this happens my publish session is destroyed and I am not sure on the best approach to recover. The questions: 1. For this specific case, do you think pjsip is doing this the right way or should a complete Publish be sent instead? 2. In general I am a unsure on how to handle connection drops and Publish failures. From my understanding the publish session is destroyed if a Publish fails. Is it completly up to the application to handle this scenario and do a complete republish when this occurs or do you have any guidelines for handling connection drops in general. 3. How does pjsip detect that a connection is again available. Is it on socket level or something else? Sorry for beeing a bit vague I will try to get back with even more detailed scenarios when I understand what is my responsibility and what is handled by pjsip. /Johan
BP
Benny Prijono
Tue, Mar 3, 2009 11:00 AM

Hi Johan,

sorry for the top post, but I can only address the issue in general. We've
also just been working on issue similar to this, that is access point
disconnection, reconnection, and IP address change. While it's not exactly
on the same topic (and more over we're working on Symbian), it's felt that
the issues are related somehow, so I just wanted to point this out.

I documented the issues here
http://trac.pjsip.org/repos/wiki/Symbian_AP_Reconnection. In conclusion,
basically my suggestion now is to restart pjsip when the access point is
reconnected, and I think this approach is probably suitable for the power
off topic as well. Or even more suitable perhaps, since if user powers off
the handset, I don't suppose (s)he is in a middle of call/session, so
there's not much to be lost with restarting pjsip.

cheers
Benny

On Wed, Feb 25, 2009 at 11:10 AM, Johan Lantz johan.lantz@genaker.netwrote:

Hi

I have a general question on how to handle connection drops for a Mobile
pjsip client, in this case Windows Mobile. In particular I would be very
interested in which scenarios I can expect pjsip to resolve a connection
reestablishment and where I have to take action myself.

In particular I am currently looking at what happens with my publish
sessions if the connection is lost. One scenario is that the presence
refresh timer is 300sec. I put the Windows Mobile phone into powersave by
tapping the power button. Since wifi is used at this time the connection is
instantly dropped. I then wait for more then 300 seconds which leads to the
user presence beeing set to unknown in the server. When the connection is
restored pjsip attempts to refresh the Publish but using the old e-tag value
leading to the server sending a 412 in return. I assume this is because the
server does not think the e-tag is valid anymore since the phone did not
republish within 300 sec. As this happens my publish session is destroyed
and I am not sure on the best approach to recover.

The questions:

  1. For this specific case, do you think pjsip is doing this the right way
    or should a complete Publish be sent instead?

  2. In general I am a unsure on how to handle connection drops and Publish
    failures. From my understanding the publish session is destroyed if a
    Publish fails. Is it completly up to the application to handle this scenario
    and do a complete republish when this occurs or do you have any guidelines
    for handling connection drops in general.

  3. How does pjsip detect that a connection is again available. Is it on
    socket level or something else?

Sorry for beeing a bit vague I will try to get back with even more detailed
scenarios when I understand what is my responsibility and what is handled by
pjsip.

/Johan


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

Hi Johan, sorry for the top post, but I can only address the issue in general. We've also just been working on issue similar to this, that is access point disconnection, reconnection, and IP address change. While it's not exactly on the same topic (and more over we're working on Symbian), it's felt that the issues are related somehow, so I just wanted to point this out. I documented the issues here http://trac.pjsip.org/repos/wiki/Symbian_AP_Reconnection. In conclusion, basically my suggestion now is to restart pjsip when the access point is reconnected, and I think this approach is probably suitable for the power off topic as well. Or even more suitable perhaps, since if user powers off the handset, I don't suppose (s)he is in a middle of call/session, so there's not much to be lost with restarting pjsip. cheers Benny On Wed, Feb 25, 2009 at 11:10 AM, Johan Lantz <johan.lantz@genaker.net>wrote: > Hi > > I have a general question on how to handle connection drops for a Mobile > pjsip client, in this case Windows Mobile. In particular I would be very > interested in which scenarios I can expect pjsip to resolve a connection > reestablishment and where I have to take action myself. > > In particular I am currently looking at what happens with my publish > sessions if the connection is lost. One scenario is that the presence > refresh timer is 300sec. I put the Windows Mobile phone into powersave by > tapping the power button. Since wifi is used at this time the connection is > instantly dropped. I then wait for more then 300 seconds which leads to the > user presence beeing set to unknown in the server. When the connection is > restored pjsip attempts to refresh the Publish but using the old e-tag value > leading to the server sending a 412 in return. I assume this is because the > server does not think the e-tag is valid anymore since the phone did not > republish within 300 sec. As this happens my publish session is destroyed > and I am not sure on the best approach to recover. > > The questions: > 1. For this specific case, do you think pjsip is doing this the right way > or should a complete Publish be sent instead? > > 2. In general I am a unsure on how to handle connection drops and Publish > failures. From my understanding the publish session is destroyed if a > Publish fails. Is it completly up to the application to handle this scenario > and do a complete republish when this occurs or do you have any guidelines > for handling connection drops in general. > > 3. How does pjsip detect that a connection is again available. Is it on > socket level or something else? > > Sorry for beeing a bit vague I will try to get back with even more detailed > scenarios when I understand what is my responsibility and what is handled by > pjsip. > > /Johan > > _______________________________________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip@lists.pjsip.org > http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org >