mirror of
https://github.com/asterisk/asterisk.git
synced 2026-03-27 08:13:43 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
634b8b8058 | ||
|
|
a1c1b68934 |
2
CREDITS
2
CREDITS
@@ -95,7 +95,7 @@ Leif Madsen, Jared Smith and Jim van Meggelen - the Asterisk book
|
||||
available under a Creative Commons License at http://www.asteriskdocs.org
|
||||
|
||||
=== HOLD MUSIC ===
|
||||
Music provided by www.opsound.org
|
||||
Music provided by www.freeplaymusic.com
|
||||
|
||||
=== OTHER SOURCE CODE IN ASTERISK ===
|
||||
|
||||
|
||||
47
ChangeLog
47
ChangeLog
@@ -1,50 +1,3 @@
|
||||
2009-01-06 Leif Madsen <lmadsen@digium.com>
|
||||
|
||||
* Asterisk 1.2.31 released
|
||||
|
||||
2009-01-06 20:44 +0000 [r167259] Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* channels/chan_iax2.c: Security fix AST-2009-001.
|
||||
|
||||
2008-12-10 Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* Asterisk 1.2.30.4 released
|
||||
|
||||
2008-12-10 21:06 +0000 [r162868] Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* channels/chan_iax2.c: Fix for AST-2008-012
|
||||
|
||||
2008-12-05 20:50 +0000 [r161421] Sean Bright <sean.bright@gmail.com>
|
||||
|
||||
* include/asterisk/astobj2.h, astobj2.c: Fix build errors on
|
||||
FreeBSD (uint -> unsigned int). (closes issue #14006) Reported
|
||||
by: alphaque Patches: astobj2.h-patch uploaded by alphaque
|
||||
(license 259) (Slightly modified by seanbright)
|
||||
|
||||
2008-12-01 Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* Asterisk 1.2.30.3 released
|
||||
|
||||
2008-11-25 21:37 +0000 [r159245] Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* channels/chan_iax2.c: Regression fix for last security fix. Set
|
||||
the iseqno correctly. (closes issue #13918) Reported by:
|
||||
ffloimair Patches: 20081119__bug13918.diff.txt uploaded by
|
||||
Corydon76 (license 14) Tested by: ffloimair
|
||||
|
||||
2008-08-09 Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* Asterisk 1.2.30.2 released
|
||||
|
||||
2008-08-09 15:24 +0000 [r136945] Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* include/asterisk/compat.h, include/asterisk/astobj2.h: Regression
|
||||
fixes for Solaris
|
||||
|
||||
2008-07-25 15:00 +0000 [r133577] Russell Bryant <russell@digium.com>
|
||||
|
||||
* LICENSE: Fix the IAX2 URI for calling Digium
|
||||
|
||||
2008-07-23 Tilghman Lesher <tlesher@digium.com>
|
||||
|
||||
* Asterisk 1.2.30.1 released
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -58,7 +58,7 @@ contact us:
|
||||
+1.877.546.8963 (via telephone in the USA)
|
||||
+1.256.428.6000 (via telephone outside the USA)
|
||||
+1.256.864.0464 (via FAX inside or outside the USA)
|
||||
IAX2/pbx.digium.com (via IAX2)
|
||||
IAX2/misery.digium.com/6000 (via IAX2)
|
||||
licensing@digium.com (via email)
|
||||
|
||||
Digium, Inc.
|
||||
|
||||
8
README.fpm
Normal file
8
README.fpm
Normal file
@@ -0,0 +1,8 @@
|
||||
About Hold Music
|
||||
================
|
||||
Digium has licensed the music included with
|
||||
the Asterisk distribution From FreePlayMusic
|
||||
for use and distribution with Asterisk. It
|
||||
is licensed ONLY for use as hold music within
|
||||
an Asterisk based PBX.
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
About Hold Music
|
||||
================
|
||||
These files were obtained from http://opsound.org, where the authors placed them
|
||||
under the Creative Commons Attribution-Share Alike 2.5 license, a copy of which
|
||||
may be found at http://creativecommons.org.
|
||||
|
||||
Credits
|
||||
================
|
||||
macroform-cold_day - Paul Shuler (Macroform)
|
||||
paulshuler@gmail.com - http://macroform.bandcamp.com/
|
||||
|
||||
macroform-robot_dity - Paul Shuler (Macroform)
|
||||
paulshuler@gmail.com - http://macroform.bandcamp.com/
|
||||
|
||||
macroform-the_simplicity - Paul Shuler (Macroform)
|
||||
paulshuler@gmail.com - http://macroform.bandcamp.com/
|
||||
|
||||
manolo_camp-morning_coffee - Manolo Camp
|
||||
beatbastard@gmx.net - http://ccmixter.org/people/ManoloCamp
|
||||
|
||||
reno_project-system - Reno Project
|
||||
renoproject@hotmail.com - http://www.jamendo.com/en/album/23661
|
||||
@@ -294,7 +294,7 @@ static int hash_zero(const void *user_obj, const int flags)
|
||||
* A container is just an object, after all!
|
||||
*/
|
||||
struct ao2_container *
|
||||
ao2_container_alloc(const unsigned int n_buckets, ao2_hash_fn hash_fn,
|
||||
ao2_container_alloc(const uint n_buckets, ao2_hash_fn hash_fn,
|
||||
ao2_callback_fn cmp_fn)
|
||||
{
|
||||
/* XXX maybe consistency check on arguments ? */
|
||||
|
||||
@@ -164,7 +164,6 @@ static int trunkfreq = 20;
|
||||
static int authdebug = 1;
|
||||
static int autokill = 0;
|
||||
static int iaxcompat = 0;
|
||||
static int lastauthmethod = 0;
|
||||
|
||||
static int iaxdefaultdpcache=10 * 60; /* Cache dialplan entries for 10 minutes by default */
|
||||
|
||||
@@ -2751,7 +2750,7 @@ static struct iax2_peer *realtime_peer(const char *peername, struct sockaddr_in
|
||||
if (peername) {
|
||||
var = ast_load_realtime("iaxpeers", "name", peername, "host", "dynamic", NULL);
|
||||
if (!var && sin)
|
||||
var = ast_load_realtime("iaxpeers", "name", peername, "host", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), (char *) NULL);
|
||||
var = ast_load_realtime("iaxpeers", "name", peername, "host", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
|
||||
} else if (sin) {
|
||||
char porta[25];
|
||||
ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr);
|
||||
@@ -2875,7 +2874,7 @@ static struct iax2_user *realtime_user(const char *username, struct sockaddr_in
|
||||
|
||||
var = ast_load_realtime("iaxusers", "name", username, "host", "dynamic", NULL);
|
||||
if (!var && sin)
|
||||
var = ast_load_realtime("iaxusers", "name", username, "host", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), (char *) NULL);
|
||||
var = ast_load_realtime("iaxusers", "name", username, "host", ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
|
||||
if (!var && sin) {
|
||||
char porta[6];
|
||||
snprintf(porta, sizeof(porta), "%d", ntohs(sin->sin_port));
|
||||
@@ -3103,7 +3102,7 @@ struct parsed_dial_string {
|
||||
static int send_apathetic_reply(unsigned short callno, unsigned short dcallno, struct sockaddr_in *sin, int command, int ts, unsigned char seqno)
|
||||
{
|
||||
struct ast_iax2_full_hdr f = { .scallno = htons(0x8000 | callno), .dcallno = htons(dcallno),
|
||||
.ts = htonl(ts), .iseqno = seqno, .oseqno = 0, .type = AST_FRAME_IAX,
|
||||
.ts = htonl(ts), .iseqno = seqno, .oseqno = seqno, .type = AST_FRAME_IAX,
|
||||
.csub = compress_subclass(command) };
|
||||
|
||||
return sendto(defaultsockfd, &f, sizeof(f), 0, (struct sockaddr *)sin, sizeof(*sin));
|
||||
@@ -6088,34 +6087,23 @@ static int registry_authrequest(char *name, int callno)
|
||||
{
|
||||
struct iax_ie_data ied;
|
||||
struct iax2_peer *p;
|
||||
int authmethods;
|
||||
|
||||
if (!iaxs[callno]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* SLD: third call to find_peer in registration */
|
||||
if ((p = find_peer(name, 1))) {
|
||||
lastauthmethod = p->authmethods;
|
||||
}
|
||||
|
||||
authmethods = p ? p->authmethods : lastauthmethod ? lastauthmethod : (IAX_AUTH_PLAINTEXT | IAX_AUTH_MD5);
|
||||
if (p && ast_test_flag(p, IAX_TEMPONLY)) {
|
||||
destroy_peer(p);
|
||||
} else if (!delayreject) {
|
||||
ast_log(LOG_WARNING, "No such peer '%s'\n", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
memset(&ied, 0, sizeof(ied));
|
||||
iax_ie_append_short(&ied, IAX_IE_AUTHMETHODS, p->authmethods);
|
||||
if (authmethods & (IAX_AUTH_RSA | IAX_AUTH_MD5)) {
|
||||
/* Build the challenge */
|
||||
snprintf(iaxs[callno]->challenge, sizeof(iaxs[callno]->challenge), "%d", rand());
|
||||
iax_ie_append_str(&ied, IAX_IE_CHALLENGE, iaxs[callno]->challenge);
|
||||
}
|
||||
iax_ie_append_str(&ied, IAX_IE_USERNAME, name);
|
||||
return send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_REGAUTH, 0, ied.buf, ied.pos, -1);;
|
||||
p = find_peer(name, 1);
|
||||
if (p) {
|
||||
memset(&ied, 0, sizeof(ied));
|
||||
iax_ie_append_short(&ied, IAX_IE_AUTHMETHODS, p->authmethods);
|
||||
if (p->authmethods & (IAX_AUTH_RSA | IAX_AUTH_MD5)) {
|
||||
/* Build the challenge */
|
||||
snprintf(iaxs[callno]->challenge, sizeof(iaxs[callno]->challenge), "%d", rand());
|
||||
iax_ie_append_str(&ied, IAX_IE_CHALLENGE, iaxs[callno]->challenge);
|
||||
}
|
||||
iax_ie_append_str(&ied, IAX_IE_USERNAME, name);
|
||||
if (ast_test_flag(p, IAX_TEMPONLY))
|
||||
destroy_peer(p);
|
||||
return send_command(iaxs[callno], AST_FRAME_IAX, IAX_COMMAND_REGAUTH, 0, ied.buf, ied.pos, -1);;
|
||||
}
|
||||
ast_log(LOG_WARNING, "No such peer '%s'\n", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int registry_rerequest(struct iax_ies *ies, int callno, struct sockaddr_in *sin)
|
||||
@@ -6854,7 +6842,7 @@ static int socket_read(int *id, int fd, short events, void *cbdata)
|
||||
/* Deal with POKE/PONG without allocating a callno */
|
||||
if (f.frametype == AST_FRAME_IAX && f.subclass == IAX_COMMAND_POKE) {
|
||||
/* Reply back with a PONG, but don't care about the result. */
|
||||
send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_PONG, ntohs(fh->ts), fh->iseqno + 1);
|
||||
send_apathetic_reply(1, ntohs(fh->scallno), &sin, IAX_COMMAND_PONG, ntohs(fh->ts), fh->oseqno);
|
||||
return 1;
|
||||
} else if (f.frametype == AST_FRAME_IAX && f.subclass == IAX_COMMAND_ACK && dcallno == 1) {
|
||||
/* Ignore */
|
||||
|
||||
@@ -17,8 +17,6 @@
|
||||
#ifndef _ASTERISK_ASTOBJ2_H
|
||||
#define _ASTERISK_ASTOBJ2_H
|
||||
|
||||
#include "asterisk/compat.h"
|
||||
|
||||
/*! \file
|
||||
*
|
||||
* \brief Object Model implementing objects and containers.
|
||||
@@ -332,7 +330,7 @@ struct ao2_container;
|
||||
*
|
||||
* destructor is set implicitly.
|
||||
*/
|
||||
struct ao2_container *ao2_container_alloc(const unsigned int n_buckets,
|
||||
struct ao2_container *ao2_container_alloc(const uint n_buckets,
|
||||
ao2_hash_fn hash_fn, ao2_callback_fn cmp_fn);
|
||||
|
||||
/*!
|
||||
@@ -529,11 +527,11 @@ struct ao2_iterator {
|
||||
/*! current bucket */
|
||||
int bucket;
|
||||
/*! container version */
|
||||
unsigned int c_version;
|
||||
uint c_version;
|
||||
/*! pointer to the current object */
|
||||
void *obj;
|
||||
/*! container version when the object was created */
|
||||
unsigned int version;
|
||||
uint version;
|
||||
};
|
||||
|
||||
struct ao2_iterator ao2_iterator_init(struct ao2_container *c, int flags);
|
||||
|
||||
@@ -54,7 +54,6 @@
|
||||
typedef unsigned char u_int8_t;
|
||||
typedef unsigned short u_int16_t;
|
||||
typedef unsigned int u_int32_t;
|
||||
typedef unsigned int uint;
|
||||
#endif
|
||||
|
||||
char* strsep(char** str, const char* delims);
|
||||
|
||||
@@ -1,7 +1,3 @@
|
||||
About Hold Music
|
||||
================
|
||||
These files were obtained from http://opsound.org, where the authors placed them
|
||||
under the Creative Commons Attribution-Share Alike 2.5 license, a copy of which
|
||||
may be found at http://creativecommons.org.
|
||||
|
||||
|
||||
Music Provided By www.freeplaymusic.com. These sound files are provided by
|
||||
Digium under license from Freeplay Music Corporation for use in conjunction
|
||||
with the Asterisk software only.
|
||||
|
||||
BIN
sounds/moh/fpm-calm-river.mp3
Normal file
BIN
sounds/moh/fpm-calm-river.mp3
Normal file
Binary file not shown.
BIN
sounds/moh/fpm-sunshine.mp3
Normal file
BIN
sounds/moh/fpm-sunshine.mp3
Normal file
Binary file not shown.
BIN
sounds/moh/fpm-world-mix.mp3
Normal file
BIN
sounds/moh/fpm-world-mix.mp3
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user