[asterisk-commits] oej: branch oej/set-tonezone-1.8 r364057 - in /team/oej/set-tonezone-1.8: ./ ...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Thu Apr 26 15:22:08 CDT 2012
Author: oej
Date: Thu Apr 26 15:21:42 2012
New Revision: 364057
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=364057
Log:
Reset automerge
Added:
team/oej/set-tonezone-1.8/autoconf/ast_c_declare_check.m4
- copied unchanged from r363986, branches/1.8/autoconf/ast_c_declare_check.m4
Removed:
team/oej/set-tonezone-1.8/apps/app_rpt.c
team/oej/set-tonezone-1.8/apps/rpt_flow.pdf
team/oej/set-tonezone-1.8/channels/chan_usbradio.c
team/oej/set-tonezone-1.8/channels/xpmr/
Modified:
team/oej/set-tonezone-1.8/ (props changed)
team/oej/set-tonezone-1.8/CHANGES
team/oej/set-tonezone-1.8/Makefile
team/oej/set-tonezone-1.8/UPGRADE.txt
team/oej/set-tonezone-1.8/addons/cdr_mysql.c
team/oej/set-tonezone-1.8/addons/chan_mobile.c
team/oej/set-tonezone-1.8/addons/chan_ooh323.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.h
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooGkClient.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooTimer.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/oochannels.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh245.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh323.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.c
team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.h
team/oej/set-tonezone-1.8/addons/ooh323c/src/ootypes.h
team/oej/set-tonezone-1.8/addons/ooh323c/src/printHandler.c
team/oej/set-tonezone-1.8/addons/ooh323cDriver.c
team/oej/set-tonezone-1.8/apps/app_authenticate.c
team/oej/set-tonezone-1.8/apps/app_chanisavail.c
team/oej/set-tonezone-1.8/apps/app_chanspy.c
team/oej/set-tonezone-1.8/apps/app_confbridge.c
team/oej/set-tonezone-1.8/apps/app_dial.c
team/oej/set-tonezone-1.8/apps/app_directed_pickup.c
team/oej/set-tonezone-1.8/apps/app_echo.c
team/oej/set-tonezone-1.8/apps/app_externalivr.c
team/oej/set-tonezone-1.8/apps/app_followme.c
team/oej/set-tonezone-1.8/apps/app_forkcdr.c
team/oej/set-tonezone-1.8/apps/app_ices.c
team/oej/set-tonezone-1.8/apps/app_jack.c
team/oej/set-tonezone-1.8/apps/app_meetme.c
team/oej/set-tonezone-1.8/apps/app_milliwatt.c
team/oej/set-tonezone-1.8/apps/app_page.c
team/oej/set-tonezone-1.8/apps/app_parkandannounce.c
team/oej/set-tonezone-1.8/apps/app_queue.c
team/oej/set-tonezone-1.8/apps/app_sms.c
team/oej/set-tonezone-1.8/apps/app_speech_utils.c
team/oej/set-tonezone-1.8/apps/app_stack.c
team/oej/set-tonezone-1.8/apps/app_transfer.c
team/oej/set-tonezone-1.8/apps/app_voicemail.c
team/oej/set-tonezone-1.8/autoconf/ast_gcc_attribute.m4
team/oej/set-tonezone-1.8/autoconf/libcurl.m4
team/oej/set-tonezone-1.8/bootstrap.sh
team/oej/set-tonezone-1.8/bridges/bridge_builtin_features.c (contents, props changed)
team/oej/set-tonezone-1.8/bridges/bridge_multiplexed.c (props changed)
team/oej/set-tonezone-1.8/build_tools/cflags.xml
team/oej/set-tonezone-1.8/build_tools/menuselect-deps.in
team/oej/set-tonezone-1.8/build_tools/prep_tarball
team/oej/set-tonezone-1.8/cel/cel_manager.c
team/oej/set-tonezone-1.8/cel/cel_odbc.c
team/oej/set-tonezone-1.8/cel/cel_pgsql.c
team/oej/set-tonezone-1.8/cel/cel_sqlite3_custom.c
team/oej/set-tonezone-1.8/channels/chan_agent.c
team/oej/set-tonezone-1.8/channels/chan_dahdi.c
team/oej/set-tonezone-1.8/channels/chan_gtalk.c
team/oej/set-tonezone-1.8/channels/chan_h323.c
team/oej/set-tonezone-1.8/channels/chan_iax2.c
team/oej/set-tonezone-1.8/channels/chan_jingle.c
team/oej/set-tonezone-1.8/channels/chan_mgcp.c
team/oej/set-tonezone-1.8/channels/chan_misdn.c
team/oej/set-tonezone-1.8/channels/chan_sip.c
team/oej/set-tonezone-1.8/channels/chan_skinny.c
team/oej/set-tonezone-1.8/channels/chan_unistim.c
team/oej/set-tonezone-1.8/channels/console_gui.c
team/oej/set-tonezone-1.8/channels/console_video.c
team/oej/set-tonezone-1.8/channels/misdn/isdn_lib.c
team/oej/set-tonezone-1.8/channels/misdn/isdn_msg_parser.c
team/oej/set-tonezone-1.8/channels/sig_analog.c
team/oej/set-tonezone-1.8/channels/sig_analog.h
team/oej/set-tonezone-1.8/channels/sig_pri.c
team/oej/set-tonezone-1.8/channels/sig_pri.h
team/oej/set-tonezone-1.8/channels/sig_ss7.c
team/oej/set-tonezone-1.8/channels/sig_ss7.h
team/oej/set-tonezone-1.8/channels/sip/config_parser.c
team/oej/set-tonezone-1.8/channels/sip/include/dialog.h
team/oej/set-tonezone-1.8/channels/sip/include/reqresp_parser.h
team/oej/set-tonezone-1.8/channels/sip/include/sip.h
team/oej/set-tonezone-1.8/channels/sip/reqresp_parser.c
team/oej/set-tonezone-1.8/channels/sip/sdp_crypto.c
team/oej/set-tonezone-1.8/configure
team/oej/set-tonezone-1.8/configure.ac
team/oej/set-tonezone-1.8/funcs/func_callerid.c
team/oej/set-tonezone-1.8/funcs/func_cdr.c
team/oej/set-tonezone-1.8/funcs/func_channel.c
team/oej/set-tonezone-1.8/funcs/func_curl.c
team/oej/set-tonezone-1.8/funcs/func_devstate.c
team/oej/set-tonezone-1.8/funcs/func_dialgroup.c
team/oej/set-tonezone-1.8/funcs/func_dialplan.c
team/oej/set-tonezone-1.8/funcs/func_env.c
team/oej/set-tonezone-1.8/funcs/func_global.c
team/oej/set-tonezone-1.8/funcs/func_lock.c
team/oej/set-tonezone-1.8/funcs/func_odbc.c
team/oej/set-tonezone-1.8/funcs/func_strings.c
team/oej/set-tonezone-1.8/funcs/func_sysinfo.c (contents, props changed)
team/oej/set-tonezone-1.8/funcs/func_timeout.c
team/oej/set-tonezone-1.8/funcs/func_version.c
team/oej/set-tonezone-1.8/include/asterisk/acl.h
team/oej/set-tonezone-1.8/include/asterisk/app.h
team/oej/set-tonezone-1.8/include/asterisk/cdr.h
team/oej/set-tonezone-1.8/include/asterisk/features.h
team/oej/set-tonezone-1.8/include/asterisk/linkedlists.h
team/oej/set-tonezone-1.8/include/asterisk/manager.h
team/oej/set-tonezone-1.8/include/asterisk/module.h
team/oej/set-tonezone-1.8/include/asterisk/res_srtp.h
team/oej/set-tonezone-1.8/pbx/pbx_config.c
team/oej/set-tonezone-1.8/pbx/pbx_loopback.c
team/oej/set-tonezone-1.8/pbx/pbx_lua.c
team/oej/set-tonezone-1.8/pbx/pbx_realtime.c
team/oej/set-tonezone-1.8/pbx/pbx_spool.c
team/oej/set-tonezone-1.8/sounds/Makefile
team/oej/set-tonezone-1.8/tests/test_devicestate.c
team/oej/set-tonezone-1.8/tests/test_event.c
team/oej/set-tonezone-1.8/tests/test_gosub.c
team/oej/set-tonezone-1.8/tests/test_linkedlists.c
team/oej/set-tonezone-1.8/tests/test_netsock2.c
team/oej/set-tonezone-1.8/tests/test_poll.c
Propchange: team/oej/set-tonezone-1.8/
------------------------------------------------------------------------------
automerge = Is-there-life-off-net?
Propchange: team/oej/set-tonezone-1.8/
('svnmerge-integrated' removed)
Modified: team/oej/set-tonezone-1.8/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/CHANGES?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/CHANGES (original)
+++ team/oej/set-tonezone-1.8/CHANGES Thu Apr 26 15:21:42 2012
@@ -7,6 +7,64 @@
=== and the other UPGRADE files for older releases.
===
======================================================================
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.10.0 ----------------------------
+------------------------------------------------------------------------------
+
+Background DNS Update Manager
+-----------------------------
+ * The default verbosity for ast_verb() messages has been increased to 6. This
+ should help reduce the 'doing dnsmgr_lookup for' message from spamming the
+ CLI.
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.9.1 -----------------------------
+------------------------------------------------------------------------------
+
+Gosub changes
+-------------
+ * A new function, STACK_PEEK, has been added, to correlate for functionality
+ available in AEL in 1.4 that disappeared in 1.8. STACK_PEEK permits the
+ user to see the location of the calling Gosub from within the subroutine.
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.9.0 -----------------------------
+------------------------------------------------------------------------------
+
+Followme changes
+-------------
+ * A new option, 'I' has been added to app_followme.
+ By setting this option, Asterisk will not update the caller with
+ connected line changes when they occur. This is similar to app_dial
+ and app_queue.
+
+RTP changes
+-------------
+ * A new option, 'probation' has been added to rtp.conf
+ RTP in strictrtp mode can now require more than 1 packet to exit learning
+ mode with a new source (and by default requires 4). The probation option
+ allows the user to change the required number of packets in sequence to any
+ desired value. Use a value of 1 to essentially restore the old behavior.
+ Also, with strictrtp on, Asterisk will now drop all packets until learning
+ mode has successfully exited. These changes are based on how pjmedia handles
+ media sources and source changes.
+
+FAX changes
+------------
+ * res_fax now has module reload support.
+
+------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.7.1 -----------------------------
+------------------------------------------------------------------------------
+
+SIP Changes
+-----------
+ * Due to potential username discovery vulnerabilities, the 'nat' setting in sip.conf
+ now defaults to force_rport. It is very important that phones requiring nat=no be
+ specifically set as such instead of relying on the default setting. If at all
+ possible, all devices should have nat settings configured in the general section as
+ opposed to configuring nat per-device.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 1.6.2 to Asterisk 1.8 ----------------
Modified: team/oej/set-tonezone-1.8/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/Makefile?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/Makefile (original)
+++ team/oej/set-tonezone-1.8/Makefile Thu Apr 26 15:21:42 2012
@@ -62,7 +62,6 @@
export ASTKEYDIR
export OSARCH # Operating system
-export PROC # Processor type
export NOISY_BUILD # Used in Makefile.rules
export MENUSELECT_CFLAGS # Options selected in menuselect.
@@ -161,39 +160,6 @@
# Create OPTIONS variable, but probably we can assign directly to ASTCFLAGS
OPTIONS=
-ifeq ($(OSARCH),linux-gnu)
- ifeq ($(PROC),x86_64)
- # You must have GCC 3.4 to use k8, otherwise use athlon
- PROC=k8
- #PROC=athlon
- endif
-
- ifeq ($(PROC),sparc64)
- #The problem with sparc is the best stuff is in newer versions of gcc (post 3.0) only.
- #This works for even old (2.96) versions of gcc and provides a small boost either way.
- #A ultrasparc cpu is really v9 but the stock debian stable 3.0 gcc doesn't support it.
- #So we go lowest common available by gcc and go a step down, still a step up from
- #the default as we now have a better instruction set to work with. - Belgarath
- PROC=ultrasparc
- OPTIONS+=$(shell if $(CC) -mtune=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mtune=$(PROC)"; fi)
- OPTIONS+=$(shell if $(CC) -mcpu=v8 -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-mcpu=v8"; fi)
- OPTIONS+=-fomit-frame-pointer
- endif
-
- ifeq ($(PROC),arm)
- # The Cirrus logic is the only heavily shipping arm processor with a real floating point unit
- ifeq ($(SUB_PROC),maverick)
- OPTIONS+=-fsigned-char -mcpu=ep9312
- else
- ifeq ($(SUB_PROC),xscale)
- OPTIONS+=-fsigned-char -mcpu=xscale
- else
- OPTIONS+=-fsigned-char
- endif
- endif
- endif
-endif
-
ifeq ($(findstring -save-temps,$(_ASTCFLAGS) $(ASTCFLAGS)),)
ifeq ($(findstring -pipe,$(_ASTCFLAGS) $(ASTCFLAGS)),)
_ASTCFLAGS+=-pipe
@@ -220,20 +186,7 @@
_ASTCFLAGS+=-isystem /usr/local/include
endif
-ifeq ($(findstring -march,$(_ASTCFLAGS) $(ASTCFLAGS)),)
- ifneq ($(PROC),ultrasparc)
- _ASTCFLAGS+=$(shell if $(CC) -march=$(PROC) -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-march=$(PROC)"; fi)
- endif
-endif
-
-ifeq ($(PROC),ppc)
- _ASTCFLAGS+=-fsigned-char
-endif
-
ifeq ($(OSARCH),FreeBSD)
- ifeq ($(PROC),i386)
- _ASTCFLAGS+=-march=i686
- endif
# -V is understood by BSD Make, not by GNU make.
BSDVERSION=$(shell make -V OSVERSION -f /usr/share/mk/bsd.port.subdir.mk)
_ASTCFLAGS+=$(shell if test $(BSDVERSION) -lt 500016 ; then echo "-D_THREAD_SAFE"; fi)
Modified: team/oej/set-tonezone-1.8/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/UPGRADE.txt?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/UPGRADE.txt (original)
+++ team/oej/set-tonezone-1.8/UPGRADE.txt Thu Apr 26 15:21:42 2012
@@ -18,7 +18,27 @@
===
===========================================================
+From 1.8.11 to 1.8.12:
+* In AEL dialplans, the "h" extension will now be inherited from prior
+ calling contexts, just as it had in 1.4. If you have created an AEL
+ dialplan from scratch in earlier versions of 1.8, you may want to
+ check that the execution of "h" extensions in earlier contexts is what
+ you want. If you want to interrupt this functionality, simply placing
+ an "h" extension in the macro where you want no inheritance to take
+ place should be sufficient.
+
+From 1.8.10 to 1.8.11:
+
+* If no transport is specified in sip.conf, transport will default to UDP.
+ Also, if multiple transport= lines are used, only the last will be used.
+
From 1.6.2 to 1.8:
+
+* When using TLS with Manager and the HTTP server, the desired port
+ must be specified in the tlsbindaddr setting. If no port is specified,
+ then the default port will be used. See the sample config file to know
+ the default ports. Settings like "sslbindport" and "tlsbindport" have
+ no effect.
* chan_sip no longer sets HASH(SIP_CAUSE,<chan name>) on channels by default.
This must now be enabled by setting 'sipstorecause' to 'yes' in sip.conf.
@@ -158,6 +178,13 @@
If your outgoing folder is on a NFS mount or another network file system,
changes to the files will not be detected. You can revert to polling the
directory by specifying --without-inotify to configure before compiling.
+
+* The 'sipusers' realtime table has been removed completely. Use the 'sippeers'
+ table with type 'user' for user type objects.
+
+* The sip.conf allowoverlap option now accepts 'dtmf' as a value. If you
+ are using the early media DTMF overlap dialing method you now need to set
+ allowoverlap=dtmf.
From 1.6.1 to 1.6.2:
Modified: team/oej/set-tonezone-1.8/addons/cdr_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/cdr_mysql.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/cdr_mysql.c (original)
+++ team/oej/set-tonezone-1.8/addons/cdr_mysql.c Thu Apr 26 15:21:42 2012
@@ -462,6 +462,7 @@
if (reload) {
AST_RWLIST_UNLOCK(&columns);
}
+ ast_config_destroy(cfg);
return AST_MODULE_LOAD_SUCCESS;
}
@@ -502,6 +503,7 @@
if (reload) {
AST_RWLIST_UNLOCK(&columns);
}
+ ast_config_destroy(cfg);
return AST_MODULE_LOAD_FAILURE;
}
Modified: team/oej/set-tonezone-1.8/addons/chan_mobile.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/chan_mobile.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/chan_mobile.c (original)
+++ team/oej/set-tonezone-1.8/addons/chan_mobile.c Thu Apr 26 15:21:42 2012
@@ -1722,7 +1722,7 @@
return 1;
e_return:
- ast_log(LOG_ERROR, "error parsing AT result on rfcomm socket");
+ ast_log(LOG_ERROR, "error parsing AT result on rfcomm socket\n");
return res;
}
@@ -2123,7 +2123,7 @@
return HFP_CIND_NONE;
}
- if (i >= sizeof(hfp->cind_state)) {
+ if (i >= ARRAY_LEN(hfp->cind_state)) {
ast_debug(2, "[%s] CIEV event index too high (%s)\n", hfp->owner->id, buf);
return HFP_CIND_NONE;
}
@@ -2276,14 +2276,13 @@
*/
static char *hfp_parse_cusd(struct hfp_pvt *hfp, char *buf)
{
- int i, state, message_start, message_end;
+ int i, message_start, message_end;
char *cusd;
size_t s;
/* parse cusd message in the following format:
* +CUSD: 0,"100,00 EURO, valid till 01.01.2010, you are using tariff "Mega Tariff". More informations *111#."
*/
- state = 0;
message_start = 0;
message_end = 0;
s = strlen(buf);
@@ -2606,7 +2605,7 @@
int value;
/* store the current indicator */
- if (group >= sizeof(hfp->cind_state)) {
+ if (group >= ARRAY_LEN(hfp->cind_state)) {
ast_debug(1, "ignoring CIND state '%s' for group %d, we only support up to %d indicators\n", indicator, group, (int) sizeof(hfp->cind_state));
return -1;
}
@@ -2681,7 +2680,7 @@
{
int i, state, group;
size_t s;
- char *indicator = NULL, *values;
+ char *indicator = NULL;
hfp->nocallsetup = 1;
@@ -2720,7 +2719,6 @@
}
break;
case 5: /* mark the start of the value range */
- values = &buf[i];
state++;
break;
case 6: /* find the end of the value range */
@@ -2992,7 +2990,6 @@
sdp_list_t *l2cap_list = 0, *rfcomm_list = 0, *root_list = 0, *proto_list = 0, *access_proto_list = 0, *svc_uuid_list = 0;
sdp_data_t *channel = 0;
- int err = 0;
sdp_session_t *session = 0;
sdp_record_t *record = sdp_record_alloc();
@@ -3029,7 +3026,7 @@
if (!(session = sdp_connect(BDADDR_ANY, BDADDR_LOCAL, SDP_RETRY_IF_BUSY)))
ast_log(LOG_WARNING, "Failed to connect sdp and create session.\n");
else
- err = sdp_record_register(session, record, 0);
+ sdp_record_register(session, record, 0);
sdp_data_free(channel);
sdp_list_free(rfcomm_list, 0);
Modified: team/oej/set-tonezone-1.8/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/chan_ooh323.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/chan_ooh323.c (original)
+++ team/oej/set-tonezone-1.8/addons/chan_ooh323.c Thu Apr 26 15:21:42 2012
@@ -124,9 +124,9 @@
};
static struct ast_udptl_protocol ooh323_udptl = {
- type: "H323",
- get_udptl_info: ooh323_get_udptl_peer,
- set_udptl_peer: ooh323_set_udptl_peer,
+ .type = "H323",
+ .get_udptl_info = ooh323_get_udptl_peer,
+ .set_udptl_peer = ooh323_set_udptl_peer,
};
@@ -353,10 +353,10 @@
/* Don't hold a h323 pvt lock while we allocate a channel */
ast_mutex_unlock(&i->lock);
+ ast_mutex_lock(&ooh323c_cn_lock);
ch = ast_channel_alloc(1, state, i->callerid_num, i->callerid_name,
i->accountcode, i->exten, i->context, linkedid, i->amaflags,
"OOH323/%s-%ld", host, callnumber);
- ast_mutex_lock(&ooh323c_cn_lock);
callnumber++;
ast_mutex_unlock(&ooh323c_cn_lock);
@@ -449,8 +449,11 @@
}
}
- manager_event(EVENT_FLAG_SYSTEM, "ChannelUpdate", "Channel: %s\r\nChanneltype: %s\r\n"
+ if (ch) {
+ manager_event(EVENT_FLAG_SYSTEM, "ChannelUpdate",
+ "Channel: %s\r\nChanneltype: %s\r\n"
"CallRef: %d\r\n", ch->name, "OOH323", i->call_reference);
+ }
} else
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
@@ -568,14 +571,12 @@
char *ext = NULL;
char tmp[256];
char formats[FORMAT_STRING_SIZE];
- int oldformat;
int port = 0;
if (gH323Debug)
ast_verbose("--- ooh323_request - data %s format %s\n", (char*)data,
ast_getformatname_multiple(formats,FORMAT_STRING_SIZE,format));
- oldformat = format;
format &= AST_FORMAT_AUDIO_MASK;
if (!format) {
ast_log(LOG_NOTICE, "Asked to get a channel of unsupported format '%lld'\n", (long long) format);
@@ -854,6 +855,7 @@
{
char dtmf[2];
struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt;
+ int res = 0;
if (gH323Debug)
ast_verbose("--- ooh323_digit_begin\n");
@@ -882,17 +884,21 @@
dtmf[0] = digit;
dtmf[1] = '\0';
ooSendDTMFDigit(p->callToken, dtmf);
+ } else if (p->dtmfmode & H323_DTMF_INBAND) {
+ res = -1; // tell Asterisk to generate inband indications
}
ast_mutex_unlock(&p->lock);
- if (gH323Debug)
- ast_verbose("+++ ooh323_digit_begin\n");
-
- return 0;
+ if (gH323Debug) {
+ ast_verbose("+++ ooh323_digit_begin %d\n", res);
+ }
+
+ return res;
}
static int ooh323_digit_end(struct ast_channel *chan, char digit, unsigned int duration)
{
struct ooh323_pvt *p = (struct ooh323_pvt *) chan->tech_pvt;
+ int res = 0;
if (gH323Debug)
ast_verbose("--- ooh323_digit_end\n");
@@ -902,14 +908,18 @@
return -1;
}
ast_mutex_lock(&p->lock);
- if (p->rtp && ((p->dtmfmode & H323_DTMF_RFC2833) || (p->dtmfmode & H323_DTMF_CISCO)) )
+ if (p->rtp && ((p->dtmfmode & H323_DTMF_RFC2833) || (p->dtmfmode & H323_DTMF_CISCO)) ) {
ast_rtp_instance_dtmf_end(p->rtp, digit);
+ } else if(p->dtmfmode & H323_DTMF_INBAND) {
+ res = -1; // tell Asterisk to stop inband indications
+ }
ast_mutex_unlock(&p->lock);
- if (gH323Debug)
- ast_verbose("+++ ooh323_digit_end\n");
-
- return 0;
+ if (gH323Debug) {
+ ast_verbose("+++ ooh323_digit_end, res = %d\n", res);
+ }
+
+ return res;
}
@@ -2638,6 +2648,7 @@
pNewAlias = malloc(sizeof(struct ooAliases));
if (!pNewAlias) {
ast_log(LOG_ERROR, "Failed to allocate memory for h323id alias\n");
+ ast_config_destroy(cfg);
return 1;
}
if (gAliasList == NULL) { /* first h323id - set as callerid if callerid is not set */
@@ -2652,6 +2663,7 @@
pNewAlias = malloc(sizeof(struct ooAliases));
if (!pNewAlias) {
ast_log(LOG_ERROR, "Failed to allocate memory for e164 alias\n");
+ ast_config_destroy(cfg);
return 1;
}
pNewAlias->type = T_H225AliasAddress_dialedDigits;
@@ -2663,6 +2675,7 @@
pNewAlias = malloc(sizeof(struct ooAliases));
if (!pNewAlias) {
ast_log(LOG_ERROR, "Failed to allocate memory for email alias\n");
+ ast_config_destroy(cfg);
return 1;
}
pNewAlias->type = T_H225AliasAddress_email_ID;
@@ -3908,7 +3921,6 @@
struct sockaddr_in them;
struct sockaddr_in us;
struct ast_sockaddr tmp;
- int mode;
if (gH323Debug)
ast_verbose("--- ooh323_set_peer - %s\n", chan->name);
@@ -3917,7 +3929,6 @@
return 0;
}
- mode = ooh323_convertAsteriskCapToH323Cap(chan->writeformat);
p = (struct ooh323_pvt *) chan->tech_pvt;
if (!p) {
ast_log(LOG_ERROR, "No Private Structure, this is bad\n");
@@ -4286,7 +4297,7 @@
f = &null_frame;
}
- if (p->owner) {
+ if (f && p->owner) {
/* We already hold the channel lock */
if (f->frametype == AST_FRAME_VOICE && !p->faxmode) {
if (f->subclass.codec != p->owner->nativeformats) {
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.c Thu Apr 26 15:21:42 2012
@@ -135,7 +135,7 @@
pList->count--;
}
-void dListFindAndRemove(DList* pList, void *data)
+void dListFindAndRemove(struct OOCTXT* pctxt, DList* pList, void *data)
{
DListNode *pNode, *pNextNode;
for(pNode = pList->head; pNode !=0; pNode = pNextNode){
@@ -143,8 +143,10 @@
if(pNode->data == data) /* pointer comparison*/
break;
}
- if(pNode)
+ if(pNode) {
dListRemove(pList, pNode);
+ memFreePtr(pctxt, pNode);
+ }
}
DListNode* dListFindByIndex (DList* pList, int index)
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.h
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.h?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.h (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/dlist.h Thu Apr 26 15:21:42 2012
@@ -192,7 +192,7 @@
* already be in the linked list structure.
*/
EXTERN void dListRemove (DList* pList, DListNode* node);
-void dListFindAndRemove(DList* pList, void* data);
+EXTERN void dListFindAndRemove(struct OOCTXT* pctxt, DList* pList, void* data);
/**
* @}
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/ooGkClient.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/ooGkClient.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/ooGkClient.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/ooGkClient.c Thu Apr 26 15:21:42 2012
@@ -364,7 +364,7 @@
int ooGkClientReceive(ooGkClient *pGkClient)
{
- ASN1OCTET recvBuf[1024];
+ ASN1OCTET recvBuf[ASN_K_ENCBUFSIZ];
int recvLen;
char remoteHost[32];
int iFromPort=0;
@@ -375,7 +375,7 @@
ast_mutex_lock(&pGkClient->Lock);
pctxt = &pGkClient->msgCtxt;
- recvLen = ooSocketRecvFrom(pGkClient->rasSocket, recvBuf, 1024, remoteHost,
+ recvLen = ooSocketRecvFrom(pGkClient->rasSocket, recvBuf, 2048, remoteHost,
32, &iFromPort);
if(recvLen <0)
{
@@ -858,7 +858,6 @@
memFreePtr(&pGkClient->ctxt, pTimer->cbData);
ooTimerDelete(&pGkClient->ctxt, &pGkClient->timerList, pTimer);
OOTRACEDBGA1("Deleted GRQ Timer.\n");
- break;
}
}
@@ -1063,7 +1062,7 @@
allocate storage for endpoint-identifier, and populate it from what the
GK told us from the previous RCF. Only allocate on the first pass thru here */
pRegReq->endpointIdentifier.data =
- (ASN116BITCHAR*)memAlloc(pctxt, pGkClient->gkId.nchars*sizeof(ASN116BITCHAR));
+ (ASN116BITCHAR*)memAlloc(pctxt, pGkClient->endpointId.nchars*sizeof(ASN116BITCHAR));
if (pRegReq->endpointIdentifier.data) {
pRegReq->endpointIdentifier.nchars = pGkClient->endpointId.nchars;
pRegReq->m.endpointIdentifierPresent = TRUE;
@@ -1136,6 +1135,8 @@
ooGkClientTimerCb *cbData;
ASN1UINT regTTL=0;
/* Extract Endpoint Id */
+ if (pGkClient->endpointId.data)
+ memFreePtr(&pGkClient->ctxt, pGkClient->endpointId.data);
pGkClient->endpointId.nchars =
pRegistrationConfirm->endpointIdentifier.nchars;
pGkClient->endpointId.data = (ASN116BITCHAR*)memAlloc(&pGkClient->ctxt,
@@ -1288,7 +1289,6 @@
memFreePtr(&pGkClient->ctxt, pTimer->cbData);
ooTimerDelete(&pGkClient->ctxt, &pGkClient->timerList, pTimer);
OOTRACEDBGA1("Deleted RRQ Timer.\n");
- break;
}
}
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/ooTimer.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/ooTimer.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/ooTimer.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/ooTimer.c Thu Apr 26 15:21:42 2012
@@ -79,7 +79,7 @@
void ooTimerDelete (OOCTXT* pctxt, DList *pList, OOTimer* pTimer)
{
- dListFindAndRemove (pList, pTimer);
+ dListFindAndRemove (pctxt, pList, pTimer);
memFreePtr (pctxt, pTimer);
}
@@ -115,7 +115,7 @@
stat = (*pTimer->timeoutCB)(pTimer->cbData);
- if (0 != stat || !pTimer->reRegister) {
+ if (!pTimer->reRegister) {
ooTimerDelete (pctxt, pList, pTimer);
}
}
@@ -175,7 +175,7 @@
void ooTimerReset (OOCTXT* pctxt, DList *pList, OOTimer* pTimer)
{
if (pTimer->reRegister) {
- dListFindAndRemove (pList, pTimer);
+ dListFindAndRemove (pctxt, pList, pTimer);
ooTimerComputeExpireTime (pTimer);
ooTimerInsertEntry (pctxt, pList, pTimer);
}
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/oochannels.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/oochannels.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/oochannels.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/oochannels.c Thu Apr 26 15:21:42 2012
@@ -1576,6 +1576,10 @@
/* if(gH323ep.h323Callbacks.onAlerting && call->callState < OO_CALL_CLEAR)
gH323ep.h323Callbacks.onAlerting(call); */
break;
+ case OOStatus:
+ OOTRACEINFO3("Sent Message - Status (%s, %s) \n", call->callType,
+ call->callToken);
+ break;
case OOConnect:
OOTRACEINFO3("Sent Message - Connect (%s, %s)\n", call->callType,
call->callToken);
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh245.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh245.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh245.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh245.c Thu Apr 26 15:21:42 2012
@@ -16,6 +16,7 @@
#include "asterisk.h"
#include "asterisk/lock.h"
#include "ooh245.h"
+#include "ooq931.h"
#include "ooCalls.h"
#include "printHandler.h"
#include "ooh323ep.h"
@@ -957,6 +958,9 @@
/*Since Cap exchange and MasterSlave Procedures are done */
if(gH323ep.h323Callbacks.openLogicalChannels)
gH323ep.h323Callbacks.openLogicalChannels(call);
+
+ /* ooSendStatusInquiry(call); */
+
if(!ooGetTransmitLogicalChannel(call))
ooOpenLogicalChannels(call);
#if 0
@@ -2121,6 +2125,9 @@
{
if(gH323ep.h323Callbacks.openLogicalChannels)
gH323ep.h323Callbacks.openLogicalChannels(call);
+
+ /* ooSendStatusInquiry(call); */
+
if(!ooGetTransmitLogicalChannel(call))
ooOpenLogicalChannels(call);
#if 0
@@ -3069,7 +3076,12 @@
we can accept new capability set only. We must remember also that new join caps
will be previously joined caps with new cap set.
*/
- if(call->remoteTermCapSeqNo == tcs->sequenceNumber)
+
+/* 20111103 */
+/* for addition for previous we must check repeated tcs if it's not first
+ tcs i.e. SeqNo is not null */
+
+ if(call->remoteTermCapSeqNo && call->remoteTermCapSeqNo == tcs->sequenceNumber)
call->localTermCapState = OO_LocalTermCapExchange_Idle;
}
@@ -3156,6 +3168,9 @@
if(gH323ep.h323Callbacks.openLogicalChannels)
gH323ep.h323Callbacks.openLogicalChannels(call);
+
+ /* ooSendStatusInquiry(call); */
+
if(!ooGetTransmitLogicalChannel(call))
ooOpenLogicalChannels(call);
#if 0
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh323.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh323.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/ooh323.c Thu Apr 26 15:21:42 2012
@@ -1792,6 +1792,7 @@
case Q931StatusEnquiryMsg:
OOTRACEINFO3("H.225 Status Inquiry message Received (%s, %s)\n",
call->callType, call->callToken);
+ ooSendStatus(call);
ooFreeQ931Message(call->msgctxt, q931Msg);
break;
case Q931SetupAckMsg:
Modified: team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.c
URL: http://svnview.digium.com/svn/asterisk/team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.c?view=diff&rev=364057&r1=364056&r2=364057
==============================================================================
--- team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.c (original)
+++ team/oej/set-tonezone-1.8/addons/ooh323c/src/ooq931.c Thu Apr 26 15:21:42 2012
@@ -233,6 +233,15 @@
msg->causeIE = ie;
OOTRACEDBGB1(" Cause IE = {\n");
OOTRACEDBGB2(" %s\n", ooGetQ931CauseValueText(ie->data[1]&0x7f));
+ OOTRACEDBGB1(" }\n");
+ }
+
+ /* Handle CallState ie */
+ if(ie->discriminator == Q931CallStateIE)
+ {
+ msg->causeIE = ie;
+ OOTRACEDBGB1(" CallState IE = {\n");
+ OOTRACEDBGB2(" %d\n", ie->data[0]);
OOTRACEDBGB1(" }\n");
}
@@ -403,6 +412,7 @@
(*q931msg)->callingPartyNumberIE = NULL;
(*q931msg)->calledPartyNumberIE = NULL;
(*q931msg)->causeIE = NULL;
+ (*q931msg)->callstateIE = NULL;
return OO_OK;
}
}
@@ -510,7 +520,7 @@
int ooEncodeUUIE(OOCTXT* pctxt, Q931Message *q931msg)
{
- ASN1OCTET msgbuf[1024];
+ ASN1OCTET msgbuf[ASN_K_ENCBUFSIZ];
ASN1OCTET * msgptr=NULL;
int len;
ASN1BOOL aligned = TRUE;
@@ -680,6 +690,10 @@
}
else if(pq931Msg->messageType == Q931InformationMsg){
msgbuf[i++] = OOInformationMessage;
+ }
+ else if(pq931Msg->messageType == Q931StatusMsg ||
+ pq931Msg->messageType == Q931StatusEnquiryMsg){
+ msgbuf[i++] = OOStatus;
}
else if(pq931Msg->messageType == Q931FacilityMsg){
msgbuf[i++] = OOFacility;
@@ -751,8 +765,8 @@
msgbuf[i++] = 0x88;
}*/
- /*Add display ie. */
- if(!ooUtilsIsStrEmpty(call->ourCallerId))
+ /*Add display ie. for all but Status message as per ASTERISK-18748 */
+ if(!ooUtilsIsStrEmpty(call->ourCallerId) && (pq931Msg->messageType != Q931StatusMsg))
{
msgbuf[i++] = Q931DisplayIE;
ieLen = strlen(call->ourCallerId)+1;
@@ -789,6 +803,13 @@
msgbuf[i++] = pq931Msg->keypadIE->length;
memcpy(msgbuf+i, pq931Msg->keypadIE->data, pq931Msg->keypadIE->length);
i += pq931Msg->keypadIE->length;
+ }
+
+ if(pq931Msg->callstateIE) {
+ msgbuf[i++] = Q931CallStateIE;
+ msgbuf[i++] = pq931Msg->callstateIE->length;
+ memcpy(msgbuf+i, pq931Msg->callstateIE->data, pq931Msg->callstateIE->length);
+ i += pq931Msg->callstateIE->length;
}
/* Note: Have to fix this, though it works. Need to get rid of ie list.
@@ -1703,6 +1724,138 @@
return ret;
}
+/*
+
+*/
+
+int ooSendStatus(OOH323CallData *call)
+{
+ int ret;
+ H225Status_UUIE *status;
+ Q931Message *q931msg=NULL;
+ /* OOCTXT *pctxt = &gH323ep.msgctxt; */
+ OOCTXT *pctxt = call->msgctxt;
+
+ OOTRACEDBGC3("Building StatusMsg (%s, %s)\n", call->callType,
+ call->callToken);
+ ret = ooCreateQ931Message(pctxt, &q931msg, Q931StatusMsg);
+ if(ret != OO_OK)
+ {
+ OOTRACEERR1("Error: In allocating memory for - H225 Status "
+ "message\n");
+ return OO_FAILED;
+ }
+
+ q931msg->callReference = call->callReference;
+
+ q931msg->userInfo = (H225H323_UserInformation*)memAllocZ(pctxt,
+ sizeof(H225H323_UserInformation));
+ if(!q931msg->userInfo)
+ {
+ OOTRACEERR1("ERROR:Memory - ooSendStatus - userInfo\n");
+ return OO_FAILED;
+ }
+ q931msg->userInfo->h323_uu_pdu.m.h245TunnelingPresent=1;
+ q931msg->userInfo->h323_uu_pdu.h245Tunneling =
+ OO_TESTFLAG(call->flags, OO_M_TUNNELING);
+ q931msg->userInfo->h323_uu_pdu.h323_message_body.t =
+ T_H225H323_UU_PDU_h323_message_body_status;
+
+ status = (H225Status_UUIE*)memAllocZ(pctxt,
+ sizeof(H225Status_UUIE));
+ if(!status)
+ {
+ OOTRACEERR1("ERROR:Memory - ooSendStatus \n");
+ return OO_FAILED;
+ }
+ q931msg->userInfo->h323_uu_pdu.h323_message_body.u.status = status;
+
+ status->callIdentifier.guid.numocts =
+ call->callIdentifier.guid.numocts;
+ memcpy(status->callIdentifier.guid.data,
+ call->callIdentifier.guid.data,
+ call->callIdentifier.guid.numocts);
+ status->protocolIdentifier = gProtocolID;
+
+ ooQ931SetCauseIE(pctxt, q931msg, Q931StatusEnquiryResponse, 0, 0);
+ ooQ931SetCallStateIE(pctxt, q931msg, 10);
+
+ OOTRACEDBGA3("Built Status (%s, %s)\n", call->callType,
+ call->callToken);
+ ret = ooSendH225Msg(call, q931msg);
+ if(ret != OO_OK)
+ {
+ OOTRACEERR3("Error:Failed to enqueue Status message to outbound queue.(%s, %s)\n", call->callType, call->callToken);
+ }
+
+ /* memReset(&gH323ep.msgctxt); */
+ memReset(call->msgctxt);
+
+ return ret;
+}
+
+int ooSendStatusInquiry(OOH323CallData *call)
+{
+ int ret;
+ H225StatusInquiry_UUIE *statusInq;
+ Q931Message *q931msg=NULL;
+ /* OOCTXT *pctxt = &gH323ep.msgctxt; */
+ OOCTXT *pctxt = call->msgctxt;
+
+ OOTRACEDBGC3("Building StatusInquryMsg (%s, %s)\n", call->callType,
+ call->callToken);
+ ret = ooCreateQ931Message(pctxt, &q931msg, Q931StatusEnquiryMsg);
+ if(ret != OO_OK)
+ {
+ OOTRACEERR1("Error: In allocating memory for - H225 Status "
+ "message\n");
+ return OO_FAILED;
+ }
+
+ q931msg->callReference = call->callReference;
+
+ q931msg->userInfo = (H225H323_UserInformation*)memAllocZ(pctxt,
+ sizeof(H225H323_UserInformation));
+ if(!q931msg->userInfo)
+ {
+ OOTRACEERR1("ERROR:Memory - ooSendStatus - userInfo\n");
+ return OO_FAILED;
+ }
+ q931msg->userInfo->h323_uu_pdu.m.h245TunnelingPresent=1;
+ q931msg->userInfo->h323_uu_pdu.h245Tunneling =
+ OO_TESTFLAG(call->flags, OO_M_TUNNELING);
+ q931msg->userInfo->h323_uu_pdu.h323_message_body.t =
+ T_H225H323_UU_PDU_h323_message_body_statusInquiry;
+
+ statusInq = (H225StatusInquiry_UUIE*)memAllocZ(pctxt,
+ sizeof(H225StatusInquiry_UUIE));
+ if(!statusInq)
+ {
+ OOTRACEERR1("ERROR:Memory - ooSendStatusInquiry \n");
+ return OO_FAILED;
+ }
+ q931msg->userInfo->h323_uu_pdu.h323_message_body.u.statusInquiry = statusInq;
+
+ statusInq->callIdentifier.guid.numocts =
+ call->callIdentifier.guid.numocts;
+ memcpy(statusInq->callIdentifier.guid.data,
+ call->callIdentifier.guid.data,
+ call->callIdentifier.guid.numocts);
+ statusInq->protocolIdentifier = gProtocolID;
+
+ OOTRACEDBGA3("Built StatusInquiry (%s, %s)\n", call->callType,
+ call->callToken);
+ ret = ooSendH225Msg(call, q931msg);
+ if(ret != OO_OK)
+ {
+ OOTRACEERR3("Error:Failed to enqueue Status message to outbound queue.(%s, %s)\n", call->callType, call->callToken);
+ }
+
+ /* memReset(&gH323ep.msgctxt); */
+ memReset(call->msgctxt);
+
+ return ret;
+}
int ooSendReleaseComplete(OOH323CallData *call)
{
int ret;
@@ -3125,6 +3278,28 @@
[... 16782 lines stripped ...]
More information about the asterisk-commits
mailing list