mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-07 02:18:15 +00:00
Merged revisions 217916 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r217916 | tilghman | 2009-09-10 18:12:16 -0500 (Thu, 10 Sep 2009) | 2 lines Make calltoken support work with realtime users and peers. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@217920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -801,6 +801,7 @@ static AST_LIST_HEAD_STATIC(dpcache, iax2_dpcache);
|
|||||||
|
|
||||||
static void reg_source_db(struct iax2_peer *p);
|
static void reg_source_db(struct iax2_peer *p);
|
||||||
static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in *sin);
|
static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in *sin);
|
||||||
|
static struct iax2_user *realtime_user(const char *username, struct sockaddr_in *sin);
|
||||||
|
|
||||||
static int ast_cli_netstats(struct mansession *s, int fd, int limit_fmt);
|
static int ast_cli_netstats(struct mansession *s, int fd, int limit_fmt);
|
||||||
static char *complete_iax2_show_peer(const char *line, const char *word, int pos, int state);
|
static char *complete_iax2_show_peer(const char *line, const char *word, int pos, int state);
|
||||||
@@ -1839,7 +1840,11 @@ static int calltoken_required(struct sockaddr_in *sin, const char *name, int sub
|
|||||||
/* ----- Case 2 ----- */
|
/* ----- Case 2 ----- */
|
||||||
if ((subclass == IAX_COMMAND_NEW) && (user = find_user(find))) {
|
if ((subclass == IAX_COMMAND_NEW) && (user = find_user(find))) {
|
||||||
calltoken_required = user->calltoken_required;
|
calltoken_required = user->calltoken_required;
|
||||||
} else if ((subclass != IAX_COMMAND_NEW) && (peer = find_peer(find, 1))) {
|
} else if ((subclass == IAX_COMMAND_NEW) && (user = realtime_user(find, sin))) {
|
||||||
|
calltoken_required = user->calltoken_required;
|
||||||
|
} else if ((subclass != IAX_COMMAND_NEW) && (peer = find_peer(find, 0))) {
|
||||||
|
calltoken_required = peer->calltoken_required;
|
||||||
|
} else if ((subclass != IAX_COMMAND_NEW) && (peer = realtime_peer(find, sin))) {
|
||||||
calltoken_required = peer->calltoken_required;
|
calltoken_required = peer->calltoken_required;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3921,7 +3926,7 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
|
|||||||
if (!strcasecmp(tmp->name, "host")) {
|
if (!strcasecmp(tmp->name, "host")) {
|
||||||
struct ast_hostent ahp;
|
struct ast_hostent ahp;
|
||||||
struct hostent *hp;
|
struct hostent *hp;
|
||||||
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
||||||
/* No match */
|
/* No match */
|
||||||
ast_variables_destroy(var);
|
ast_variables_destroy(var);
|
||||||
var = NULL;
|
var = NULL;
|
||||||
@@ -4033,7 +4038,7 @@ static struct iax2_user *realtime_user(const char *username, struct sockaddr_in
|
|||||||
if (!strcasecmp(tmp->name, "host")) {
|
if (!strcasecmp(tmp->name, "host")) {
|
||||||
struct ast_hostent ahp;
|
struct ast_hostent ahp;
|
||||||
struct hostent *hp;
|
struct hostent *hp;
|
||||||
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
||||||
/* No match */
|
/* No match */
|
||||||
ast_variables_destroy(var);
|
ast_variables_destroy(var);
|
||||||
var = NULL;
|
var = NULL;
|
||||||
|
|||||||
@@ -3896,7 +3896,7 @@ static struct sip_peer *realtime_peer(const char *newpeername, struct sockaddr_i
|
|||||||
if (!strcasecmp(tmp->name, "host")) {
|
if (!strcasecmp(tmp->name, "host")) {
|
||||||
struct hostent *hp;
|
struct hostent *hp;
|
||||||
struct ast_hostent ahp;
|
struct ast_hostent ahp;
|
||||||
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
|
||||||
/* No match */
|
/* No match */
|
||||||
ast_variables_destroy(var);
|
ast_variables_destroy(var);
|
||||||
var = NULL;
|
var = NULL;
|
||||||
|
|||||||
@@ -4,51 +4,54 @@
|
|||||||
|
|
||||||
CREATE TABLE `iaxfriends` (
|
CREATE TABLE `iaxfriends` (
|
||||||
`name` varchar(40) NOT NULL default '',
|
`name` varchar(40) NOT NULL default '',
|
||||||
`username` varchar(40) NOT NULL default '',
|
`type` varchar(10) NOT NULL default 'friend', -- friend/user/peer
|
||||||
`secret` varchar(40) NOT NULL default '',
|
`username` varchar(40) NULL, -- username to send as peer
|
||||||
`dbsecret` varchar(40) NOT NULL default '',
|
`mailbox` varchar(40) NULL, -- mailbox@context
|
||||||
`context` varchar(40) NOT NULL default '',
|
`secret` varchar(40) NULL,
|
||||||
`regcontext` varchar(40) NOT NULL default '',
|
`dbsecret` varchar(40) NULL, -- In AstDB, location to store/retrieve secret
|
||||||
`host` varchar(40) NOT NULL default 'dynamic',
|
`context` varchar(40) NULL,
|
||||||
`ipaddr` varchar(20) NOT NULL default '',
|
`regcontext` varchar(40) NULL,
|
||||||
`port` int(6) NOT NULL default '0',
|
`host` varchar(40) NULL default 'dynamic',
|
||||||
`defaultip` varchar(20) NOT NULL default '',
|
`ipaddr` varchar(20) NULL, -- Must be updateable by Asterisk user
|
||||||
`sourceaddress` varchar(20) NOT NULL default '',
|
`port` int(5) NULL, -- Must be updateable by Asterisk user
|
||||||
`mask` varchar(20) NOT NULL default '',
|
`defaultip` varchar(20) NULL,
|
||||||
`regexten` varchar(40) NOT NULL default '',
|
`sourceaddress` varchar(20) NULL,
|
||||||
`regseconds` int(11) NOT NULL default '0',
|
`mask` varchar(20) NULL,
|
||||||
`accountcode` varchar(20) NOT NULL default '',
|
`regexten` varchar(40) NULL,
|
||||||
`mohinterpret` varchar(20) NOT NULL default '',
|
`regseconds` int(11) NULL, -- Must be updateable by Asterisk user
|
||||||
`mohsuggest` varchar(20) NOT NULL default '',
|
`accountcode` varchar(20) NULL,
|
||||||
`inkeys` varchar(40) NOT NULL default '',
|
`mohinterpret` varchar(20) NULL,
|
||||||
`outkey` varchar(40) NOT NULL default '',
|
`mohsuggest` varchar(20) NULL,
|
||||||
`language` varchar(10) NOT NULL default '',
|
`inkeys` varchar(40) NULL,
|
||||||
`callerid` varchar(40) NOT NULL default '',
|
`outkey` varchar(40) NULL,
|
||||||
`cid_number` varchar(40) NOT NULL default '',
|
`language` varchar(10) NULL,
|
||||||
`sendani` varchar(10) NOT NULL default '',
|
`callerid` varchar(100) NULL, -- The whole callerid string, or broken down in the next 3 fields
|
||||||
`fullname` varchar(40) NOT NULL default '',
|
`cid_number` varchar(40) NULL, -- The number portion of the callerid
|
||||||
`trunk` varchar(10) NOT NULL default '',
|
`sendani` varchar(10) NULL, -- yes/no
|
||||||
`auth` varchar(20) NOT NULL default '',
|
`fullname` varchar(40) NULL, -- The name portion of the callerid
|
||||||
`maxauthreq` varchar(15) NOT NULL default '',
|
`trunk` varchar(3) NULL, -- Yes/no
|
||||||
`encryption` varchar(20) NOT NULL default '',
|
`auth` varchar(20) NULL, -- RSA/md5/plaintext
|
||||||
`transfer` varchar(10) NOT NULL default '',
|
`maxauthreq` varchar(5) NULL, -- Maximum outstanding AUTHREQ calls {1-32767}
|
||||||
`jitterbuffer` varchar(10) NOT NULL default '',
|
`requirecalltoken` varchar(4) NULL, -- yes/no/auto
|
||||||
`forcejitterbuffer` varchar(10) NOT NULL default '',
|
`encryption` varchar(20) NULL, -- aes128/yes/no
|
||||||
`disallow` varchar(40) NOT NULL default 'all',
|
`transfer` varchar(10) NULL, -- mediaonly/yes/no
|
||||||
`allow` varchar(40) NOT NULL default '',
|
`jitterbuffer` varchar(3) NULL, -- yes/no
|
||||||
`codecpriority` varchar(40) NOT NULL default '',
|
`forcejitterbuffer` varchar(3) NULL, -- yes/no
|
||||||
`qualify` varchar(10) NOT NULL default '',
|
`disallow` varchar(40) NULL, -- all/{list-of-codecs}
|
||||||
`qualifysmoothing` varchar(10) NOT NULL default '',
|
`allow` varchar(40) NULL, -- all/{list-of-codecs}
|
||||||
`qualifyfreqok` varchar(10) NOT NULL default '',
|
`codecpriority` varchar(40) NULL,
|
||||||
`qualifyfreqnotok` varchar(10) NOT NULL default '',
|
`qualify` varchar(10) NULL, -- yes/no/{number of milliseconds}
|
||||||
`timezone` varchar(20) NOT NULL default '',
|
`qualifysmoothing` varchar(10) NULL, -- yes/no
|
||||||
`adsi` varchar(10) NOT NULL default '',
|
`qualifyfreqok` varchar(10) NULL, -- {number of milliseconds}|60000
|
||||||
`amaflags` varchar(20) NOT NULL default '',
|
`qualifyfreqnotok` varchar(10) NULL, -- {number of milliseconds}|10000
|
||||||
`setvar` varchar(200) NOT NULL default '',
|
`timezone` varchar(20) NULL,
|
||||||
|
`adsi` varchar(10) NULL, -- yes/no
|
||||||
|
`amaflags` varchar(20) NULL,
|
||||||
|
`setvar` varchar(200) NULL,
|
||||||
PRIMARY KEY (`name`),
|
PRIMARY KEY (`name`),
|
||||||
INDEX name (name, host),
|
INDEX name (name, host),
|
||||||
INDEX name2 (name, ipaddr, port),
|
INDEX name2 (name, ipaddr, port),
|
||||||
INDEX ipaddr (ipaddr, port),
|
INDEX ipaddr (ipaddr, port),
|
||||||
INDEX host (host, port),
|
INDEX host (host, port)
|
||||||
) TYPE=MyISAM;
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user