Index: channels/chan_sip.c =================================================================== RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v retrieving revision 1.836 diff -u -r1.836 chan_sip.c --- channels/chan_sip.c 2 Sep 2005 19:24:32 -0000 1.836 +++ channels/chan_sip.c 5 Sep 2005 13:33:13 -0000 @@ -128,6 +128,19 @@ #define RTP 1 #define NO_RTP 0 +/* States for outbound registrations (with register= lines in sip.conf */ +enum reg_state { + REG_STATE_UNREGISTERED = 0, + REG_STATE_REGSENT, + REG_STATE_AUTHSENT, + REG_STATE_REGISTERED, + REG_STATE_REJECTED, + REG_STATE_TIMEOUT, + REG_STATE_NOAUTH, + REG_STATE_FAILED +}; + + /* Do _NOT_ make any changes to this enum, or the array following it; if you think you are doing the right thing, you are probably not doing the right thing. If you think there are changes @@ -742,16 +755,6 @@ AST_MUTEX_DEFINE_STATIC(sip_reload_lock); static int sip_reloading = 0; -/* States for outbound registrations (with register= lines in sip.conf */ -#define REG_STATE_UNREGISTERED 0 -#define REG_STATE_REGSENT 1 -#define REG_STATE_AUTHSENT 2 -#define REG_STATE_REGISTERED 3 -#define REG_STATE_REJECTED 4 -#define REG_STATE_TIMEOUT 5 -#define REG_STATE_NOAUTH 6 -#define REG_STATE_FAILED 7 - /* sip_registry: Registrations with other SIP proxies */ struct sip_registry { @@ -769,7 +772,7 @@ int timeout; /* sched id of sip_reg_timeout */ int refresh; /* How often to refresh */ struct sip_pvt *call; /* create a sip_pvt structure for each outbound "registration call" in progress */ - int regstate; /* Registration state (see above) */ + enum reg_state regstate; /* Registration state (see above) */ int callid_valid; /* 0 means we haven't chosen callid for this registry yet. */ char callid[80]; /* Global CallID for this registry */ unsigned int ocseq; /* Sequence number we got to for REGISTERs for this registry */ @@ -4863,7 +4866,7 @@ return send_request(p, &req, 1, p->ocseq); } -static char *regstate2str(int regstate) +static char *regstate2str(enum reg_state regstate) { switch(regstate) { case REG_STATE_FAILED: @@ -4882,9 +4885,8 @@ return "Timeout"; case REG_STATE_NOAUTH: return "No Authentication"; - default: - return "Unknown"; } + return ""; } static int transmit_register(struct sip_registry *r, int sipmethod, char *auth, char *authheader); @@ -4955,11 +4957,11 @@ /* We could add an external notification here... steal it from app_voicemail :-) */ ast_log(LOG_NOTICE, " -- Giving up forever trying to register '%s@%s'\n", r->username, r->hostname); - r->regstate=REG_STATE_FAILED; + r->regstate = REG_STATE_FAILED; } else { - r->regstate=REG_STATE_UNREGISTERED; + r->regstate = REG_STATE_UNREGISTERED; r->timeout = -1; - res=transmit_register(r, SIP_REGISTER, NULL, NULL); + res = transmit_register(r, SIP_REGISTER, NULL, NULL); } manager_event(EVENT_FLAG_SYSTEM, "Registry", "Channel: SIP\r\nUsername: %s\r\nDomain: %s\r\nStatus: %s\r\n", r->username, r->hostname, regstate2str(r->regstate)); ASTOBJ_UNREF(r,sip_registry_destroy); @@ -4978,7 +4980,7 @@ struct sip_pvt *p; /* exit if we are already in process with this registrar ?*/ - if ( r == NULL || ((auth==NULL) && (r->regstate==REG_STATE_REGSENT || r->regstate==REG_STATE_AUTHSENT))) { + if ( r == NULL || ((auth == NULL) && (r->regstate == REG_STATE_REGSENT || r->regstate == REG_STATE_AUTHSENT))) { ast_log(LOG_NOTICE, "Strange, trying to register %s@%s when registration already pending\n", r->username, r->hostname); return 0; } @@ -5147,7 +5149,7 @@ ast_verbose("REGISTER %d headers, %d lines\n", p->initreq.headers, p->initreq.lines); } determine_firstline_parts(&p->initreq); - r->regstate=auth?REG_STATE_AUTHSENT:REG_STATE_REGSENT; + r->regstate = auth ? REG_STATE_AUTHSENT : REG_STATE_REGSENT; r->regattempts++; /* Another attempt */ if (option_debug > 3) ast_verbose("REGISTER attempt %d to %s@%s\n", r->regattempts, r->username, r->hostname); @@ -8926,7 +8928,7 @@ return 0; } - r->regstate=REG_STATE_REGISTERED; + r->regstate = REG_STATE_REGISTERED; manager_event(EVENT_FLAG_SYSTEM, "Registry", "Channel: SIP\r\nDomain: %s\r\nStatus: %s\r\n", r->hostname, regstate2str(r->regstate)); r->regattempts = 0; ast_log(LOG_DEBUG, "Registration successful\n");