Version 0.1.6 from FTP

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2000-12-27 13:38:58 +00:00
parent ce46416cb3
commit 4e8bcf1af1
3 changed files with 30 additions and 9 deletions

View File

@@ -12,7 +12,8 @@
# #
CHANNEL_LIBS=chan_vofr.so chan_modem.so \ CHANNEL_LIBS=chan_vofr.so chan_modem.so \
chan_modem_aopen.so chan_iax.so chan_oss.so chan_modem_aopen.so chan_iax.so chan_oss.so \
chan_modem_i4l.so
CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/ixjuser.h ] && echo chan_phone.so) CHANNEL_LIBS+=$(shell [ -f /usr/include/linux/ixjuser.h ] && echo chan_phone.so)

View File

@@ -127,6 +127,15 @@ struct iax_peer {
struct sockaddr_in addr; struct sockaddr_in addr;
int formats; int formats;
struct in_addr mask; struct in_addr mask;
/* Dynamic Registration fields */
int dynamic;
struct sockaddr_in defaddr;
char regsecret[80];
char methods[80];
struct timeval nexpire;
int expire;
struct iax_ha *ha;
struct iax_peer *next; struct iax_peer *next;
}; };
@@ -2038,16 +2047,23 @@ static struct iax_peer *build_peer(char *name, struct ast_variable *v)
if (!strcasecmp(v->name, "secret")) if (!strcasecmp(v->name, "secret"))
strncpy(peer->secret, v->value, sizeof(peer->secret)); strncpy(peer->secret, v->value, sizeof(peer->secret));
else if (!strcasecmp(v->name, "host")) { else if (!strcasecmp(v->name, "host")) {
hp = gethostbyname(v->value); if (!strcasecmp(v->value, "dynamic")) {
if (hp) { /* They'll register with us */
memcpy(&peer->addr.sin_addr, hp->h_addr, sizeof(peer->addr.sin_addr)); peer->dynamic = 1;
memset(&peer->addr.sin_addr, 0, 4);
} else { } else {
ast_log(LOG_WARNING, "Unable to lookup '%s'\n", v->value); peer->dynamic = 0;
free(peer); hp = gethostbyname(v->value);
return NULL; if (hp) {
memcpy(&peer->addr.sin_addr, hp->h_addr, sizeof(peer->addr.sin_addr));
} else {
ast_log(LOG_WARNING, "Unable to lookup '%s'\n", v->value);
free(peer);
return NULL;
}
if (!maskfound)
inet_aton("255.255.255.255", &peer->mask);
} }
if (!maskfound)
inet_aton("255.255.255.255", &peer->mask);
} }
else if (!strcasecmp(v->name, "mask")) { else if (!strcasecmp(v->name, "mask")) {
maskfound++; maskfound++;

View File

@@ -38,6 +38,10 @@
#define AST_IAX_COMMAND_INVAL 10 #define AST_IAX_COMMAND_INVAL 10
#define AST_IAX_COMMAND_LAGRQ 11 #define AST_IAX_COMMAND_LAGRQ 11
#define AST_IAX_COMMAND_LAGRP 12 #define AST_IAX_COMMAND_LAGRP 12
#define AST_IAX_COMMAND_REGRQ 13
#define AST_IAX_COMMAND_REGRP 14
#define AST_DEFAULT_REG_EXPIRE 60 /* By default require re-registration once per minute */
#define AST_DEFAULT_IAX_PORTNO 5036 #define AST_DEFAULT_IAX_PORTNO 5036