From AC, 5 Years ago, written in C.
- view diff
Embed
  1.                 case REG_STATE_FAILED:
  2.                         {
  3.                                 int sec;
  4.  
  5.                                 if (gateway_ptr->fail_908_retry_seconds && gateway_ptr->failure_status == 908) {
  6.                                         sec = gateway_ptr->fail_908_retry_seconds;
  7.                                 } else if (gateway_ptr->failure_status == 503 || gateway_ptr->failure_status == 908 || gateway_ptr->failures < 1) {
  8.                                         sec = gateway_ptr->retry_seconds;
  9.                                 } else {
  10.                                         sec = gateway_ptr->retry_seconds * gateway_ptr->failures;
  11.                                 }
  12.  
  13.                                 switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "%s Failed Registration [%d], setting retry to %d seconds.\n",
  14.                                                                   gateway_ptr->name, gateway_ptr->failure_status, sec);
  15.  
  16.                                 gateway_ptr->retry = switch_epoch_time_now(NULL) + sec;
  17.                                 gateway_ptr->status = SOFIA_GATEWAY_DOWN;
  18.                                 gateway_ptr->state = REG_STATE_FAIL_WAIT;
  19.                                 gateway_ptr->failure_status = 0;
  20.  
  21.                         }
  22.