[SR-Users] #cfgutils: sleep(x) does not work in failure_route

Klaus Feichtinger klaus.lists at inode.at
Thu Nov 7 13:08:42 CET 2013


Hello Daniel,

I´ve patched the code and found that the return value of the 'sleep' command is
- as expected - differing in the scenarios. For scenario 1 (no provisional
response), the return value is '0' and for scenario 2, the return value is '2'
(see log output):

scenario 1:
Nov  7 12:40:51 sipsrvnode1 kamailio33[10974]: INFO: -<|XLOG|>-:  <FAILRELAY>
     s l e e p      2000ms / 2s
Nov  7 12:40:51 sipsrvnode1 kamailio33[10974]: DEBUG: cfgutils [cfgutils.c:650]:
sleep 2 seconds
Nov  7 12:40:53 sipsrvnode1 kamailio33[10974]: DEBUG: cfgutils [cfgutils.c:652]:
sleep-rc 0
Nov  7 12:40:53 sipsrvnode1 kamailio33[10974]: INFO: -<|XLOG|>-:  <FAILRELAY>
     s l e p t      2000ms / 2s
scenario 2:
Nov  7 12:41:38 sipsrvnode1 kamailio33[10975]: INFO: -<|XLOG|>-:  <FAILRELAY>
     s l e e p      2000ms / 2s
Nov  7 12:41:38 sipsrvnode1 kamailio33[10975]: DEBUG: cfgutils [cfgutils.c:650]:
sleep 2 seconds
Nov  7 12:41:38 sipsrvnode1 kamailio33[10975]: DEBUG: cfgutils [cfgutils.c:652]:
sleep-rc 2
Nov  7 12:41:38 sipsrvnode1 kamailio33[10975]: INFO: -<|XLOG|>-:  <FAILRELAY>
     s l e p t      2000ms / 2s
This means that the sleep command is interrupted (in scenario 2) by a signal, as
the return value is representing the "number of seconds left to sleep, if the
call was interrupted by a signal handler.".

Which signal is interrupting "sleep" in this scenario (only)   :-(   ?

Klaus

> Daniel-Constantin Mierla <miconda at gmail.com> hat am 7. November 2013 um 10:36
> geschrieben:
> 
>  Hello,
> 
>  can you try to see if sleep_us() works?
> 
>  It is rather strange because sleep() from cfgutils just uses sleep() from
> system library, nothing special internally... sleep is interrupted by signals
> as well. Can you patch the function in kamailio to log the return code from
> sleep()?
> 
>  Cheers,
>  Daniel
> 
>  On 11/7/13 8:40 AM, klaus.lists#inode.at wrote:
> 
>      > >      Hello,
> > 
> >      I have an update:
> > 
> >      today I´ve tested with kamailio version 4.0.4, but the behaviour is
> > still the same:  it is working fine only when no response has been received;
> > as soon as a provisional response is received, the failure route is ignoring
> > the "sleep" function.
> > 
> >      Klaus
> > 
> >       > > > Hello list,
> > > 
> > >       I have troubles using the function "usleep(x)" or "sleep(x)" (the
> > > behaviour is the same) of the "cfgutils" module
> > > (<http://kamailio.org/docs/modules/3.2.x/modules_k/cfgutils.html#idp76968>
> > > ) in the failure_route. According documentation, this function could be
> > > used in any route, including the failure_route, too. However, when I call
> > > this function, it does not show any reaction, if a transaction was already
> > > answered with a provisional response. It is still working fine, when a
> > > transaction is timing out, as no target socket is reachable. This is
> > > confusing me!
> > > 
> > >       Please find below some xlog messages from my configuration file in
> > > two scenarios (function "t_set_fr(20000, 10000);" is identic in both
> > > scenarios):
> > >       (1) scenario 1 is including a primary target, looked up in the
> > > registrar DB, which is unreachable; after transaction timeout I have
> > > inserted the function "sleep()" in the failure_route for forcing a delay
> > >       => here it is working fine (see timestamp)
> > > 
> > >       (2) scenario 2 is including a primary target which is responding,
> > > but not establishing the session; after transaction timeout the procedure
> > > is still the same as in scenario (1)
> > >       => here is no delay visible in the log and practically detectable
> > > 
> > >       From my point of view, this is a malfuntion! Does anybody see it
> > > different? I´ve tested these scenarios with kamailio-3.2.x and
> > > kamailio-3.3.x - no difference.
> > > 
> > >       Thanks for any hints!
> > > 
> > >       Klaus
> > > 
> > >       ################# SCENARIO (1)  ORIG TARGET IS UNREACHABLE
> > >  ##########################
> > >       Nov  6 15:58:25 sipsrvnode1 /usr/sbin/kamailio[28879]: INFO:
> > > -<|XLOG|>-:  <RELAY> is reached for RU:<sip:117002 at 10.16.48.226:5678> ,
> > > From:<sip:1101015555 at 10.16.48.71> , To:<sip:115300 at 10.16.48.44> , Method:
> > > INVITE, Call-ID: 1107651805 at 10.16.48.71 <mailto:1107651805 at 10.16.48.71>
> > > 
> > >       Nov  6 15:58:35 sipsrvnode1 /usr/sbin/kamailio[28880]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY> is reached with Code: 408
> > > From:<sip:1101015555 at 10.16.48.71> To:<sip:115300 at 10.16.48.44>
> > > 
> > >       Nov  6 15:58:35 sipsrvnode1 /usr/sbin/kamailio[28880]: INFO:
> > > -<|XLOG|>-:  failure_route <FAILRELAY> is reached because of a
> > > BRANCH_TIMEOUT of RU:<sip:117002 at 10.16.48.226:5678>
> > > 
> > >       Nov  6 15:58:35 sipsrvnode1 /usr/sbin/kamailio[28880]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY>      s l e e p      2000ms / 2s
> > > 
> > >       Nov  6 15:58:37 sipsrvnode1 /usr/sbin/kamailio[28880]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY>      s l e p t      2000ms / 2s
> > > 
> > >       Nov  6 15:58:37 sipsrvnode1 /usr/sbin/kamailio[28879]: INFO:
> > > -<|XLOG|>-:  <RELAYFB> is reached for RU:<sip:117003 at 10.16.48.226:7001> ,
> > > From:<sip:1101015555 at 10.16.48.71> , To:<sip:115300 at 10.16.48.44> , Method:
> > > INVITE, Call-ID: 1107651805 at 10.16.48.71 <mailto:1107651805 at 10.16.48.71>
> > > 
> > >       ################# SCENARIO (2) ORIG TARGET IS REACHABLE
> > >  ##########################
> > > 
> > >       Nov  6 16:02:14 sipsrvnode1 /usr/sbin/kamailio[29034]: INFO:
> > > -<|XLOG|>-:  <RELAY> is reached for RU:<sip:117002 at 10.16.48.226:5678> ,
> > > From:<sip:1101015555 at 10.16.48.71> , To:<sip:115300 at 10.16.48.44> , Method:
> > > INVITE, Call-ID: 553330101 at 10.16.48.71 <mailto:553330101 at 10.16.48.71>
> > > 
> > >       Nov  6 16:02:34 sipsrvnode1 /usr/sbin/kamailio[29036]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY> is reached with Code: 408
> > > From:<sip:5555 at 10.16.48.71> To:<sip:4000 at 10.16.48.44>
> > > 
> > >       Nov  6 16:02:34 sipsrvnode1 /usr/sbin/kamailio[29036]: INFO:
> > > -<|XLOG|>-:  failure_route <FAILRELAY> is reached because of a
> > > BRANCH_TIMEOUT of RU:<sip:117002 at 10.16.48.44>
> > > 
> > >       Nov  6 16:02:34 sipsrvnode1 /usr/sbin/kamailio[29036]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY>      s l e e p      2000ms / 2s
> > > 
> > >       Nov  6 16:02:34 sipsrvnode1 /usr/sbin/kamailio[29036]: INFO:
> > > -<|XLOG|>-:  <FAILRELAY>      s l e p t      2000ms / 2s
> > > 
> > >       Nov  6 16:02:34 sipsrvnode1 /usr/sbin/kamailio[29036]: INFO:
> > > -<|XLOG|>-:  <RELAYFB> is reached for RU:<sip:117003 at 10.16.48.44> ,
> > > From:<sip:5555 at 10.16.48.71> , To:<sip:4000 at 10.16.48.44> , Method: INVITE,
> > > Call-ID: 553330101 at 10.16.48.71 <mailto:553330101 at 10.16.48.71>
> > > 
> > >      > > 
> > 
> > 
> > 
> > 
> >      _______________________________________________
> >      SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> >      sr-users at lists.sip-router.org <mailto:sr-users at lists.sip-router.org>
> >      <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users>
> > 
> >  > 
>  --
>  Daniel-Constantin Mierla - <http://www.asipto.com>
>  <http://twitter.com/#!/miconda> - <http://www.linkedin.com/in/miconda>
>  Kamailio Advanced Trainings - Berlin, Nov 25-28
>    - more details about Kamailio trainings at <http://www.asipto.com> -
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20131107/8529aacc/attachment.html>


More information about the sr-users mailing list