[asterisk-commits] oej: branch oej/calleridutf8 r110626 - in /team/oej/calleridutf8: ./ apps/ bu...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Tue Mar 25 06:16:26 CDT 2008
Author: oej
Date: Tue Mar 25 06:16:25 2008
New Revision: 110626
URL: http://svn.digium.com/view/asterisk?view=rev&rev=110626
Log:
It compiles again.
Removed:
team/oej/calleridutf8/main/minimime/
Modified:
team/oej/calleridutf8/ (props changed)
team/oej/calleridutf8/CHANGES
team/oej/calleridutf8/Makefile
team/oej/calleridutf8/acinclude.m4
team/oej/calleridutf8/apps/app_chanspy.c
team/oej/calleridutf8/apps/app_voicemail.c
team/oej/calleridutf8/build_tools/cflags.xml
team/oej/calleridutf8/build_tools/make_buildopts_h
team/oej/calleridutf8/build_tools/menuselect-deps.in
team/oej/calleridutf8/channels/chan_console.c
team/oej/calleridutf8/channels/chan_oss.c
team/oej/calleridutf8/channels/chan_sip.c
team/oej/calleridutf8/channels/chan_skinny.c
team/oej/calleridutf8/configs/sip.conf.sample
team/oej/calleridutf8/configs/sip_notify.conf.sample
team/oej/calleridutf8/configure
team/oej/calleridutf8/configure.ac
team/oej/calleridutf8/contrib/init.d/rc.suse.asterisk
team/oej/calleridutf8/include/asterisk/autoconfig.h.in
team/oej/calleridutf8/include/asterisk/dnsmgr.h
team/oej/calleridutf8/include/asterisk/pbx.h
team/oej/calleridutf8/main/Makefile
team/oej/calleridutf8/main/dial.c
team/oej/calleridutf8/main/features.c
team/oej/calleridutf8/main/http.c
team/oej/calleridutf8/main/pbx.c
team/oej/calleridutf8/main/utils.c
team/oej/calleridutf8/makeopts.in
Propchange: team/oej/calleridutf8/
------------------------------------------------------------------------------
automerge = http://www.codename-pineapple.org/
Propchange: team/oej/calleridutf8/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.
Propchange: team/oej/calleridutf8/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.
Propchange: team/oej/calleridutf8/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Tue Mar 25 06:16:25 2008
@@ -1,1 +1,1 @@
-/trunk:1-108765
+/trunk:1-109350
Modified: team/oej/calleridutf8/CHANGES
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/CHANGES?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/CHANGES (original)
+++ team/oej/calleridutf8/CHANGES Tue Mar 25 06:16:25 2008
@@ -167,6 +167,8 @@
SIP session.
* Added TCP and TLS support for SIP. See doc/siptls.txt and configs/sip.conf.sample for
more information on how it is used.
+ * Added a new configuration option "authfailureevents" that enables manager events when
+ a peer can't authenticate properly.
IAX2 changes
------------
Modified: team/oej/calleridutf8/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/Makefile?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/Makefile (original)
+++ team/oej/calleridutf8/Makefile Tue Mar 25 06:16:25 2008
@@ -350,7 +350,7 @@
@echo "****"
@exit 1
-menuselect.makeopts: menuselect/menuselect menuselect-tree
+menuselect.makeopts: menuselect/menuselect menuselect-tree makeopts
menuselect/menuselect --check-deps $(GLOBAL_MAKEOPTS) $(USER_MAKEOPTS) menuselect.makeopts
$(MOD_SUBDIRS_EMBED_LDSCRIPT):
@@ -445,7 +445,7 @@
@$(MAKE) -C sounds dist-clean
rm -f menuselect.makeopts makeopts menuselect-tree menuselect.makedeps
rm -f makeopts.embed_rules
- rm -f config.log config.status
+ rm -f config.log config.status config.cache
rm -rf autom4te.cache
rm -f include/asterisk/autoconfig.h
rm -f include/asterisk/buildopts.h
Modified: team/oej/calleridutf8/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/acinclude.m4?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/acinclude.m4 (original)
+++ team/oej/calleridutf8/acinclude.m4 Tue Mar 25 06:16:25 2008
@@ -114,7 +114,7 @@
AC_DEFINE([HAVE_$1], 1, [Define if your system has the $1 headers.])
AC_DEFINE([HAVE_$1_VERSION], $4, [Define $1 headers version])
],
- [ AC_MSG_RESULT(no) ]
+ [ AC_MSG_RESULT(no) ]
)
CPPFLAGS="${saved_cppflags}"
fi
Modified: team/oej/calleridutf8/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_chanspy.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/apps/app_chanspy.c (original)
+++ team/oej/calleridutf8/apps/app_chanspy.c Tue Mar 25 06:16:25 2008
@@ -275,8 +275,10 @@
/* We now hold the channel lock on spyee */
- if (ast_check_hangup(chan) || ast_check_hangup(spyee))
+ if (ast_check_hangup(chan) || ast_check_hangup(spyee)) {
+ ast_channel_unlock(spyee);
return 0;
+ }
name = ast_strdupa(spyee->name);
ast_verb(2, "Spying on channel %s\n", name);
Modified: team/oej/calleridutf8/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_voicemail.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/apps/app_voicemail.c (original)
+++ team/oej/calleridutf8/apps/app_voicemail.c Tue Mar 25 06:16:25 2008
@@ -8017,6 +8017,7 @@
static void mwi_sub_event_cb(const struct ast_event *event, void *userdata)
{
const char *mailbox;
+ const char *context;
uint32_t uniqueid;
unsigned int len;
struct mwi_sub *mwi_sub;
@@ -8028,12 +8029,16 @@
return;
mailbox = ast_event_get_ie_str(event, AST_EVENT_IE_MAILBOX);
+ context = ast_event_get_ie_str(event, AST_EVENT_IE_CONTEXT);
uniqueid = ast_event_get_ie_uint(event, AST_EVENT_IE_UNIQUEID);
len = sizeof(*mwi_sub);
if (!ast_strlen_zero(mailbox))
len += strlen(mailbox);
+ if (!ast_strlen_zero(context))
+ len += strlen(context) + 1; /* Allow for seperator */
+
if (!(mwi_sub = ast_calloc(1, len)))
return;
@@ -8041,6 +8046,11 @@
if (!ast_strlen_zero(mailbox))
strcpy(mwi_sub->mailbox, mailbox);
+ if (!ast_strlen_zero(context)) {
+ strcat(mwi_sub->mailbox, "@");
+ strcat(mwi_sub->mailbox, context);
+ }
+
AST_RWLIST_WRLOCK(&mwi_subs);
AST_RWLIST_INSERT_TAIL(&mwi_subs, mwi_sub, entry);
AST_RWLIST_UNLOCK(&mwi_subs);
@@ -8048,8 +8058,6 @@
static void start_poll_thread(void)
{
- pthread_attr_t attr;
-
mwi_sub_sub = ast_event_subscribe(AST_EVENT_SUB, mwi_sub_event_cb, NULL,
AST_EVENT_IE_EVENTTYPE, AST_EVENT_IE_PLTYPE_UINT, AST_EVENT_MWI,
AST_EVENT_IE_END);
@@ -8063,9 +8071,7 @@
poll_thread_run = 1;
- pthread_attr_init(&attr);
- ast_pthread_create(&poll_thread, &attr, mb_poll_thread, NULL);
- pthread_attr_destroy(&attr);
+ ast_pthread_create(&poll_thread, NULL, mb_poll_thread, NULL);
}
static void stop_poll_thread(void)
Modified: team/oej/calleridutf8/build_tools/cflags.xml
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/build_tools/cflags.xml?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/build_tools/cflags.xml (original)
+++ team/oej/calleridutf8/build_tools/cflags.xml Tue Mar 25 06:16:25 2008
@@ -1,5 +1,9 @@
<category name="MENUSELECT_CFLAGS" displayname="Compiler Flags" positive_output="yes" remove_on_change=".lastclean">
<member name="DONT_OPTIMIZE" displayname="Disable Optimizations by the Compiler">
+ </member>
+ <member name="ENABLE_UPLOADS" displayname="Enable HTTP uploads">
+ <defaultenabled>yes</defaultenabled>
+ <depend>gmime</depend>
</member>
<member name="DEBUG_THREADS" displayname="Enable Thread Debugging">
</member>
Modified: team/oej/calleridutf8/build_tools/make_buildopts_h
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/build_tools/make_buildopts_h?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/build_tools/make_buildopts_h (original)
+++ team/oej/calleridutf8/build_tools/make_buildopts_h Tue Mar 25 06:16:25 2008
@@ -7,11 +7,11 @@
*/
END
-TMP=`${GREP} MENUSELECT_CFLAGS menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'`
+TMP=`${GREP} -e ^MENUSELECT_CFLAGS menuselect.makeopts | sed 's/MENUSELECT_CFLAGS\=//g' | sed 's/-D//g'`
for x in ${TMP}; do
echo "#define ${x} 1"
done
-TMP=`${GREP} MENUSELECT_BUILD_DEPS menuselect.makeopts | sed 's/MENUSELECT_BUILD_DEPS\=//g'`
+TMP=`${GREP} -e ^MENUSELECT_BUILD_DEPS menuselect.makeopts | sed 's/MENUSELECT_BUILD_DEPS\=//g'`
for x in ${TMP}; do
x2=`echo ${x} | tr a-z A-Z`
echo "#define AST_MODULE_${x2} 1"
Modified: team/oej/calleridutf8/build_tools/menuselect-deps.in
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/build_tools/menuselect-deps.in?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/build_tools/menuselect-deps.in (original)
+++ team/oej/calleridutf8/build_tools/menuselect-deps.in Tue Mar 25 06:16:25 2008
@@ -2,6 +2,7 @@
CRYPTO=@PBX_CRYPTO@
CURL=@PBX_CURL@
FREETDS=@PBX_FREETDS@
+GMIME=@PBX_GMIME@
GNU_LD=@GNU_LD@
GSM=@PBX_GSM@
GTK2=@PBX_GTK2@
Modified: team/oej/calleridutf8/channels/chan_console.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_console.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/channels/chan_console.c (original)
+++ team/oej/calleridutf8/channels/chan_console.c Tue Mar 25 06:16:25 2008
@@ -135,6 +135,7 @@
AST_STRING_FIELD(cid_num);
/*! Default CallerID name */
AST_STRING_FIELD(cid_name);
+ AST_STRING_FIELD(cid_utf8name);
/*! Default MOH class to listen to, if:
* - No MOH class set on the channel
* - Peer channel putting this device on hold did not suggest a class */
@@ -415,8 +416,7 @@
{
struct ast_channel *chan;
- if (!(chan = ast_channel_alloc(1, state, pvt->cid_num, pvt->cid_name, NULL,
- ext, ctx, 0, "Console/%s", pvt->name))) {
+ if (!(chan = ast_channel_alloc(1, state, pvt->cid_num, pvt->cid_name, pvt->cid_utf8name, NULL, ext, ctx, 0, "Console/%s", pvt->name))) {
return NULL;
}
@@ -1236,6 +1236,7 @@
ast_string_field_set(pvt, language, "");
ast_string_field_set(pvt, cid_num, "");
ast_string_field_set(pvt, cid_name, "");
+ ast_string_field_set(pvt, cid_utf8name, "");
pvt->overridecontext = 0;
pvt->autoanswer = 0;
@@ -1248,6 +1249,7 @@
ast_string_field_set(pvt, language, globals.language);
ast_string_field_set(pvt, cid_num, globals.cid_num);
ast_string_field_set(pvt, cid_name, globals.cid_name);
+ ast_string_field_set(pvt, cid_utf8name, globals.cid_utf8name);
pvt->overridecontext = globals.overridecontext;
pvt->autoanswer = globals.autoanswer;
@@ -1284,6 +1286,7 @@
CV_STRFIELD("extension", pvt, exten);
CV_STRFIELD("mohinterpret", pvt, mohinterpret);
CV_STRFIELD("language", pvt, language);
+ CV_STRFIELD("calleridutf8", pvt, cid_utf8name);
CV_F("callerid", store_callerid(pvt, value));
CV_BOOL("overridecontext", pvt->overridecontext);
CV_BOOL("autoanswer", pvt->autoanswer);
Modified: team/oej/calleridutf8/channels/chan_oss.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_oss.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/channels/chan_oss.c (original)
+++ team/oej/calleridutf8/channels/chan_oss.c Tue Mar 25 06:16:25 2008
@@ -789,7 +789,7 @@
{
struct ast_channel *c;
- c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", "", "", ext, ctx, 0, "OSS/%s", o->device + 5);
+ c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", "", "", ext, ctx, 0, "Console/%s", o->device + 5);
if (c == NULL)
return NULL;
c->tech = &oss_tech;
Modified: team/oej/calleridutf8/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_sip.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/channels/chan_sip.c (original)
+++ team/oej/calleridutf8/channels/chan_sip.c Tue Mar 25 06:16:25 2008
@@ -705,6 +705,7 @@
static char global_sdpowner[AST_MAX_EXTENSION]; /*!< SDP owner name for the SIP channel */
static int allow_external_domains; /*!< Accept calls to external SIP domains? */
static int global_callevents; /*!< Whether we send manager events or not */
+static int global_authfailureevents; /*!< Whether we send authentication failure manager events or not. Default no. */
static int global_t1; /*!< T1 time */
static int global_t1min; /*!< T1 roundtrip time minimum */
static int global_timer_b; /*!< Timer B - RFC 3261 Section 17.1.1.2 */
@@ -1548,7 +1549,6 @@
struct timeval regtime; /*!< Last successful registration time */
int callid_valid; /*!< 0 means we haven't chosen callid for this registry yet. */
unsigned int ocseq; /*!< Sequence number we got to for REGISTERs for this registry */
- struct sockaddr_in us; /*!< Who the server thinks we are */
int noncecount; /*!< Nonce-count */
char lastmsg[256]; /*!< Last Message sent/received */
};
@@ -3092,7 +3092,7 @@
ntohs(dst->sin_port), req->data->str);
}
if (p->do_history) {
- struct sip_request tmp;
+ struct sip_request tmp = { .rlPart1 = NULL, };
parse_copy(&tmp, req);
append_history(p, reliable ? "TxRespRel" : "TxResp", "%s / %s - %s", tmp.data->str, get_header(&tmp, "CSeq"),
(tmp.method == SIP_RESPONSE || tmp.method == SIP_UNKNOWN) ? tmp.rlPart2 : sip_methods[tmp.method].text);
@@ -3127,7 +3127,7 @@
ast_verbose("%sTransmitting (no NAT) to %s:%d:\n%s\n---\n", reliable ? "Reliably " : "", ast_inet_ntoa(p->sa.sin_addr), ntohs(p->sa.sin_port), req->data->str);
}
if (p->do_history) {
- struct sip_request tmp;
+ struct sip_request tmp = { .rlPart1 = NULL, };
parse_copy(&tmp, req);
append_history(p, reliable ? "TxReqRel" : "TxReq", "%s / %s - %s", tmp.data->str, get_header(&tmp, "CSeq"), sip_methods[tmp.method].text);
ast_free(tmp.data);
@@ -9858,7 +9858,7 @@
/* Saving TCP connections is useless, we won't be able to reconnect */
if (!peer->rt_fromcontact && (peer->socket.type & SIP_TRANSPORT_UDP))
ast_db_put("SIP/Registry", peer->name, data);
- manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\n", peer->name);
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\nAddress: %s\r\nPort: %d\r\n", peer->name, ast_inet_ntoa(peer->addr.sin_addr), ntohs(peer->addr.sin_port));
/* Is this a new IP address for us? */
if (inaddrcmp(&peer->addr, &oldsin)) {
@@ -10410,7 +10410,7 @@
case PARSE_REGISTER_UPDATE:
/* Say OK and ask subsystem to retransmit msg counter */
transmit_response_with_date(p, "200 OK", req);
- manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\n", peer->name);
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Registered\r\nAddress: %s\r\nPort: %d\r\n", peer->name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
peer->lastmsgssent = -1;
res = 0;
break;
@@ -10425,6 +10425,9 @@
case AUTH_SECRET_FAILED:
/* Wrong password in authentication. Go away, don't try again until you fixed it */
transmit_response(p, "403 Forbidden (Bad auth)", &p->initreq);
+ if (global_authfailureevents)
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: AUTH_SECRET_FAILED\r\nAddress: %s\r\nPort: %d\r\n",
+ name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
break;
case AUTH_USERNAME_MISMATCH:
/* Username and digest username does not match.
@@ -10432,6 +10435,9 @@
users to use the same authentication user name until we support
proper authentication by digest auth name */
transmit_response(p, "403 Authentication user name does not match account name", &p->initreq);
+ if (global_authfailureevents)
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: AUTH_USERNAME_MISMATCH\r\nAddress: %s\r\nPort: %d\r\n",
+ name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
break;
case AUTH_NOT_FOUND:
case AUTH_PEER_NOT_DYNAMIC:
@@ -10440,10 +10446,17 @@
transmit_fake_auth_response(p, &p->initreq, 1);
} else {
/* URI not found */
- if (res == AUTH_PEER_NOT_DYNAMIC)
+ if (res == AUTH_PEER_NOT_DYNAMIC) {
transmit_response(p, "403 Forbidden", &p->initreq);
+ if (global_authfailureevents)
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: AUTH_PEER_NOT_DYNAMIC\r\nAddress: %s\r\nPort: %d\r\n",
+ name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
+ }
else
transmit_response(p, "404 Not found", &p->initreq);
+ if (global_authfailureevents)
+ manager_event(EVENT_FLAG_SYSTEM, "PeerStatus", "ChannelType: SIP\r\nPeer: SIP/%s\r\nPeerStatus: Rejected\r\nCause: URI_NOT_FOUND\r\nAddress: %s\r\nPort: %d\r\n",
+ name, ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port));
}
break;
default:
@@ -12956,6 +12969,7 @@
ast_cli(a->fd, " From: Domain: %s\n", default_fromdomain);
ast_cli(a->fd, " Record SIP history: %s\n", recordhistory ? "On" : "Off");
ast_cli(a->fd, " Call Events: %s\n", global_callevents ? "On" : "Off");
+ ast_cli(a->fd, " Auth. Failure Events: %s\n", global_authfailureevents ? "On" : "Off");
ast_cli(a->fd, " T38 fax pt UDPTL: %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_UDPTL)));
#ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS
@@ -16747,7 +16761,7 @@
/* Respond to normal re-invite */
if (sendok) {
/* If this is not a re-invite or something to ignore - it's critical */
- transmit_response_with_sdp(p, "200 OK", req, (reinvite || req->ignore) ? XMIT_UNRELIABLE : XMIT_CRITICAL, p->session_modify == TRUE ? FALSE:TRUE);
+ transmit_response_with_sdp(p, "200 OK", req, (reinvite ? XMIT_RELIABLE : (req->ignore ? XMIT_UNRELIABLE : XMIT_CRITICAL)), p->session_modify == TRUE ? FALSE:TRUE);
}
}
p->invitestate = INV_TERMINATED;
@@ -20265,6 +20279,7 @@
/* Misc settings for the channel */
global_relaxdtmf = FALSE;
global_callevents = FALSE;
+ global_authfailureevents = FALSE;
global_t1 = SIP_TIMER_T1;
global_timer_b = 64 * SIP_TIMER_T1;
global_t1min = DEFAULT_T1MIN;
@@ -20576,6 +20591,8 @@
}
} else if (!strcasecmp(v->name, "callevents")) {
global_callevents = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "authfailureevents")) {
+ global_authfailureevents = ast_true(v->value);
} else if (!strcasecmp(v->name, "maxcallbitrate")) {
default_maxcallbitrate = atoi(v->value);
if (default_maxcallbitrate < 0)
Modified: team/oej/calleridutf8/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_skinny.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/channels/chan_skinny.c (original)
+++ team/oej/calleridutf8/channels/chan_skinny.c Tue Mar 25 06:16:25 2008
@@ -3382,6 +3382,7 @@
transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, exten, exten, l->instance, sub->callid, 2);
transmit_callstate(s, l->instance, SKINNY_CONNECTED, sub->callid);
transmit_selectsoftkeys(s, l->instance, sub->callid, KEYDEF_CONNECTED);
+ transmit_dialednumber(s, exten, l->instance, sub->callid);
transmit_displaypromptstatus(s, "Connected", 0, l->instance, sub->callid);
return res;
}
Modified: team/oej/calleridutf8/configs/sip.conf.sample
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/configs/sip.conf.sample?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/configs/sip.conf.sample (original)
+++ team/oej/calleridutf8/configs/sip.conf.sample Tue Mar 25 06:16:25 2008
@@ -218,6 +218,8 @@
; for peers and users as well
;callevents=no ; generate manager events when sip ua
; performs events (e.g. hold)
+;authfailureevents=no ; generate manager "peerstatus" events when peer can't
+ ; authenticate with Asterisk. Peerstatus will be "rejected".
;alwaysauthreject = yes ; When an incoming INVITE or REGISTER is to be rejected,
; for any reason, always reject with '401 Unauthorized'
; instead of letting the requester know whether there was
Modified: team/oej/calleridutf8/configs/sip_notify.conf.sample
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/configs/sip_notify.conf.sample?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/configs/sip_notify.conf.sample (original)
+++ team/oej/calleridutf8/configs/sip_notify.conf.sample Tue Mar 25 06:16:25 2008
@@ -20,3 +20,13 @@
[snom-check-cfg]
Event=>check-sync\;reboot=false
Content-Length=>0
+
+; Tested
+[aastra-check-cfg]
+Event=>check-sync
+Content-Length=>0
+
+; Tested
+[aastra-xml]
+Event=>aastra-xml
+Content-Length=>0
Modified: team/oej/calleridutf8/configure.ac
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/configure.ac?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/configure.ac (original)
+++ team/oej/calleridutf8/configure.ac Tue Mar 25 06:16:25 2008
@@ -207,9 +207,11 @@
AST_EXT_LIB_SETUP([CURL], [cURL], [curl])
AST_EXT_LIB_SETUP([CURSES], [curses], [curses])
AST_EXT_LIB_SETUP([CRYPTO], [OpenSSL Cryptography support], [crypto])
+AST_EXT_LIB_SETUP([FFMPEG], [Ffmpeg and avcodec library], [avcodec])
AST_EXT_LIB_SETUP([GSM], [External GSM library], [gsm], [, use 'internal' GSM otherwise])
AST_EXT_LIB_SETUP([GTK], [gtk libraries], [gtk])
AST_EXT_LIB_SETUP([GTK2], [gtk2 libraries], [gtk2])
+AST_EXT_LIB_SETUP([GMIME], [GMime library], [gmime])
AST_EXT_LIB_SETUP([ICONV], [Iconv Library], [iconv])
AST_EXT_LIB_SETUP([IKSEMEL], [Iksemel Jabber Library], [iksemel])
AST_EXT_LIB_SETUP([IMAP_TK], [UW IMAP Toolkit], [imap])
@@ -235,6 +237,8 @@
AST_EXT_LIB_SETUP([PWLIB], [PWlib], [pwlib])
AST_EXT_LIB_SETUP([OPENH323], [OpenH323], [h323])
AST_EXT_LIB_SETUP([RADIUS], [Radius Client], [radius])
+AST_EXT_LIB_SETUP([SDL], [Sdl], [sdl])
+AST_EXT_LIB_SETUP([SDL_IMAGE], [Sdl Image library], [SDL_image])
AST_EXT_LIB_SETUP([SPEEX], [Speex], [speex])
AST_EXT_LIB_SETUP([SPEEXDSP], [Speexdsp], [speexdsp])
AST_EXT_LIB_SETUP([SQLITE], [SQLite], [sqlite])
@@ -251,16 +255,6 @@
AST_EXT_LIB_SETUP([X11], [X11 support], [x11])
AST_EXT_LIB_SETUP([ZLIB], [zlib], [z])
AST_EXT_LIB_SETUP([ZAPTEL], [Zaptel], [zaptel])
-AST_EXT_LIB_SETUP([ZAPTEL_TRANSCODE], [Zaptel Transcoder Support], [zaptel_transcode])
-AST_EXT_LIB_SETUP([ZAPTEL_VLDTMF], [Zaptel VLDTMF Support], [zaptel_vldtmf])
-AST_EXT_LIB_SETUP([ZAPTEL_HWGAIN], [Zaptel Hardware Gain Support], [zaptel_hwgain])
-AST_EXT_LIB_SETUP([ZAPTEL_NEONMWI], [Zaptel Neon MWI Support], [zaptel_neonmwi])
-AST_EXT_LIB_SETUP([ZAPTEL_ECHOCANPARAMS], [Zaptel Echo Canceler Parameter Support], [zaptel_echocanparams])
-AST_EXT_LIB_SETUP([ZAPTEL_CHANALARMS], [Zaptel Channel Alarm Support], [zaptel_chanalarms])
-
-AST_EXT_LIB_SETUP([SDL], [Sdl], [sdl])
-AST_EXT_LIB_SETUP([SDL_IMAGE], [Sdl Image library], [SDL_image])
-AST_EXT_LIB_SETUP([FFMPEG], [Ffmpeg and avcodec library], [avcodec])
# check for basic system features and functionality before
# checking for package libraries
@@ -1337,6 +1331,8 @@
AST_EXT_LIB_CHECK([OSPTK], [osptk], [OSPPCryptoDecrypt], [osp/osp.h], [-lcrypto -lssl])
fi
+AST_EXT_TOOL_CHECK([GMIME], [gmime])
+
AST_EXT_LIB_CHECK([FREETDS], [tds], [tds_version], [tds.h])
if test "${PBX_FREETDS}" != "0";
then
Modified: team/oej/calleridutf8/contrib/init.d/rc.suse.asterisk
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/contrib/init.d/rc.suse.asterisk?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/contrib/init.d/rc.suse.asterisk (original)
+++ team/oej/calleridutf8/contrib/init.d/rc.suse.asterisk Tue Mar 25 06:16:25 2008
@@ -22,7 +22,7 @@
### BEGIN INIT INFO
# Provides: asterisk
-# Required-Start: +zaptel
+# Required-Start: +zaptel $network $named
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
Modified: team/oej/calleridutf8/include/asterisk/autoconfig.h.in
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/include/asterisk/autoconfig.h.in?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/include/asterisk/autoconfig.h.in (original)
+++ team/oej/calleridutf8/include/asterisk/autoconfig.h.in Tue Mar 25 06:16:25 2008
@@ -308,6 +308,9 @@
/* Define to 1 if you have the `glob' function. */
#undef HAVE_GLOB
+
+/* Define if your system has the GMIME libraries. */
+#undef HAVE_GMIME
/* Define to indicate the GSM library */
#undef HAVE_GSM
@@ -1175,9 +1178,6 @@
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
/* Define like PROTOTYPES; this can be used by system headers. */
#undef __PROTOTYPES
Modified: team/oej/calleridutf8/include/asterisk/dnsmgr.h
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/include/asterisk/dnsmgr.h?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/include/asterisk/dnsmgr.h (original)
+++ team/oej/calleridutf8/include/asterisk/dnsmgr.h Tue Mar 25 06:16:25 2008
@@ -29,12 +29,52 @@
#include "asterisk/network.h"
+/*!
+ * \brief A DNS manager entry
+ *
+ * This is an opaque type.
+ */
struct ast_dnsmgr_entry;
+/*!
+ * \brief Allocate a new DNS manager entry
+ *
+ * \arg name the hostname
+ * \arg result where the DNS manager should store the IP address as it refreshes it.
+ * it.
+ *
+ * This function allocates a new DNS manager entry object, and fills it with the
+ * provided hostname and IP address. This function does not force an initial lookup
+ * of the IP address. So, generally, this should be used when the initial address
+ * is already known.
+ *
+ * \return a DNS manager entry
+ */
struct ast_dnsmgr_entry *ast_dnsmgr_get(const char *name, struct in_addr *result);
+/*!
+ * \brief Free a DNS manager entry
+ *
+ * \arg entry the DNS manager entry to free
+ *
+ * \return nothing
+ */
void ast_dnsmgr_release(struct ast_dnsmgr_entry *entry);
+/*!
+ * \brief Allocate and initialize a DNS manager entry
+ *
+ * \arg name the hostname
+ * \arg result where to store the IP address as the DNS manager refreshes it
+ * \arg dnsmgr Where to store the allocate DNS manager entry
+ *
+ * This function allocates a new DNS manager entry object, and fills it with
+ * the provided hostname and IP address. This function _does_ force an initial
+ * lookup, so it may block for some period of time.
+ *
+ * \retval 0 success
+ * \retval non-zero failure
+ */
int ast_dnsmgr_lookup(const char *name, struct in_addr *result, struct ast_dnsmgr_entry **dnsmgr);
/*!
Modified: team/oej/calleridutf8/include/asterisk/pbx.h
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/include/asterisk/pbx.h?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/include/asterisk/pbx.h (original)
+++ team/oej/calleridutf8/include/asterisk/pbx.h Tue Mar 25 06:16:25 2008
@@ -758,6 +758,8 @@
const char *ast_get_ignorepat_name(struct ast_ignorepat *ip);
const char *ast_get_switch_name(struct ast_sw *sw);
const char *ast_get_switch_data(struct ast_sw *sw);
+int ast_get_switch_eval(struct ast_sw *sw);
+
/*! @} */
/*! @name Other Extension stuff */
Modified: team/oej/calleridutf8/main/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/main/Makefile?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/main/Makefile (original)
+++ team/oej/calleridutf8/main/Makefile Tue Mar 25 06:16:25 2008
@@ -132,6 +132,11 @@
channel.o: ASTCFLAGS+=$(ZAPTEL_INCLUDE)
+
+ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)
+http.o: ASTCFLAGS+=$(GMIME_INCLUDE)
+endif
+
stdtime/localtime.o: ASTCFLAGS+=$(AST_NO_STRICT_OVERFLOW)
AST_EMBED_LDSCRIPTS:=$(sort $(EMBED_LDSCRIPTS))
@@ -146,9 +151,6 @@
H323LDLIBS=
endif
-minimime/libmmime.a: CHECK_SUBDIR
- @cd minimime && $(MAKE) libmmime.a
-
ifneq ($(findstring $(OSARCH), mingw32 cygwin ),)
MAIN_TGT:=asterisk.dll
asterisk: cygload
@@ -159,13 +161,17 @@
MAIN_TGT:=asterisk
endif
-$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a minimime/libmmime.a $(AST_EMBED_LDSCRIPTS)
+ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)
+GMIMELDFLAGS+=$(GMIME_LIB)
+endif
+
+$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a $(AST_EMBED_LDSCRIPTS)
@$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c
$(ECHO_PREFIX) echo " [LD] $^ -> $@"
ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),)
- $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS)
+ $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(GMIMELDFLAGS)
else
- $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS)
+ $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(ASTLINK) $(AST_EMBED_LDFLAGS) $(ASTLDFLAGS) $(H323LDFLAGS) $^ buildinfo.o $(AST_LIBS) $(AST_EMBED_LIBS) $(H323LDLIBS) $(GMIMELDFLAGS)
endif
$(CMD_PREFIX) $(ASTTOPDIR)/build_tools/strip_nonapi $@ || rm $@
@@ -175,5 +181,4 @@
@if [ -f editline/Makefile ]; then $(MAKE) -C editline distclean ; fi
@$(MAKE) -C db1-ast clean
@$(MAKE) -C stdtime clean
- @$(MAKE) -C minimime clean
rm -f libresample/src/*.o
Modified: team/oej/calleridutf8/main/dial.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/main/dial.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/main/dial.c (original)
+++ team/oej/calleridutf8/main/dial.c Tue Mar 25 06:16:25 2008
@@ -426,6 +426,7 @@
if (option_verbose > 2)
ast_verbose (VERBOSE_PREFIX_3 "%s requested a source update, passing it to %s\n", channel->owner->name, chan->name);
ast_indicate(chan, AST_CONTROL_SRCUPDATE);
+ break;
case AST_CONTROL_PROCEEDING:
ast_verb(3, "%s is proceeding, passing it to %s\n", channel->owner->name, chan->name);
ast_indicate(chan, AST_CONTROL_PROCEEDING);
Modified: team/oej/calleridutf8/main/features.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/main/features.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/main/features.c (original)
+++ team/oej/calleridutf8/main/features.c Tue Mar 25 06:16:25 2008
@@ -231,7 +231,7 @@
goto_on_transfer = ast_strdupa(val);
- if (!(xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, chan->name)))
+ if (!(xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, chan->name)))
return;
for (x = goto_on_transfer; x && *x; x++) {
@@ -255,7 +255,7 @@
}
}
-static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *caller, struct ast_channel *transferee, const char *type, int format, void *data, int timeout, int *outstate, const char *cid_num, const char *cid_name, int igncallerstate, const char *language);
+static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *caller, struct ast_channel *transferee, const char *type, int format, void *data, int timeout, int *outstate, const char *cid_num, const char *cid_name, const char *cid_utf8name, int igncallerstate, const char *language);
/*!
* \brief bridge the call
@@ -527,7 +527,7 @@
char *orig_chan_name = NULL;
/* Make a new, fake channel that we'll use to masquerade in the real one */
- if (!(chan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, rchan->accountcode, rchan->exten, rchan->context, rchan->amaflags, "Parked/%s",rchan->name))) {
+ if (!(chan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, 0, 0, rchan->accountcode, rchan->exten, rchan->context, rchan->amaflags, "Parked/%s",rchan->name))) {
ast_log(LOG_WARNING, "Unable to create parked channel\n");
return -1;
}
@@ -1060,7 +1060,7 @@
l = strlen(xferto);
snprintf(xferto + l, sizeof(xferto) - l, "@%s/n", transferer_real_context); /* append context */
newchan = ast_feature_request_and_dial(transferer, transferee, "Local", ast_best_codec(transferer->nativeformats),
- xferto, atxfernoanswertimeout, &outstate, transferer->cid.cid_num, transferer->cid.cid_name, 1, transferer->language);
+ xferto, atxfernoanswertimeout, &outstate, transferer->cid.cid_num, transferer->cid.cid_name, transferer->cid.cid_utf8name, 1, transferer->language);
if (!ast_check_hangup(transferer)) {
/* Transferer is up - old behaviour */
@@ -1107,7 +1107,7 @@
ast_hangup(newchan);
return -1;
}
- xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, "Transfered/%s", transferee->name);
+ xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, "Transfered/%s", transferee->name);
if (!xferchan) {
ast_hangup(newchan);
return -1;
@@ -1162,14 +1162,14 @@
ast_log(LOG_NOTICE, "We're trying to call %s/%s\n", transferer_tech, transferer_name);
newchan = ast_feature_request_and_dial(transferee, NULL, transferer_tech, ast_best_codec(transferee->nativeformats),
- transferer_name, atxfernoanswertimeout, &outstate, transferee->cid.cid_num, transferee->cid.cid_name, 0, transferer->language);
+ transferer_name, atxfernoanswertimeout, &outstate, transferee->cid.cid_num, transferee->cid.cid_name, transferee->cid.cid_utf8name, 0, transferer->language);
while (!newchan && !atxferdropcall && tries < atxfercallbackretries) {
/* Trying to transfer again */
ast_autoservice_start(transferee);
ast_indicate(transferee, AST_CONTROL_HOLD);
newchan = ast_feature_request_and_dial(transferer, transferee, "Local", ast_best_codec(transferer->nativeformats),
- xferto, atxfernoanswertimeout, &outstate, transferer->cid.cid_num, transferer->cid.cid_name, 1, transferer->language);
+ xferto, atxfernoanswertimeout, &outstate, transferer->cid.cid_num, transferer->cid.cid_name, transferer->cid.cid_utf8name, 1, transferer->language);
if (ast_autoservice_stop(transferee) < 0) {
if (newchan)
ast_hangup(newchan);
@@ -1181,7 +1181,7 @@
ast_safe_sleep(transferee, atxferloopdelay);
ast_debug(1, "Trying to callback...\n");
newchan = ast_feature_request_and_dial(transferee, NULL, transferer_tech, ast_best_codec(transferee->nativeformats),
- transferer_name, atxfernoanswertimeout, &outstate, transferee->cid.cid_num, transferee->cid.cid_name, 0, transferer->language);
+ transferer_name, atxfernoanswertimeout, &outstate, transferee->cid.cid_num, transferee->cid.cid_name, transferee->cid.cid_utf8name, 0, transferer->language);
}
tries++;
}
@@ -1204,7 +1204,7 @@
return -1;
}
- xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, "Transfered/%s", transferee->name);
+ xferchan = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, "Transfered/%s", transferee->name);
if (!xferchan) {
ast_hangup(newchan);
return -1;
@@ -1689,7 +1689,7 @@
* \todo XXX Check - this is very similar to the code in channel.c
* \return always a channel
*/
-static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *caller, struct ast_channel *transferee, const char *type, int format, void *data, int timeout, int *outstate, const char *cid_num, const char *cid_name, int igncallerstate, const char *language)
+static struct ast_channel *ast_feature_request_and_dial(struct ast_channel *caller, struct ast_channel *transferee, const char *type, int format, void *data, int timeout, int *outstate, const char *cid_num, const char *cid_name, const char *cid_utf8name, int igncallerstate, const char *language)
{
int state = 0;
int cause = 0;
@@ -1700,7 +1700,7 @@
int res = 0, ready = 0;
if ((chan = ast_request(type, format, data, &cause))) {
- ast_set_callerid(chan, cid_num, cid_name, cid_num);
+ ast_set_callerid(chan, cid_num, cid_name, cid_utf8name, cid_num, "");
ast_string_field_set(chan, language, language);
ast_channel_inherit_variables(caller, chan);
pbx_builtin_setvar_helper(chan, "TRANSFERERNAME", caller->name);
@@ -3003,14 +3003,14 @@
ast_answer(chanb);
/* create the placeholder channels and grab the other channels */
- if (!(tmpchana = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL,
- NULL, NULL, 0, "Bridge/%s", chana->name))) {
+ if (!(tmpchana = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, 0, "Bridge/%s", chana->name))) {
astman_send_error(s, m, "Unable to create temporary channel!");
return 1;
}
- if (!(tmpchanb = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL,
- NULL, NULL, 0, "Bridge/%s", chanb->name))) {
+ if (!(tmpchanb = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, 0, "Bridge/%s", chanb->name))) {
astman_send_error(s, m, "Unable to create temporary channels!");
ast_channel_free(tmpchana);
return 1;
@@ -3363,8 +3363,8 @@
ast_answer(current_dest_chan);
/* try to allocate a place holder where current_dest_chan will be placed */
- if (!(final_dest_chan = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL,
- NULL, NULL, 0, "Bridge/%s", current_dest_chan->name))) {
+ if (!(final_dest_chan = ast_channel_alloc(0, AST_STATE_DOWN, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, 0, "Bridge/%s", current_dest_chan->name))) {
ast_log(LOG_WARNING, "Cannot create placeholder channel for chan %s\n", args.dest_chan);
manager_event(EVENT_FLAG_CALL, "BridgeExec",
"Response: Failed\r\n"
Modified: team/oej/calleridutf8/main/http.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/main/http.c?view=diff&rev=110626&r1=110625&r2=110626
==============================================================================
--- team/oej/calleridutf8/main/http.c (original)
+++ team/oej/calleridutf8/main/http.c Tue Mar 25 06:16:25 2008
@@ -40,7 +40,9 @@
#include <sys/signal.h>
#include <fcntl.h>
-#include "minimime/mm.h"
+#ifdef ENABLE_UPLOADS
+#include <gmime/gmime.h>
+#endif /* ENABLE_UPLOADS */
#include "asterisk/cli.h"
#include "asterisk/tcptls.h"
@@ -88,6 +90,7 @@
[... 493 lines stripped ...]
More information about the asterisk-commits
mailing list