diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2005-06-09 21:11:30 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2005-06-09 21:11:30 +0000 |
commit | 57362701073c0cb0699fce7aba4e557c0e63431b (patch) | |
tree | fcf2b0545a0b06bbe9e8c8773806af66fb8faaaf /channels/chan_iax2.c | |
parent | bd325f52193b9b67c52a79c5bd2aae0e6ac9d871 (diff) |
add 'rtignoreexpire' option to allow Realtime addresses to be used regardless of expiration time (bug #4362)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5889 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-x | channels/chan_iax2.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 8d727b2d6..17d1f347c 100755 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -239,6 +239,7 @@ struct iax2_context { #define IAX_RTNOUPDATE (1 << 18) /* Don't send a realtime update */ #define IAX_RTAUTOCLEAR (1 << 19) /* erase me on expire */ #define IAX_FORCEJITTERBUF (1 << 20) /* Force jitterbuffer, even when bridged to a channel that can take jitter */ +#define IAX_RTIGNOREREGEXPIRE (1 << 21) static int global_rtautoclear = 120; @@ -2579,7 +2580,7 @@ static struct iax2_peer *realtime_peer(const char *peername) ast_set_flag(peer, IAX_TEMPONLY); } - if (dynamic) { + if (!ast_test_flag(&globalflags, IAX_RTIGNOREREGEXPIRE) && dynamic) { time(&nowtime); if ((nowtime - regseconds) > IAX_DEFAULT_REG_EXPIRE) { memset(&peer->addr, 0, sizeof(peer->addr)); @@ -8371,6 +8372,8 @@ static int set_config(char *config_file, int reload) ast_set2_flag((&globalflags), ast_true(v->value), IAX_MESSAGEDETAIL); else if (!strcasecmp(v->name, "rtcachefriends")) ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTCACHEFRIENDS); + else if (!strcasecmp(v->name, "rtignoreregexpire")) + ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTIGNOREREGEXPIRE); else if (!strcasecmp(v->name, "rtnoupdate")) ast_set2_flag((&globalflags), ast_true(v->value), IAX_RTNOUPDATE); else if (!strcasecmp(v->name, "rtautoclear")) { |