[asterisk-commits] irroot: branch irroot/distrotech-customers-trunk r321672 - in /team/irroot/di...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jun 3 04:35:39 CDT 2011
Author: irroot
Date: Fri Jun 3 04:35:33 2011
New Revision: 321672
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=321672
Log:
resolve/automerge enable
Modified:
team/irroot/distrotech-customers-trunk/ (props changed)
team/irroot/distrotech-customers-trunk/addons/chan_ooh323.c
team/irroot/distrotech-customers-trunk/addons/ooh323c/src/oochannels.c
team/irroot/distrotech-customers-trunk/addons/ooh323c/src/ooh245.c
team/irroot/distrotech-customers-trunk/cel/cel_odbc.c (props changed)
team/irroot/distrotech-customers-trunk/configs/cel_odbc.conf.sample (props changed)
team/irroot/distrotech-customers-trunk/configs/jabber.conf.sample
team/irroot/distrotech-customers-trunk/configs/sip.conf.sample
team/irroot/distrotech-customers-trunk/include/asterisk/acl.h
team/irroot/distrotech-customers-trunk/include/asterisk/dnsmgr.h
team/irroot/distrotech-customers-trunk/main/asterisk.c
team/irroot/distrotech-customers-trunk/main/channel.c
team/irroot/distrotech-customers-trunk/res/res_jabber.c
team/irroot/distrotech-customers-trunk/sounds/Makefile (props changed)
Propchange: team/irroot/distrotech-customers-trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.8-merged' - no diff available.
Propchange: team/irroot/distrotech-customers-trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun 3 04:35:33 2011
@@ -2,3 +2,4 @@
/team/irroot/distrotech-customers:318992-318995,318997-319000
/team/irroot/distrotech-customers-1.8:319062,319075,321526,321549-321550
/team/irroot/t38gateway-trunk:318974-319016,319064,319067,319071,320879,321513
+/trunk:321462-321617
Modified: team/irroot/distrotech-customers-trunk/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/addons/chan_ooh323.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/addons/chan_ooh323.c (original)
+++ team/irroot/distrotech-customers-trunk/addons/chan_ooh323.c Fri Jun 3 04:35:33 2011
@@ -1093,6 +1093,7 @@
static int ooh323_answer(struct ast_channel *ast)
{
struct ooh323_pvt *p = ast->tech_pvt;
+ char *callToken = (char *)NULL;
if (gH323Debug)
ast_verbose("--- ooh323_answer\n");
@@ -1100,8 +1101,18 @@
if (p) {
ast_mutex_lock(&p->lock);
+ callToken = (p->callToken ? strdup(p->callToken) : NULL);
if (ast->_state != AST_STATE_UP) {
ast_channel_lock(ast);
+ if (!p->alertsent) {
+ if (gH323Debug) {
+ ast_debug(1, "Sending forced ringback for %s, res = %d\n",
+ callToken, ooManualRingback(callToken));
+ } else {
+ ooManualRingback(callToken);
+ }
+ p->alertsent = 1;
+ }
ast_setstate(ast, AST_STATE_UP);
if (option_debug)
ast_debug(1, "ooh323_answer(%s)\n", ast->name);
@@ -1269,6 +1280,7 @@
}
p->alertsent = 1;
}
+ p->alertsent = 1;
}
break;
case AST_CONTROL_SRCUPDATE:
Modified: team/irroot/distrotech-customers-trunk/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/addons/ooh323c/src/oochannels.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/addons/ooh323c/src/oochannels.c (original)
+++ team/irroot/distrotech-customers-trunk/addons/ooh323c/src/oochannels.c Fri Jun 3 04:35:33 2011
@@ -682,10 +682,11 @@
if (0 != call->pH245Channel && 0 != call->pH245Channel->sock)
{
- if(call->pH245Channel->outQueue.count>0)
- {
- if(ooPDWrite(pfds, nfds, call->pH245Channel->sock))
- ooSendMsg(call, OOH245MSG);
+ if(ooPDWrite(pfds, nfds, call->pH245Channel->sock)) {
+ while (call->pH245Channel->outQueue.count>0) {
+ if (ooSendMsg(call, OOH245MSG) != OO_OK)
+ break;
+ }
}
}
else if(call->h245listener)
@@ -702,20 +703,23 @@
{
if(ooPDWrite(pfds, nfds, call->pH225Channel->sock))
{
- if(call->pH225Channel->outQueue.count>0)
+ while (call->pH225Channel->outQueue.count>0)
{
OOTRACEDBGC3("Sending H225 message (%s, %s)\n",
call->callType, call->callToken);
- ooSendMsg(call, OOQ931MSG);
+ if (ooSendMsg(call, OOQ931MSG) != OO_OK)
+ break;
}
if(call->pH245Channel &&
call->pH245Channel->outQueue.count>0 &&
- OO_TESTFLAG (call->flags, OO_M_TUNNELING))
- {
+ OO_TESTFLAG (call->flags, OO_M_TUNNELING)) {
+ while (call->pH245Channel->outQueue.count>0) {
OOTRACEDBGC3("H245 message needs to be tunneled. "
"(%s, %s)\n", call->callType,
call->callToken);
- ooSendMsg(call, OOH245MSG);
+ if (ooSendMsg(call, OOH245MSG) != OO_OK)
+ break;
+ }
}
}
}
@@ -1330,7 +1334,7 @@
{
OOTRACEDBGA3("Warning:Call marked for cleanup. Can not send message."
"(%s, %s)\n", call->callType, call->callToken);
- return OO_OK;
+ return OO_FAILED;
}
if(type == OOQ931MSG)
Modified: team/irroot/distrotech-customers-trunk/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/addons/ooh323c/src/ooh245.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/addons/ooh323c/src/ooh245.c (original)
+++ team/irroot/distrotech-customers-trunk/addons/ooh323c/src/ooh245.c Fri Jun 3 04:35:33 2011
@@ -2126,6 +2126,8 @@
ooClearAllLogicalChannels(call);
}
ooSendEndSessionCommand(call);
+ if (call->callState < OO_CALL_CLEAR)
+ call->callState = OO_CALL_CLEAR;
}
Propchange: team/irroot/distrotech-customers-trunk/cel/cel_odbc.c
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun 3 04:35:33 2011
@@ -3,3 +3,4 @@
/team/irroot/distrotech-customers/cel/cel_odbc.c:318992-319000
/team/irroot/distrotech-customers-1.8/cel/cel_odbc.c:319062,319075,321526,321549-321550
/team/irroot/t38gateway-trunk/cel/cel_odbc.c:318974-319016,319064,319067,319071,319361,320879-321541
+/trunk/cel/cel_odbc.c:321462-321617
Propchange: team/irroot/distrotech-customers-trunk/configs/cel_odbc.conf.sample
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun 3 04:35:33 2011
@@ -3,3 +3,4 @@
/team/irroot/distrotech-customers/configs/cel_odbc.conf.sample:318992-319000
/team/irroot/distrotech-customers-1.8/configs/cel_odbc.conf.sample:319062,319075,321526,321549-321550
/team/irroot/t38gateway-trunk/configs/cel_odbc.conf.sample:318974-319016,319064,319067,319071,319361,320879-321541
+/trunk/configs/cel_odbc.conf.sample:321462-321617
Modified: team/irroot/distrotech-customers-trunk/configs/jabber.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/configs/jabber.conf.sample?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/configs/jabber.conf.sample (original)
+++ team/irroot/distrotech-customers-trunk/configs/jabber.conf.sample Fri Jun 3 04:35:33 2011
@@ -34,3 +34,6 @@
; Messages stored longer than this value will be deleted by Asterisk.
; This option applies to incoming messages only, which are intended to
; be processed by the JABBER_RECEIVE dialplan function.
+;sendtodialplan=yes ; Send incoming messages into the dialplan. Off by default.
+;context=messages ; Dialplan context to send incoming messages to. If not set,
+ ; "default" will be used.
Modified: team/irroot/distrotech-customers-trunk/configs/sip.conf.sample
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/configs/sip.conf.sample?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/configs/sip.conf.sample (original)
+++ team/irroot/distrotech-customers-trunk/configs/sip.conf.sample Fri Jun 3 04:35:33 2011
@@ -384,6 +384,16 @@
;auth_options_requests = yes ; Enabling this option will authenticate OPTIONS requests just like
; INVITE requests are. By default this option is disabled.
+
+;accept_outofcall_message = no ; Disable this option to reject all MESSAGE requests outside of a
+ ; call. By default, this option is enabled. When enabled, MESSAGE
+ ; requests are passed in to the dialplan.
+
+;auth_message_requests = yes ; Enabling this option will authenticate MESSAGE requests.
+ ; By default this option is enabled. However, it can be disabled
+ ; should an application desire to not load the Asterisk server with
+ ; doing authentication and implement end to end security in the
+ ; message body.
;g726nonstandard = yes ; If the peer negotiates G726-32 audio, use AAL2 packing
; order instead of RFC3551 packing order (this is required
Modified: team/irroot/distrotech-customers-trunk/include/asterisk/acl.h
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/include/asterisk/acl.h?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/include/asterisk/acl.h (original)
+++ team/irroot/distrotech-customers-trunk/include/asterisk/acl.h Fri Jun 3 04:35:33 2011
@@ -143,7 +143,7 @@
* then this function acts exactly like a call to ast_get_ip.
*
* \param addr The IP address found. The address family is used as an input parameter to
- * filter the returned adresses. if it is 0, both IPv4 and IPv6 addresses
+ * filter the returned addresses. if it is 0, both IPv4 and IPv6 addresses
* can be returned.
*
* \param value The hostname to look up
Modified: team/irroot/distrotech-customers-trunk/include/asterisk/dnsmgr.h
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/include/asterisk/dnsmgr.h?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/include/asterisk/dnsmgr.h (original)
+++ team/irroot/distrotech-customers-trunk/include/asterisk/dnsmgr.h Fri Jun 3 04:35:33 2011
@@ -68,11 +68,13 @@
* \brief Allocate and initialize a DNS manager entry
*
* \param name the hostname
- * \param result where to store the IP address as the DNS manager refreshes it. The address family
- * is used as an input parameter to filter the returned adresses. if it is 0, both IPv4 * and IPv6 addresses can be returned.
+ * \param result where to store the IP address as the DNS manager refreshes it.
+ * The address family is used as an input parameter to filter the returned addresses.
+ * If it is 0, both IPv4 and IPv6 addresses can be returned.
* \param dnsmgr Where to store the allocate DNS manager entry
* \param service
*
+ * \note
* 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.
Modified: team/irroot/distrotech-customers-trunk/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/main/asterisk.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/main/asterisk.c (original)
+++ team/irroot/distrotech-customers-trunk/main/asterisk.c Fri Jun 3 04:35:33 2011
@@ -3750,6 +3750,11 @@
ast_xmldoc_load_documentation();
#endif
+ if (ast_msg_init()) {
+ printf("%s", term_quit());
+ exit(1);
+ }
+
/* initialize the data retrieval API */
if (ast_data_init()) {
printf ("%s", term_quit());
Modified: team/irroot/distrotech-customers-trunk/main/channel.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/main/channel.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/main/channel.c (original)
+++ team/irroot/distrotech-customers-trunk/main/channel.c Fri Jun 3 04:35:33 2011
@@ -9618,3 +9618,8 @@
return result;
}
+
+void ast_channel_unlink(struct ast_channel *chan)
+{
+ ao2_unlink(channels, chan);
+}
Modified: team/irroot/distrotech-customers-trunk/res/res_jabber.c
URL: http://svnview.digium.com/svn/asterisk/team/irroot/distrotech-customers-trunk/res/res_jabber.c?view=diff&rev=321672&r1=321671&r2=321672
==============================================================================
--- team/irroot/distrotech-customers-trunk/res/res_jabber.c (original)
+++ team/irroot/distrotech-customers-trunk/res/res_jabber.c Fri Jun 3 04:35:33 2011
@@ -60,6 +60,7 @@
#include "asterisk/manager.h"
#include "asterisk/event.h"
#include "asterisk/devicestate.h"
+#include "asterisk/message.h"
/*** DOCUMENTATION
<application name="JabberSend" language="en_US">
@@ -373,6 +374,13 @@
static int aji_register_transport2(void *data, ikspak *pak);
*/
+static int msg_send_cb(const struct ast_msg *msg, const char *to, const char *from);
+
+static const struct ast_msg_tech msg_tech = {
+ .name = "xmpp",
+ .msg_send = msg_send_cb,
+};
+
static struct ast_cli_entry aji_cli[] = {
AST_CLI_DEFINE(aji_do_set_debug, "Enable/Disable Jabber debug"),
AST_CLI_DEFINE(aji_do_reload, "Reload Jabber configuration"),
@@ -1134,6 +1142,44 @@
ast_aji_send_chat(client, args.recipient, args.message);
}
return 0;
+}
+
+static int msg_send_cb(const struct ast_msg *msg, const char *to, const char *from)
+{
+ struct aji_client *client;
+ char *sender;
+ char *dest;
+ int res;
+
+ sender = ast_strdupa(from);
+ strsep(&sender, ":");
+ dest = ast_strdupa(to);
+ strsep(&dest, ":");
+
+ if (ast_strlen_zero(sender)) {
+ ast_log(LOG_ERROR, "MESSAGE(from) of '%s' invalid for xmpp\n", from);
+ return -1;
+ }
+
+ if (!(client = ast_aji_get_client(sender))) {
+ ast_log(LOG_WARNING, "Could not finder account to send from as '%s'\n", sender);
+ return -1;
+ }
+
+
+ ast_debug(1, "Sending message to '%s' from '%s'\n", dest, client->name);
+
+ res = ast_aji_send_chat(client, dest, ast_msg_get_body(msg));
+ if (res != IKS_OK) {
+ ast_log(LOG_WARNING, "Failed to send xmpp message (%d).\n", res);
+ }
+
+ /*
+ * XXX Reference leak here. See note with ast_aji_get_client() about the problems
+ * with that function.
+ */
+
+ return res == IKS_OK ? 0 : -1;
}
/*!
@@ -2218,6 +2264,7 @@
{
struct aji_message *insert;
int deleted = 0;
+ struct ast_msg *msg;
ast_debug(3, "client %s received a message\n", client->name);
@@ -2246,6 +2293,23 @@
return;
}
ast_debug(3, "message comes from %s\n", insert->from);
+ }
+
+ if ((msg = ast_msg_alloc())) {
+ int res;
+
+ res = ast_msg_set_to(msg, "xmpp:%s", client->user);
+ res |= ast_msg_set_from(msg, "xmpp:%s", insert->from);
+ res |= ast_msg_set_body(msg, "%s", insert->message);
+ res |= ast_msg_set_context(msg, "%s", client->context);
+
+ if (res) {
+ ast_msg_destroy(msg);
+ } else {
+ ast_msg_queue(msg);
+ }
+
+ msg = NULL;
}
/* remove old messages received from this JID
@@ -4248,6 +4312,7 @@
ASTOBJ_CONTAINER_MARKALL(&client->buddies);
ast_copy_string(client->name, label, sizeof(client->name));
ast_copy_string(client->mid, "aaaaa", sizeof(client->mid));
+ ast_copy_string(client->context, "default", sizeof(client->context));
/* Set default values for the client object */
client->debug = debug;
@@ -4265,6 +4330,7 @@
ast_copy_string(client->statusmessage, "Online and Available", sizeof(client->statusmessage));
client->priority = 0;
client->status = IKS_SHOW_AVAILABLE;
+ client->send_to_dialplan = 0;
if (flag) {
client->authorized = 0;
@@ -4356,6 +4422,10 @@
} else {
ast_log(LOG_WARNING, "Unknown presence status: %s\n", var->value);
}
+ } else if (!strcasecmp(var->name, "context")) {
+ ast_copy_string(client->context, var->value, sizeof(client->context));
+ } else if (!strcasecmp(var->name, "sendtodialplan")) {
+ client->send_to_dialplan = ast_true(var->value) ? 1 : 0;
}
/* no transport support in this version */
/* else if (!strcasecmp(var->name, "transport"))
@@ -4553,6 +4623,13 @@
* (without the resource string)
* \param name label or JID
* \return aji_client.
+ *
+ * XXX \bug This function leads to reference leaks all over the place.
+ * ASTOBJ_CONTAINER_FIND() returns a reference, but if the
+ * client is found via the traversal, no reference is returned.
+ * None of the calling code releases references. This code needs
+ * to be changed to always return a reference, and all of the users
+ * need to be fixed to release them.
*/
struct aji_client *ast_aji_get_client(const char *name)
{
@@ -4668,7 +4745,7 @@
*/
static int unload_module(void)
{
-
+ ast_msg_tech_unregister(&msg_tech);
ast_cli_unregister_multiple(aji_cli, ARRAY_LEN(aji_cli));
ast_unregister_application(app_ajisend);
ast_unregister_application(app_ajisendgroup);
@@ -4721,6 +4798,7 @@
ast_cli_register_multiple(aji_cli, ARRAY_LEN(aji_cli));
ast_custom_function_register(&jabberstatus_function);
ast_custom_function_register(&jabberreceive_function);
+ ast_msg_tech_register(&msg_tech);
ast_mutex_init(&messagelock);
ast_cond_init(&message_received_condition, NULL);
Propchange: team/irroot/distrotech-customers-trunk/sounds/Makefile
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Jun 3 04:35:33 2011
@@ -3,3 +3,4 @@
/team/irroot/distrotech-customers/sounds/Makefile:318992-319000
/team/irroot/distrotech-customers-1.8/sounds/Makefile:319062,319075,321526,321549-321550
/team/irroot/t38gateway-trunk/sounds/Makefile:318974-319016,319064,319067,319071,319361,320879-321541
+/trunk/sounds/Makefile:321462-321617
More information about the asterisk-commits
mailing list