Remove as much trailing whitespace as possible.

Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
This commit is contained in:
Sean Bright 2017-12-22 09:23:22 -05:00
parent 9ef97b5a91
commit fd0ca1c3f9
700 changed files with 9249 additions and 9661 deletions

View File

@ -1113,4 +1113,3 @@ FORCE:
# This only stops targets within the root Makefile from building in parallel.
.NOTPARALLEL:

View File

@ -38,7 +38,7 @@ ifneq ($(MODULE_PREFIX),)
ALL_C_MODS+=$(foreach p,$(MODULE_PREFIX),$(patsubst %.c,%,$(wildcard $(p)_*.c)))
ALL_CC_MODS+=$(foreach p,$(MODULE_PREFIX),$(patsubst %.cc,%,$(wildcard $(p)_*.cc)))
endif
C_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_C_MODS))
CC_MODS:=$(filter-out $(MENUSELECT_$(MENUSELECT_CATEGORY)),$(ALL_CC_MODS))

View File

@ -1,6 +1,6 @@
#
# Asterisk -- An open source telephony toolkit.
#
#
# Makefile rules
#
# Copyright (C) 2006-2010, Digium, Inc.
@ -55,7 +55,7 @@ ifeq ($(NOISY_BUILD),)
ECHO_PREFIX=@
CMD_PREFIX=@
else
ECHO_PREFIX=@\#
ECHO_PREFIX=@\#
CMD_PREFIX=
endif

View File

@ -37,9 +37,9 @@ Dialplan Expressions:
Agents:
* The default for ackcall has been changed to "no" instead of "yes"
* The default for ackcall has been changed to "no" instead of "yes"
because of a bug which caused the "yes" behavior to generally act like
"no". You may need to adjust the value if your agents behave
"no". You may need to adjust the value if your agents behave
differently than you expect with respect to acknowledgement.
* The AgentCallBackLogin application now requires a second '|' before
@ -56,16 +56,16 @@ Parking:
Dialing:
* The Caller*ID of the outbound leg is now the extension that was
called, rather than the Caller*ID of the inbound leg of the call. The
"o" flag for Dial can be used to restore the original behavior if
* The Caller*ID of the outbound leg is now the extension that was
called, rather than the Caller*ID of the inbound leg of the call. The
"o" flag for Dial can be used to restore the original behavior if
desired. Note that if you are looking for the originating callerid
from the manager event, there is a new manager event "Dial" which
from the manager event, there is a new manager event "Dial" which
provides the source and destination channels and callerid.
IAX:
IAX:
* The naming convention for IAX channels has changed in two ways:
* The naming convention for IAX channels has changed in two ways:
1. The call number follows a "-" rather than a "/" character.
2. The name of the channel has been simplified to IAX2/peer-callno,
rather than IAX2/peer@peer-callno or even IAX2/peer@peer/callno.
@ -77,7 +77,7 @@ SIP:
the other channel drivers and to avoid confusion with the "port"
option for users/peers.
* The "Registry" event now uses "Username" rather than "User" for
* The "Registry" event now uses "Username" rather than "User" for
consistency with IAX.
Applications:
@ -85,7 +85,7 @@ Applications:
* With the addition of dialplan functions (which operate similarly
to variables), the SetVar application has been renamed to Set.
* The CallerPres application has been removed. Use SetCallerPres
* The CallerPres application has been removed. Use SetCallerPres
instead. It accepts both numeric and symbolic names.
* The applications GetGroupCount, GetGroupMatchCount, SetGroup, and
@ -145,7 +145,7 @@ Applications:
moved to option 5.
* The application VoiceMailMain now only matches the 'default' context if
none is specified in the arguments. (This was the previously
none is specified in the arguments. (This was the previously
documented behavior, however, we didn't follow that behavior.) The old
behavior can be restored by setting searchcontexts=yes in voicemail.conf.
@ -153,7 +153,7 @@ Queues:
* A queue is now considered empty not only if there are no members but if
none of the members are available (e.g. agents not logged on). To
restore the original behavior, use "leavewhenempty=strict" or
restore the original behavior, use "leavewhenempty=strict" or
"joinwhenempty=strict" instead of "=yes" for those options.
* It is now possible to use multi-digit extensions in the exit context
@ -165,8 +165,8 @@ Queues:
Extensions:
* By default, there is a new option called "autofallthrough" in
extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
behavior was to wait for an extension to be dialed after there were no
extensions.conf that is set to yes. Asterisk 1.0 (and earlier)
behavior was to wait for an extension to be dialed after there were no
more extensions to execute. "autofallthrough" changes this behavior
so that the call will immediately be terminated with BUSY,
CONGESTION, or HANGUP based on Asterisk's best guess. If you are
@ -175,9 +175,9 @@ Extensions:
AGI:
* AGI scripts did not always get SIGHUP at the end, previously. That
behavior has been fixed. If you do not want your script to terminate
at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
* AGI scripts did not always get SIGHUP at the end, previously. That
behavior has been fixed. If you do not want your script to terminate
at the end of AGI being called (e.g. on a hangup) then set SIGHUP to
be ignored within your application.
* CallerID is reported with agi_callerid and agi_calleridname instead
@ -199,13 +199,13 @@ chan_modem:
MeetMe:
* The conference application now allows users to increase/decrease their
speaking volume and listening volume (independently of each other and
other users); the 'admin' and 'user' menus have changed, and new sound
files are included with this release. However, if a user calling in
over a Zaptel channel that does NOT have hardware DTMF detection
increases their speaking volume, it is likely they will no longer be
able to enter/exit the menu or make any further adjustments, as the
software DTMF detector will not be able to recognize the DTMF coming
speaking volume and listening volume (independently of each other and
other users); the 'admin' and 'user' menus have changed, and new sound
files are included with this release. However, if a user calling in
over a Zaptel channel that does NOT have hardware DTMF detection
increases their speaking volume, it is likely they will no longer be
able to enter/exit the menu or make any further adjustments, as the
software DTMF detector will not be able to recognize the DTMF coming
from their device.
GetVar Manager Action:

View File

@ -34,7 +34,7 @@ users, that will result in a similar build to what they would have had before
the configure script was added to the build process (except for having to run
'make' again after the configure script is run). Note that the configure script
does NOT need to be re-run just to rebuild Asterisk; you only need to re-run it
when your system configuration changes or you wish to build Asterisk with
when your system configuration changes or you wish to build Asterisk with
different options.
Build Process (module selection):
@ -42,7 +42,7 @@ Build Process (module selection):
The Asterisk source tree now includes a basic module selection and build option
selection tool called 'menuselect'. Run 'make menuselect' to make your choices.
In this tool, you can disable building of modules that you don't care about,
turn on/off global options for the build and see which modules will not
turn on/off global options for the build and see which modules will not
(and cannot) be built because your system does not have the required external
dependencies installed.
@ -55,7 +55,7 @@ interface. In this case, the resulting file contains which CFLAGS are in use,
not which ones are not in use.
If you would like to save your choices and have them applied against all
builds, the file can be copied to '~/.asterisk.makeopts' or
builds, the file can be copied to '~/.asterisk.makeopts' or
'/etc/asterisk.makeopts'.
Build Process (Makefile targets):
@ -105,10 +105,10 @@ PBX Core:
* The (very old and undocumented) ability to use BYEXTENSION for dialing
instead of ${EXTEN} has been removed.
* Builtin (res_features) transfer functionality attempts to use the context
defined in TRANSFER_CONTEXT variable of the transferer channel first. If
not set, it uses the transferee variable. If not set in any channel, it will
not set, it uses the transferee variable. If not set in any channel, it will
attempt to use the last non macro context. If not possible, it will default
to the current context.
@ -116,7 +116,7 @@ PBX Core:
if your dialplan relies on the ability to 'run off the end' of an extension
and wait for a new extension without using WaitExten() to accomplish that,
you will need set autofallthrough to 'no' in your extensions.conf file.
Command Line Interface:
* 'show channels concise', designed to be used by applications that will parse
@ -155,10 +155,10 @@ Applications:
* OSPAuth is added to authenticate OSP tokens in in_bound call setup messages.
* The CONNECT event in the queue_log from app_queue now has a second field
in addition to the holdtime field. It contains the unique ID of the
queue member channel that is taking the call. This is useful when trying
to link recording filenames back to a particular call from the queue.
* The CONNECT event in the queue_log from app_queue now has a second field
in addition to the holdtime field. It contains the unique ID of the
queue member channel that is taking the call. This is useful when trying
to link recording filenames back to a particular call from the queue.
* The old/current behavior of app_queue has a serial type behavior
in that the queue will make all waiting callers wait in the queue
@ -170,14 +170,14 @@ Applications:
waits while this happens. This cycle continues until there are
no more available members or waiting callers, whichever comes first.
The new behavior, enabled by setting autofill=yes in queues.conf
either at the [general] level to default for all queues or
to set on a per-queue level, makes sure that when the waiting
callers are connecting with available members in a parallel fashion
either at the [general] level to default for all queues or
to set on a per-queue level, makes sure that when the waiting
callers are connecting with available members in a parallel fashion
until there are no more available members or no more waiting callers,
whichever comes first. This is probably more along the lines of how
one would expect a queue should work and in most cases, you will want
to enable this new behavior. If you do not specify or comment out this
option, it will default to "no" to keep backward compatability with the old
one would expect a queue should work and in most cases, you will want
to enable this new behavior. If you do not specify or comment out this
option, it will default to "no" to keep backward compatability with the old
behavior.
* Queues depend on the channel driver reporting the proper state
@ -197,7 +197,7 @@ Applications:
call-limit=10
* The app_queue application now has the ability to use MixMonitor to
* The app_queue application now has the ability to use MixMonitor to
record conversations queue members are having with queue callers. Please
see configs/queues.conf.sample for more information on this option.
@ -212,9 +212,9 @@ Applications:
other external program in order to mix the audio.
* app_meetme: The 'm' option (monitor) is renamed to 'l' (listen only), and
the 'm' option now provides the functionality of "initially muted".
the 'm' option now provides the functionality of "initially muted".
In practice, most existing dialplans using the 'm' flag should not notice
any difference, unless the keypad menu is enabled, allowing the user
any difference, unless the keypad menu is enabled, allowing the user
to unmute themsleves.
* ast_play_and_record would attempt to cancel the recording if a DTMF
@ -255,10 +255,10 @@ Applications:
previously used only by EXTENDED_ODBC_STORAGE. This means that you will need to update
your table format using the schema provided in doc/odbcstorage.txt
* app_waitforsilence: Fixes have been made to this application which changes the
* app_waitforsilence: Fixes have been made to this application which changes the
default behavior with how quickly it returns. You can maintain "old-style" behavior
with the addition/use of a third "timeout" parameter.
Please consult the application documentation and make changes to your dialplan
Please consult the application documentation and make changes to your dialplan
if appropriate.
Manager:
@ -270,9 +270,9 @@ Manager:
until after the release of 1.4, when it will be removed. Please use the time
during the 1.4 release to make this transition.
* The AgentConnect event now has an additional field called "BridgedChannel"
which contains the unique ID of the queue member channel that is taking the
call. This is useful when trying to link recording filenames back to
* The AgentConnect event now has an additional field called "BridgedChannel"
which contains the unique ID of the queue member channel that is taking the
call. This is useful when trying to link recording filenames back to
a particular call from the queue.
* app_userevent has been modified to always send Event: UserEvent with the
@ -298,17 +298,17 @@ Variables:
functions. You are encouraged to move towards the associated dialplan
function, as these variables will be removed in a future release.
* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
* The CDR-CSV variables uniqueid, userfield, and basing time on GMT are now
adjustable from cdr.conf, instead of recompiling.
* OSP applications exports several new variables, ${OSPINHANDLE},
${OSPOUTHANDLE}, ${OSPINTOKEN}, ${OSPOUTTOKEN}, ${OSPCALLING},
${OSPINTIMELIMIT}, and ${OSPOUTTIMELIMIT}
* Builtin transfer functionality sets the variable ${TRANSFERERNAME} in the new
created channel. This variables holds the channel name of the transferer.
* The dial plan variable PRI_CAUSE will be removed from future versions
* The dial plan variable PRI_CAUSE will be removed from future versions
of Asterisk.
It is replaced by adding a cause value to the hangup() application.
@ -322,8 +322,8 @@ Functions:
modules.conf file then you will need to explicitly load the modules that
contain the functions you want to use.
* The ENUMLOOKUP() function with the 'c' option (for counting the number of
records), but the lookup fails to match any records, the returned value will
* The ENUMLOOKUP() function with the 'c' option (for counting the number of
records), but the lookup fails to match any records, the returned value will
now be "0" instead of blank.
* The REALTIME() function is now available in version 1.4 and app_realtime has
@ -345,7 +345,7 @@ The IAX2 channel:
which user you want based on host.
If you would like to go ahead and use the new behavior which doesn't use the
order in the config file to influence matching order, then change the
order in the config file to influence matching order, then change the
MAX_PEER_BUCKETS define in chan_iax2.c to a value greater than one. An
example is provided there. By changing this, you will get *much* better
performance on systems that do a lot of peer and user lookups as they will be
@ -360,12 +360,12 @@ The IAX2 channel:
The SIP channel:
* The "incominglimit" setting is replaced by the "call-limit" setting in
* The "incominglimit" setting is replaced by the "call-limit" setting in
sip.conf.
* OSP support code is removed from SIP channel to OSP applications. ospauth
* OSP support code is removed from SIP channel to OSP applications. ospauth
option in sip.conf is removed to osp.conf as authpolicy. allowguest option
in sip.conf cannot be set as osp anymore.
in sip.conf cannot be set as osp anymore.
* The Asterisk RTP stack has been changed in regards to RFC2833 reception
and transmission. Packets will now be sent with proper duration instead of all
@ -419,10 +419,10 @@ The G726-32 codec:
Installation:
* On BSD systems, the installation directories have changed to more "FreeBSDish"
directories. On startup, Asterisk will look for the main configuration in
directories. On startup, Asterisk will look for the main configuration in
/usr/local/etc/asterisk/asterisk.conf
If you have an old installation, you might want to remove the binaries and
move the configuration files to the new locations. The following directories
If you have an old installation, you might want to remove the binaries and
move the configuration files to the new locations. The following directories
are now default:
ASTLIBDIR /usr/local/lib/asterisk
ASTVARLIBDIR /usr/local/share/asterisk
@ -476,7 +476,7 @@ CDR Records:
set. When using the "callerid" option for various channel drivers, some
would set ANI and some would not. This has been cleared up so that all
channel drivers set ANI. If you would like to change the callerid number
on the channel from the dialplan and have that change also show up in the
on the channel from the dialplan and have that change also show up in the
CDR, then you *must* set CALLERID(ANI) as well as CALLERID(num).
API:
@ -492,7 +492,6 @@ Formats:
* format_wav: The GAIN preprocessor definition has been changed from 2 to 0
in Asterisk 1.4. This change was made in response to user complaints of
choppiness or the clipping of loud signal peaks. The GAIN preprocessor
definition will be retained in Asterisk 1.4, but will be removed in a
definition will be retained in Asterisk 1.4, but will be removed in a
future release. The use of GAIN for the increasing of voicemail message
volume should use the 'volgain' option in voicemail.conf

View File

@ -39,7 +39,7 @@ Core:
sound file installer in the Makefile).
* The ast_expr2 stuff has been modified to handle floating-point numbers.
Numbers of the format D.D are now acceptable input for the expr parser,
Numbers of the format D.D are now acceptable input for the expr parser,
Where D is a string of base-10 digits. All math is now done in "long double",
if it is available on your compiler/architecture. This was half-way between
a bug-fix (because the MATH func returns fp by default), and an enhancement.
@ -48,7 +48,7 @@ Core:
of rounding/truncation, along with a set of common floating point operations,
like sin, cos, tan, log, pow, etc. The ability to call external functions
like CDR(), etc. was also added, without having to use the ${...} notation.
* The delimiter passed to applications has been changed to the comma (','), as
that is what people are used to using within extensions.conf. If you are
using realtime extensions, you will need to translate your existing dialplan
@ -190,7 +190,7 @@ Formats:
Channel Drivers:
* SIP: a small upgrade to support the "Record" button on the SNOM360,
which sends a sip INFO message with a "Record: on" or "Record: off"
which sends a sip INFO message with a "Record: on" or "Record: off"
header. If Asterisk is set up (via features.conf) to accept "One Touch Monitor"
requests (by default, via '*1'), then the user-configured dialpad sequence
is generated, and recording can be started and stopped via this button. The
@ -204,9 +204,9 @@ Channel Drivers:
now renamed to "counteronpeer".
* SIP: The "username" option is now renamed to "defaultuser" to match "defaultip".
These are used only before registration to call a peer with the uri
These are used only before registration to call a peer with the uri
sip:defaultuser@defaultip
The "username" setting still work, but is deprecated and will not work in
The "username" setting still work, but is deprecated and will not work in
the next version of Asterisk.
* SIP: The old "insecure" options, deprecated in 1.4, have been removed.
@ -241,7 +241,7 @@ Channel Drivers:
Configuration:
* pbx_dundi.c: tos parameter changed to use new values. Old values like lowdelay,
lowcost and other is not acceptable now. Look into qos.tex for description of
lowcost and other is not acceptable now. Look into qos.tex for description of
this parameter.
* queues.conf: the queue-lessthan sound file option is no longer available, and the
@ -249,7 +249,7 @@ Configuration:
Manager:
* Manager has been upgraded to version 1.1 with a lot of changes.
* Manager has been upgraded to version 1.1 with a lot of changes.
Please check doc/manager_1_1.txt for information
* The IAXpeers command output has been changed to more closely resemble the

View File

@ -73,9 +73,9 @@ From 1.6.2 to 1.8:
it is set to load. If not, then any module which uses RTP (such as chan_sip)
will not be able to send or receive calls.
* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
remains. It now exists within app_chanspy.c and retains the exact same
functionality as before.
* The app_dahdiscan.c file has been removed, but the dialplan app DAHDIScan still
remains. It now exists within app_chanspy.c and retains the exact same
functionality as before.
* The default behavior for Set, AGI, and pbx_realtime has been changed to implement
1.6 behavior by default, if there is no [compat] section in asterisk.conf. In
@ -111,7 +111,7 @@ From 1.6.2 to 1.8:
* ExternalIVR will now send Z events for invalid or missing files, T events
now include the interrupted file and bugs in argument parsing have been
fixed so there may be arguments specified in incorrect ways that were
working that will no longer work. Please see
working that will no longer work. Please see
https://wiki.asterisk.org/wiki/display/AST/External+IVR+Interface for details.
* OSP lookup application changes following variable names:
@ -185,7 +185,7 @@ From 1.6.1 to 1.6.2:
* SIP no longer sends the 183 progress message for early media by
default. Applications requiring early media should use the
progress() dialplan app to generate the progress message.
progress() dialplan app to generate the progress message.
* The firmware for the IAXy has been removed from Asterisk. It can be
downloaded from http://downloads.digium.com/pub/iaxy/. To have Asterisk
@ -269,8 +269,8 @@ From 1.6.1 to 1.6.2:
* DAHDISendCallreroutingFacility() parameters are now comma-separated,
instead of the old pipe.
* res_jabber: autoprune has been disabled by default, to avoid misconfiguration
that would end up being interpreted as a bug once Asterisk started removing
* res_jabber: autoprune has been disabled by default, to avoid misconfiguration
that would end up being interpreted as a bug once Asterisk started removing
the contacts from a user list.
* The cdr.conf file must exist and be configured correctly in order for CDR
@ -341,4 +341,3 @@ From 1.6.0.x to 1.6.1:
* If you use ODBC storage for voicemail, there is a new field called "flag"
which should be a char(8) or larger. This field specifies whether or not a
message has been designated to be "Urgent", "PRIORITY", or not.

View File

@ -79,10 +79,10 @@ Asterisk Database:
convert an existing astdb to the SQLite3 version automatically at runtime.
Module Support Level
- All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
- All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
formats, funcs, pbx, and res have been updated to include MODULEINFO data
that includes <support_level> tags with a value of core, extended, or deprecated.
More information is available on the Asterisk wiki at
More information is available on the Asterisk wiki at
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
Deprecated modules are now marked to not build by default and must be explicitly

View File

@ -185,7 +185,7 @@ SIP
configuration option. Symptoms of this include one way media or no media flow.
chan_unistim
- Due to massive update in chan_unistim phone keys functions and on-screen
- Due to massive update in chan_unistim phone keys functions and on-screen
information changed.
users.conf:
@ -257,10 +257,10 @@ Manager:
unchanged.
Module Support Level
- All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
- All modules in the addons, apps, bridge, cdr, cel, channels, codecs,
formats, funcs, pbx, and res have been updated to include MODULEINFO data
that includes <support_level> tags with a value of core, extended, or deprecated.
More information is available on the Asterisk wiki at
More information is available on the Asterisk wiki at
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States
Deprecated modules are now marked to not build by default and must be explicitly

View File

@ -427,12 +427,12 @@ Parking:
- Configuration is found in res_parking.conf. It is no longer supported in
features.conf
- The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
have been modified significantly. See the application documents for
- The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
have been modified significantly. See the application documents for
specific details.
- Numerous changes to Parking related applications, AMI and CLI commands and
internal inter-workings have been made. Please read the CHANGES file for
internal inter-workings have been made. Please read the CHANGES file for
the detailed list.
Security Events Framework:

View File

@ -27,7 +27,7 @@
* \addtogroup configuration_file Configuration Files
*/
/*!
/*!
* \page app_mysql.conf app_mysql.conf
* \verbinclude app_mysql.conf.sample
*/
@ -335,7 +335,7 @@ static int aMYSQL_connect(struct ast_channel *chan, const char *data)
unsigned int port = 0;
char *port_str;
char *parse = ast_strdupa(data);
AST_NONSTANDARD_APP_ARGS(args, parse, ' ');
if (args.argc < 6) {
@ -626,8 +626,8 @@ static int unload_module(void)
* Module loading including tests for configuration or dependencies.
* This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
* or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
*/
static int load_module(void)
@ -665,4 +665,3 @@ static int load_module(void)
}
AST_MODULE_INFO_STANDARD_DEPRECATED(ASTERISK_GPL_KEY, "Simple Mysql Interface");

View File

@ -718,4 +718,3 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MySQL CDR Backend",
.unload = unload_module,
.reload = reload,
);

View File

@ -16,7 +16,7 @@
* at the top of the source tree.
*/
/*!
/*!
* \file
* \brief Bluetooth Mobile Device channel driver
*
@ -1772,7 +1772,7 @@ static int rfcomm_read_command(int rsock, char **buf, size_t count, size_t *in_c
* \verbatim
* \r\n<result code>\r\n
* <at command>\r
* \r\n>
* \r\n>
* \endverbatim
*
* These formats correspond to AT result codes, AT commands, and the AT SMS
@ -2254,7 +2254,7 @@ static int hfp_parse_cmti(struct hfp_pvt *hfp, char *buf)
int index = -1;
/* parse cmti info in the following format:
* +CMTI: <mem>,<index>
* +CMTI: <mem>,<index>
*/
if (!sscanf(buf, "+CMTI: %*[^,],%d", &index)) {
ast_debug(2, "[%s] error parsing CMTI event '%s'\n", hfp->owner->id, buf);

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -135,7 +135,7 @@ static int function_ooh323_write(struct ast_channel *chan, const char *cmd, char
static enum ast_rtp_glue_result ooh323_get_rtp_peer(struct ast_channel *chan, struct ast_rtp_instance **rtp);
static enum ast_rtp_glue_result ooh323_get_vrtp_peer(struct ast_channel *chan, struct ast_rtp_instance **rtp);
static int ooh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp_instance *rtp,
static int ooh323_set_rtp_peer(struct ast_channel *chan, struct ast_rtp_instance *rtp,
struct ast_rtp_instance *vrtp, struct ast_rtp_instance *trtp, const struct ast_format_cap *codecs, int nat_active);
static void ooh323_get_codec(struct ast_channel *chan, struct ast_format_cap *result);
void setup_rtp_remote(ooCallData *call, const char *remoteIp, int remotePort);
@ -218,7 +218,7 @@ static struct ooh323_pvt {
char callee_dialedDigits[AST_MAX_EXTENSION];
char callee_email[AST_MAX_EXTENSION];
char callee_url[AST_MAX_EXTENSION];
int port;
struct ast_format *readformat; /* negotiated read format */
struct ast_format *writeformat; /* negotiated write format */
@ -394,7 +394,7 @@ static struct ooh323_config
static struct ast_sched_context *sched;
static struct io_context *io;
/* Protect the monitoring thread, so only one process can kill or start it,
/* Protect the monitoring thread, so only one process can kill or start it,
and not when it's doing something critical. */
AST_MUTEX_DEFINE_STATIC(monlock);
@ -405,7 +405,7 @@ static pthread_t monitor_thread = AST_PTHREADT_NULL;
static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
const char *host, struct ast_format_cap *cap,
const char *host, struct ast_format_cap *cap,
const struct ast_assigned_ids *assignedids, const struct ast_channel *requestor)
{
struct ast_format_cap *caps = NULL;
@ -422,12 +422,12 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
/* 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,
ch = ast_channel_alloc(1, state, i->callerid_num, i->callerid_name,
i->accountcode, i->exten, i->context, assignedids, requestor, i->amaflags,
"OOH323/%s-%ld", host, callnumber);
callnumber++;
ast_mutex_unlock(&ooh323c_cn_lock);
ast_mutex_lock(&i->lock);
if (ch && caps) {
@ -497,17 +497,17 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
ast_channel_priority_set(ch, 1);
if(!ast_test_flag(i, H323_OUTGOING)) {
if (!ast_strlen_zero(i->caller_h323id)) {
pbx_builtin_setvar_helper(ch, "_CALLER_H323ID", i->caller_h323id);
}
if (!ast_strlen_zero(i->caller_dialedDigits)) {
pbx_builtin_setvar_helper(ch, "_CALLER_H323DIALEDDIGITS",
pbx_builtin_setvar_helper(ch, "_CALLER_H323DIALEDDIGITS",
i->caller_dialedDigits);
}
if (!ast_strlen_zero(i->caller_email)) {
pbx_builtin_setvar_helper(ch, "_CALLER_H323EMAIL",
pbx_builtin_setvar_helper(ch, "_CALLER_H323EMAIL",
i->caller_email);
}
if (!ast_strlen_zero(i->caller_url)) {
@ -517,7 +517,7 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
if (!ast_strlen_zero(i->accountcode))
ast_channel_accountcode_set(ch, i->accountcode);
if (i->amaflags)
ast_channel_amaflags_set(ch, i->amaflags);
@ -528,7 +528,7 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
ast_channel_unlock(ch);
ast_hangup(ch);
ch = NULL;
}
}
}
if (ch) {
@ -552,7 +552,7 @@ static struct ast_channel *ooh323_new(struct ooh323_pvt *i, int state,
static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
{
struct ooh323_pvt *pvt = NULL;
@ -602,7 +602,7 @@ static struct ooh323_pvt *ooh323_alloc(int callref, char *callToken)
pvt->aniasdni = gANIasDNI;
ast_mutex_unlock(&pvt->lock);
ast_mutex_unlock(&pvt->lock);
/* Add to interface list */
ast_mutex_lock(&iflock);
pvt->next = iflist;
@ -628,7 +628,7 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca
struct ast_channel *chan = NULL;
struct ooh323_pvt *p = NULL;
struct ooh323_peer *peer = NULL;
char *dest = NULL;
char *dest = NULL;
char *ext = NULL;
char tmp[256];
int port = 0;
@ -658,7 +658,7 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca
dest = strchr(tmp, '/');
if (dest) {
if (dest) {
*dest = '\0';
dest++;
ext = dest;
@ -769,7 +769,7 @@ static struct ast_channel *ooh323_request(const char *type, struct ast_format_ca
chan = ooh323_new(p, AST_STATE_DOWN, p->username, cap,
assignedids, requestor);
ast_mutex_unlock(&p->lock);
if (!chan) {
@ -856,7 +856,7 @@ struct ooh323_user *find_user(const char * name, const char* ip)
struct ooh323_peer *find_friend(const char *name, int port)
{
struct ooh323_peer *peer;
struct ooh323_peer *peer;
if (gH323Debug)
ast_verb(0, "--- find_friend \"%s\"\n", name);
@ -882,7 +882,7 @@ struct ooh323_peer *find_friend(const char *name, int port)
ast_verb(0, "+++ find_friend \"%s\"\n", name);
}
return peer;
return peer;
}
@ -921,7 +921,7 @@ struct ooh323_peer *find_peer(const char * name, int port)
ast_verb(0, "+++ find_peer \"%s\"\n", name);
}
return peer;
return peer;
}
static int ooh323_digit_begin(struct ast_channel *chan, char digit)
@ -929,7 +929,7 @@ static int ooh323_digit_begin(struct ast_channel *chan, char digit)
char dtmf[2];
struct ooh323_pvt *p = (struct ooh323_pvt *) ast_channel_tech_pvt(chan);
int res = 0;
if (gH323Debug)
ast_verb(0, "--- ooh323_digit_begin\n");
@ -1036,7 +1036,7 @@ static int ooh323_call(struct ast_channel *ast, const char *dest, int timeout)
if ((val = pbx_builtin_getvar_helper(ast, "CALLER_H323ID"))) {
ast_copy_string(p->caller_h323id, val, sizeof(p->caller_h323id));
}
if ((val = pbx_builtin_getvar_helper(ast, "CALLER_H323DIALEDDIGITS"))) {
ast_copy_string(p->caller_dialedDigits, val, sizeof(p->caller_dialedDigits));
if(!p->callerid_num)
@ -1117,13 +1117,13 @@ static int ooh323_hangup(struct ast_channel *ast)
if (gH323Debug)
ast_verb(0, " hanging %s with cause: %d\n", p->username, q931cause);
ast_channel_tech_pvt_set(ast, NULL);
ast_channel_tech_pvt_set(ast, NULL);
if (!ast_test_flag(p, H323_ALREADYGONE)) {
ooHangCall(p->callToken,
ooHangCall(p->callToken,
ooh323_convert_hangupcause_asteriskToH323(q931cause), q931cause);
ast_set_flag(p, H323_ALREADYGONE);
/* ast_mutex_unlock(&p->lock); */
} else
} else
ast_set_flag(p, H323_NEEDDESTROY);
/* detach channel here */
if (p->owner) {
@ -1139,11 +1139,11 @@ static int ooh323_hangup(struct ast_channel *ast)
/* Notify the module monitors that use count for resource has changed */
ast_update_use_count();
} else {
ast_debug(1, "No call to hangup\n" );
}
if (gH323Debug)
ast_verb(0, "+++ ooh323_hangup\n");
@ -1166,7 +1166,7 @@ static int ooh323_answer(struct ast_channel *ast)
ast_channel_lock(ast);
if (!p->alertsent) {
if (gH323Debug) {
ast_debug(1, "Sending forced ringback for %s, res = %u\n",
ast_debug(1, "Sending forced ringback for %s, res = %u\n",
callToken, ooManualRingback(callToken));
} else {
ooManualRingback(callToken);
@ -1228,7 +1228,7 @@ static int ooh323_write(struct ast_channel *ast, struct ast_frame *f)
return res;
}
if (f->frametype == AST_FRAME_VOICE) {
/* sending progress for first */
if (!ast_test_flag(p, H323_OUTGOING) && !p->progsent &&
@ -1266,7 +1266,7 @@ static int ooh323_write(struct ast_channel *ast, struct ast_frame *f)
ast_mutex_unlock(&p->lock);
return 0;
} else {
ast_log(LOG_WARNING, "Can't send %u type frames with OOH323 write\n",
ast_log(LOG_WARNING, "Can't send %u type frames with OOH323 write\n",
f->frametype);
ast_mutex_unlock(&p->lock);
return 0;
@ -1303,7 +1303,7 @@ static int ooh323_indicate(struct ast_channel *ast, int condition, const void *d
if (gH323Debug) {
ast_verb(0, "----- ooh323_indicate %d on call %s\n", condition, callToken);
}
ast_mutex_lock(&p->lock);
switch (condition) {
case AST_CONTROL_INCOMPLETE:
@ -1331,7 +1331,7 @@ static int ooh323_indicate(struct ast_channel *ast, int condition, const void *d
if (!p->progsent) {
if (gH323Debug) {
ast_debug(1, "Sending manual progress for %s, res = %u\n", callToken,
ooManualProgress(callToken));
ooManualProgress(callToken));
} else {
ooManualProgress(callToken);
}
@ -1476,7 +1476,7 @@ static int ooh323_queryoption(struct ast_channel *ast, int option, void *data, i
if (gH323Debug)
ast_verb(0, "----- ooh323_queryoption %d on channel %s\n", option, ast_channel_name(ast));
switch (option) {
case AST_OPTION_T38_STATE:
@ -1516,7 +1516,7 @@ static int ooh323_queryoption(struct ast_channel *ast, int option, void *data, i
if (gH323Debug)
ast_verb(0, "+++++ ooh323_queryoption %d on channel %s\n", option, ast_channel_name(ast));
ast_mutex_unlock(&p->lock);
return res;
@ -1560,9 +1560,9 @@ void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txfra
struct ooh323_pvt *p = NULL;
if (gH323Debug)
ast_verb(0, "--- ooh323_update_writeformat %s/%d\n",
ast_verb(0, "--- ooh323_update_writeformat %s/%d\n",
ast_format_get_name(fmt), txframes);
p = find_call(call);
if (!p) {
ast_log(LOG_ERROR, "No matching call found for %s\n", call->callToken);
@ -1594,7 +1594,7 @@ void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txfra
}
if (gH323Debug) {
struct ast_str *codec_buf = ast_str_alloca(AST_FORMAT_CAP_NAMES_LEN);
ast_verb(0, "Writeformat before update %s/%s\n",
ast_verb(0, "Writeformat before update %s/%s\n",
ast_format_get_name(ast_channel_writeformat(p->owner)),
ast_format_cap_get_names(ast_channel_nativeformats(p->owner), &codec_buf));
}
@ -1632,9 +1632,9 @@ void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
struct ooh323_pvt *p = NULL;
if (gH323Debug)
ast_verb(0, "--- ooh323_update_readformat %s\n",
ast_verb(0, "--- ooh323_update_readformat %s\n",
ast_format_get_name(fmt));
p = find_call(call);
if (!p) {
ast_log(LOG_ERROR, "No matching call found for %s\n", call->callToken);
@ -1666,7 +1666,7 @@ void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
}
if (gH323Debug) {
ast_verb(0, "Readformat before update %s\n",
ast_verb(0, "Readformat before update %s\n",
ast_format_get_name(ast_channel_readformat(p->owner)));
}
ast_format_cap_append(caps, fmt, 0);
@ -1697,7 +1697,7 @@ int onAlerting(ooCallData *call)
if(!p) {
ast_log(LOG_ERROR, "No matching call found\n");
return -1;
}
}
ast_mutex_lock(&p->lock);
if (!p->owner) {
ast_mutex_unlock(&p->lock);
@ -1753,7 +1753,7 @@ int onProgress(ooCallData *call)
if(!p) {
ast_log(LOG_ERROR, "No matching call found\n");
return -1;
}
}
ast_mutex_lock(&p->lock);
if (!p->owner) {
ast_mutex_unlock(&p->lock);
@ -1861,7 +1861,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
}
ast_mutex_lock(&p->lock);
ast_clear_flag(p, H323_OUTGOING);
if (call->remoteDisplayName) {
p->callerid_name = ast_strdup(call->remoteDisplayName);
@ -1883,7 +1883,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
{
if(!p->callerid_num)
p->callerid_num = ast_strdup(alias->value);
ast_copy_string(p->caller_dialedDigits, alias->value,
ast_copy_string(p->caller_dialedDigits, alias->value,
sizeof(p->caller_dialedDigits));
}
else if(alias->type == T_H225AliasAddress_email_ID)
@ -1955,7 +1955,7 @@ int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
if (user->rtpmask && user->rtpmaskstr[0]) {
p->rtpmask = user->rtpmask;
ast_copy_string(p->rtpmaskstr, user->rtpmaskstr,
ast_copy_string(p->rtpmaskstr, user->rtpmaskstr,
sizeof(p->rtpmaskstr));
}
if (user->rtdrcount > 0 && user->rtdrinterval > 0) {
@ -2050,7 +2050,7 @@ int onOutgoingCall(ooCallData *call)
ooCallSetCallerId(call, p->callerid_num);
}
}
if (!ast_strlen_zero(p->caller_h323id))
ooCallAddAliasH323ID(call, p->caller_h323id);
@ -2131,7 +2131,7 @@ int onNewCallCreated(ooCallData *call)
ooCallSetCallerId(call, p->callerid_num);
}
}
if (!ast_strlen_zero(p->caller_h323id))
ooCallAddAliasH323ID(call, p->caller_h323id);
@ -2150,7 +2150,7 @@ int onNewCallCreated(ooCallData *call)
ooCallAddAliasH323ID(call, p->callerid_num);
}
}
if (!ast_strlen_zero(p->exten)) {
if (ooIsDailedDigit(p->exten)) {
@ -2164,7 +2164,7 @@ int onNewCallCreated(ooCallData *call)
if (gH323Debug) {
struct ast_str *codec_buf = ast_str_alloca(AST_FORMAT_CAP_NAMES_LEN);
ast_verb(0, " Outgoing call %s(%s) - Codec prefs - %s\n",
ast_verb(0, " Outgoing call %s(%s) - Codec prefs - %s\n",
p->username?p->username:"NULL", call->callToken,
ast_format_cap_get_names(p->cap, &codec_buf));
}
@ -2203,7 +2203,7 @@ int onCallEstablished(ooCallData *call)
ast_log(LOG_ERROR, "Channel has no owner\n");
return -1;
}
while (p->owner && ast_channel_trylock(p->owner)) {
ast_debug(1, "Failed to grab lock, trying again\n");
DEADLOCK_AVOIDANCE(&p->lock);
@ -2249,7 +2249,7 @@ int onCallCleared(ooCallData *call)
if ((p = find_call(call))) {
ast_mutex_lock(&p->lock);
while (p->owner) {
if (ast_channel_trylock(p->owner)) {
ooTrace(OOTRCLVLINFO, "Failed to grab lock, trying again\n");
@ -2261,7 +2261,7 @@ int onCallCleared(ooCallData *call)
}
if (ownerLock) {
if (!ast_test_flag(p, H323_ALREADYGONE)) {
if (!ast_test_flag(p, H323_ALREADYGONE)) {
ast_set_flag(p, H323_ALREADYGONE);
ast_channel_hangupcause_set(p->owner, call->q931cause);
@ -2305,7 +2305,7 @@ int onCallCleared(ooCallData *call)
if (gH323Debug)
ast_verb(0, "--- ooh323_delete_user\n");
if (user) {
if (user) {
cur = userl.users;
ast_mutex_lock(&userl.lock);
while (cur) {
@ -2323,7 +2323,7 @@ int onCallCleared(ooCallData *call)
ast_mutex_unlock(&userl.lock);
ast_free(user);
}
}
if (gH323Debug)
ast_verb(0, "+++ ooh323_delete_user\n");
@ -2337,7 +2337,7 @@ void ooh323_delete_peer(struct ooh323_peer *peer)
if (gH323Debug)
ast_verb(0, "--- ooh323_delete_peer\n");
if (peer) {
if (peer) {
cur = peerl.peers;
ast_mutex_lock(&peerl.lock);
while(cur) {
@ -2361,7 +2361,7 @@ void ooh323_delete_peer(struct ooh323_peer *peer)
ao2_cleanup(peer->cap);
ast_free(peer);
}
}
if (gH323Debug)
ast_verb(0, "+++ ooh323_delete_peer\n");
@ -2433,11 +2433,11 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v)
user->rtptimeout = gRTPTimeout;
} else if (!strcasecmp(v->name, "rtpmask")) {
if ((user->rtpmask = ast_calloc(1, sizeof(struct OOH323Regex))) &&
(regcomp(&user->rtpmask->regex, v->value, REG_EXTENDED)
(regcomp(&user->rtpmask->regex, v->value, REG_EXTENDED)
== 0)) {
ast_mutex_init(&user->rtpmask->lock);
user->rtpmask->inuse = 1;
ast_copy_string(user->rtpmaskstr, v->value,
ast_copy_string(user->rtpmaskstr, v->value,
sizeof(user->rtpmaskstr));
} else user->rtpmask = NULL;
} else if (!strcasecmp(v->name, "disallow")) {
@ -2454,7 +2454,7 @@ static struct ooh323_user *build_user(const char *name, struct ast_variable *v)
struct ast_sockaddr p;
if (!ast_parse_arg(v->value, PARSE_ADDR, &p)) {
ast_copy_string(user->mIP, ast_sockaddr_stringify_addr(&p), sizeof(user->mIP)-1);
} else {
} else {
ast_copy_string(user->mIP, v->value, sizeof(user->mIP)-1);
}
user->mUseIP = 1;
@ -2599,10 +2599,10 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
struct ast_sockaddr p;
if (!ast_parse_arg(v->value, PARSE_ADDR, &p)) {
ast_copy_string(peer->ip, ast_sockaddr_stringify_host(&p), sizeof(peer->ip));
} else {
} else {
ast_copy_string(peer->ip, v->value, sizeof(peer->ip));
}
} else if (!strcasecmp(v->name, "outgoinglimit")) {
peer->outgoinglimit = atoi(v->value);
if (peer->outgoinglimit < 0)
@ -2628,11 +2628,11 @@ static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v,
peer->rtptimeout = gRTPTimeout;
} else if (!strcasecmp(v->name, "rtpmask")) {
if ((peer->rtpmask = ast_calloc(1, sizeof(struct OOH323Regex))) &&
(regcomp(&peer->rtpmask->regex, v->value, REG_EXTENDED)
(regcomp(&peer->rtpmask->regex, v->value, REG_EXTENDED)
== 0)) {
ast_mutex_init(&peer->rtpmask->lock);
peer->rtpmask->inuse = 1;
ast_copy_string(peer->rtpmaskstr, v->value,
ast_copy_string(peer->rtpmaskstr, v->value,
sizeof(peer->rtpmaskstr));
} else peer->rtpmask = NULL;
} else if (!strcasecmp(v->name, "disallow")) {
@ -2721,9 +2721,9 @@ static int ooh323_do_reload(void)
reload_config(1);
/* Gatekeeper */
if (gRasGkMode == RasUseSpecificGatekeeper ||
if (gRasGkMode == RasUseSpecificGatekeeper ||
gRasGkMode == RasDiscoverGatekeeper) {
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
gGatekeeper : 0, 0);
ooGkClientStart(gH323ep.gkClient);
}
@ -2738,10 +2738,10 @@ static int ooh323_do_reload(void)
case T_H225AliasAddress_h323_ID:
ooH323EpAddAliasH323ID(pNewAlias->value);
break;
case T_H225AliasAddress_dialedDigits:
case T_H225AliasAddress_dialedDigits:
ooH323EpAddAliasDialedDigits(pNewAlias->value);
break;
case T_H225AliasAddress_email_ID:
case T_H225AliasAddress_email_ID:
ooH323EpAddAliasEmailID(pNewAlias->value);
break;
default:
@ -2889,7 +2889,7 @@ int reload_config(int reload)
v = v->next;
continue;
}
if (!strcasecmp(v->name, "port")) {
gPort = (int)strtol(v->value, NULL, 10);
} else if (!strcasecmp(v->name, "bindaddr")) {
@ -2928,7 +2928,7 @@ int reload_config(int reload)
gMediaWaitForConnect = ast_true(v->value);
if (gMediaWaitForConnect)
ooH323EpEnableMediaWaitForConnect();
else
else
ooH323EpDisableMediaWaitForConnect();
} else if (!strcasecmp(v->name, "h245tunneling")) {
gTunneling = ast_true(v->value);
@ -2949,7 +2949,7 @@ int reload_config(int reload)
gBeMaster = ast_true(v->value);
if (gBeMaster)
ooH323EpTryBeMaster(1);
else
else
ooH323EpTryBeMaster(0);
} else if (!strcasecmp(v->name, "h323id")) {
pNewAlias = ast_calloc(1, sizeof(struct ooAliases));
@ -3081,7 +3081,7 @@ int reload_config(int reload)
else if (!strcasecmp(v->value, "h245signal"))
gDTMFMode = H323_DTMF_H245SIGNAL;
else {
ast_log(LOG_WARNING, "Unknown dtmf mode '%s', using rfc2833\n",
ast_log(LOG_WARNING, "Unknown dtmf mode '%s', using rfc2833\n",
v->value);
gDTMFMode = H323_DTMF_RFC2833;
}
@ -3126,7 +3126,7 @@ int reload_config(int reload)
}
v = v->next;
}
for (cat = ast_category_browse(cfg, NULL); cat; cat = ast_category_browse(cfg, cat)) {
if (strcasecmp(cat, "general")) {
int friend_type = 0;
@ -3183,7 +3183,7 @@ static char *handle_cli_ooh323_show_peer(struct ast_cli_entry *e, int cmd, struc
{
char ip_port[64];
struct ooh323_peer *prev = NULL, *peer = NULL;
switch (cmd) {
case CLI_INIT:
e->command = "ooh323 show peer";
@ -3304,7 +3304,7 @@ static char *handle_cli_ooh323_show_peers(struct ast_cli_entry *e, int cmd, stru
while (peer) {
ast_mutex_lock(&peer->lock);
snprintf(ip_port, sizeof(ip_port), "%s:%hu", peer->ip, peer->port);
ast_cli(a->fd, FORMAT, peer->name,
ast_cli(a->fd, FORMAT, peer->name,
peer->accountcode,
ip_port,
ast_format_cap_get_names(peer->cap, &codec_buf));
@ -3443,7 +3443,7 @@ static char *handle_cli_ooh323_show_users(struct ast_cli_entry *e, int cmd, stru
while(user)
{
ast_mutex_lock(&user->lock);
ast_cli(a->fd, FORMAT1, user->name,
ast_cli(a->fd, FORMAT1, user->name,
user->accountcode, user->context,
ast_format_cap_get_names(user->cap, &codec_buf));
prev = user;
@ -3798,7 +3798,7 @@ static int load_module(void)
.onMediaChanged = (cb_OnMediaChanged) setup_rtp_remote,
};
if (!(gCap = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
return AST_MODULE_LOAD_DECLINE;
return AST_MODULE_LOAD_DECLINE;
}
if (!(ooh323_tech.capabilities = ast_format_cap_alloc(AST_FORMAT_CAP_FLAG_DEFAULT))) {
ao2_ref(gCap, -1);
@ -3816,8 +3816,8 @@ static int load_module(void)
ast_mutex_init(&userl.lock);
peerl.peers = NULL;
ast_mutex_init(&peerl.lock);
#if 0
#if 0
ast_register_atexit(&ast_ooh323c_exit);
#endif
@ -3831,7 +3831,7 @@ static int load_module(void)
if (!reload_config(0)) {
/* fire up the H.323 Endpoint */
/* fire up the H.323 Endpoint */
if (OO_OK != ooH323EpInitialize(OO_CALLMODE_AUDIOCALL, gLogFile)) {
ast_log(LOG_ERROR, "Failed to initialize OOH323 endpoint-"
"OOH323 Disabled\n");
@ -3867,7 +3867,7 @@ static int load_module(void)
ast_debug(1, "OOH323 channel is in IP6 mode\n");
}
ooH323EpSetCallerID(gCallerID);
if(ooH323EpSetTCPPortRange(ooconfig.mTCPPortStart, ooconfig.mTCPPortEnd) == OO_FAILED) {
ast_log(LOG_ERROR, "h225portrange: Failed to set range\n");
}
@ -3878,10 +3878,10 @@ static int load_module(void)
case T_H225AliasAddress_h323_ID:
ooH323EpAddAliasH323ID(pNewAlias->value);
break;
case T_H225AliasAddress_dialedDigits:
case T_H225AliasAddress_dialedDigits:
ooH323EpAddAliasDialedDigits(pNewAlias->value);
break;
case T_H225AliasAddress_email_ID:
case T_H225AliasAddress_email_ID:
ooH323EpAddAliasEmailID(pNewAlias->value);
break;
default:
@ -3899,11 +3899,11 @@ static int load_module(void)
peer = peer->next;
}
ast_mutex_unlock(&peerl.lock);
if (gMediaWaitForConnect)
ooH323EpEnableMediaWaitForConnect();
else
else
ooH323EpDisableMediaWaitForConnect();
/* Fast start and tunneling options */
@ -3938,12 +3938,12 @@ static int load_module(void)
ooh323_tech.capabilities = NULL;
return 1;
}
/* Create H.323 listener */
if (ooCreateH323Listener() != OO_OK) {
ast_log(LOG_ERROR, "OOH323 Listener Creation failure. "
"OOH323 DISABLED\n");
ooH323EpDestroy();
ao2_ref(gCap, -1);
gCap = NULL;
@ -4010,7 +4010,7 @@ static void *do_monitor(void *data)
if (gH323ep.gkClient && gH323ep.gkClient->state == GkClientStopped) {
ooGkClientDestroy();
ast_verb(0, "Restart stopped gatekeeper client\n");
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
ooGkClientInit(gRasGkMode, (gRasGkMode == RasUseSpecificGatekeeper) ?
gGatekeeper : 0, 0);
ooGkClientStart(gH323ep.gkClient);
}
@ -4036,7 +4036,7 @@ static void *do_monitor(void *data)
ast_log(LOG_NOTICE, "Disconnecting call '%s' for lack of RTP activity in %ld seconds\n", ast_channel_name(h323->owner), (long) (t - h323->lastrtprx));
ast_channel_unlock(h323->owner);
}
}
if (ast_test_flag(h323, H323_NEEDDESTROY)) {
@ -4136,7 +4136,7 @@ int ooh323_destroy(struct ooh323_pvt *p)
iflist = cur->next;
if (cur->callToken) {
if (gH323Debug)
if (gH323Debug)
ast_verb(0, " Destroying %s\n", cur->callToken);
ast_free(cur->callToken);
cur->callToken = 0;
@ -4156,7 +4156,7 @@ int ooh323_destroy(struct ooh323_pvt *p)
ast_free(cur->callerid_name);
cur->callerid_name = 0;
}
if (cur->callerid_num) {
ast_free(cur->callerid_num);
cur->callerid_num = 0;
@ -4172,20 +4172,20 @@ int ooh323_destroy(struct ooh323_pvt *p)
ast_udptl_destroy(cur->udptl);
cur->udptl = NULL;
}
/* Unlink us from the owner if we have one */
if (cur->owner) {
while(ast_channel_trylock(cur->owner)) {
ast_debug(1, "Failed to grab lock, trying again\n");
DEADLOCK_AVOIDANCE(&cur->lock);
}
}
ast_debug(1, "Detaching from %s\n", ast_channel_name(cur->owner));
ast_channel_tech_pvt_set(cur->owner, NULL);
ast_channel_unlock(cur->owner);
cur->owner = NULL;
ast_module_unref(myself);
}
if (cur->vad) {
ast_dsp_free(cur->vad);
cur->vad = NULL;
@ -4325,7 +4325,7 @@ static int unload_module(void)
if (gH323Debug) {
ast_verb(0, " unload_module - stopping monitor thread\n");
}
}
if (monitor_thread != AST_PTHREADT_NULL) {
if (!ast_mutex_lock(&monlock)) {
if (monitor_thread && (monitor_thread != AST_PTHREADT_STOP)) {
@ -4368,7 +4368,7 @@ static int unload_module(void)
ast_log(LOG_WARNING, "Unable to lock the interface list\n");
return -1;
}
if (gH323Debug) {
ast_verb(0, " unload_module - deleting users\n");
@ -4668,7 +4668,7 @@ int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call)
ast_rtp_instance_set_timeout(p->rtp, p->rtptimeout);
}
ast_rtp_instance_set_prop(p->rtp, AST_RTP_PROPERTY_RTCP, 1);
}
if (p->rtdrcount) {
@ -4830,7 +4830,7 @@ void close_rtp_connection(ooCallData *call)
udptl handling functions
*/
void setup_udptl_connection(ooCallData *call, const char *remoteIp,
void setup_udptl_connection(ooCallData *call, const char *remoteIp,
int remotePort)
{
struct ooh323_pvt *p = NULL;
@ -4840,7 +4840,7 @@ void setup_udptl_connection(ooCallData *call, const char *remoteIp,
ast_verb(0, "--- setup_udptl_connection\n");
/* Find the call or allocate a private structure if call not found */
p = find_call(call);
p = find_call(call);
if (!p) {
ast_log(LOG_ERROR, "Something is wrong: rtp\n");
@ -4944,7 +4944,7 @@ int update_our_aliases(ooCallData *call, struct ooh323_pvt *p)
{
int updated = -1;
ooAliases *psAlias = NULL;
if (!call->ourAliases)
return updated;
for (psAlias = call->ourAliases; psAlias; psAlias = psAlias->next) {
@ -4953,7 +4953,7 @@ int update_our_aliases(ooCallData *call, struct ooh323_pvt *p)
updated = 1;
}
if (psAlias->type == T_H225AliasAddress_dialedDigits) {
ast_copy_string(p->callee_dialedDigits, psAlias->value,
ast_copy_string(p->callee_dialedDigits, psAlias->value,
sizeof(p->callee_dialedDigits));
updated = 1;
}
@ -5145,7 +5145,7 @@ void onModeChanged(ooCallData *call, int t38mode) {
}
parameters.max_ifp = ast_udptl_get_far_max_ifp(p->udptl);
parameters.rate = AST_T38_RATE_14400;
ast_queue_control_data(p->owner, AST_CONTROL_T38_PARAMETERS,
ast_queue_control_data(p->owner, AST_CONTROL_T38_PARAMETERS,
&parameters, sizeof(parameters));
p->faxmode = 1;
@ -5157,7 +5157,7 @@ void onModeChanged(ooCallData *call, int t38mode) {
parameters.request_response = AST_T38_REQUEST_TERMINATE;
parameters.max_ifp = ast_udptl_get_far_max_ifp(p->udptl);
parameters.rate = AST_T38_RATE_14400;
ast_queue_control_data(p->owner, AST_CONTROL_T38_PARAMETERS,
ast_queue_control_data(p->owner, AST_CONTROL_T38_PARAMETERS,
&parameters, sizeof(parameters));
}
p->faxmode = 0;
@ -5204,7 +5204,7 @@ int ooh323_convert_hangupcause_h323ToAsterisk(int cause)
switch (cause) {
case OO_REASON_REMOTE_REJECTED:
return AST_CAUSE_CALL_REJECTED;
case OO_REASON_NOUSER:
case OO_REASON_NOUSER:
return AST_CAUSE_UNALLOCATED;
case OO_REASON_REMOTE_BUSY:
case OO_REASON_LOCAL_BUSY:
@ -5216,7 +5216,7 @@ int ooh323_convert_hangupcause_h323ToAsterisk(int cause)
return AST_CAUSE_CONGESTION;
case OO_REASON_REMOTE_NOANSWER:
return AST_CAUSE_NO_ANSWER;
case OO_REASON_UNKNOWN:
case OO_REASON_UNKNOWN:
case OO_REASON_INVALIDMESSAGE:
case OO_REASON_TRANSPORTFAILURE:
return AST_CAUSE_FAILURE;

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -85,7 +85,7 @@ struct ooh323_peer;
/* Helper functions */
struct ooh323_user *find_user(const char * name, const char *ip);
struct ooh323_peer *find_peer(const char * name, int port);
void ooh323_delete_peer(struct ooh323_peer *peer);
void ooh323_delete_peer(struct ooh323_peer *peer);
int delete_users(void);
int delete_peers(void);
@ -95,7 +95,7 @@ int reload_config(int reload);
int restart_monitor(void);
int configure_local_rtp(struct ooh323_pvt *p, ooCallData* call);
void setup_rtp_connection(ooCallData *call, const char *remoteIp,
void setup_rtp_connection(ooCallData *call, const char *remoteIp,
int remotePort);
void close_rtp_connection(ooCallData *call);
struct ast_frame *ooh323_rtp_read

View File

@ -327,4 +327,3 @@ static int unload_module(void)
}
AST_MODULE_INFO_STANDARD_EXTENDED(ASTERISK_GPL_KEY, "MP3 format [Any rate but 8000hz mono is optimal]");

View File

@ -6,22 +6,22 @@ Introduction
Objective Open H.323 stack is a simple H.323 implementation in C. This
package contains the core stack code. For complete H.323 stack package with
examples or for more information visit www.obj-sys.com/open
The ASN.1 messaging code was developed using the Objective Systems ASN1C
compiler to implement the core H.323 specifications (H.225, H.235,
and H.245). Additional code was then developed which makes use of
the compiler generated code for presenting a comparatively high level
The ASN.1 messaging code was developed using the Objective Systems ASN1C
compiler to implement the core H.323 specifications (H.225, H.235,
and H.245). Additional code was then developed which makes use of
the compiler generated code for presenting a comparatively high level
stack API.
Features
Features supported in this package include the following:
* H.225/Q.931 - the following message types are supported (including
support for FastStart and H.245 tunneling):
- Setup
* H.225/Q.931 - the following message types are supported (including
support for FastStart and H.245 tunneling):
- Setup
- Connect
- Call Proceeding
- Alerting
- Alerting
- Facility
- ReleaseComplete
@ -54,8 +54,8 @@ Features supported in this package include the following:
To run the stack test application chansetup
chansetup - This is a sample program developed for testing multiple calls.
This program allows stack testing by placing multiple calls. The number of
calls, duration of each call and interval between successive calls are
configurable.
calls, duration of each call and interval between successive calls are
configurable.
1. Two instances of this program have to be run. Can be run on same machine or
different machines.
@ -64,19 +64,19 @@ To run the stack test application chansetup
cd tests/chansetup
2. For running listener instance,
2. For running listener instance,
./h323peer [--use-ip ip] [--use-port port]
where local ip address and port can be specified for listening to incoming
where local ip address and port can be specified for listening to incoming
calls. By default, application determines ip address and uses default H323
port number 1720.
3. For running calling instance
./h323peer [--use-ip ip] -n <number of calls> -duration <call duration>
-interval <inetrval between successive calls> destination
where all times are in seconds. Interval of 0 means next call will be placed
after current call finishes. "destination" is the dotted ip address of the
endpoint running listener instance.
@ -86,10 +86,9 @@ To run the stack test application chansetup
Reporting Problems:
Report problems you encounter by sending E-mail to support@obj-sys.com.
Report problems you encounter by sending E-mail to support@obj-sys.com.
If you have any further questions or comments on what you would like to
see in the product or what is difficult to use or understand, please
see in the product or what is difficult to use or understand, please
communicate them to us. Your feedback is important to us. Please let us
know how it works out for you - either good or bad.
know how it works out for you - either good or bad.

View File

@ -96,7 +96,7 @@ libooh323c_a_SOURCES = ooLogChan.h ooLogChan.c ooUtils.c ooUtils.h ooGkClient.h
INCLUDES = -Ih323
#include_HEADERS = ooUtils.h memheap.h ooCommon.h ooDateTime.h ooGkClient.h ooasn1.h oochannels.h ootrace.h ooh245.h ooports.h ooq931.h oohdr.h ooper.h ooSocket.h ooTimer.h ootypes.h eventHandler.h ooCapability.h ooCalls.h ooStackCmds.h ooh323.h ooh323ep.h printHandler.h rtctype.h h323/H235-SECURITY-MESSAGES.h h323/H323-MESSAGES.h h323/MULTIMEDIA-SYSTEM-CONTROL.h
#include_HEADERS = ooUtils.h memheap.h ooCommon.h ooDateTime.h ooGkClient.h ooasn1.h oochannels.h ootrace.h ooh245.h ooports.h ooq931.h oohdr.h ooper.h ooSocket.h ooTimer.h ootypes.h eventHandler.h ooCapability.h ooCalls.h ooStackCmds.h ooh323.h ooh323ep.h printHandler.h rtctype.h h323/H235-SECURITY-MESSAGES.h h323/H323-MESSAGES.h h323/MULTIMEDIA-SYSTEM-CONTROL.h
EXTRA_DIST = oostk.dsp
subdir = ooh323c/src
mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs
@ -187,7 +187,7 @@ MULTIMEDIA-SYSTEM-CONTROLDec.$(OBJEXT): \
h323/MULTIMEDIA-SYSTEM-CONTROLDec.c
MULTIMEDIA-SYSTEM-CONTROLEnc.$(OBJEXT): \
h323/MULTIMEDIA-SYSTEM-CONTROLEnc.c
libooh323c.a: $(libooh323c_a_OBJECTS) $(libooh323c_a_DEPENDENCIES)
libooh323c.a: $(libooh323c_a_OBJECTS) $(libooh323c_a_DEPENDENCIES)
-rm -f libooh323c.a
$(libooh323c_a_AR) libooh323c.a $(libooh323c_a_OBJECTS) $(libooh323c_a_LIBADD)
$(RANLIB) libooh323c.a

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -35,13 +35,13 @@ int initContext (OOCTXT* pctxt)
return ASN_OK;
}
int initContextBuffer
int initContextBuffer
(OOCTXT* pctxt, const ASN1OCTET* bufaddr, ASN1UINT bufsiz)
{
if (bufaddr == 0) {
/* dynamic buffer */
if (bufsiz == 0) bufsiz = ASN_K_ENCBUFSIZ;
pctxt->buffer.data = (ASN1OCTET*)
pctxt->buffer.data = (ASN1OCTET*)
memHeapAlloc (&pctxt->pMsgMemHeap, bufsiz);
if (!pctxt->buffer.data) return ASN_E_NOMEM;
pctxt->buffer.size = bufsiz;
@ -60,7 +60,7 @@ int initContextBuffer
return ASN_OK;
}
int initSubContext (OOCTXT* pctxt, OOCTXT* psrc)
int initSubContext (OOCTXT* pctxt, OOCTXT* psrc)
{
/* ast_mutex_lock(&pctxt->pLock); */
int stat = ASN_OK;
@ -85,7 +85,7 @@ void freeContext (OOCTXT* pctxt)
ASN1BOOL saveBuf;
ast_mutex_lock(&pctxt->pLock);
saveBuf = (pctxt->flags & ASN1SAVEBUF) != 0;
if (pctxt->buffer.dynamic && pctxt->buffer.data) {
if (saveBuf) {
memHeapMarkSaved (&pctxt->pMsgMemHeap, pctxt->buffer.data, TRUE);
@ -130,7 +130,7 @@ int setPERBufferUsingCtxt (OOCTXT* pTarget, OOCTXT* pSource)
{
int stat;
ast_mutex_lock(&pTarget->pLock); ast_mutex_lock(&pSource->pLock);
stat = initContextBuffer
stat = initContextBuffer
(pTarget, pSource->buffer.data, pSource->buffer.size);
if (ASN_OK == stat) {
@ -151,11 +151,11 @@ int setPERBuffer (OOCTXT* pctxt,
ast_mutex_unlock(&pctxt->pLock);
if(stat != ASN_OK) return stat;
return ASN_OK;
}
OOCTXT* newContext ()
OOCTXT* newContext ()
{
/* OOCTXT* pctxt = (OOCTXT*) ASN1CRTMALLOC0 (sizeof(OOCTXT)); */
OOCTXT* pctxt = ast_malloc(sizeof(OOCTXT));

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -19,16 +19,16 @@
#include "ooasn1.h"
static int decode16BitConstrainedString
static int decode16BitConstrainedString
(OOCTXT* pctxt, Asn116BitCharString* pString, Asn116BitCharSet* pCharSet);
static int decodeOctets
static int decodeOctets
(OOCTXT* pctxt, ASN1OCTET* pbuffer, ASN1UINT bufsiz, ASN1UINT nbits);
static int getComponentLength (OOCTXT* pctxt, ASN1UINT itemBits);
int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
{
{
unsigned char mask;
if (nbits == 0) {
@ -47,7 +47,7 @@ int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
pctxt->buffer.bitOffset -= nbits;
*pvalue = ((pctxt->buffer.data[pctxt->buffer.byteIndex]) >>
*pvalue = ((pctxt->buffer.data[pctxt->buffer.byteIndex]) >>
pctxt->buffer.bitOffset) & ((1 << nbits) - 1);
return ASN_OK;
@ -62,7 +62,7 @@ int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
/* Check if buffer contains number of bits requested */
int nbytes = (((nbits - pctxt->buffer.bitOffset) + 7) / 8);
if ((pctxt->buffer.byteIndex + nbytes) >= pctxt->buffer.size) {
return LOG_ASN1ERR (pctxt, ASN_E_ENDOFBUF);
}
@ -78,7 +78,7 @@ int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
/* second read bytes from next byteIndex */
while (nbits >= 8) {
*pvalue = (*pvalue << 8) |
*pvalue = (*pvalue << 8) |
(pctxt->buffer.data[pctxt->buffer.byteIndex]);
pctxt->buffer.byteIndex++;
nbits -= 8;
@ -87,8 +87,8 @@ int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
/* third read bits & set bitoffset of the byteIndex */
if (nbits > 0) {
pctxt->buffer.bitOffset = 8 - nbits;
*pvalue = (*pvalue << nbits) |
((pctxt->buffer.data[pctxt->buffer.byteIndex]) >>
*pvalue = (*pvalue << nbits) |
((pctxt->buffer.data[pctxt->buffer.byteIndex]) >>
pctxt->buffer.bitOffset);
}
@ -96,7 +96,7 @@ int decodeBits (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits)
}
}
int decodeBitString
int decodeBitString
(OOCTXT* pctxt, ASN1UINT* numbits_p, ASN1OCTET* buffer, ASN1UINT bufsiz)
{
ASN1UINT bitcnt;
@ -111,7 +111,7 @@ int decodeBitString
if (bitcnt > 0) {
*numbits_p += bitcnt;
stat = bitAndOctetStringAlignmentTest
stat = bitAndOctetStringAlignmentTest
(pSizeList, bitcnt, TRUE, &doAlign);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -133,7 +133,7 @@ int decodeBitString
return ASN_OK;
}
int decodeBMPString
int decodeBMPString
(OOCTXT* pctxt, ASN1BMPString* pvalue, Asn116BitCharSet* permCharSet)
{
Asn116BitCharSet charSet;
@ -164,7 +164,7 @@ int decodeByteAlign (OOCTXT* pctxt)
return ASN_OK;
}
int decodeConstrainedStringEx
int decodeConstrainedStringEx
(OOCTXT* pctxt, const char** string, const char* charSet,
ASN1UINT abits, ASN1UINT ubits, ASN1UINT canSetBits)
{
@ -227,9 +227,9 @@ int decodeConstrainedStringEx
return ASN_OK;
}
int decodeConsInteger
int decodeConsInteger
(OOCTXT* pctxt, ASN1INT* pvalue, ASN1INT lower, ASN1INT upper)
{
{
ASN1UINT range_value = upper - lower;
ASN1UINT adjusted_value;
int stat = ASN_OK;
@ -254,9 +254,9 @@ int decodeConsInteger
return stat;
}
int decodeConsUInt8
int decodeConsUInt8
(OOCTXT* pctxt, ASN1UINT8* pvalue, ASN1UINT lower, ASN1UINT upper)
{
{
ASN1UINT range_value, value;
ASN1UINT adjusted_value;
int stat = ASN_OK;
@ -299,9 +299,9 @@ int decodeConsUInt8
return stat;
}
int decodeConsUInt16
int decodeConsUInt16
(OOCTXT* pctxt, ASN1USINT* pvalue, ASN1UINT lower, ASN1UINT upper)
{
{
ASN1UINT range_value, value;
ASN1UINT adjusted_value;
int stat = ASN_OK;
@ -328,9 +328,9 @@ int decodeConsUInt16
return stat;
}
int decodeConsUnsigned
int decodeConsUnsigned
(OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower, ASN1UINT upper)
{
{
ASN1UINT range_value;
ASN1UINT adjusted_value;
int stat = ASN_OK;
@ -354,9 +354,9 @@ int decodeConsUnsigned
return stat;
}
int decodeConsWholeNumber
int decodeConsWholeNumber
(OOCTXT* pctxt, ASN1UINT* padjusted_value, ASN1UINT range_value)
{
{
ASN1UINT nocts, range_bitcnt;
int stat;
@ -419,9 +419,9 @@ int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr)
/* If "fast copy" option is not set (ASN1FATSCOPY) or if constructed,
* copy the bit string value into a dynamic memory buffer;
* otherwise, store the pointer to the value in the decode
* otherwise, store the pointer to the value in the decode
* buffer in the data pointer argument. */
if (pctxt->flags & ASN1FASTCOPY) {
/* check is it possible to do optimized decoding */
@ -433,7 +433,7 @@ int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr)
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
stat = DECODEBIT (pctxt, &bit); /* read first bit of length determinant */
if (bit == 1 && stat == ASN_OK)
if (bit == 1 && stat == ASN_OK)
stat = DECODEBIT (pctxt, &bit); /* read second bit */
pctxt->buffer.byteIndex = byteIndex; /* restore byte index */
@ -441,9 +441,9 @@ int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr)
/* if either first or second bit != 0 - not fragmented */
if (bit == 0 && stat == ASN_OK) {
if (bit == 0 && stat == ASN_OK) {
ASN1UINT bitcnt;
stat = decodeLength (pctxt, &bitcnt);
if (stat != 0) return LOG_ASN1ERR (pctxt, stat);
@ -454,9 +454,9 @@ int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr)
stat = moveBitCursor (pctxt, bitcnt);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
}
else
else
pBitStr->data = 0;
return stat;
}
}
@ -470,13 +470,13 @@ int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr)
}
nocts = (nbits + 7) / 8;
/* Allocate memory for the target string */
if (nocts > 0) {
ptmp = (ASN1OCTET*) ASN1MALLOC (pctxt, nocts);
if (0 == ptmp) return LOG_ASN1ERR (pctxt, ASN_E_NOMEM);
/* Call static bit string decode function */
stat = decodeBitString (pctxt, &pBitStr->numbits, ptmp, nocts);
@ -493,7 +493,7 @@ int decodeDynOctetString (OOCTXT* pctxt, ASN1DynOctStr* pOctStr)
/* If "fast copy" option is not set (ASN1FASTCOPY) or if constructed,
* copy the octet string value into a dynamic memory buffer;
* otherwise, store the pointer to the value in the decode
* otherwise, store the pointer to the value in the decode
* buffer in the data pointer argument. */
if (pctxt->flags & ASN1FASTCOPY) {
@ -507,7 +507,7 @@ int decodeDynOctetString (OOCTXT* pctxt, ASN1DynOctStr* pOctStr)
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
stat = DECODEBIT (pctxt, &bit); /* read first bit of length determinant */
if (bit == 1 && stat == ASN_OK)
if (bit == 1 && stat == ASN_OK)
stat = DECODEBIT (pctxt, &bit); /* read second bit */
pctxt->buffer.byteIndex = byteIndex; /* restore byte index */
@ -515,9 +515,9 @@ int decodeDynOctetString (OOCTXT* pctxt, ASN1DynOctStr* pOctStr)
/* if either first or second bit != 0 - not fragmented */
if (bit == 0 && stat == ASN_OK) {
if (bit == 0 && stat == ASN_OK) {
ASN1UINT octcnt;
stat = decodeLength (pctxt, &octcnt);
if (stat != 0) return LOG_ASN1ERR (pctxt, stat);
@ -528,13 +528,13 @@ int decodeDynOctetString (OOCTXT* pctxt, ASN1DynOctStr* pOctStr)
stat = moveBitCursor (pctxt, octcnt * 8);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
}
else
else
pOctStr->data = 0;
return stat;
}
}
nocts = getComponentLength (pctxt, 8);
if (nocts < 0) return LOG_ASN1ERR (pctxt, nocts);
@ -671,14 +671,14 @@ int decodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue)
if (j == 0) {
subid = pvalue->subid[0];
pvalue->subid[0] = ((subid / 40) >= 2) ? 2 : subid / 40;
pvalue->subid[1] = (pvalue->subid[0] == 2) ?
pvalue->subid[1] = (pvalue->subid[0] == 2) ?
subid - 80 : subid % 40;
j = 2;
}
else j++;
}
else
stat = ASN_E_INVOBJID;
stat = ASN_E_INVOBJID;
}
pvalue->numids = j;
@ -687,9 +687,9 @@ int decodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue)
return (stat);
}
static int decodeOctets
static int decodeOctets
(OOCTXT* pctxt, ASN1OCTET* pbuffer, ASN1UINT bufsiz, ASN1UINT nbits)
{
{
ASN1UINT nbytes = (nbits + 7) / 8 ;
ASN1UINT i = 0, j;
ASN1UINT rshift = pctxt->buffer.bitOffset;
@ -740,20 +740,20 @@ static int decodeOctets
/* Copy last partial byte */
if (nbits >= rshift) {
pbuffer[i] =
pbuffer[i] =
pctxt->buffer.data[pctxt->buffer.byteIndex++] << lshift;
nbitsInLastOctet = nbits - rshift;
if (nbitsInLastOctet > 0) {
pbuffer[i] |=
pbuffer[i] |=
pctxt->buffer.data[pctxt->buffer.byteIndex] >> rshift;
}
pctxt->buffer.bitOffset = 8 - nbitsInLastOctet;
}
else if (nbits > 0) { /* nbits < rshift */
pbuffer[i] =
pbuffer[i] =
pctxt->buffer.data[pctxt->buffer.byteIndex] << lshift;
pctxt->buffer.bitOffset = rshift - nbits;
}
@ -773,7 +773,7 @@ static int decodeOctets
return ASN_OK;
}
int decodeOctetString
int decodeOctetString
(OOCTXT* pctxt, ASN1UINT* numocts_p, ASN1OCTET* buffer, ASN1UINT bufsiz)
{
ASN1UINT octcnt;
@ -790,7 +790,7 @@ int decodeOctetString
if (TRUE) {
ASN1BOOL doAlign;
stat = bitAndOctetStringAlignmentTest
stat = bitAndOctetStringAlignmentTest
(pSizeList, octcnt, FALSE, &doAlign);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -800,7 +800,7 @@ int decodeOctetString
}
}
stat = decodeOctets (pctxt, &buffer[octidx],
stat = decodeOctets (pctxt, &buffer[octidx],
bufsiz - octidx, (octcnt * 8));
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -815,7 +815,7 @@ int decodeOctetString
return ASN_OK;
}
int decodeOpenType
int decodeOpenType
(OOCTXT* pctxt, const ASN1OCTET** object_p2, ASN1UINT* numocts_p)
{
ASN1DynOctStr octStr;
@ -883,7 +883,7 @@ int decodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower)
stat = decodeLength (pctxt, &nbytes);
if (stat < 0) return LOG_ASN1ERR (pctxt, stat);
if (nbytes > 0) {
stat = decodeByteAlign (pctxt);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -898,7 +898,7 @@ int decodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower)
}
int decodeSmallNonNegWholeNumber (OOCTXT* pctxt, ASN1UINT* pvalue)
{
{
ASN1BOOL bitValue;
ASN1UINT len;
int ret;
@ -959,7 +959,7 @@ int decodeVarWidthCharString (OOCTXT* pctxt, const char** pvalue)
return ASN_OK;
}
static int decode16BitConstrainedString
static int decode16BitConstrainedString
(OOCTXT* pctxt, Asn116BitCharString* pString, Asn116BitCharSet* pCharSet)
{
ASN1UINT i, idx, nbits = pCharSet->alignedBits;
@ -985,7 +985,7 @@ static int decode16BitConstrainedString
stat = decodeBits (pctxt, &idx, nbits);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
pString->data[i] = (pCharSet->charSet.data == 0) ?
pString->data[i] = (pCharSet->charSet.data == 0) ?
idx + pCharSet->firstChar : pCharSet->charSet.data[idx];
}
}
@ -1048,6 +1048,6 @@ int moveBitCursor (OOCTXT* pctxt, int bitOffset)
if (pctxt->buffer.byteIndex > pctxt->buffer.size) {
return (ASN_E_ENDOFBUF);
}
return ASN_OK;
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -30,7 +30,7 @@ void dListInit (DList* pList)
DListNode* dListAppend (OOCTXT* pctxt, DList* pList, void* pData)
{
DListNode* pListNode = (DListNode*)
DListNode* pListNode = (DListNode*)
memAlloc (pctxt, sizeof(DListNode));
if (0 != pListNode) {
@ -53,7 +53,7 @@ DListNode* dListAppend (OOCTXT* pctxt, DList* pList, void* pData)
DListNode* dListAppendNode (OOCTXT* pctxt, DList* pList, void* pData)
{
DListNode* pListNode =
DListNode* pListNode =
(DListNode*) (((char*)pData) - sizeof(DListNode));
if (0 != pListNode) {
@ -109,7 +109,7 @@ void dListFreeAll (OOCTXT* pctxt, DList* pList)
for (pNode = pList->head; pNode != 0; pNode = pNextNode) {
pNextNode = pNode->next;
memFreePtr (pctxt, pNode->data);
memFreePtr (pctxt, pNode);
}
@ -148,8 +148,8 @@ void dListFindAndRemove(struct OOCTXT* pctxt, DList* pList, void *data)
memFreePtr(pctxt, pNode);
}
}
DListNode* dListFindByIndex (DList* pList, int index)
DListNode* dListFindByIndex (DList* pList, int index)
{
DListNode* curNode;
int i;
@ -163,11 +163,11 @@ DListNode* dListFindByIndex (DList* pList, int index)
/* Insert item before given node */
DListNode* dListInsertBefore
DListNode* dListInsertBefore
(OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData)
{
DListNode* pListNode = (DListNode*) memAlloc (pctxt, sizeof(DListNode));
if (0 != pListNode) {
pListNode->data = (void*)pData;
@ -212,7 +212,7 @@ DListNode* dListInsertBefore
/* Insert item after given node */
DListNode* dListInsertAfter
DListNode* dListInsertAfter
(OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData)
{
DListNode* pListNode = (DListNode*) memAlloc (pctxt, sizeof(DListNode));
@ -258,4 +258,3 @@ DListNode* dListInsertAfter
return pListNode;
}

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file dlist.h
/**
* @file dlist.h
* Doubly-linked list structures and utility functions.
*/
#ifndef _OODLIST_H_
@ -74,26 +74,26 @@ extern "C" {
* @param pData A pointer to a data item to be appended to the list.
* @return A pointer to an allocated node structure used to link
* the given data value into the list.
*/
EXTERN DListNode* dListAppend
*/
EXTERN DListNode* dListAppend
(struct OOCTXT* pctxt, DList* pList, void* pData);
EXTERN DListNode* dListAppendNode
EXTERN DListNode* dListAppendNode
(struct OOCTXT* pctxt, DList* pList, void* pData);
/**
* This function delete the head item from the list and returns a pointer
* the data item stored in that node. The memory for the node structure
* This function delete the head item from the list and returns a pointer
* the data item stored in that node. The memory for the node structure
* is released.
*
* @param pctxt A pointer to a context structure. This provides a
* storage area for the function to store all working
* variables that must be maintained between function
* calls.
* @param pList A pointer to the linked list structure from which
* @param pList A pointer to the linked list structure from which
* the node will be deleted.
* @return A pointer to the data item stored in the deleted node.
*/
*/
EXTERN void* dListDeleteHead (struct OOCTXT* pctxt, DList* pList);
EXTERN DListNode* dListFindByIndex (DList* pList, int index);
@ -101,7 +101,7 @@ EXTERN DListNode* dListFindByIndex (DList* pList, int index);
/**
* This function initializes a doubly linked list structure. It sets the number
* of elements to zero and sets all internal pointer values to NULL. A doubly
* linked-list structure is described by the DList type. Nodes of the list
* linked-list structure is described by the DList type. Nodes of the list
* are of type DListNode.
*
* Memory for the structures is allocated using the memAlloc run-time
@ -130,7 +130,7 @@ EXTERN void dListInit (DList* pList);
*/
EXTERN void dListFreeNodes (struct OOCTXT* pctxt, DList* pList);
/**
/**
* This function removes all nodes from the linked list structure and releases
* the memory that was allocated for storing the node structures
* (DListNode) and for data. The memory for data in each node must have
@ -146,37 +146,37 @@ EXTERN void dListFreeNodes (struct OOCTXT* pctxt, DList* pList);
EXTERN void dListFreeAll (struct OOCTXT* pctxt, DList* pList);
/**
* This function inserts an item into the linked list structure before the
* This function inserts an item into the linked list structure before the
* specified element.
*
*
* @param pctxt Pointer to a context structure.
* @param pList A pointer to a linked list structure into which the
* @param pList A pointer to a linked list structure into which the
* data item is to be inserted.
* @param node The position in the list where the item is to be
* inserted. The item will be inserted before this
* @param node The position in the list where the item is to be
* inserted. The item will be inserted before this
* node or appended to the list if node is null.
* @param pData A pointer to the data item to be inserted to the list.
* @return A pointer to an allocated node structure used to
* @return A pointer to an allocated node structure used to
* link the given data value into the list.
*/
EXTERN DListNode* dListInsertBefore
EXTERN DListNode* dListInsertBefore
(struct OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData);
/**
* This function inserts an item into the linked list structure after the
* This function inserts an item into the linked list structure after the
* specified element.
*
*
* @param pctxt Pointer to a context structure.
* @param pList A pointer to a linked list structure into which the
* @param pList A pointer to a linked list structure into which the
* data item is to be inserted.
* @param node The position in the list where the item is to be
* inserted. The item will be inserted after this
* @param node The position in the list where the item is to be
* inserted. The item will be inserted after this
* node or added as the head element if node is null.
* @param pData A pointer to the data item to be inserted to the list.
* @return A pointer to an allocated node structure used to
* @return A pointer to an allocated node structure used to
* link the given data value into the list.
*/
EXTERN DListNode* dListInsertAfter
EXTERN DListNode* dListInsertAfter
(struct OOCTXT* pctxt, DList* pList, DListNode* node, const void* pData);
/**
@ -194,7 +194,7 @@ EXTERN DListNode* dListInsertAfter
EXTERN void dListRemove (DList* pList, DListNode* node);
EXTERN void dListFindAndRemove(struct OOCTXT* pctxt, DList* pList, void* data);
/**
/**
* @}
*/
#ifdef __cplusplus

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -20,7 +20,7 @@
#include "ooasn1.h"
static int encode16BitConstrainedString
static int encode16BitConstrainedString
(OOCTXT* pctxt, Asn116BitCharString value, Asn116BitCharSet* pCharSet);
static int encode2sCompBinInt (OOCTXT* pctxt, ASN1INT value);
@ -34,7 +34,7 @@ int encodeIdent (OOCTXT* pctxt, ASN1UINT ident);
int encodeBit (OOCTXT* pctxt, ASN1BOOL value)
{
{
int stat = ASN_OK;
/* If start of new byte, init to zero */
@ -58,7 +58,7 @@ int encodeBit (OOCTXT* pctxt, ASN1BOOL value)
/* Set single-bit value */
if (value) {
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
( 1 << pctxt->buffer.bitOffset );
}
@ -74,7 +74,7 @@ int encodeBit (OOCTXT* pctxt, ASN1BOOL value)
}
int encodeBits (OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits)
{
{
int nbytes = (nbits + 7)/ 8, stat = ASN_OK;
if (nbits == 0) return stat;
@ -94,7 +94,7 @@ int encodeBits (OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits)
if (nbits < (unsigned)pctxt->buffer.bitOffset) {
pctxt->buffer.bitOffset -= nbits;
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
( value << pctxt->buffer.bitOffset );
return stat;
}
@ -108,22 +108,22 @@ int encodeBits (OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits)
/* to set bits in subsequent bytes.. */
nbits -= pctxt->buffer.bitOffset;
pctxt->buffer.data[pctxt->buffer.byteIndex++] |=
pctxt->buffer.data[pctxt->buffer.byteIndex++] |=
(ASN1OCTET)( value >> nbits );
pctxt->buffer.data[pctxt->buffer.byteIndex] = 0;
pctxt->buffer.data[pctxt->buffer.byteIndex] = 0;
while (nbits >= 8) {
nbits -= 8;
pctxt->buffer.data[pctxt->buffer.byteIndex++] =
pctxt->buffer.data[pctxt->buffer.byteIndex++] =
(ASN1OCTET)( value >> nbits );
pctxt->buffer.data[pctxt->buffer.byteIndex] = 0;
pctxt->buffer.data[pctxt->buffer.byteIndex] = 0;
}
/* copy final partial byte */
pctxt->buffer.bitOffset = 8 - nbits;
if (nbits > 0) {
pctxt->buffer.data[pctxt->buffer.byteIndex] =
pctxt->buffer.data[pctxt->buffer.byteIndex] =
(ASN1OCTET)((value & ((1 << nbits)-1)) << pctxt->buffer.bitOffset);
}
else
@ -133,11 +133,11 @@ int encodeBits (OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits)
}
int encodeBitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits)
{
{
int lshift = pctxt->buffer.bitOffset;
int rshift = 8 - pctxt->buffer.bitOffset;
int stat = ASN_OK;
ASN1OCTET mask = 0x0;
ASN1OCTET mask = 0x0;
if (nbits == 0) return ASN_OK;
@ -173,14 +173,14 @@ int encodeBitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits)
/* possibly some bits in the following octet.. */
else {
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
(ASN1OCTET)(value >> rshift);
pctxt->buffer.bitOffset -= nbits;
if (pctxt->buffer.bitOffset < 0) {
pctxt->buffer.byteIndex++;
pctxt->buffer.data[pctxt->buffer.byteIndex] =
pctxt->buffer.data[pctxt->buffer.byteIndex] =
(ASN1OCTET)(value << lshift);
pctxt->buffer.bitOffset += 8;
}
@ -202,7 +202,7 @@ int encodeBitString (OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data)
if (enclen > 0) {
ASN1BOOL doAlign;
stat = bitAndOctetStringAlignmentTest
stat = bitAndOctetStringAlignmentTest
(pSizeList, numbits, TRUE, &doAlign);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -225,7 +225,7 @@ int encodeBitString (OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data)
return ASN_OK;
}
int encodeBMPString
int encodeBMPString
(OOCTXT* pctxt, ASN1BMPString value, Asn116BitCharSet* permCharSet)
{
Asn116BitCharSet charSet;
@ -278,9 +278,9 @@ int encodeCheckBuffer (OOCTXT* pctxt, ASN1UINT nbytes)
return (stat);
}
int encodeConsInteger
int encodeConsInteger
(OOCTXT* pctxt, ASN1INT value, ASN1INT lower, ASN1INT upper)
{
{
ASN1UINT range_value;
ASN1UINT adjusted_value;
int stat;
@ -301,7 +301,7 @@ int encodeConsInteger
else {
range_value = upper + abs(lower);
adjusted_value = value + abs(lower);
}
}
if (range_value != ASN1UINT_MAX) { range_value += 1; }
@ -316,9 +316,9 @@ int encodeConsInteger
return stat;
}
int encodeConsUnsigned
int encodeConsUnsigned
(OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower, ASN1UINT upper)
{
{
ASN1UINT range_value;
ASN1UINT adjusted_value;
int stat;
@ -340,9 +340,9 @@ int encodeConsUnsigned
return stat;
}
int encodeConsWholeNumber
int encodeConsWholeNumber
(OOCTXT* pctxt, ASN1UINT adjusted_value, ASN1UINT range_value)
{
{
ASN1UINT nocts, range_bitcnt = getUIntBitCount (range_value - 1);
int stat;
@ -396,8 +396,8 @@ int encodeConsWholeNumber
}
}
int encodeConstrainedStringEx (OOCTXT* pctxt,
const char* string,
int encodeConstrainedStringEx (OOCTXT* pctxt,
const char* string,
const char* charSet,
ASN1UINT abits, /* aligned char bits */
ASN1UINT ubits, /* unaligned char bits */
@ -460,7 +460,7 @@ int encodeExpandBuffer (OOCTXT* pctxt, ASN1UINT nbytes)
pctxt->buffer.data = (ASN1OCTET*) memHeapRealloc
(&pctxt->pMsgMemHeap, pctxt->buffer.data, pctxt->buffer.size);
if (!pctxt->buffer.data) return (ASN_E_NOMEM);
return (ASN_OK);
@ -481,7 +481,7 @@ ASN1OCTET* encodeGetMsgPtr (OOCTXT* pctxt, int* pLength)
return pctxt->buffer.data;
}
int encodeIdent (OOCTXT* pctxt, ASN1UINT ident)
int encodeIdent (OOCTXT* pctxt, ASN1UINT ident)
{
ASN1UINT mask;
int nshifts = 0, stat;
@ -508,9 +508,9 @@ int encodeIdent (OOCTXT* pctxt, ASN1UINT ident)
}
int encodeLength (OOCTXT* pctxt, ASN1UINT value)
{
{
ASN1BOOL extendable;
Asn1SizeCnst* pSize =
Asn1SizeCnst* pSize =
checkSize (pctxt->pSizeConstraint, value, &extendable);
ASN1UINT lower = (pSize) ? pSize->lower : 0;
ASN1UINT upper = (pSize) ? pSize->upper : ASN1UINT_MAX;
@ -520,7 +520,7 @@ int encodeLength (OOCTXT* pctxt, ASN1UINT value)
/* within the range of any of them, signal constraint violation */
/* error.. */
if (pctxt->pSizeConstraint && !pSize)
if (pctxt->pSizeConstraint && !pSize)
return LOG_ASN1ERR (pctxt, ASN_E_CONSVIO);
/* Reset the size constraint in the context block structure */
@ -578,11 +578,11 @@ int encodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue)
if (0 == pvalue) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID);
if (numids < 2) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID);
if (pvalue->subid[0] > 2) return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID);
if (pvalue->subid[0] != 2 && pvalue->subid[1] > 39)
if (pvalue->subid[0] != 2 && pvalue->subid[1] > 39)
return LOG_ASN1ERR (pctxt, ASN_E_INVOBJID);
/* Passed checks, encode object identifier */
/* Munge first two sub ID's and encode */
temp = ((pvalue->subid[0] * 40) + pvalue->subid[1]);
@ -600,7 +600,7 @@ int encodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue)
}
int encodebitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits)
{
{
int lshift = pctxt->buffer.bitOffset;
int rshift = 8 - pctxt->buffer.bitOffset;
int stat = ASN_OK;
@ -640,14 +640,14 @@ int encodebitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits)
/* possibly some bits in the following octet.. */
else {
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
pctxt->buffer.data[pctxt->buffer.byteIndex] |=
(ASN1OCTET)(value >> rshift);
pctxt->buffer.bitOffset -= nbits;
if (pctxt->buffer.bitOffset < 0) {
pctxt->buffer.byteIndex++;
pctxt->buffer.data[pctxt->buffer.byteIndex] =
pctxt->buffer.data[pctxt->buffer.byteIndex] =
(ASN1OCTET)(value << lshift);
pctxt->buffer.bitOffset += 8;
}
@ -657,7 +657,7 @@ int encodebitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits)
}
int encodeOctets (OOCTXT* pctxt, const ASN1OCTET* pvalue, ASN1UINT nbits)
{
{
int i = 0, stat;
int numFullOcts = nbits / 8;
@ -675,7 +675,7 @@ int encodeOctets (OOCTXT* pctxt, const ASN1OCTET* pvalue, ASN1UINT nbits)
/* encode buffer.. */
if (pctxt->buffer.bitOffset == 8) {
memcpy (&pctxt->buffer.data[pctxt->buffer.byteIndex], pvalue,
memcpy (&pctxt->buffer.data[pctxt->buffer.byteIndex], pvalue,
numFullOcts);
pctxt->buffer.byteIndex += numFullOcts;
pctxt->buffer.data[pctxt->buffer.byteIndex] = 0;
@ -714,7 +714,7 @@ int encodeOctetString (OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data)
if (enclen > 0) {
ASN1BOOL doAlign;
stat = bitAndOctetStringAlignmentTest
stat = bitAndOctetStringAlignmentTest
(pSizeList, numocts, FALSE, &doAlign);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -793,7 +793,7 @@ int encodeOpenTypeExt (OOCTXT* pctxt, DList* pElemList)
stat = encodeByteAlign (pctxt);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
stat = encodeOpenType
stat = encodeOpenType
(pctxt, pOpenType->numocts, pOpenType->data);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
@ -833,7 +833,7 @@ int encodeSemiConsInteger (OOCTXT* pctxt, ASN1INT value, ASN1INT lower)
if (lower > ASN1INT_MIN)
value -= lower;
/* Calculate signed number value length */
for ( ; shift > 0; shift -= 8) {
@ -889,10 +889,10 @@ int encodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower)
if ((stat = encodeLength (pctxt, nbytes)) < 0) {
return stat;
}
if ((stat = encodeByteAlign (pctxt)) != ASN_OK)
return stat;
/* Encode additional zero byte if necessary */
if (nbytes > sizeof(value)) {
@ -908,7 +908,7 @@ int encodeSemiConsUnsigned (OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower)
}
int encodeSmallNonNegWholeNumber (OOCTXT* pctxt, ASN1UINT value)
{
{
int stat;
if (value < 64) {
@ -964,7 +964,7 @@ int encodeVarWidthCharString (OOCTXT* pctxt, const char* value)
return ASN_OK;
}
static int encode16BitConstrainedString
static int encode16BitConstrainedString
(OOCTXT* pctxt, Asn116BitCharString value, Asn116BitCharSet* pCharSet)
{
ASN1UINT i, pos;
@ -985,7 +985,7 @@ static int encode16BitConstrainedString
for (i = 0; i < value.nchars; i++) {
if (pCharSet->charSet.data == 0) {
stat = encodeBits
stat = encodeBits
(pctxt, value.data[i] - pCharSet->firstChar, nbits);
if (stat != ASN_OK) return LOG_ASN1ERR (pctxt, stat);
}
@ -1051,7 +1051,7 @@ static int encodeNonNegBinInt (OOCTXT* pctxt, ASN1UINT value)
/* multiple of 8 bits and also satisifies the condition that the */
/* leading eight bits of the field shall not be zero unless the */
/* field is precisely 8 bits long. */
ASN1UINT bitcnt = (value == 0) ? 1 : getUIntBitCount (value);
/* round-up to nearest 8-bit boundary */
@ -1093,7 +1093,7 @@ static int encodeUnconsLength (OOCTXT* pctxt, ASN1UINT value)
return enclen;
}
static int getIdentByteCount (ASN1UINT ident)
static int getIdentByteCount (ASN1UINT ident)
{
if (ident < (1u << 7)) { /* 7 */
return 1;

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -49,21 +49,21 @@ static const char* g_status_text[] = {
"Value constraint violation: field %s, value %s",
"Value range error: lower bound is greater than upper",
"Unexpected end of file detected",
"Invalid UTF-8 character at index %d",
"List error: concurrent modification attempt while iterating",
"Invalid UTF-8 character at index %d",
"List error: concurrent modification attempt while iterating",
"List error: illegal state for attempted operation",
"Array index out of bounds",
"Invalid parameter passed to function or method",
"Invalid time string format",
"Context is not initialized",
"ASN.1 value will not fit in target variable",
"Character is not within the defined character set",
"Invalid XML state for attempted operation",
"Error condition returned from XML parser:\n%s",
"Context is not initialized",
"ASN.1 value will not fit in target variable",
"Character is not within the defined character set",
"Invalid XML state for attempted operation",
"Error condition returned from XML parser:\n%s",
"SEQUENCE elements not in correct order",
"Invalid index for table constraint identifier",
"Invalid value for relational table constraint fixed type field",
"File not found",
"Invalid value for relational table constraint fixed type field",
"File not found",
"File read error",
"File write error",
"Invalid Base64 string",
@ -153,7 +153,7 @@ char* errFmtMsg (ASN1ErrInfo* pErrInfo, char* bufp)
j = pcnt = 0;
tp = g_status_text[i];
while (*tp)
while (*tp)
{
if (*tp == '%' && *(tp+1) == 's')
{
@ -177,14 +177,14 @@ char* errFmtMsg (ASN1ErrInfo* pErrInfo, char* bufp)
}
else
strcpy (bufp, "unrecognized completion status");
}
}
else strcpy (bufp, "normal completion status");
return (bufp);
}
/* Get error text in a dynamic memory buffer. This allocates memory */
/* using the 'memAlloc' function. This memory is automatically freed */
/* using the 'memAlloc' function. This memory is automatically freed */
/* at the time the 'memFree' function is called. */
char* errGetText (OOCTXT* pctxt)
@ -199,7 +199,7 @@ char* errGetText (OOCTXT* pctxt)
while (pctxt->errInfo.stkx > 0) {
pctxt->errInfo.stkx--;
sprintf (lbuf, " Module: %s, Line %d\n",
sprintf (lbuf, " Module: %s, Line %d\n",
pctxt->errInfo.stack[pctxt->errInfo.stkx].module,
pctxt->errInfo.stack[pctxt->errInfo.stkx].lineno);
strcat(pBuf, lbuf);
@ -220,7 +220,7 @@ void errPrint (ASN1ErrInfo* pErrInfo)
printf ("Stack trace:");
while (pErrInfo->stkx > 0) {
pErrInfo->stkx--;
printf (" Module: %s, Line %d\n",
printf (" Module: %s, Line %d\n",
pErrInfo->stack[pErrInfo->stkx].module,
pErrInfo->stack[pErrInfo->stkx].lineno);
}
@ -244,9 +244,9 @@ int errCopyData (ASN1ErrInfo* pSrcErrInfo, ASN1ErrInfo* pDestErrInfo)
for (i = 0; i < pSrcErrInfo->stkx; i++) {
if (pDestErrInfo->stkx < ASN_K_MAXERRSTK) {
pDestErrInfo->stack[pDestErrInfo->stkx].module =
pDestErrInfo->stack[pDestErrInfo->stkx].module =
pSrcErrInfo->stack[i].module;
pDestErrInfo->stack[pDestErrInfo->stkx++].lineno =
pDestErrInfo->stack[pDestErrInfo->stkx++].lineno =
pSrcErrInfo->stack[i].lineno;
}
}
@ -255,12 +255,12 @@ int errCopyData (ASN1ErrInfo* pSrcErrInfo, ASN1ErrInfo* pDestErrInfo)
}
int errSetData (ASN1ErrInfo* pErrInfo, int status,
const char* module, int lno)
{
int errSetData (ASN1ErrInfo* pErrInfo, int status,
const char* module, int lno)
{
if (pErrInfo->status == 0) {
pErrInfo->status = status;
}
ooLogAsn1Error(status, module, lno);
return status;
return status;
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -64,7 +64,7 @@ void invokeUIntValue (OOCTXT* pctxt, ASN1UINT value)
}
}
void invokeBitStrValue (OOCTXT* pctxt, ASN1UINT numbits,
void invokeBitStrValue (OOCTXT* pctxt, ASN1UINT numbits,
const ASN1OCTET* data)
{
if (0 != pctxt->pEventHandler) {
@ -72,7 +72,7 @@ void invokeBitStrValue (OOCTXT* pctxt, ASN1UINT numbits,
}
}
void invokeOctStrValue (OOCTXT* pctxt, ASN1UINT numocts,
void invokeOctStrValue (OOCTXT* pctxt, ASN1UINT numocts,
const ASN1OCTET* data)
{
if (0 != pctxt->pEventHandler) {
@ -87,7 +87,7 @@ void invokeCharStrValue (OOCTXT* pctxt, const char* value)
}
}
void invokeCharStr16BitValue (OOCTXT* pctxt, ASN1UINT nchars,
void invokeCharStr16BitValue (OOCTXT* pctxt, ASN1UINT nchars,
ASN116BITCHAR* data)
{
if (0 != pctxt->pEventHandler) {
@ -116,7 +116,7 @@ void invokeEnumValue (OOCTXT* pctxt, ASN1UINT value)
}
}
void invokeOpenTypeValue (OOCTXT* pctxt, ASN1UINT numocts,
void invokeOpenTypeValue (OOCTXT* pctxt, ASN1UINT numocts,
const ASN1OCTET* data)
{
if (0 != pctxt->pEventHandler) {

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file eventHandler.h
* C event handler structure. This structure holds event handler function
* @file eventHandler.h
* C event handler structure. This structure holds event handler function
* callbacks for use by the generated code.
*/
/**
@ -44,8 +44,8 @@ extern "C" {
/**
* This is a function pointer for a callback function which is invoked
* from within a decode function when an element of a SEQUENCE, SET,
* This is a function pointer for a callback function which is invoked
* from within a decode function when an element of a SEQUENCE, SET,
* SEQUENCE OF, SET OF, or CHOICE construct is parsed.
*
* @param name For SEQUENCE, SET, or CHOICE, this is the name of the
@ -63,8 +63,8 @@ typedef void (*StartElement) (const char* name, int index) ;
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function when parsing is complete on an element of a
* This is a function pointer for a callback function which is invoked from
* within a decode function when parsing is complete on an element of a
* SEQUENCE, SET, SEQUENCE OF, SET OF, or CHOICE construct.
*
* @param name For SEQUENCE, SET, or CHOICE, this is the name of the
@ -82,7 +82,7 @@ typedef void (*EndElement) (const char* name, int index) ;
/**
* This is a function pointer for a callback function which is invoked from
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the BOOLEAN ASN.1 type is parsed.
*
* @param value Parsed value.
@ -91,7 +91,7 @@ typedef void (*EndElement) (const char* name, int index) ;
typedef void (*BoolValue) (ASN1BOOL value);
/**
* This is a function pointer for a callback function which is invoked from
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the INTERGER ASN.1 type is parsed.
*
* @param value Parsed value.
@ -100,9 +100,9 @@ typedef void (*BoolValue) (ASN1BOOL value);
typedef void (*IntValue) (ASN1INT value);
/**
* This is a function pointer for a callback function which is invoked
* from within a decode function when a value of the INTEGER ASN.1 type
* is parsed. In this case, constraints on the integer value forced the
* This is a function pointer for a callback function which is invoked
* from within a decode function when a value of the INTEGER ASN.1 type
* is parsed. In this case, constraints on the integer value forced the
* use of unsigned integer C type to represent the value.
*
* @param value Parsed value.
@ -111,19 +111,19 @@ typedef void (*IntValue) (ASN1INT value);
typedef void (*UIntValue) (ASN1UINT value);
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the BIT STRING ASN.1 type is
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the BIT STRING ASN.1 type is
* parsed.
*
* @param numbits - Number of bits in the parsed value.
* @param data - Pointer to a byte array that contains the bit
* @param numbits - Number of bits in the parsed value.
* @param data - Pointer to a byte array that contains the bit
* string data.
* @return - none
*/
*/
typedef void (*BitStrValue) (ASN1UINT numbits, const ASN1OCTET* data);
/**
* This is a function pointer for a callback function which is invoked from
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of one of the OCTET STRING ASN.1 type
* is parsed.
*
@ -135,8 +135,8 @@ typedef void (*BitStrValue) (ASN1UINT numbits, const ASN1OCTET* data);
typedef void (*OctStrValue) (ASN1UINT numocts, const ASN1OCTET* data) ;
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of one of the 8-bit ASN.1 character
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of one of the 8-bit ASN.1 character
* string types is parsed.
*
* @param value Null terminated character string value.
@ -145,8 +145,8 @@ typedef void (*OctStrValue) (ASN1UINT numocts, const ASN1OCTET* data) ;
typedef void (*CharStrValue) (const char* value) ;
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of one of the 16-bit ASN.1 character
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of one of the 16-bit ASN.1 character
* string types is parsed.
*
* This is used for the ASN.1 BmpString type.
@ -160,7 +160,7 @@ typedef void (*CharStrValue) (const char* value) ;
typedef void (*CharStrValue16Bit) (ASN1UINT nchars, ASN116BITCHAR* data) ;
/**
* This is a function pointer for a callback function which is invoked from
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the NULL ASN.1 type is parsed.
*
* @param - none
@ -169,8 +169,8 @@ typedef void (*CharStrValue16Bit) (ASN1UINT nchars, ASN116BITCHAR* data) ;
typedef void (*NullValue) (void) ;
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function whn a value the OBJECT IDENTIFIER ASN.1 type is
* This is a function pointer for a callback function which is invoked from
* within a decode function whn a value the OBJECT IDENTIFIER ASN.1 type is
* parsed.
*
* @param numSubIds Number of subidentifiers in the object identifier.
@ -180,8 +180,8 @@ typedef void (*NullValue) (void) ;
typedef void (*OidValue) (ASN1UINT numSubIds, ASN1UINT* pSubIds) ;
/**
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the ENUMERATED ASN.1 type is
* This is a function pointer for a callback function which is invoked from
* within a decode function when a value of the ENUMERATED ASN.1 type is
* parsed.
*
* @param value - Parsed enumerated value
@ -190,7 +190,7 @@ typedef void (*OidValue) (ASN1UINT numSubIds, ASN1UINT* pSubIds) ;
typedef void (*EnumValue) (ASN1UINT value) ;
/**
* This is a function pointer for a callback function which is invoked from
* This is a function pointer for a callback function which is invoked from
* within a decode function when an ASN.1 open type is parsed.
*
* @param numocts Number of octets in the parsed value.
@ -223,7 +223,7 @@ typedef struct EventHandler {
/**
* This function sets the event handler object within the context. It
* This function sets the event handler object within the context. It
* will overwrite the definition of any handler that was set previously.
*
* @param pctxt Context to which event handler has to be added.
@ -233,8 +233,8 @@ typedef struct EventHandler {
EXTERN void setEventHandler (OOCTXT* pctxt, EventHandler* pHandler);
/**
* This function is called to remove the event handler current defined
* in the context. This is done by setting the event handler object
* This function is called to remove the event handler current defined
* in the context. This is done by setting the event handler object
* pointer to NULL.
*
* @param pctxt Context from which event handler has to be removed.
@ -243,7 +243,7 @@ EXTERN void setEventHandler (OOCTXT* pctxt, EventHandler* pHandler);
EXTERN void removeEventHandler (OOCTXT* pctxt);
/**
* The following functions are invoked from within the generated
* The following functions are invoked from within the generated
* code to call the various user-defined event handler methods ..
*/
EXTERN void invokeStartElement (OOCTXT* pctxt, const char* name, int index);
@ -252,33 +252,33 @@ EXTERN void invokeBoolValue (OOCTXT* pctxt, ASN1BOOL value);
EXTERN void invokeIntValue (OOCTXT* pctxt, ASN1INT value);
EXTERN void invokeUIntValue (OOCTXT* pctxt, ASN1UINT value);
EXTERN void invokeBitStrValue
EXTERN void invokeBitStrValue
(OOCTXT* pctxt, ASN1UINT numbits, const ASN1OCTET* data);
EXTERN void invokeOctStrValue
EXTERN void invokeOctStrValue
(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);
EXTERN void invokeCharStrValue (OOCTXT* pctxt, const char* value);
EXTERN void invokeCharStr16BitValue
EXTERN void invokeCharStr16BitValue
(OOCTXT* pctxt, ASN1UINT nchars, ASN116BITCHAR* data);
EXTERN void invokeNullValue (OOCTXT* pctxt);
EXTERN void invokeOidValue
EXTERN void invokeOidValue
(OOCTXT* pctxt, ASN1UINT numSubIds, ASN1UINT* pSubIds);
EXTERN void invokeEnumValue (OOCTXT* pctxt, ASN1UINT value);
EXTERN void invokeOpenTypeValue
EXTERN void invokeOpenTypeValue
(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif
#endif

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -1797,4 +1797,3 @@ EXTERN int asn1PD_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue)
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -1266,4 +1266,3 @@ EXTERN int asn1PE_H235CryptoToken (OOCTXT* pctxt, H235CryptoToken* pvalue)
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -109,4 +109,3 @@ EXTERN const char* gs_H323_MESSAGES_GSM_UIM_vplmn_CharSet =
EXTERN const char* gs_H323_MESSAGES_AliasAddress_dialedDigits_CharSet =
"#*,0123456789";

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -27197,4 +27197,3 @@ EXTERN int asn1PD_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue)
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -22593,4 +22593,3 @@ EXTERN int asn1PE_H225RasMessage (OOCTXT* pctxt, H225RasMessage* pvalue)
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -37,4 +37,3 @@ EXTERN const char* gs_MULTIMEDIA_SYSTEM_CONTROL_NetworkAccessParameters_networkA
EXTERN const char* gs_MULTIMEDIA_SYSTEM_CONTROL_UserInputIndication_signal_signalType_CharSet =
"!#*0123456789ABCD";

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -42167,4 +42167,3 @@ EXTERN int asn1PD_H245MultimediaSystemControlMessage (OOCTXT* pctxt, H245Multime
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -26596,4 +26596,3 @@ EXTERN int asn1PE_H245MultimediaSystemControlMessage (OOCTXT* pctxt, H245Multime
return (stat);
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2004 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -21,7 +21,7 @@
ASN1UINT g_defBlkSize = XM_K_MEMBLKSIZ;
static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
void* pMemBlk, int blockType);
typedef void OSMemElemDescr;
@ -110,39 +110,39 @@ pMemBlk->freeElemOff = (ASN1USINT)(QOFFSETOF (pElem, pMemBlk->data) + 1); \
#define SET_FREE_ELEM(pMemBlk, pElem) setLastElem (pMemBlk, pElem)
/* Memory debugging macros */
#define RTMEMDIAG1(msg)
#define RTMEMDIAG2(msg,a)
#define RTMEMDIAG1(msg)
#define RTMEMDIAG2(msg,a)
#define RTMEMDIAG3(msg,a,b)
#define RTMEMDIAG4(msg,a,b,c)
#define FILLFREEMEM(mem,size)
#define FILLNEWMEM(mem,size)
#define FILLNEWMEM(mem,size)
#define CHECKMEMELEM(memblk,elem)
#define CHECKMEMBLOCK(memheap,memblk)
#define CHECKMEMHEAP(memheap)
#define CHECKMEMHEAP(memheap)
#define TRACEMEMELEM(memblk, elem, name)
#define TRACEFREE(memlink,name)
static void setLastElem (OSMemBlk* pMemBlk, OSMemElemDescr* pElem)
static void setLastElem (OSMemBlk* pMemBlk, OSMemElemDescr* pElem)
{
if (pElem == 0) {
pMemBlk->freeElemOff = 0;
return;
if (pElem == 0) {
pMemBlk->freeElemOff = 0;
return;
}
else if (ISLAST (pElem))
return;
else if (ISLAST (pElem))
return;
else if (pMemBlk->freeElemOff > QOFFSETOF (pElem, pMemBlk->data) + 1) {
pElem_nextFreeOff (pElem) = QOFFSETOF (GET_FREE_ELEM (pMemBlk), pElem);
FORCE_SET_FREE_ELEM (pMemBlk, pElem);
}
else if (pMemBlk->freeElemOff == 0) {
pElem_nextFreeOff (pElem) = 0;
FORCE_SET_FREE_ELEM (pMemBlk, pElem);
}
else {
SET_FREE (pElem);
pElem_nextFreeOff (pElem) = 0;
pElem_nextFreeOff (pElem) = QOFFSETOF (GET_FREE_ELEM (pMemBlk), pElem);
FORCE_SET_FREE_ELEM (pMemBlk, pElem);
}
else if (pMemBlk->freeElemOff == 0) {
pElem_nextFreeOff (pElem) = 0;
FORCE_SET_FREE_ELEM (pMemBlk, pElem);
}
else {
SET_FREE (pElem);
pElem_nextFreeOff (pElem) = 0;
}
}
@ -171,7 +171,7 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
ppMemLink = &pMemHeap->phead;
/* if size is greater than 2**19, then allocate as RAW block */
if (nunits > (1<<16) - 2) {
void *data;
@ -189,9 +189,9 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
/* save size of the RAW memory block behind the pMemLink */
*(int*)(((char*)pMemLink) + sizeof (OSMemLink)) = nbytes;
ast_mutex_unlock(&pMemHeap->pLock);
return data;
return data;
}
RTMEMDIAG2 ("memHeapAlloc: adjusted nbytes = %d\n", nbytes);
/* Try to allocate a slot from an existing block on the list */
@ -217,26 +217,26 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
pElem_flags (pElem) = 0;
if (pMemBlk->lastElemOff != 0)
pElem_prevOff (pElem) =
pElem_prevOff (pElem) =
(ASN1USINT)(pMemBlk->free_x - pMemBlk->lastElemOff + 1);
else
else
pElem_prevOff (pElem) = 0;
pPrevElem = GET_LAST_ELEM (pMemBlk);
if (pPrevElem != 0)
CLEAR_LAST (pPrevElem);
pElem_nunits (pElem) = (ASN1USINT)nunits;
pElem_nunits (pElem) = (ASN1USINT)nunits;
pElem_beginOff (pElem) = QOFFSETOF (pElem, pMemBlk->data);
pMemBlk->lastElemOff = (ASN1USINT)(pMemBlk->free_x + 1);
mem_p = (void*) (pElem_data (pElem));
/* sizeof (OSMemElemDescr) == 1 unit */
pMemBlk->free_x += nunits + 1;
pMemBlk->free_x += nunits + 1;
SET_LAST_ELEM (pMemBlk, pElem);
FILLNEWMEM (mem_p, nunits * 8u);
TRACEMEMELEM(pMemBlk, pElem, "Allocated");
CHECKMEMELEM (pMemBlk, pElem);
@ -250,54 +250,54 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
if (0 == mem_p) {
for (pMemLink = *ppMemLink; pMemLink != 0; pMemLink = pMemLink->pnext) {
if (pMemLink->blockType & RTMEMRAW) continue;
pMemBlk = (OSMemBlk*) pMemLink->pMemBlk;
if (nunits <= (ASN1UINT)pMemBlk->freeMem) {
OSMemElemDescr* pElem = GET_FREE_ELEM(pMemBlk), *pPrevFree = 0;
RTMEMDIAG2
("memHeapAlloc: try to reuse empty elems in pMemBlk = 0x%x...\n",
RTMEMDIAG2
("memHeapAlloc: try to reuse empty elems in pMemBlk = 0x%x...\n",
pMemBlk);
while (pElem != 0) {
if (ISFREE (pElem)) {
if (ISFREE (pElem)) {
if (nunits <= (ASN1UINT)pElem_nunits (pElem)) {
RTMEMDIAG3
RTMEMDIAG3
("memHeapAlloc: "
"found an exisiting free element 0x%x, size %d\n",
"found an exisiting free element 0x%x, size %d\n",
pElem, (pElem_nunits (pElem) * 8u));
if (pMemBlk->freeElemOff ==
QOFFSETOF (pElem, pMemBlk->data) + 1)
if (pMemBlk->freeElemOff ==
QOFFSETOF (pElem, pMemBlk->data) + 1)
{
/* modify the pMemBlk->freeElemOff value if necsry */
OSMemElemDescr* nextFree = GET_NEXT_FREE (pElem);
FORCE_SET_FREE_ELEM (pMemBlk, nextFree);
FORCE_SET_FREE_ELEM (pMemBlk, nextFree);
}
else if (pPrevFree != 0) {
OSMemElemDescr* pNextFree = GET_NEXT_FREE (pElem);
if (pNextFree != 0)
pElem_nextFreeOff (pPrevFree) = QOFFSETOF (pNextFree,
pElem_nextFreeOff (pPrevFree) = QOFFSETOF (pNextFree,
pPrevFree);
else
pElem_nextFreeOff (pPrevFree) = 0;
}
}
CLEAR_FREE (pElem);
/* set beginOff value */
pElem_beginOff (pElem) = QOFFSETOF (pElem, pMemBlk->data);
pMemBlk->freeMem -= pElem_nunits (pElem);
CHECKMEMELEM (pMemBlk, pElem);
CHECKMEMBLOCK (pMemHeap, pMemBlk);
mem_p = memHeapRealloc
mem_p = memHeapRealloc
(ppvMemHeap, pElem_data (pElem), nunits * 8u);
if (mem_p != 0) {
FILLNEWMEM (mem_p, nunits * 8u);
@ -311,7 +311,7 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
}
if (mem_p != 0) break;
}
}
}
}
/* If not successful, malloc a new block and alloc from it */
@ -323,16 +323,16 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
RTMEMDIAG1 ("memHeapAlloc: alloc block..\n");
allocSize = (ASN1UINT) ((((ASN1UINT)nunits) * 8u) +
allocSize = (ASN1UINT) ((((ASN1UINT)nunits) * 8u) +
sizeof (OSMemBlk) + sizeof_OSMemElemDescr);
allocSize = (ASN1UINT) (allocSize < defBlkSize) ? defBlkSize :
allocSize = (ASN1UINT) (allocSize < defBlkSize) ? defBlkSize :
((allocSize + defBlkSize - 1) / defBlkSize * defBlkSize);
dataUnits = (ASN1UINT)((allocSize - sizeof (OSMemBlk)) >> 3u);
if (dataUnits >= (1u<<16)) {
dataUnits = (ASN1UINT)((1u<<16) - 1);
allocSize = (ASN1UINT)
((((ASN1UINT)dataUnits) * 8u) + sizeof (OSMemBlk));
}
}
pmem = (ASN1OCTET*) ast_malloc(allocSize + sizeof (OSMemLink));
if (0 != pmem) {
@ -348,7 +348,7 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
pElem_beginOff (pElem) = QOFFSETOF (pElem, pMemBlk->data);
/* sizeof (OSMemElemDescr) == 1 unit */
pMemBlk->free_x = (ASN1USINT)(nunits + 1);
pMemBlk->free_x = (ASN1USINT)(nunits + 1);
pMemBlk->freeMem = 0;
pMemBlk->nunits = (ASN1USINT)dataUnits;
@ -356,7 +356,7 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
pMemBlk->freeElemOff = 0;
pMemBlk->nsaved = 0;
if (memHeapAddBlock (ppMemLink, pMemBlk, RTMEMSTD | RTMEMLINK) == 0)
if (memHeapAddBlock (ppMemLink, pMemBlk, RTMEMSTD | RTMEMLINK) == 0)
{
ast_free(pmem);
ast_mutex_unlock(&pMemHeap->pLock);
@ -379,7 +379,7 @@ void* memHeapAlloc (void** ppvMemHeap, int nbytes)
}
RTMEMDIAG2 ("memHeapAlloc: pMemBlk = 0x%x\n", pMemBlk);
RTMEMDIAG2 ("memHeapAlloc: pMemBlk->free_x = %d\n", pMemBlk->free_x);
RTMEMDIAG2 ("memHeapAlloc: pMemBlk->size = %d\n",
RTMEMDIAG2 ("memHeapAlloc: pMemBlk->size = %d\n",
pMemBlk->nunits * 8u);
RTMEMDIAG2 ("memHeapAlloc: mem_p = 0x%x\n", mem_p);
RTMEMDIAG2 ("memHeapAlloc: sizeof (short) = %d\n", sizeof(short));
@ -395,7 +395,7 @@ void* memHeapAllocZ (void** ppvMemHeap, int nbytes)
return ptr;
}
void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
{
OSMemHeap* pMemHeap;
OSMemLink** ppMemLink;
@ -417,7 +417,7 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
for (pMemLink = *ppMemLink; pMemLink != 0; pMemLink = pMemLink->pnextRaw) {
if ((pMemLink->blockType & RTMEMRAW) &&
pMemLink->pMemBlk == mem_p)
pMemLink->pMemBlk == mem_p)
{
if(pMemLink->pnext != 0) {
pMemLink->pnext->pprev = pMemLink->pprev;
@ -430,12 +430,12 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
}
if (pPrevMemLink != 0)
pPrevMemLink->pnextRaw = pMemLink->pnextRaw;
else if (*ppMemLink != 0 && (*ppMemLink)->pnextRaw == 0 &&
else if (*ppMemLink != 0 && (*ppMemLink)->pnextRaw == 0 &&
*ppMemLink != pMemLink->pnextRaw)
{
(*ppMemLink)->pnextRaw = pMemLink->pnextRaw;
}
if ((pMemLink->blockType & RTMEMLINK) &&
if ((pMemLink->blockType & RTMEMLINK) &&
(pMemLink->blockType & RTMEMMALLOC))
{
ast_free(pMemLink);
@ -461,7 +461,7 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
RTMEMDIAG2 ("memHeapFreePtr: "
"the element 0x%x is already freed!\n", pElem);
ast_mutex_unlock(&pMemHeap->pLock);
return;
return;
}
if (ISSAVED (pElem)) {
@ -475,17 +475,17 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
CHECKMEMBLOCK(pMemHeap, pMemBlk);
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk = 0x%x\n", pMemBlk);
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk->size = %d\n",
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk->size = %d\n",
pMemBlk->nunits * 8u);
if (ISLAST (pElem)) { /* is it the last? */
OSMemElemDescr* pPrevElem = GETPREV (pElem);
CHECKMEMELEM (pMemBlk, pPrevElem);
pMemBlk->free_x -= (pElem_nunits (pElem) + 1);
FILLFREEMEM (&pMemBlk->data [pMemBlk->free_x * 8u],
FILLFREEMEM (&pMemBlk->data [pMemBlk->free_x * 8u],
(pElem_nunits (pElem) + 1) * 8u);
if (pPrevElem != 0 && ISFREE (pPrevElem)) {
@ -494,10 +494,10 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
pMemBlk->free_x -= (pElem_nunits (pPrevElem) + 1);
pMemBlk->freeMem -= pElem_nunits (pPrevElem);
SET_LAST_ELEM (pMemBlk, GETPREV (pPrevElem));
/* wasn't it the last elem in block? */
if (pMemBlk->lastElemOff != 0) {
if (pMemBlk->lastElemOff != 0) {
/* correct nextFreeOff for previous free element */
pFreeElem = GET_FREE_ELEM (pMemBlk);
@ -506,7 +506,7 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
}
else {
OSMemElemDescr* pNextFree = 0;
while (pFreeElem < pPrevElem) {
pNextFree = pFreeElem;
pFreeElem = GET_NEXT_FREE (pFreeElem);
@ -519,15 +519,15 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
SET_LAST_ELEM (pMemBlk, pPrevElem);
}
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk->free_x = %d\n",
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk->free_x = %d\n",
pMemBlk->free_x);
/* The question is: do we really want to get rid of the */
/* block or should we keep it around for reuse? */
if (pMemBlk->lastElemOff == 0) { /* was it the last elem in block? */
if ((pMemHeap->flags & RT_MH_DONTKEEPFREE) ||
(pMemHeap->keepFreeUnits > 0 &&
(pMemHeap->keepFreeUnits > 0 &&
pMemHeap->freeUnits + pMemBlk->nunits > pMemHeap->keepFreeUnits))
{
ASN1OCTET blockType = pMemBlk->plink->blockType;
@ -544,7 +544,7 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
pMemBlk->plink->pprev->pnext = pMemBlk->plink->pnext;
}
else { /* head */
if (pMemBlk->plink->pnext != 0 &&
if (pMemBlk->plink->pnext != 0 &&
!(pMemBlk->plink->pnext->blockType & RTMEMRAW))
{
pMemBlk->plink->pnext->pnextRaw = (*ppMemLink)->pnextRaw;
@ -553,14 +553,14 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
}
FILLFREEMEM (pMemBlk->plink, sizeof (*pMemBlk->plink));
FILLFREEMEM (pMemBlk->data, (pMemBlk->nunits * 8u));
ast_free(pMemBlk->plink);
if (!(blockType & RTMEMLINK)) {
FILLFREEMEM (pMemBlk, sizeof (*pMemBlk));
ast_free(pMemBlk);
}
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk = 0x%x was freed\n",
RTMEMDIAG2 ("memHeapFreePtr: pMemBlk = 0x%x was freed\n",
pMemBlk);
}
else {
@ -576,7 +576,7 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
}
else {
SET_LAST (GET_LAST_ELEM (pMemBlk));
FILLFREEMEM (((char*) &pMemBlk->data[0]) + (pMemBlk->free_x * 8u),
FILLFREEMEM (((char*) &pMemBlk->data[0]) + (pMemBlk->free_x * 8u),
(pMemBlk->nunits - pMemBlk->free_x) * 8u);
CHECKMEMBLOCK (pMemHeap, pMemBlk);
}
@ -587,25 +587,25 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
SET_FREE_ELEM(pMemBlk, pElem);
pMemBlk->freeMem += pElem_nunits (pElem);
RTMEMDIAG2 ("memHeapFreePtr: element 0x%x marked as free.\n",
RTMEMDIAG2 ("memHeapFreePtr: element 0x%x marked as free.\n",
pElem);
/* try to unite free blocks, if possible */
if (!ISFIRST (pElem)) {
if (ISFREE (GETPREV (pElem))) {
OSMemElemDescr* prevelem_p = GETPREV (pElem);
/* +1 because the OSMemElemDescr has size ONE unit (8 bytes) */
pElem_nunits (prevelem_p) += pElem_nunits (pElem) + 1;
pElem_nunits (prevelem_p) += pElem_nunits (pElem) + 1;
pElem = prevelem_p;
pMemBlk->freeMem ++; /* sizeof (OSMemElemDescr) == 1 unit */
}
else {
/* look for nearest previous free block to correct nextFreeOff */
OSMemElemDescr* prevelem_p = pElem;
do {
prevelem_p = GETPREV (prevelem_p);
}
@ -613,32 +613,32 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
if (prevelem_p != 0) {
OSMemElemDescr* pNextFree = GET_NEXT_FREE (prevelem_p);
if (pNextFree != 0)
if (pNextFree != 0)
pElem_nextFreeOff (pElem) = QOFFSETOF (pNextFree, pElem);
else
pElem_nextFreeOff (pElem) = 0;
pElem_nextFreeOff (prevelem_p) = QOFFSETOF (pElem, prevelem_p);
CHECKMEMELEM (pMemBlk, prevelem_p);
}
}
}
if (!ISLAST (pElem) && ISFREE (GETNEXT (pElem))) {
OSMemElemDescr* nextelem_p = GETNEXT (pElem);
/* +1 because the OSMemElemDescr has size ONE unit (8 bytes) */
pElem_nunits (pElem) += pElem_nunits (nextelem_p) + 1;
pElem_nunits (pElem) += pElem_nunits (nextelem_p) + 1;
if (pElem_nextFreeOff (nextelem_p) == 0)
pElem_nextFreeOff (pElem) = 0;
else
pElem_nextFreeOff (pElem) =
pElem_nextFreeOff (pElem) =
QOFFSETOF (GET_NEXT_FREE (nextelem_p), pElem);
pMemBlk->freeMem ++;
}
/* correct the prevOff field of next element */
if (!ISLAST (pElem)) {
if (!ISLAST (pElem)) {
OSMemElemDescr* nextelem_p = GETNEXT (pElem);
pElem_prevOff (nextelem_p) = QOFFSETOF (nextelem_p, pElem);
}
@ -649,10 +649,10 @@ void memHeapFreePtr (void** ppvMemHeap, void* mem_p)
CHECKMEMBLOCK (pMemHeap, pMemBlk);
}
ast_mutex_unlock(&pMemHeap->pLock);
}
}
static void initNewFreeElement (OSMemBlk* pMemBlk,
OSMemElemDescr* pNewElem, OSMemElemDescr* pElem)
static void initNewFreeElement (OSMemBlk* pMemBlk,
OSMemElemDescr* pNewElem, OSMemElemDescr* pElem)
{
OSMemElemDescr *pNextElem, *pPrevElem = 0;
@ -663,11 +663,11 @@ static void initNewFreeElement (OSMemBlk* pMemBlk,
pElem_prevOff (pNewElem) = QOFFSETOF (pNewElem, pElem);
if (pMemBlk->freeElemOff != 0 &&
if (pMemBlk->freeElemOff != 0 &&
pMemBlk->freeElemOff < QOFFSETOF (pElem, pMemBlk->data) + 1)
{
/* look for nearest previous free block to correct its nextFreeOff */
pPrevElem = pElem;
do {
@ -678,21 +678,21 @@ static void initNewFreeElement (OSMemBlk* pMemBlk,
if (pPrevElem != 0) { /* if it is not first free element... */
/* correct nextFreeOff for prev free element */
pElem_nextFreeOff (pPrevElem) = QOFFSETOF (pNewElem, pPrevElem);
}
else { /* if it is first free element in the block */
FORCE_SET_FREE_ELEM (pMemBlk, pNewElem);
}
pNextElem = GETNEXT (pNewElem);
if (ISFREE (pNextElem)) {
/* if the next elem is free, then unite them together */
pElem_nunits (pNewElem) += pElem_nunits (pNextElem) + 1;
if (pElem_nextFreeOff (pNextElem) != 0)
pElem_nextFreeOff (pNewElem) = QOFFSETOF (GET_NEXT_FREE (pNextElem),
pElem_nextFreeOff (pNewElem) = QOFFSETOF (GET_NEXT_FREE (pNextElem),
pNewElem);
else
pElem_nextFreeOff (pNewElem) = 0;
@ -710,7 +710,7 @@ static void initNewFreeElement (OSMemBlk* pMemBlk,
pNextElem = GETNEXT (pNextElem);
/* set nextFreeOff for new element */
if (pNextElem != 0)
pElem_nextFreeOff (pNewElem) = QOFFSETOF (pNextElem, pNewElem);
else
@ -746,15 +746,15 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
for (pMemLink = *ppMemLink; pMemLink != 0; pMemLink = pMemLink->pnextRaw) {
if ((pMemLink->blockType & RTMEMRAW) &&
pMemLink->pMemBlk == mem_p)
pMemLink->pMemBlk == mem_p)
{
if (pMemLink->blockType & RTMEMMALLOC) {
void *newMemBlk = ast_realloc(pMemLink->pMemBlk, nbytes_);
if (newMemBlk == 0)
if (newMemBlk == 0)
return 0;
pMemLink->pMemBlk = newMemBlk;
}
else
else
return 0;
*(int*)(((char*)pMemLink) + sizeof (OSMemLink)) = nbytes_;
return pMemLink->pMemBlk;
@ -768,7 +768,7 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
pElem = (OSMemElemDescr*) (((char*)mem_p) - sizeof_OSMemElemDescr);
RTMEMDIAG3 ("memHeapRealloc: mem_p = 0x%x, old size = %d,", mem_p,
RTMEMDIAG3 ("memHeapRealloc: mem_p = 0x%x, old size = %d,", mem_p,
pElem_nunits (pElem) * 8u);
RTMEMDIAG2 (" new nbytes = %d\n", nbytes);
@ -781,39 +781,39 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
CHECKMEMBLOCK(pMemHeap, pMemBlk);
if ((unsigned)pElem_nunits (pElem) < nunits) { /* expanding */
if (nunits - pElem_nunits (pElem) <= (unsigned)pMemBlk->nunits) {
/* Try to expand the existing element in the existing block */
if (ISLAST (pElem)) { /* if the last element in the block */
/* if the free space in the block is enough */
if ((int)(nunits - pElem_nunits (pElem)) <=
(int)(pMemBlk->nunits - pMemBlk->free_x))
{
if ((int)(nunits - pElem_nunits (pElem)) <=
(int)(pMemBlk->nunits - pMemBlk->free_x))
{
pMemBlk->free_x += nunits - pElem_nunits (pElem);
pElem_nunits (pElem) = (ASN1USINT)nunits;
RTMEMDIAG1 ("memHeapRealloc: "
"memory element is expanded.\n");
FILLNEWMEM (&pMemBlk->data [(pMemBlk->free_x -
(nunits - pElem_nunits (pElem))) * 8u],
FILLNEWMEM (&pMemBlk->data [(pMemBlk->free_x -
(nunits - pElem_nunits (pElem))) * 8u],
(nunits - pElem_nunits (pElem)) * 8u);
TRACEMEMELEM (pMemBlk, pElem, "Reallocated");
CHECKMEMELEM (pMemBlk, pElem);
CHECKMEMBLOCK (pMemHeap, pMemBlk);
return (mem_p);
}
}
}
else {
OSMemElemDescr* pNextElem, *pFreeElem;
OSMemElemDescr* pNextElem, *pFreeElem;
unsigned sumSize = pElem_nunits (pElem), freeMem = 0;
RTMEMDIAG1 ("memHeapRealloc: look for free element after "
"current block.\n");
@ -822,10 +822,10 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
pNextElem = GETNEXT (pElem);
if (ISFREE (pNextElem)) {
/* +1 'cos sizeof (OSMemElemDescr) == 1 unit */
sumSize += pElem_nunits (pNextElem) + 1;
sumSize += pElem_nunits (pNextElem) + 1;
freeMem++;
}
if (sumSize >= nunits) {
RTMEMDIAG1 ("memHeapRealloc: reuse free element.\n");
@ -836,15 +836,15 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
FORCE_SET_FREE_ELEM (pMemBlk, GET_NEXT_FREE (pNextElem));
}
else if (pFreeElem < pElem) {
/* look for previous free elem to correct nextFreeOff */
for (; pFreeElem != 0 && pFreeElem < pNextElem;) {
OSMemElemDescr* pNextFreeElem =
OSMemElemDescr* pNextFreeElem =
GET_NEXT_FREE (pFreeElem);
if (pNextFreeElem == pNextElem) {
if (pElem_nextFreeOff (pNextElem) != 0)
pElem_nextFreeOff (pFreeElem) = QOFFSETOF
pElem_nextFreeOff (pFreeElem) = QOFFSETOF
(GET_NEXT_FREE (pNextElem), pFreeElem);
else
pElem_nextFreeOff (pFreeElem) = 0;
@ -857,15 +857,15 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
}
/* reuse empty elements after the pElem */
pMemBlk->freeMem += freeMem;
if (sumSize - nunits > 1) {
OSMemElemDescr* pNewElem;
/* if sumSize is too large, then create new empty element */
pNewElem = (OSMemElemDescr*)
pNewElem = (OSMemElemDescr*)
(pElem_data (pElem) + nbytes);
pElem_nunits (pNewElem) = (ASN1USINT)(sumSize - nunits - 1);
@ -885,7 +885,7 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
if (pNextElem != 0)
pElem_prevOff (pNextElem) = QOFFSETOF (pNextElem, pElem);
}
TRACEMEMELEM (pMemBlk, pElem, "Reallocated");
CHECKMEMELEM (pMemBlk, pElem);
CHECKMEMELEM (pMemBlk, (!ISLAST (pElem)) ? GETNEXT (pElem) : 0);
@ -902,14 +902,14 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
CHECKMEMHEAP (pMemHeap);
newMem_p = memHeapAlloc (ppvMemHeap, nbytes);
if (newMem_p == 0)
return 0;
/* if the old memory block is marked as saved then mark the new block
as saved as well. */
if (ISSAVED (pElem))
if (ISSAVED (pElem))
memHeapMarkSaved (ppvMemHeap, newMem_p, TRUE);
CHECKMEMHEAP (pMemHeap);
@ -928,7 +928,7 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
}
else { /* shrinking */
RTMEMDIAG1 ("memHeapRealloc: shrinking ...\n");
/* just free the pointer, if nbytes == 0 */
if (nbytes == 0) {
@ -940,15 +940,15 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
/* do not shrink, if size diff is too small */
/* sizeof (OSMemElemDescr) == 1 unit */
if (pElem_nunits (pElem) - nunits > 1) {
/* if it is the last element in the block, then just change the size
if (pElem_nunits (pElem) - nunits > 1) {
/* if it is the last element in the block, then just change the size
and free_x. */
if (ISLAST (pElem)) {
pMemBlk->free_x -= (pElem_nunits (pElem) - nunits);
FILLFREEMEM (&pMemBlk->data [pMemBlk->free_x * 8u],
FILLFREEMEM (&pMemBlk->data [pMemBlk->free_x * 8u],
(pElem_nunits (pElem) - nunits) * 8u);
}
else {
@ -959,14 +959,14 @@ void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_)
pNewElem = (OSMemElemDescr*) (pElem_data (pElem) + nbytes);
/* sizeof (OSMemElemDescr) == 1 unit */
pElem_nunits (pNewElem) = (ASN1USINT)(pElem_nunits (pElem) - nunits - 1);
pElem_nunits (pNewElem) = (ASN1USINT)(pElem_nunits (pElem) - nunits - 1);
initNewFreeElement (pMemBlk, pNewElem, pElem);
pMemBlk->freeMem += (pElem_nunits (pElem) - nunits) - 1;
}
pElem_nunits (pElem) = (ASN1USINT)nunits;
TRACEMEMELEM (pMemBlk, pElem, "Reallocated");
CHECKMEMELEM (pMemBlk, pElem);
CHECKMEMELEM (pMemBlk, (!ISLAST (pElem)) ? GETNEXT (pElem) : pElem);
@ -1000,9 +1000,9 @@ void memHeapFreeAll (void** ppvMemHeap)
pMemLink2 = pMemLink;
pMemLink = pMemLink2->pnext;
RTMEMDIAG3 ("memHeapFreeAll: pMemLink2 = 0x%x, pMemLink = 0x%x\n",
RTMEMDIAG3 ("memHeapFreeAll: pMemLink2 = 0x%x, pMemLink = 0x%x\n",
pMemLink2, pMemLink);
#ifdef _MEMDEBUG
if (pMemLink2->blockType & RTMEMSTD) {
OSMemBlk* pMemBlk = (OSMemBlk*) pMemLink2->pMemBlk;
@ -1036,9 +1036,9 @@ void memHeapFreeAll (void** ppvMemHeap)
/* free link and block */
if (((pMemLink2->blockType & RTMEMSTD) ||
if (((pMemLink2->blockType & RTMEMSTD) ||
(pMemLink2->blockType & RTMEMMALLOC)) &&
!(pMemLink2->blockType & RTMEMLINK))
!(pMemLink2->blockType & RTMEMLINK))
ast_free(pMemLink2->pMemBlk);
ast_free(pMemLink2);
}
@ -1089,11 +1089,11 @@ void memHeapRelease (void** ppvMemHeap)
/* This function is used for marking memory block as "saved". It means
* that the memory block containing the specified memory pointer won't be
* freed after calls to memHeapFreeAll/memHeapReset. User is responsible
* freed after calls to memHeapFreeAll/memHeapReset. User is responsible
* for freeing the marked memory block by call to memFreeBlock */
void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
ASN1BOOL saved)
void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
ASN1BOOL saved)
{
OSMemHeap* pMemHeap;
OSMemLink* pMemLink;
@ -1101,7 +1101,7 @@ void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
RTMEMDIAG2 ("memHeapMarkSaved: for mem_p = 0x%x\n", mem_p);
if (ppvMemHeap == 0 || *ppvMemHeap == 0 || mem_p == 0)
if (ppvMemHeap == 0 || *ppvMemHeap == 0 || mem_p == 0)
return 0;
pMemHeap = *(OSMemHeap**)ppvMemHeap;
@ -1114,7 +1114,7 @@ void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
for (; pMemLink != 0; pMemLink = pMemLink->pnextRaw) {
if ((pMemLink->blockType & RTMEMRAW) &&
pMemLink->pMemBlk == mem_p)
pMemLink->pMemBlk == mem_p)
{
break;
}
@ -1132,7 +1132,7 @@ void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
"already free!\n", pElem);
ast_mutex_unlock(&pMemHeap->pLock);
return 0;
return 0;
}
if ((ISSAVED (pElem) && !saved) || (!ISSAVED (pElem) && saved)) {
@ -1144,7 +1144,7 @@ void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
pMemLink = pMemBlk->plink;
if (saved)
if (saved)
SET_SAVED (pMemBlk, pElem);
else
CLEAR_SAVED (pMemBlk, pElem);
@ -1154,7 +1154,7 @@ void* memHeapMarkSaved (void** ppvMemHeap, const void* mem_p,
ast_mutex_unlock(&pMemHeap->pLock);
return 0;
}
if (saved && nsaved > 0)
if (saved && nsaved > 0)
pMemLink->blockType |= RTMEMSAVED;
else if (nsaved == 0)
pMemLink->blockType &= (~RTMEMSAVED);
@ -1204,16 +1204,16 @@ void memHeapReset (void** ppvMemHeap)
/* add memory block to list */
static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
void* pMemBlk, int blockType)
{
OSMemLink* pMemLink;
/* if pMemBlk has RTMEMLINK flags it means that it is allocated
/* if pMemBlk has RTMEMLINK flags it means that it is allocated
* cooperatively with OSMemLink, and we don't need to do additional
* allocations for it. Just use pointer's arithemtic. */
if (blockType & RTMEMLINK)
if (blockType & RTMEMLINK)
pMemLink = (OSMemLink*) (((ASN1OCTET*)pMemBlk) - sizeof (OSMemLink));
else {
pMemLink = ast_malloc(sizeof(OSMemLink) + sizeof(int));
@ -1222,7 +1222,7 @@ static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
to perform rtMemRealloc through malloc/memcpy/free */
*(int*)(((char*)pMemLink) + sizeof (OSMemLink)) = (int)-1;
}
if (pMemLink == NULL)
if (pMemLink == NULL)
return NULL;
pMemLink->blockType = (ASN1OCTET)blockType;
pMemLink->pMemBlk = pMemBlk;
@ -1241,15 +1241,15 @@ static OSMemLink* memHeapAddBlock (OSMemLink** ppMemLink,
pMemLink->pnextRaw = 0;
}
*ppMemLink = pMemLink;
*ppMemLink = pMemLink;
if (pMemLink->pnext != 0)
pMemLink->pnext->pprev = pMemLink;
((OSMemBlk*)pMemBlk)->plink = pMemLink; /*!AB */
RTMEMDIAG2 ("memHeapAddBlock: pMemLink = 0x%x\n", pMemLink);
RTMEMDIAG2 ("memHeapAddBlock: pMemLink->pnext = 0x%x\n",
RTMEMDIAG2 ("memHeapAddBlock: pMemLink->pnext = 0x%x\n",
pMemLink->pnext);
RTMEMDIAG2 ("memHeapAddBlock: pMemLink->pprev = 0x%x\n",
RTMEMDIAG2 ("memHeapAddBlock: pMemLink->pprev = 0x%x\n",
pMemLink->pprev);
return pMemLink;
@ -1262,7 +1262,7 @@ int memHeapCheckPtr (void** ppvMemHeap, void* mem_p)
RTMEMDIAG2 ("memHeapCheckPtr: for mem_p = 0x%x\n", mem_p);
if (ppvMemHeap == 0 || *ppvMemHeap == 0 || mem_p == 0)
if (ppvMemHeap == 0 || *ppvMemHeap == 0 || mem_p == 0)
return 0;
pMemHeap = *(OSMemHeap**)ppvMemHeap;
@ -1272,7 +1272,7 @@ int memHeapCheckPtr (void** ppvMemHeap, void* mem_p)
for (; pMemLink != 0; pMemLink = pMemLink->pnext) {
if (pMemLink->blockType & RTMEMRAW) {
/* if RAW block, the pointer should be stored in pMemBlk */
if (pMemLink->pMemBlk == mem_p) {
@ -1282,17 +1282,17 @@ int memHeapCheckPtr (void** ppvMemHeap, void* mem_p)
}
else {
OSMemBlk* pMemBlk = (OSMemBlk*)pMemLink->pMemBlk;
/* Check, is the pointer inside this memory page */
if (mem_p > pMemLink->pMemBlk &&
if (mem_p > pMemLink->pMemBlk &&
mem_p < (void*)(((ASN1OCTET*)pMemLink->pMemBlk) + pMemBlk->nunits * 8u))
{
/* Check, is the pointer a correct element of the mem page */
OSMemElemDescr* pElem = (OSMemElemDescr*) pMemBlk->data;
for (; pElem != 0; pElem = GETNEXT (pElem)) {
void* curMem_p = (void*) pElem_data (pElem);
if (curMem_p == mem_p && !ISFREE (pElem)) {
ast_mutex_unlock(&pMemHeap->pLock);
@ -1311,7 +1311,7 @@ void memHeapSetProperty (void** ppvMemHeap, ASN1UINT propId, void* pProp)
{
OSMemHeap* pMemHeap;
if (ppvMemHeap == 0)
if (ppvMemHeap == 0)
return;
if (*ppvMemHeap == 0)
@ -1332,9 +1332,9 @@ void memHeapSetProperty (void** ppvMemHeap, ASN1UINT propId, void* pProp)
break;
}
ast_mutex_unlock(&pMemHeap->pLock);
}
}
int memHeapCreate (void** ppvMemHeap)
int memHeapCreate (void** ppvMemHeap)
{
OSMemHeap* pMemHeap;
if (ppvMemHeap == 0) return ASN_E_INVPARAM;
@ -1349,4 +1349,3 @@ int memHeapCreate (void** ppvMemHeap)
*ppvMemHeap = (void*)pMemHeap;
return ASN_OK;
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -62,7 +62,7 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
{
OOTRACEERR1("ERROR:Memory - ooCreateCall - call\n");
return NULL;
}
}
memset(call, 0, sizeof(OOH323CallData));
ast_cond_init(&call->gkWait, NULL);
ast_mutex_init(&call->GkLock);
@ -80,7 +80,7 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
else {
call->ourCallerId[0] = '\0';
}
memset(&call->callIdentifier, 0, sizeof(H225CallIdentifier));
memset(&call->confIdentifier, 0, sizeof(H225ConferenceIdentifier));
@ -107,7 +107,7 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
// May 20090713. Fix it for Video session
OO_SETFLAG(call->flags, OO_M_AUDIOSESSION);
call->callState = OO_CALL_CREATED;
call->callEndReason = OO_REASON_UNKNOWN;
call->pCallFwdData = NULL;
@ -116,13 +116,13 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
{
call->callingPartyNumber = NULL;
}
else{
else{
if(ooUtilsIsStrEmpty(gH323ep.callingPartyNumber))
{
call->callingPartyNumber = NULL;
}
else{
call->callingPartyNumber = (char*) memAlloc(call->pctxt,
call->callingPartyNumber = (char*) memAlloc(call->pctxt,
strlen(gH323ep.callingPartyNumber)+1);
if(call->callingPartyNumber)
{
@ -156,14 +156,14 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
call->masterSlaveState = OO_MasterSlave_Idle;
call->statusDeterminationNumber = 0;
call->localTermCapState = OO_LocalTermCapExchange_Idle;
call->remoteTermCapState = OO_RemoteTermCapExchange_Idle;
call->remoteTermCapState = OO_RemoteTermCapExchange_Idle;
call->ourCaps = NULL;
call->remoteCaps = NULL;
call->jointCaps = NULL;
dListInit(&call->remoteFastStartOLCs);
call->remoteTermCapSeqNo =0;
call->localTermCapSeqNo = 0;
memcpy(&call->capPrefs, &gH323ep.capPrefs, sizeof(OOCapPrefs));
memcpy(&call->capPrefs, &gH323ep.capPrefs, sizeof(OOCapPrefs));
call->logicalChans = NULL;
call->noOfLogicalChannels = 0;
call->logicalChanNoBase = 1001;
@ -175,7 +175,7 @@ OOH323CallData* ooCreateCall(char* type, char*callToken)
call->pFastStartRes = NULL;
call->usrData = NULL;
ooCreateCallCmdConnection(call);
OOTRACEINFO3("Created a new call (%s, %s)\n", call->callType,
OOTRACEINFO3("Created a new call (%s, %s)\n", call->callType,
call->callToken);
/* Add new call to calllist */
ooAddCallToList (call);
@ -209,8 +209,8 @@ int ooAddCallToList(OOH323CallData *call)
int ooEndCall(OOH323CallData *call)
{
OOTRACEDBGA4("In ooEndCall call state is - %s (%s, %s)\n",
ooGetCallStateText(call->callState), call->callType,
OOTRACEDBGA4("In ooEndCall call state is - %s (%s, %s)\n",
ooGetCallStateText(call->callState), call->callType,
call->callToken);
if(call->callState == OO_CALL_REMOVED) {
@ -229,7 +229,7 @@ int ooEndCall(OOH323CallData *call)
if(call->callState == OO_CALL_CLEARED || ((strcmp(call->callType, "incoming")) &&
call->callState == OO_CALL_CLEAR_RELEASESENT))
{
ooCleanCall(call);
ooCleanCall(call);
call->callState = OO_CALL_REMOVED;
return OO_OK;
}
@ -252,16 +252,16 @@ int ooEndCall(OOH323CallData *call)
}
if(!OO_TESTFLAG(call->flags, OO_M_RELEASE_BUILT))
if(!OO_TESTFLAG(call->flags, OO_M_RELEASE_BUILT))
{
if(call->callState == OO_CALL_CLEAR ||
if(call->callState == OO_CALL_CLEAR ||
call->callState == OO_CALL_CLEAR_RELEASERECVD)
{
ooSendReleaseComplete(call);
OO_SETFLAG(call->flags, OO_M_RELEASE_BUILT);
}
}
return OO_OK;
}
@ -300,8 +300,8 @@ int ooCleanCall(OOH323CallData *call)
{
OOCTXT *pctxt;
OOTRACEWARN4 ("Cleaning Call (%s, %s)- reason:%s\n",
call->callType, call->callToken,
OOTRACEWARN4 ("Cleaning Call (%s, %s)- reason:%s\n",
call->callType, call->callToken,
ooGetReasonCodeText (call->callEndReason));
/* First clean all the logical channels, if not already cleaned. */
@ -324,7 +324,7 @@ int ooCleanCall(OOH323CallData *call)
{
ooCloseH245Listener(call);
}
/* Close H225 connection, if not already closed. */
if (0 != call->pH225Channel && 0 != call->pH225Channel->sock)
{
@ -343,7 +343,7 @@ int ooCleanCall(OOH323CallData *call)
}
ooRemoveCallFromList (call);
OOTRACEINFO3("Removed call (%s, %s) from list\n", call->callType,
OOTRACEINFO3("Removed call (%s, %s) from list\n", call->callType,
call->callToken);
if(call->pCallFwdData && call->pCallFwdData->fwdedByRemote)
@ -396,7 +396,7 @@ int ooCallSetCallerId(OOH323CallData* call, const char* callerid)
int ooCallSetCallingPartyNumber(OOH323CallData *call, const char *number)
{
if(call->callingPartyNumber)
if(call->callingPartyNumber)
memFreePtr(call->pctxt, call->callingPartyNumber);
call->callingPartyNumber = (char*) memAlloc(call->pctxt, strlen(number)+1);
@ -406,7 +406,7 @@ int ooCallSetCallingPartyNumber(OOH323CallData *call, const char *number)
}
else{
OOTRACEERR3("Error:Memory - ooCallSetCallingPartyNumber - "
"callingPartyNumber.(%s, %s)\n", call->callType,
"callingPartyNumber.(%s, %s)\n", call->callType,
call->callToken);
return OO_FAILED;
}
@ -428,14 +428,14 @@ int ooCallGetCallingPartyNumber(OOH323CallData *call, char *buffer, int len)
return OO_OK;
}
}
return OO_FAILED;
}
int ooCallSetCalledPartyNumber(OOH323CallData *call, const char *number)
{
if(call->calledPartyNumber)
if(call->calledPartyNumber)
memFreePtr(call->pctxt, call->calledPartyNumber);
call->calledPartyNumber = (char*) memAlloc(call->pctxt, strlen(number)+1);
@ -445,7 +445,7 @@ int ooCallSetCalledPartyNumber(OOH323CallData *call, const char *number)
}
else{
OOTRACEERR3("Error:Memory - ooCallSetCalledPartyNumber - "
"calledPartyNumber.(%s, %s)\n", call->callType,
"calledPartyNumber.(%s, %s)\n", call->callType,
call->callToken);
return OO_FAILED;
}
@ -462,7 +462,7 @@ int ooCallGetCalledPartyNumber(OOH323CallData *call, char *buffer, int len)
return OO_OK;
}
}
return OO_FAILED;
}
@ -507,7 +507,7 @@ int ooCallAddAlias
call->remoteAliases = psNewAlias;
}
OOTRACEDBGC5("Added %s alias %s to call. (%s, %s)\n",
OOTRACEDBGC5("Added %s alias %s to call. (%s, %s)\n",
local?"local":"remote", value, call->callType, call->callToken);
return OO_OK;
}
@ -534,8 +534,8 @@ int ooCallAddAliasEmailID(OOH323CallData *call, const char* email)
int ooCallAddAliasURLID(OOH323CallData *call, const char* url)
{
return ooCallAddAlias(call, T_H225AliasAddress_url_ID, url, TRUE);
}
}
int ooCallAddRemoteAliasH323ID(OOH323CallData *call, const char* h323id)
{
@ -551,63 +551,63 @@ int ooCallAddRemoteAliasDialedDigits
/* Used to override global end point capabilities and add call specific
/* Used to override global end point capabilities and add call specific
capabilities */
int ooCallAddG726Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG726Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooCallAddAMRNBCapability(OOH323CallData *call, int cap, int txframes,
int ooCallAddAMRNBCapability(OOH323CallData *call, int cap, int txframes,
int rxframes, OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooCallAddSpeexCapability(OOH323CallData *call, int cap, int txframes,
int ooCallAddSpeexCapability(OOH323CallData *call, int cap, int txframes,
int rxframes, OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -615,12 +615,12 @@ int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
/*
int ooCallAddG726Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG726Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -628,12 +628,12 @@ int ooCallAddG726Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
*/
int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -641,11 +641,11 @@ int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -653,28 +653,28 @@ int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(call, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
int ooCallAddGSMCapability
(OOH323CallData* call, int cap, ASN1USINT framesPerPkt,
(OOH323CallData* call, int cap, ASN1USINT framesPerPkt,
OOBOOL comfortNoise, OOBOOL scrambled, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddGSMCapability(call, cap, framesPerPkt, comfortNoise,
scrambled, dir, startReceiveChannel,
return ooCapabilityAddGSMCapability(call, cap, framesPerPkt, comfortNoise,
scrambled, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooCallAddH263VideoCapability
(OOH323CallData *call, int cap, unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI, unsigned cif16MPI, unsigned maxBitRate,
(OOH323CallData *call, int cap, unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI, unsigned cif16MPI, unsigned maxBitRate,
int dir, cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -684,7 +684,7 @@ int ooCallAddH263VideoCapability
return ooCapabilityAddH263VideoCapability(call, sqcifMPI, qcifMPI, cifMPI,
cif4MPI, cif16MPI, maxBitRate,dir,
startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel,
stopReceiveChannel, stopTransmitChannel,
FALSE);
}
@ -766,7 +766,7 @@ OOH323CallData* ooFindCallByToken(const char *callToken)
else
call = call->next;
}
if(!call)
{
OOTRACEERR2("ERROR:Call with token %s not found\n", callToken);
@ -791,7 +791,7 @@ ASN1BOOL ooIsSessionEstablished(OOH323CallData *call, int sessionID, char* dir)
while(temp)
{
if(temp->sessionID == sessionID &&
temp->state == OO_LOGICALCHAN_ESTABLISHED &&
temp->state == OO_LOGICALCHAN_ESTABLISHED &&
!strcmp(temp->dir, dir) )
return TRUE;
temp = temp->next;
@ -819,7 +819,7 @@ int ooAddMediaInfo(OOH323CallData *call, OOMediaInfo mediaInfo)
memcpy (newMediaInfo, &mediaInfo, sizeof(OOMediaInfo));
OOTRACEDBGC4("Configured mediainfo for cap %s (%s, %s)\n",
OOTRACEDBGC4("Configured mediainfo for cap %s (%s, %s)\n",
ooGetCapTypeText(mediaInfo.cap),
call->callType, call->callToken);
if(!call->mediaInfo) {
@ -849,7 +849,7 @@ unsigned ooCallGenerateSessionID
sessionID = call->nextSessionID++;
else{
OOTRACEDBGC4("Session id for %s channel of type audio has to be "
"provided by remote.(%s, %s)\n", dir, call->callType,
"provided by remote.(%s, %s)\n", dir, call->callType,
call->callToken);
sessionID = 0; /* Will be assigned by remote */
}
@ -868,7 +868,7 @@ unsigned ooCallGenerateSessionID
else{
sessionID = 0; /* Will be assigned by remote */
OOTRACEDBGC4("Session id for %s channel of type video has to be "
"provided by remote.(%s, %s)\n", dir, call->callType,
"provided by remote.(%s, %s)\n", dir, call->callType,
call->callToken);
}
}
@ -885,7 +885,7 @@ unsigned ooCallGenerateSessionID
else{
sessionID = 0; /* Will be assigned by remote */
OOTRACEDBGC4("Session id for %s channel of type data has to be "
"provided by remote.(%s, %s)\n", dir, call->callType,
"provided by remote.(%s, %s)\n", dir, call->callType,
call->callToken);
}
}
@ -900,8 +900,8 @@ int ooCallH245ConnectionRetryTimerExpired(void *data)
ooTimerCallback *cbData = (ooTimerCallback*) data;
OOH323CallData *call = cbData->call;
OOTRACEINFO3("H245 connection retry timer expired. (%s, %s)\n",
call->callType, call->callToken);
OOTRACEINFO3("H245 connection retry timer expired. (%s, %s)\n",
call->callType, call->callToken);
memFreePtr(call->pctxt, cbData);
call->h245ConnectionAttempts++;
@ -914,9 +914,9 @@ int ooCallH245ConnectionRetryTimerExpired(void *data)
const char* ooGetReasonCodeText (OOUINT32 code)
{
static const char* reasonCodeText[] = {
"OO_REASON_UNKNOWN",
"OO_REASON_UNKNOWN",
"OO_REASON_INVALIDMESSAGE",
"OO_REASON_TRANSPORTFAILURE",
"OO_REASON_TRANSPORTFAILURE",
"OO_REASON_NOROUTE",
"OO_REASON_NOUSER",
"OO_REASON_NOBW",
@ -926,10 +926,10 @@ const char* ooGetReasonCodeText (OOUINT32 code)
"OO_REASON_GK_UNREACHABLE",
"OO_REASON_GK_CLEARED",
"OO_REASON_NOCOMMON_CAPABILITIES",
"OO_REASON_REMOTE_FWDED",
"OO_REASON_REMOTE_FWDED",
"OO_REASON_LOCAL_FWDED",
"OO_REASON_REMOTE_CLEARED",
"OO_REASON_LOCAL_CLEARED",
"OO_REASON_REMOTE_CLEARED",
"OO_REASON_LOCAL_CLEARED",
"OO_REASON_REMOTE_BUSY",
"OO_REASON_LOCAL_BUSY",
"OO_REASON_REMOTE_NOANSWER",
@ -957,4 +957,3 @@ const char* ooGetCallStateText (OOCallState callState)
};
return ooUtilsGetText (callState, callStateText, OONUMBEROF(callStateText));
}

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooCalls.h
* This file contains call management functions.
* @file ooCalls.h
* This file contains call management functions.
*/
#ifndef _OOCALLS_H_
#define _OOCALLS_H_
@ -29,7 +29,7 @@ extern "C" {
#endif
/**
/**
* @defgroup callmgmt Call Management
* @{
*/
@ -60,7 +60,7 @@ extern "C" {
#define OO_M_DATASESSION ASN1UINTCNT(0x00000200)
#define OO_M_T38SUPPORTED ASN1UINTCNT(0x00000400)
/**
/**
* Call states.
*/
typedef enum {
@ -76,20 +76,20 @@ typedef enum {
OO_CALL_REMOVED /* call removed */
} OOCallState;
/**
/**
* H.245 session states.
*/
typedef enum {
OO_H245SESSION_IDLE,
OO_H245SESSION_PAUSED,
OO_H245SESSION_ACTIVE,
OO_H245SESSION_ENDSENT,
OO_H245SESSION_ENDSENT,
OO_H245SESSION_ENDRECVD,
OO_H245SESSION_CLOSED
} OOH245SessionState;
/**
* Structure to store local and remote media endpoint info for a
* Structure to store local and remote media endpoint info for a
* given media type.
*/
typedef struct OOMediaInfo{
@ -115,10 +115,10 @@ typedef struct OOCallFwdData {
int port;
struct OOAliases *aliases;
OOBOOL fwdedByRemote; /*Set when we are being fwded by remote*/
} OOCallFwdData;
} OOCallFwdData;
/**
* Structure to store information on an H.323 channel (H.225 or H.245) for
* Structure to store information on an H.323 channel (H.225 or H.245) for
* a particular call.
*/
typedef struct OOH323Channel {
@ -128,7 +128,7 @@ typedef struct OOH323Channel {
} OOH323Channel;
/**
* Structure to store information on fast start response (H.225) to
* Structure to store information on fast start response (H.225) to
* reply same answer in CALL PROCEEDING, ALERTING & CONNECT.
*/
typedef struct EXTERN FastStartResponse {
@ -144,8 +144,8 @@ typedef struct OOH323Regex {
/**
* This structure is used to maintain all information on an active call.
* A list of these structures is maintained within the global endpoint
* This structure is used to maintain all information on an active call.
* A list of these structures is maintained within the global endpoint
* structure.
*/
typedef struct OOH323CallData {
@ -166,10 +166,10 @@ typedef struct OOH323CallData {
int transfercap;
ASN1USINT callReference;
char ourCallerId[256];
H225CallIdentifier callIdentifier;/* The call identifier for the active
H225CallIdentifier callIdentifier;/* The call identifier for the active
call. */
char *callingPartyNumber;
char *calledPartyNumber;
char *calledPartyNumber;
H225ConferenceIdentifier confIdentifier;
ASN1UINT flags;
OOCallState callState;
@ -207,8 +207,8 @@ typedef struct OOH323CallData {
DList remoteFastStartOLCs;
ASN1UINT8 remoteTermCapSeqNo;
ASN1UINT8 localTermCapSeqNo;
OOCapPrefs capPrefs;
OOLogicalChannel* logicalChans;
OOCapPrefs capPrefs;
OOLogicalChannel* logicalChans;
int noOfLogicalChannels;
int logicalChanNoBase;
int logicalChanNoMax;
@ -237,7 +237,7 @@ typedef struct OOH323CallData {
#define ooCallData OOH323CallData
/**
* This callback function is triggered when a new call structure is
* This callback function is triggered when a new call structure is
* created inside the stack for an incoming or outgoing call.
*
* @param call H.323 call data structure
@ -246,8 +246,8 @@ typedef struct OOH323CallData {
typedef int (*cb_OnNewCallCreated)(OOH323CallData* call);
/**
* This callback function is triggered when a Q.931 alerting message is
* received for an outgoing call or when a Q.931 alerting message is sent
* This callback function is triggered when a Q.931 alerting message is
* received for an outgoing call or when a Q.931 alerting message is sent
* for an incoming call.
*
* @param call H.323 call data structure
@ -256,8 +256,8 @@ typedef int (*cb_OnNewCallCreated)(OOH323CallData* call);
typedef int (*cb_OnAlerting)(OOH323CallData * call);
/**
* This callback function is triggered when there is an incoming call.
* In the case where a gatekeeper is in use, the call must first be
* This callback function is triggered when there is an incoming call.
* In the case where a gatekeeper is in use, the call must first be
* admitted by the gatekeeper before this callback is triggered.
*
* @param call H.323 call data structure
@ -266,7 +266,7 @@ typedef int (*cb_OnAlerting)(OOH323CallData * call);
typedef int (*cb_OnIncomingCall)(OOH323CallData* call );
/**
* This callback function is triggered after a Q.931 setup message
* This callback function is triggered after a Q.931 setup message
* is sent for an outgoing call.
*
* @param call H.323 call data structure
@ -275,10 +275,10 @@ typedef int (*cb_OnIncomingCall)(OOH323CallData* call );
typedef int (*cb_OnOutgoingCall)(OOH323CallData* call );
/**
* This callback function is triggered when a Q.931 connect message is
* sent in case of incoming call. In case of outgoing call, this is invoked
* when a Q.931 connect message is received. It is not invoked until after
* fast start and H.245 tunneling messages within the connect message are
* This callback function is triggered when a Q.931 connect message is
* sent in case of incoming call. In case of outgoing call, this is invoked
* when a Q.931 connect message is received. It is not invoked until after
* fast start and H.245 tunneling messages within the connect message are
* processed.
*
* @param call H.323 call data structure
@ -295,8 +295,8 @@ typedef int (*cb_OnCallEstablished)(struct OOH323CallData* call);
typedef int (*cb_OnCallCleared)(struct OOH323CallData* call);
/**
* This callback function is triggered when master-slave determination
* and capabilities negotiation procedures are successfully completed
* This callback function is triggered when master-slave determination
* and capabilities negotiation procedures are successfully completed
* for a call.
*
* @param call H.323 call data structure
@ -332,7 +332,7 @@ typedef void (*cb_OnMediaChanged)
(struct OOH323CallData *call, char* remoteIP, int remotePort);
/**
* This structure holds all of the H.323 signaling callback function
* This structure holds all of the H.323 signaling callback function
* addresses.
* @see ooH323EpSetH323Callbacks
*/
@ -428,7 +428,7 @@ EXTERN int ooCallSetCalledPartyNumber
EXTERN int ooCallClearAliases(OOH323CallData *call);
/**
* This function is used to add an H323ID alias to be used by local endpoint
* This function is used to add an H323ID alias to be used by local endpoint
* for a particular call.
* @param call Handle to the call
* @param h323id H323ID to add for the local endpoint for the call.
@ -438,7 +438,7 @@ EXTERN int ooCallClearAliases(OOH323CallData *call);
EXTERN int ooCallAddAliasH323ID(OOH323CallData *call, const char* h323id);
/**
* This function is used to add an dialedDigits alias to be used by local
* This function is used to add an dialedDigits alias to be used by local
* endpoint for a particular call.
* @param call Handle to the call
* @param dialedDigits DialedDigits to add for the local endpoint for call.
@ -449,7 +449,7 @@ EXTERN int ooCallAddAliasDialedDigits
(OOH323CallData *call, const char* dialedDigits);
/**
* This function is used to add an email-id alias to be used by local
* This function is used to add an email-id alias to be used by local
* endpoint for a particular call.
* @param call Handle to the call
* @param email Email-id to add for the local endpoint for call.
@ -460,7 +460,7 @@ EXTERN int ooCallAddAliasEmailID(OOH323CallData *call, const char* email);
/**
* This function is used to add an email-id alias to be used by local
* This function is used to add an email-id alias to be used by local
* endpoint for a particular call.
* @param call Handle to the call
* @param url URL-id to add for the local endpoint for call.
@ -471,8 +471,8 @@ EXTERN int ooCallAddAliasURLID(OOH323CallData *call, const char* url);
/**
* This is a helper function used by other call related add aliases functions
* to add a particular alias. This function is not supposed to be called
* This is a helper function used by other call related add aliases functions
* to add a particular alias. This function is not supposed to be called
* directly.
* @param call Handle to the call
* @param aliasType Type of alias being added
@ -486,7 +486,7 @@ int ooCallAddAlias
/**
* This function is used to add an dialed digits alias for the remote endpoint
* This function is used to add an dialed digits alias for the remote endpoint
* involved in a particular call.
* @param call Handle to the call
* @param dialedDigits dialedDigits alias to add for the remote endpoint.
@ -497,7 +497,7 @@ EXTERN int ooCallAddRemoteAliasDialedDigits
(OOH323CallData *call, const char* dialedDigits);
/**
* This function is used to add an H323ID alias for the remote endpoint
* This function is used to add an H323ID alias for the remote endpoint
* involved in a particular call.
* @param call Handle to the call
* @param h323id H323ID to add for the remote endpoint.
@ -508,12 +508,12 @@ EXTERN int ooCallAddRemoteAliasH323ID(OOH323CallData *call, const char* h323id);
/**
* This function is used to add G7231 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add G7231 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param silenceSuppression Indicates support for silenceSuppression.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
@ -522,9 +522,9 @@ EXTERN int ooCallAddRemoteAliasH323ID(OOH323CallData *call, const char* h323id);
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
EXTERN int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -532,12 +532,12 @@ EXTERN int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel);
/**
* This function is used to add G728 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add G728 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -545,9 +545,9 @@ EXTERN int ooCallAddG7231Capability(OOH323CallData *call, int cap, int txframes,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
EXTERN int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -555,12 +555,12 @@ EXTERN int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel);
/**
* This function is used to add G729 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add G729 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -568,9 +568,9 @@ EXTERN int ooCallAddG728Capability(OOH323CallData *call, int cap, int txframes,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
EXTERN int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -578,12 +578,12 @@ EXTERN int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
cb_StopTransmitChannel stopTransmitChannel);
/**
* This function is used to add G711 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add G711 capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -591,9 +591,9 @@ EXTERN int ooCallAddG729Capability(OOH323CallData *call, int cap, int txframes,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
EXTERN int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -602,13 +602,13 @@ EXTERN int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
/**
* This function is used to add GSM capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add GSM capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Type of GSM capability to be added.
* @param framesPerPkt Number of GSM frames pre packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param framesPerPkt Number of GSM frames pre packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param scrambled Scrambled enabled/disabled for the capability.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -616,10 +616,10 @@ EXTERN int ooCallAddG711Capability(OOH323CallData *call, int cap, int txframes,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddGSMCapability(OOH323CallData* call, int cap,
ASN1USINT framesPerPkt, OOBOOL comfortNoise,
EXTERN int ooCallAddGSMCapability(OOH323CallData* call, int cap,
ASN1USINT framesPerPkt, OOBOOL comfortNoise,
OOBOOL scrambled, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -630,23 +630,23 @@ EXTERN int ooCallAddGSMCapability(OOH323CallData* call, int cap,
/**
* This function is used to add H263 video capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* This function is used to add H263 video capability for the call. The
* "ooCallAdd...Capability" functions allow to override the global endpoint
* capabilities and use specific capabilities for specific calls.
* @param call Call for which capability has to be added.
* @param cap Capability type - OO_H263VIDEO
* @param sqcifMPI Minimum picture interval for encoding/decoding
* @param sqcifMPI Minimum picture interval for encoding/decoding
* of SQCIF pictures.
* @param qcifMPI Minimum picture interval for encoding/decoding
* @param qcifMPI Minimum picture interval for encoding/decoding
* of QCIF pictures.
* @param cifMPI Minimum picture interval for encoding/decoding
* @param cifMPI Minimum picture interval for encoding/decoding
* of CIF pictures.
* @param cif4MPI Minimum picture interval for encoding/decoding
* @param cif4MPI Minimum picture interval for encoding/decoding
* of CIF4 pictures.
* @param cif16MPI Minimum picture interval for encoding/decoding
* @param cif16MPI Minimum picture interval for encoding/decoding
* of CIF16 pictures.
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
* which a transmitter can transmit video or a
* which a transmitter can transmit video or a
* receiver can receive video.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -654,13 +654,13 @@ EXTERN int ooCallAddGSMCapability(OOH323CallData* call, int cap,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCallAddH263VideoCapability(OOH323CallData *call, int cap,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
unsigned cif16MPI, unsigned maxBitRate,
int dir,
EXTERN int ooCallAddH263VideoCapability(OOH323CallData *call, int cap,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
unsigned cif16MPI, unsigned maxBitRate,
int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -682,9 +682,9 @@ EXTERN int ooCallEnableDTMFRFC2833
/**
* This function is used to disable rfc 2833 capability for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to enable/disable dtmf for a specific call, then you can override
* This function is used to disable rfc 2833 capability for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to enable/disable dtmf for a specific call, then you can override
* end-point settings using this function
* @param call Call for which rfc2833 has to be disabled.
*
@ -694,9 +694,9 @@ EXTERN int ooCallDisableDTMFRFC2833(OOH323CallData *call);
/**
* This function is used to enable H.245(alphanumeric) dtmf support for the
* call. By default the stack uses the dtmf settings for the endpoint. But if
* you want to enable H.245(alphanumeric) dtmf for a specific call, then you
* This function is used to enable H.245(alphanumeric) dtmf support for the
* call. By default the stack uses the dtmf settings for the endpoint. But if
* you want to enable H.245(alphanumeric) dtmf for a specific call, then you
* can override end-point settings using this function
* @param call Call for which H.245(alphanumeric) dtmf support
* has to be enabled.
@ -706,9 +706,9 @@ EXTERN int ooCallDisableDTMFRFC2833(OOH323CallData *call);
EXTERN int ooCallEnableDTMFH245Alphanumeric(OOH323CallData *call);
/**
* This function is used to disable H.245(alphanumeric) dtmf support for the
* call. By default the stack uses the dtmf settings for the endpoint. But if
* you want to disable H.245(alphanumeric) dtmf for a specific call, then you
* This function is used to disable H.245(alphanumeric) dtmf support for the
* call. By default the stack uses the dtmf settings for the endpoint. But if
* you want to disable H.245(alphanumeric) dtmf for a specific call, then you
* can override end-point settings using this function
* @param call Call for which H.245(alphanumeric) dtmf support
* has to be disabled.
@ -718,8 +718,8 @@ EXTERN int ooCallEnableDTMFH245Alphanumeric(OOH323CallData *call);
EXTERN int ooCallDisableDTMFH245Alphanumeric(OOH323CallData *call);
/**
* This function is used to enable H.245(signal) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* This function is used to enable H.245(signal) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to enable H.245(signal) dtmf for a specific call, then you can override
* end-point settings using this function
* @param call Call for which H.245(signal) dtmf support
@ -731,9 +731,9 @@ EXTERN int ooCallEnableDTMFH245Signal(OOH323CallData *call);
/**
* This function is used to disable H.245(signal) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to disable H.245(signal) dtmf for a specific call, then you can
* This function is used to disable H.245(signal) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to disable H.245(signal) dtmf for a specific call, then you can
* override end-point settings using this function
* @param call Call for which H.245(signal) dtmf support
* has to be disabled.
@ -745,7 +745,7 @@ EXTERN int ooCallDisableDTMFH245Signal(OOH323CallData *call);
/**
* This function is used to enable Q.931(keypad) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to enable Q.931(keypad) dtmf support for a specific call, then you can
* override end-point settings using this function
* @param call Call for which Q.931(keypad) dtmf support
@ -757,7 +757,7 @@ EXTERN int ooCallEnableDTMFQ931Keypad(OOH323CallData *call);
/**
* This function is used to disable Q.931(keypad) dtmf support for the call.
* By default the stack uses the dtmf settings for the endpoint. But if you
* By default the stack uses the dtmf settings for the endpoint. But if you
* want to disable Q.931(keypad) dtmf support for a specific call, then you can
* override end-point settings using this function
* @param call Call for which Q.931(keypad) dtmf support
@ -787,14 +787,14 @@ EXTERN int ooEndCall(OOH323CallData *call);
/**
* This function is used to remove a call from the list of existing calls.
*
*
* @param call Pointer to the call to be removed.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooRemoveCallFromList (OOH323CallData *call);
/**
* This function is used to clean up a call. It closes all associated sockets,
* This function is used to clean up a call. It closes all associated sockets,
* removes the call from the global list and frees up associated memory.
*
* @param call Pointer to the call to be cleared.
@ -803,25 +803,25 @@ EXTERN int ooRemoveCallFromList (OOH323CallData *call);
EXTERN int ooCleanCall(OOH323CallData *call);
/**
* This function is used to check whether a specified session in specified
* This function is used to check whether a specified session in specified
* direction is active for the call.
* @param call Handle to call for which session has to be queried.
* @param sessionID Session id to identify the type of session(1 for audio,
* @param sessionID Session id to identify the type of session(1 for audio,
* 2 for voice and 3 for data)
* @param dir Direction of the session(transmit/receive)
*
* @return 1, if session active. 0, otherwise.
* @return 1, if session active. 0, otherwise.
*/
EXTERN ASN1BOOL ooIsSessionEstablished
(OOH323CallData *call, int sessionID, char* dir);
/**
* This function can be used by an application to specify media endpoint
* This function can be used by an application to specify media endpoint
* information for different types of media. The stack by default uses local IP
* and port for media. An application can provide mediainfo if it wants to
* and port for media. An application can provide mediainfo if it wants to
* override default.
* @param call Handle to the call
* @param mediaInfo Structure which defines the media endpoint to be
* @param mediaInfo Structure which defines the media endpoint to be
* used.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -829,7 +829,7 @@ EXTERN ASN1BOOL ooIsSessionEstablished
EXTERN int ooAddMediaInfo(OOH323CallData *call, OOMediaInfo mediaInfo);
/**
* This function is used to generate a media session id for the new media
* This function is used to generate a media session id for the new media
* session for the call.
* @param call Handle to the call.
* @param type Type of media session.
@ -841,7 +841,7 @@ EXTERN unsigned ooCallGenerateSessionID
(OOH323CallData *call, OOCapType type, char *dir);
/**
* This is an handler for H245 connection retry timer. When remote end is not
* This is an handler for H245 connection retry timer. When remote end is not
* yet listening for H245 connections, this timer provides a wait and retry
* mechanism to establish H245 connection.
* @param data Timer callback data.
@ -868,8 +868,8 @@ EXTERN const char* ooGetReasonCodeText (OOUINT32 code);
*/
EXTERN const char* ooGetCallStateText (OOCallState callState);
/**
* @}
/**
* @}
*/
int isRunning(char *callToken);

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooCapability.h
* This file contains Capability management functions.
* @file ooCapability.h
* This file contains Capability management functions.
*/
#ifndef OO_CAPABILITY_H_
#define OO_CAPABILITY_H_
@ -29,7 +29,7 @@
#define OOTX (1<<1)
#define OORXANDTX (1<<2)
#define OORXTX (1<<3) /* For symmetric capabilities */
/* Various types of caps. Note that not all
/* Various types of caps. Note that not all
supported */
typedef enum OOCapabilities{
OO_CAP_AUDIO_BASE = 0,
@ -89,7 +89,7 @@ typedef enum OOCapabilities{
/**
* This structure defines the preference order for capabilities.
*
*
*/
typedef struct OOCapPrefs {
int order[20];
@ -99,11 +99,11 @@ typedef struct OOCapPrefs {
typedef struct OOCapParams {
int txframes; /*!< Number of frames per packet for transmission */
int rxframes; /*!< Number of frames per packet for reception */
OOBOOL silenceSuppression;
OOBOOL silenceSuppression;
} OOCapParams;
typedef struct OOGSMCapParams {
unsigned txframes;
unsigned txframes;
unsigned rxframes;
OOBOOL scrambled;
OOBOOL comfortNoise;
@ -130,7 +130,7 @@ struct OOLogicalChannel;
extern "C" {
#endif
/**
/**
* This callback is used for starting media receive channel. This callback
* function is triggered when receive media channel has to be started.
* @param call Call for which receive media channel has to be started.
@ -143,7 +143,7 @@ typedef int (*cb_StartReceiveChannel)
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
/**
/**
* This callback is used for starting media transmit channel. This callback
* function is triggered when transmit media channel has to be started.
* @param call Call for which transmit media channel has to be started.
@ -155,7 +155,7 @@ typedef int (*cb_StartReceiveChannel)
typedef int (*cb_StartTransmitChannel)
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
/**
/**
* This callback is used for stopping media receive channel. This callback
* function is triggered when receive media channel has to be stopped.
* @param call Call for which receive media channel has to be stopped.
@ -167,7 +167,7 @@ typedef int (*cb_StartTransmitChannel)
typedef int (*cb_StopReceiveChannel)
(struct OOH323CallData *call, struct OOLogicalChannel *pChannel);
/**
/**
* This callback is used for stopping media transmit channel. This callback
* function is triggered when transmit media channel has to be stopped.
* @param call Call for which transmit media channel has to be stopped.
@ -190,7 +190,7 @@ typedef enum OOCapType {
* capability
*/
typedef struct ooH323EpCapability {
int dir;
int dir;
int cap;
OOCapType capType;
void *params;
@ -212,14 +212,14 @@ typedef struct ooH323EpCapability {
#endif /* MAKE_DLL */
#endif /* EXTERN */
/**
/**
* @defgroup capmgmt Capability Management
* @{
*/
/**
* This function is used to add rfc2833 based dtmf detection capability
* @param call Call if enabling for call, else null for
* @param call Call if enabling for call, else null for
* endpoint.
* @param dynamicRTPPayloadType dynamicRTPPayloadType to be used.
* @return OO_OK, on success. OO_FAILED, on failure.
@ -237,7 +237,7 @@ EXTERN int ooCapabilityDisableDTMFRFC2833(struct OOH323CallData *call);
/**
* This function is used to enable support for H.245 based alphanumeric dtmf
* This function is used to enable support for H.245 based alphanumeric dtmf
* capability.
* @param call Handle to call, if enabling for the call, else NULL
* for end-point.
@ -246,7 +246,7 @@ EXTERN int ooCapabilityDisableDTMFRFC2833(struct OOH323CallData *call);
EXTERN int ooCapabilityEnableDTMFH245Alphanumeric(struct OOH323CallData *call);
/**
* This function is used to disable support for H.245 based alphanumeric dtmf
* This function is used to disable support for H.245 based alphanumeric dtmf
* capability.
* @param call Handle to call, if disabling for the call, else NULL
* for end-point.
@ -256,7 +256,7 @@ EXTERN int ooCapabilityDisableDTMFH245Alphanumeric
(struct OOH323CallData *call);
/**
* This function is used to enable support for H.245 based signal dtmf
* This function is used to enable support for H.245 based signal dtmf
* capability.
* @param call Handle to call, if enabling for the call, else NULL
* for end-point.
@ -265,7 +265,7 @@ EXTERN int ooCapabilityDisableDTMFH245Alphanumeric
EXTERN int ooCapabilityEnableDTMFH245Signal(struct OOH323CallData *call);
/**
* This function is used to disable support for H.245 based signal dtmf
* This function is used to disable support for H.245 based signal dtmf
* capability.
* @param call Handle to call, if disabling for the call, else NULL
* for end-point.
@ -291,14 +291,14 @@ EXTERN int ooCapabilityDisableDTMFQ931Keypad(struct OOH323CallData *call);
/**
* This function is used to add simple capabilities which have only rxframes
* and txframes parameters to the endpoint or call.(ex. G711, G728, G723.1,
* and txframes parameters to the endpoint or call.(ex. G711, G728, G723.1,
* G729)
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* endpoint list.
* @param cap Type of G711 capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param silenceSuppression Indicates support for silence suppression.
* Used only in case of g7231, otherwise ignored.
@ -312,8 +312,8 @@ EXTERN int ooCapabilityDisableDTMFQ931Keypad(struct OOH323CallData *call);
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCapabilityAddSimpleCapability
(struct OOH323CallData *call, int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
(struct OOH323CallData *call, int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -325,13 +325,13 @@ EXTERN int ooCapabilityAddSimpleCapability
* This is an internal helper function which is used to add a GSM capability
* to local endpoints capability list or to remote endpoints capability list or
* to a call's capability list.
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* endpoint list.
* @param cap Type of GSM capability to be added.
* @param framesPerPkt Number of GSM frames per packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param framesPerPkt Number of GSM frames per packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param scrambled Scrambled enabled/disabled for the capability.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -340,38 +340,38 @@ EXTERN int ooCapabilityAddSimpleCapability
* @param stopTransmitChannel Callback function to stop transmit channel.
* @param remote TRUE, if adding call's remote capabilities.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
int ooCapabilityAddGSMCapability(struct OOH323CallData *call, int cap,
int ooCapabilityAddGSMCapability(struct OOH323CallData *call, int cap,
unsigned framesPerPkt, OOBOOL comfortNoise,
OOBOOL scrambled, int dir,
OOBOOL scrambled, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel,
cb_StopTransmitChannel stopTransmitChannel,
OOBOOL remote);
/**
* This function is used to add H263 video capability to local endpoints
* capability list or to remote endpoints capability list or to a call's
* This function is used to add H263 video capability to local endpoints
* capability list or to remote endpoints capability list or to a call's
* capability list.
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* endpoint list.
* @param sqcifMPI Minimum picture interval for encoding/decoding
* @param sqcifMPI Minimum picture interval for encoding/decoding
* of SQCIF pictures.
* @param qcifMPI Minimum picture interval for encoding/decoding
* @param qcifMPI Minimum picture interval for encoding/decoding
* of QCIF pictures.
* @param cifMPI Minimum picture interval for encoding/decoding
* @param cifMPI Minimum picture interval for encoding/decoding
* of CIF pictures.
* @param cif4MPI Minimum picture interval for encoding/decoding
* @param cif4MPI Minimum picture interval for encoding/decoding
* of CIF4 pictures.
* @param cif16MPI Minimum picture interval for encoding/decoding
* @param cif16MPI Minimum picture interval for encoding/decoding
* of CIF16 pictures.
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
* which a transmitter can transmit video or a
* which a transmitter can transmit video or a
* receiver can receive video.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -380,37 +380,37 @@ int ooCapabilityAddGSMCapability(struct OOH323CallData *call, int cap,
* @param stopTransmitChannel Callback function to stop transmit channel.
* @param remote TRUE, if adding call's remote capabilities.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCapabilityAddH263VideoCapability(struct OOH323CallData *call,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
EXTERN int ooCapabilityAddH263VideoCapability(struct OOH323CallData *call,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
unsigned cif16MPI, unsigned maxBitRate, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel,
cb_StopTransmitChannel stopTransmitChannel,
OOBOOL remote);
/**
* This function is an helper function to ooCapabilityAddH263VideoCapability.
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* @param call Handle to a call. If this is not Null, then
* capability is added to call's remote enpoint
* capability list, else it is added to local H323
* endpoint list.
* @param sqcifMPI Minimum picture interval for encoding/decoding
* @param sqcifMPI Minimum picture interval for encoding/decoding
* of SQCIF pictures.
* @param qcifMPI Minimum picture interval for encoding/decoding
* @param qcifMPI Minimum picture interval for encoding/decoding
* of QCIF pictures.
* @param cifMPI Minimum picture interval for encoding/decoding
* @param cifMPI Minimum picture interval for encoding/decoding
* of CIF pictures.
* @param cif4MPI Minimum picture interval for encoding/decoding
* @param cif4MPI Minimum picture interval for encoding/decoding
* of CIF4 pictures.
* @param cif16MPI Minimum picture interval for encoding/decoding
* @param cif16MPI Minimum picture interval for encoding/decoding
* of CIF16 pictures.
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
* which a transmitter can transmit video or a
* which a transmitter can transmit video or a
* receiver can receive video.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -419,24 +419,24 @@ EXTERN int ooCapabilityAddH263VideoCapability(struct OOH323CallData *call,
* @param stopTransmitChannel Callback function to stop transmit channel.
* @param remote TRUE, if adding call's remote capabilities.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
int ooCapabilityAddH263VideoCapability_helper(struct OOH323CallData *call,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
unsigned cif16MPI, unsigned maxBitRate, int dir,
int ooCapabilityAddH263VideoCapability_helper(struct OOH323CallData *call,
unsigned sqcifMPI, unsigned qcifMPI,
unsigned cifMPI, unsigned cif4MPI,
unsigned cif16MPI, unsigned maxBitRate, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel,
cb_StopTransmitChannel stopTransmitChannel,
OOBOOL remote);
/**
* This function is used to add a audio capability to calls remote
* This function is used to add a audio capability to calls remote
* capability list.
* @param call Handle to the call.
* @param audioCap Handle to the remote endpoint's audio capability.
* @param dir Direction in which capability is supported by
* @param dir Direction in which capability is supported by
* remote endpoint.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -458,12 +458,12 @@ int ooAddRemoteCapability(struct OOH323CallData *call, H245Capability *cap);
/**
* This function is used to update joint capabilities for call. It checks
* whether remote capability can be supported by local capabilities for the
* call and if supported makes entry into the joint capability list for the
* call and if supported makes entry into the joint capability list for the
* call.
* @param call Handle to the call
* @param cap Remote cap which will be tested for compatibility.
*
* @return returns OO_OK, if updated else OO_FAILED;
* @return returns OO_OK, if updated else OO_FAILED;
*/
EXTERN int ooCapabilityUpdateJointCapabilities
(struct OOH323CallData* call, H245Capability *cap);
@ -472,50 +472,50 @@ EXTERN int ooCapabilityUpdateJointCapabilities
/**
* This function is used to update joint video capabilities for call. It checks
* whether remote capability can be supported by local capabilities for the
* call and if supported makes entry into the joint capability list for the
* call and if supported makes entry into the joint capability list for the
* call.
* @param call Handle to the call
* @param videoCap Remote video capability which will be tested for
* @param videoCap Remote video capability which will be tested for
* compatibility.
* @param dir Direction of the capability
*
* @return returns OO_OK, if updated else OO_FAILED;
* @return returns OO_OK, if updated else OO_FAILED;
*/
EXTERN int ooCapabilityUpdateJointCapabilitiesVideo
(struct OOH323CallData *call, H245VideoCapability *videoCap, int dir);
/**
* This function is used to update joint video H263 capabilities for call. It
* checks whether remote capability can be supported by local capabilities for
* This function is used to update joint video H263 capabilities for call. It
* checks whether remote capability can be supported by local capabilities for
* the call and if supported makes entry into the joint capability list for the
* call.
* @param call Handle to the call
* @param pH263Cap Remote H263 video capability which will be tested for
* @param pH263Cap Remote H263 video capability which will be tested for
* compatibility.
* @param dir Direction of the H263 capability
*
* @return returns OO_OK, if updated else OO_FAILED;
* @return returns OO_OK, if updated else OO_FAILED;
*/
EXTERN int ooCapabilityUpdateJointCapabilitiesVideoH263
(struct OOH323CallData *call, H245H263VideoCapability *pH263Cap, int dir);
/**
* This function is used to test whether the endpoint capability in the
* This function is used to test whether the endpoint capability in the
* specified direction can be supported by the audio capability.
* @param call Handle to the call.
* @param epCap Endpoint capability.
* @param dataType Data type with which compatibility has to
* @param dataType Data type with which compatibility has to
* be tested.
* @param dir Direction indicating whether endpoint capability
* will be used for transmission or reception.
*
* @return TRUE, if compatible. FALSE, otherwise.
* @return TRUE, if compatible. FALSE, otherwise.
*/
ASN1BOOL ooCapabilityCheckCompatibility(struct OOH323CallData *call,
ooH323EpCapability *epCap,
ASN1BOOL ooCapabilityCheckCompatibility(struct OOH323CallData *call,
ooH323EpCapability *epCap,
H245DataType *dataType, int dir);
@ -523,27 +523,27 @@ ASN1BOOL ooCapabilityCheckCompatibility(struct OOH323CallData *call,
* This function is used to create a audio capability structure using the
* capability type.
* @param epCap Capability.
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* for new audio capability.
* @param dir Direction in which the newly created capability will be
* @param dir Direction in which the newly created capability will be
* used.
*
* @return Newly created audio capability on success, NULL on
* @return Newly created audio capability on success, NULL on
* failure.
*/
struct H245AudioCapability* ooCapabilityCreateAudioCapability
struct H245AudioCapability* ooCapabilityCreateAudioCapability
(ooH323EpCapability* epCap, OOCTXT *pctxt, int dir);
/**
* This function is used to create a video capability structure using the
* capability type.
* @param epCap Capability.
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* for new video capability.
* @param dir Direction in which the newly created capability will be
* @param dir Direction in which the newly created capability will be
* used.
*
* @return Newly created video capability on success, NULL on
* @return Newly created video capability on success, NULL on
* failure.
*/
struct H245VideoCapability* ooCapabilityCreateVideoCapability
@ -554,7 +554,7 @@ struct H245VideoCapability* ooCapabilityCreateVideoCapability
* This function is used to create a dtmf capability which can be added to
* a TCS message.
* @param cap Type of dtmf capability to be created.
* @param pctxt Pointer to OOCTXT structure to be used for memory
* @param pctxt Pointer to OOCTXT structure to be used for memory
* allocation.
*
* @return Pointer to the created DTMF capability, NULL in case of
@ -570,23 +570,23 @@ void * ooCapabilityCreateDTMFCapability(int cap, int dtmfcodec, OOCTXT *pctxt);
* for new audio capability.
* @param dir Direction for the newly created capability.
*
* @return Newly created audio capability on success, NULL on
* @return Newly created audio capability on success, NULL on
* failure.
*/
struct H245AudioCapability* ooCapabilityCreateGSMFullRateCapability
(ooH323EpCapability *epCap, OOCTXT* pctxt, int dir);
/**
* This function is used to create a simple(g711, g728, g723.1, g729) audio
* This function is used to create a simple(g711, g728, g723.1, g729) audio
* capability structure.
*
* @param epCap Handle to the endpoint capability
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* for new audio capability.
* @param dir Direction in which the newly created capability will be
* @param dir Direction in which the newly created capability will be
* used.
*
* @return Newly created audio capability on success, NULL on
* @return Newly created audio capability on success, NULL on
* failure.
*/
struct H245AudioCapability* ooCapabilityCreateSimpleCapability
@ -596,15 +596,15 @@ struct H245AudioCapability* ooCapabilityCreateNonStandardCapability
/**
* This function is used to create a H263 video capability
* This function is used to create a H263 video capability
* structure.
* @param epCap Handle to the endpoint capability
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* @param pctxt Handle to OOCTXT which will be used to allocate memory
* for new video capability.
* @param dir Direction in which the newly created capability will be
* @param dir Direction in which the newly created capability will be
* used.
*
* @return Newly created video capability on success, NULL on
* @return Newly created video capability on success, NULL on
* failure.
*/
struct H245VideoCapability* ooCapabilityCreateH263VideoCapability
@ -616,9 +616,9 @@ struct H245VideoCapability* ooCapabilityCreateH263VideoCapability
* can be supported by the endpoint.
* @param call Handle to the call.
* @param audioCap Handle to the audio capability.
* @param dir Direction in which support is desired.
* @param dir Direction in which support is desired.
*
* @return Handle to the copyof capability which supports audioCap,
* @return Handle to the copyof capability which supports audioCap,
* Null if none found
*/
ooH323EpCapability* ooIsAudioDataTypeSupported
@ -629,9 +629,9 @@ ooH323EpCapability* ooIsAudioDataTypeSupported
* can be supported by the endpoint.
* @param call Handle to the call.
* @param pVideoCap Handle to the video capability.
* @param dir Direction in which support is desired.
* @param dir Direction in which support is desired.
*
* @return Handle to the copy of capability which supports video
* @return Handle to the copy of capability which supports video
* capability, Null if none found
*/
ooH323EpCapability* ooIsVideoDataTypeSupported
@ -642,14 +642,14 @@ ooH323EpCapability* ooIsVideoDataTypeSupported
* can be supported by the endpoint.
* @param call Handle to the call.
* @param pH263Cap Handle to the H263 video capability.
* @param dir Direction in which support is desired.
* @param dir Direction in which support is desired.
* @param picFormat Picture type(cif, qcif etc.)
*
* @return Handle to the copy of capability which supports H263
* @return Handle to the copy of capability which supports H263
* capability, Null if none found
*/
ooH323EpCapability* ooIsVideoDataTypeH263Supported
(struct OOH323CallData *call, H245H263VideoCapability* pH263Cap, int dir,
(struct OOH323CallData *call, H245H263VideoCapability* pH263Cap, int dir,
OOPictureFormat picFormat);
/**
@ -657,9 +657,9 @@ ooH323EpCapability* ooIsVideoDataTypeH263Supported
* can be supported by the endpoint.
* @param call Handle to the call.
* @param data Handle to the capability type.
* @param dir Direction in which support is desired.
* @param dir Direction in which support is desired.
*
* @return Handle to the copy of capability which supports specified
* @return Handle to the copy of capability which supports specified
* capability type, Null if none found
*/
ooH323EpCapability* ooIsDataTypeSupported
@ -705,7 +705,7 @@ EXTERN int ooRemoveCapFromCapPrefs(struct OOH323CallData *call, int cap);
EXTERN int ooAppendCapToCapPrefs(struct OOH323CallData *call, int cap);
/**
* This function is used to change preference order of a particular capability
* This function is used to change preference order of a particular capability
* in the preference list.
* @param call Handle to call, if call's preference list has to be modified
* else NULL, to modify endpoint's preference list.
@ -786,13 +786,11 @@ int ooCapabilityAddT38Capability
/**/
/**
* @}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -109,7 +109,7 @@ int ooWriteStackCommand(OOStackCommand *cmd)
return OO_FAILED;
}
ast_mutex_unlock(&gCmdChanLock);
return OO_OK;
}
int ooWriteCallStackCommand(OOH323CallData* call, OOStackCommand *cmd)
@ -144,14 +144,14 @@ int ooWriteCallStackCommand(OOH323CallData* call, OOStackCommand *cmd)
return OO_FAILED;
}
ast_mutex_unlock(call->CmdChanLock);
return OO_OK;
}
int ooReadAndProcessStackCommand()
{
OOH323CallData *pCall = NULL;
OOH323CallData *pCall = NULL;
unsigned char buffer[MAXMSGLEN];
int i, recvLen = 0;
OOStackCommand cmd;
@ -174,10 +174,10 @@ int ooReadAndProcessStackCommand()
else {
switch(cmd.type) {
case OO_CMD_MAKECALL:
OOTRACEINFO2("Processing MakeCall command %s\n",
case OO_CMD_MAKECALL:
OOTRACEINFO2("Processing MakeCall command %s\n",
(char*)cmd.param2);
ooH323NewCall ((char*)cmd.param2);
break;
@ -210,7 +210,7 @@ int ooReadAndProcessStackCommand()
}
}
break;
case OO_CMD_ANSCALL:
pCall = ooFindCallByToken((char*)cmd.param1);
if(!pCall) {
@ -231,13 +231,13 @@ int ooReadAndProcessStackCommand()
ooH323ForwardCall((char*)cmd.param1, (char*)cmd.param2);
break;
case OO_CMD_HANGCALL:
OOTRACEINFO3("Processing Hang call command %s with q931 cause %d\n",
case OO_CMD_HANGCALL:
OOTRACEINFO3("Processing Hang call command %s with q931 cause %d\n",
(char*)cmd.param1, *(int *) cmd.param3);
ooH323HangCall((char*)cmd.param1,
ooH323HangCall((char*)cmd.param1,
*(OOCallClearReason*)cmd.param2, *(int *) cmd.param3);
break;
case OO_CMD_SENDDIGIT:
pCall = ooFindCallByToken((char*)cmd.param1);
if(!pCall) {
@ -259,7 +259,7 @@ int ooReadAndProcessStackCommand()
break;
case OO_CMD_STOPMONITOR:
case OO_CMD_STOPMONITOR:
OOTRACEINFO1("Processing StopMonitor command\n");
ooStopMonitorCalls();
break;
@ -303,7 +303,7 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
if (cmd.plen1 > 0) {
cmd.param1 = ast_malloc(cmd.plen1 + 1);
if (!cmd.param1)
if (!cmd.param1)
return OO_FAILED;
memset(cmd.param1, 0, cmd.plen1 + 1);
memcpy(cmd.param1, bPoint, cmd.plen1);
@ -312,7 +312,7 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
if (cmd.plen2 > 0) {
cmd.param2 = ast_malloc(cmd.plen2 + 1);
if (!cmd.param2)
if (!cmd.param2)
return OO_FAILED;
memset(cmd.param2, 0, cmd.plen2 + 1);
memcpy(cmd.param2, bPoint, cmd.plen2);
@ -321,7 +321,7 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
if (cmd.plen3 > 0) {
cmd.param3 = ast_malloc(cmd.plen3 + 1);
if (!cmd.param3)
if (!cmd.param3)
return OO_FAILED;
memset(cmd.param3, 0, cmd.plen3 + 1);
memcpy(cmd.param3, bPoint, cmd.plen3);
@ -333,11 +333,11 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
else {
switch(cmd.type) {
case OO_CMD_MAKECALL:
OOTRACEINFO2("Processing MakeCall command %s\n",
case OO_CMD_MAKECALL:
OOTRACEINFO2("Processing MakeCall command %s\n",
(char*)cmd.param2);
ooH323MakeCall ((char*)cmd.param1, (char*)cmd.param2,
ooH323MakeCall ((char*)cmd.param1, (char*)cmd.param2,
(ooCallOptions*)cmd.param3);
break;
@ -354,7 +354,7 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
}
}
break;
case OO_CMD_ANSCALL:
ooSendConnect(call);
break;
@ -365,13 +365,13 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
ooH323ForwardCall((char*)cmd.param1, (char*)cmd.param2);
break;
case OO_CMD_HANGCALL:
OOTRACEINFO2("Processing Hang call command %s with q931 cause %d\n",
case OO_CMD_HANGCALL:
OOTRACEINFO2("Processing Hang call command %s with q931 cause %d\n",
(char*)cmd.param1);
ooH323HangCall((char*)cmd.param1,
ooH323HangCall((char*)cmd.param1,
*(OOCallClearReason*)cmd.param2, *(int *) cmd.param3);
break;
case OO_CMD_SENDDIGIT:
if(call->jointDtmfMode & OO_CAP_DTMF_H245_alphanumeric) {
ooSendH245UserInputIndication_alphanumeric(
@ -427,4 +427,3 @@ int ooReadAndProcessCallStackCommand(OOH323CallData* call)
return OO_OK;
}

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooCmdChannel.h
* @file ooCmdChannel.h
* This file contains stack commands which an user application can use to make
* call, hang call etc.
* call, hang call etc.
*/
#ifndef OO_CMDCHANNEL_H
@ -40,13 +40,13 @@ extern "C" {
#define OO_DEFAULT_CMDLISTENER_PORT 7575
/**
* @addtogroup channels
* @addtogroup channels
* @{
*/
/**
* This function is used to setup a command connection with the main stack
* thread. The application commands are sent over this connection to stack
* This function is used to setup a command connection with the main stack
* thread. The application commands are sent over this connection to stack
* thread.
*
* @return OO_OK, on success; OO_FAILED, on failure
@ -55,7 +55,7 @@ EXTERN int ooCreateCmdConnection(void);
EXTERN int ooCreateCallCmdConnection(OOH323CallData*);
/**
* This function is used to close a command channel setup with the stack
* This function is used to close a command channel setup with the stack
* thread.
*
* @return OO_OK, on success; OO_FAILED, on failure
@ -65,7 +65,7 @@ EXTERN int ooCloseCallCmdConnection(OOH323CallData*);
/**
* This function is used by stack api to write stack commands to command
* This function is used by stack api to write stack commands to command
* channel.
*
* @return OO_OK, on success; OO_FAILED, on failure
@ -74,7 +74,7 @@ EXTERN int ooWriteStackCommand(OOStackCommand *cmd);
EXTERN int ooWriteCallStackCommand(OOH323CallData* call, OOStackCommand *cmd);
/**
* This function is used by stack thread to read and process stack commands
* This function is used by stack thread to read and process stack commands
* received over command channel.
*
* @return OO_OK, on success; OO_FAILED, on failure
@ -83,8 +83,8 @@ EXTERN int ooReadAndProcessStackCommand(void);
EXTERN int ooReadAndProcessCallStackCommand(OOH323CallData*);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooCommon.h
/**
* @file ooCommon.h
* Common runtime constant and type definitions.
*/
#ifndef _OOCOMMON_H_
@ -43,7 +43,7 @@
#endif
#include <semaphore.h>
/**
/**
* @ingroup cruntime C Runtime Common Constant and Type Definitions.
* @{
*/
@ -119,7 +119,7 @@ typedef struct _OOMsgBuf {
#endif /* _DLL */
#endif /* EXTERN */
/**
* @}
/**
* @}
*/
#endif /* _OOCOMMON_H_ */

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -69,7 +69,7 @@ static uint64 calcEpocOffset() {
// Gets high resolution by spinning up to 15ms. Don't call this often!!!
static uint64 getRawCurMsSpin() {
FILETIME tm;
FILETIME tm;
uint64 t_now;
static uint64 epocOffset = 0;
@ -121,7 +121,7 @@ int gettimeofday(struct timeval* tv, void* null) {
baselineMs = getRawCurMsSpin();
tickBaseline = timeGetTime();
}
uint64 now_ms = (baselineMs + (curTicks - tickBaseline));
*tv = oo_ms_to_tv(now_ms);
return 0;
@ -170,7 +170,6 @@ int ooGetTimeOfDay (struct timeval *tv, struct timezone *tz)
long ooGetTimeDiff(struct timeval *tv1, struct timeval *tv2)
{
return ( ((tv2->tv_sec-tv1->tv_sec)*1000) +
return ( ((tv2->tv_sec-tv1->tv_sec)*1000) +
((tv2->tv_usec-tv1->tv_usec)/1000) );
}

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooDateTime.h
/**
* @file ooDateTime.h
* Time functions that reconcile differences between Windows and UNIX.
*/
#ifndef _OOTIME_H_
@ -28,10 +28,10 @@ extern "C" {
#endif
/**
* This function provides an abstraction for the UNIX 'gettimeofday'
* This function provides an abstraction for the UNIX 'gettimeofday'
* function which is not available on Windows.
*
* @param tv Pointer to time value structure to receive
* @param tv Pointer to time value structure to receive
* current time value.
* @param tz Point to time zone information.
* @return Completion status of operation: 0 = success,

File diff suppressed because it is too large Load Diff

View File

@ -2,22 +2,22 @@
* Copyright (C) 2005 by Page Iberica, S.A.
* Copyright (C) 2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooGkClient.h
* This file contains functions to support RAS protocol.
* @file ooGkClient.h
* This file contains functions to support RAS protocol.
*
*
*/
@ -73,7 +73,7 @@ extern "C" {
#define OO_ARQ_TIMER (1<<3)
#define OO_DRQ_TIMER (1<<4)
/**
/**
* @defgroup gkclient Gatekeeper client
* @{
*/
@ -111,7 +111,7 @@ enum OOGkClientState {
GkClientFailed,
GkClientStopped
};
typedef struct RasGatekeeperInfo
{
@ -136,9 +136,9 @@ struct OOAliases;
/**
* NOTE- This functionality is not yet fully completed.
* This is a callback function which is triggered when registration confirm
* This is a callback function which is triggered when registration confirm
* message is received from the gatekeeper. The first parameter is the message
* received. The second parameter provides updated list of aliases after the
* received. The second parameter provides updated list of aliases after the
* message was processed by the stack.
* @param rcf Handle to the received registration confirm message
*/
@ -148,9 +148,9 @@ typedef int (*cb_OnReceivedRegistrationConfirm)
/**
* NOTE- This functionality is not yet fully completed.
* This is a callback function which is triggered when unregistration confirm
* This is a callback function which is triggered when unregistration confirm
* message is received. The first parameter is the message received. The second
* parameter provides updated list of aliases after the message was processed
* parameter provides updated list of aliases after the message was processed
* by the stack.
*/
typedef int (*cb_OnReceivedUnregistrationConfirm)
@ -158,7 +158,7 @@ typedef int (*cb_OnReceivedUnregistrationConfirm)
/**
* NOTE- This functionality is not yet fully completed.
* This is a callback function which is triggered when unregistration request
* This is a callback function which is triggered when unregistration request
* message is received. The first parameter is the message received. The second
* parameter provides the list of aliases requested to be unregistered.
*/
@ -220,20 +220,20 @@ struct OOH323CallData;
* @param iGkPort Gk port.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*
*
*/
EXTERN int ooGkClientInit
(enum RasGatekeeperMode eGkMode, char *szGkAddr, int iGkPort );
/**
* This function is used to print the gatekeeper client configuration
* This function is used to print the gatekeeper client configuration
* information to log.
* @param pGkClient Handle to gatekeeper client.
*/
EXTERN void ooGkClientPrintConfig(ooGkClient *pGkClient);
/**
* This function is used to destroy Gatekeeper client. It releases all the
* This function is used to destroy Gatekeeper client. It releases all the
* associated memory.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -243,17 +243,17 @@ EXTERN int ooGkClientDestroy(void);
/**
* This function is used to start the Gatekeeper client functionality.
* @param pGkClient Pointer to the Gatekeeper Client.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooGkClientStart(ooGkClient *pGkClient);
/**
* This function is invoked to set a gatekeeper mode.
* @param pGkClient Handle to gatekeeper client.
* @param eGkMode Gatekeeper mode selected. One of the following:
* - RasNoGatekeeper (DEFAULT), No Gatekeeper.
* - RasDiscoverGatekeeper, to discover a gatekeeper
* This function is invoked to set a gatekeeper mode.
* @param pGkClient Handle to gatekeeper client.
* @param eGkMode Gatekeeper mode selected. One of the following:
* - RasNoGatekeeper (DEFAULT), No Gatekeeper.
* - RasDiscoverGatekeeper, to discover a gatekeeper
* automatically.
* - RasUseSpecificGatekeeper, to use a specific gatekeeper.
* @param szGkAddr Gatekeeper address (only when using specific gatekeeper).
@ -261,8 +261,8 @@ EXTERN int ooGkClientStart(ooGkClient *pGkClient);
*
* @return Completion status - OO_OK on success, OO_FAILED on failure
*/
EXTERN int ooGkClientSetGkMode(ooGkClient *pGkClient,
enum RasGatekeeperMode eGkMode, char *szGkAddr,
EXTERN int ooGkClientSetGkMode(ooGkClient *pGkClient,
enum RasGatekeeperMode eGkMode, char *szGkAddr,
int iGkPort );
/**
@ -288,7 +288,7 @@ EXTERN int ooGkClientCloseChannel(ooGkClient *pGkClient);
* identifier.
* @param pGkClient Pointer to gatekeeper client.
* @param psVendor Pointer to vendor identifier to be filled.
*
*
*/
EXTERN void ooGkClientRasFillVendor
(ooGkClient *pGkClient, H225VendorIdentifier *psVendor);
@ -299,14 +299,14 @@ EXTERN void ooGkClientRasFillVendor
* @param pGkClient Handle to Gatekeeper client for which message has to be
* received.
*
* @return Completion status - OO_OK on success, OO_FAILED on
* @return Completion status - OO_OK on success, OO_FAILED on
* failure
*/
EXTERN int ooGkClientReceive(ooGkClient *pGkClient);
/**
* This function is used to handle a received RAS message by a gatekeeper
* This function is used to handle a received RAS message by a gatekeeper
* client.
* @param pGkClient Handle to gatekeeper client.
* @param pRasMsg Handle to received Ras message.
@ -322,14 +322,14 @@ EXTERN int ooGkClientHandleRASMessage
* @param pGkClient Handle to the gatekeeper client.
* @param pRasMsg Handle to Ras message to be sent.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
* @return OO_OK, on success. OO_FAILED, otherwise.
*/
EXTERN int ooGkClientSendMsg(ooGkClient *pGkClient, H225RasMessage *pRasMsg);
/**
* This function is used to send Gatekeeper request message.
* @param pGkClient Handle to gatekeeper client for which GRQ message has to
* @param pGkClient Handle to gatekeeper client for which GRQ message has to
* be sent.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -360,9 +360,9 @@ EXTERN int ooGkClientHandleGatekeeperConfirm
/**
* This function is used to send Registration request message.
* @param pGkClient Handle to gatekeeper client for which RRQ message has to
* @param pGkClient Handle to gatekeeper client for which RRQ message has to
* be sent.
* @param keepAlive Indicates whether keepalive lightweight registration has
* @param keepAlive Indicates whether keepalive lightweight registration has
* to be sent.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -392,9 +392,9 @@ EXTERN int ooGkClientHandleRegistrationReject
/**
* This function is used to send UnRegistration request message.
* @param pGkClient Handle to gatekeeper client for which URQ message has to
* @param pGkClient Handle to gatekeeper client for which URQ message has to
* be sent.
* @param aliases List of aliases to be unregistered. NULL, if all the
* @param aliases List of aliases to be unregistered. NULL, if all the
* aliases have to be unregistered.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -413,21 +413,21 @@ EXTERN int ooGkClientHandleUnregistrationRequest
/**
* This function is used to send an unregistration confirm message to
* This function is used to send an unregistration confirm message to
* gatekeeper.
* @param pGkClient Handle to gatekeeper client.
* @param reqNo Request Sequence number for the confirm message.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooGkClientSendUnregistrationConfirm(ooGkClient *pGkClient,
EXTERN int ooGkClientSendUnregistrationConfirm(ooGkClient *pGkClient,
unsigned reqNo);
/**
* This function is invoked to request bandwith admission for a call.
* This function is invoked to request bandwith admission for a call.
* @param pGkClient Gatekeeper client to be used
* @param call Handle to the call.
* @param retransmit Indicates whether new call or retransmitting for
* @param retransmit Indicates whether new call or retransmitting for
* existing call.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -447,8 +447,8 @@ EXTERN int ooGkClientHandleAdmissionConfirm
/**
* This function is used to handle a received Admission Reject message. It
* finds the associated call and marks it for cleaning with appropriate
* This function is used to handle a received Admission Reject message. It
* finds the associated call and marks it for cleaning with appropriate
* call end reason code.
* @param pGkClient Handle to Gatekeeper client.
* @param pAdmissionReject Handle to received admission reject message.
@ -459,7 +459,7 @@ EXTERN int ooGkClientHandleAdmissionReject
(ooGkClient *pGkClient, H225AdmissionReject *pAdmissionReject);
/**
* This function is invoked to request call disengage to gatekeeper.
* This function is invoked to request call disengage to gatekeeper.
* @param pGkClient Gatekeeper client to be used.
* @param call Call Handle
*
@ -520,7 +520,7 @@ EXTERN int ooGkClientARQTimerExpired(void* pdata);
EXTERN int ooGkClientCleanCall(ooGkClient *pGkClient, struct OOH323CallData *call);
/**
* This function is used to handle gatekeeper client failure or gatekeeper
* This function is used to handle gatekeeper client failure or gatekeeper
* failure which can be detected by unresponsiveness of gk.
* @param pGkClient Handle to gatekeeper client.
*
@ -538,7 +538,7 @@ EXTERN int ooGkClientHandleClientOrGkFailure(ooGkClient *pGkClient);
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooGkClientUpdateRegisteredAliases
(ooGkClient *pGkClient, H225_SeqOfH225AliasAddress *pAddresses,
(ooGkClient *pGkClient, H225_SeqOfH225AliasAddress *pAddresses,
OOBOOL registered);
/**
@ -551,8 +551,8 @@ EXTERN int ooGkClientUpdateRegisteredAliases
*/
int ooGkClientSetCallbacks
(ooGkClient *pGkClient, OOGKCLIENTCALLBACKS callbacks);
/**
* @}
/**
* @}
*/
int ooGkClientReInit(ooGkClient *pGkClient);

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -23,8 +23,8 @@
/** Global endpoint structure */
extern OOH323EndPoint gH323ep;
OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
int sessionID, char *dir,
OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
int sessionID, char *dir,
ooH323EpCapability *epCap)
{
OOLogicalChannel *pNewChannel=NULL, *pChannel=NULL;
@ -32,7 +32,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
OOTRACEDBGC5("Adding new media channel for cap %d dir %s (%s, %s)\n",
epCap->cap, dir, call->callType, call->callToken);
/* Create a new logical channel entry */
pNewChannel = (OOLogicalChannel*)memAlloc(call->pctxt,
pNewChannel = (OOLogicalChannel*)memAlloc(call->pctxt,
sizeof(OOLogicalChannel));
if(!pNewChannel)
{
@ -40,7 +40,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
"(%s, %s)\n", call->callType, call->callToken);
return NULL;
}
memset(pNewChannel, 0, sizeof(OOLogicalChannel));
pNewChannel->channelNo = channelNo;
pNewChannel->sessionID = sessionID;
@ -51,12 +51,12 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
pNewChannel->chanCap = epCap;
OOTRACEDBGC4("Adding new channel with cap %d (%s, %s)\n", epCap->cap,
call->callType, call->callToken);
/* As per standards, media control port should be same for all
call->callType, call->callToken);
/* As per standards, media control port should be same for all
proposed channels with same session ID. However, most applications
use same media port for transmit and receive of audio streams. Infact,
testing of OpenH323 based asterisk assumed that same ports are used.
Hence we first search for existing media ports for same session and use
testing of OpenH323 based asterisk assumed that same ports are used.
Hence we first search for existing media ports for same session and use
them. This should take care of all cases.
*/
if(call->mediaInfo)
@ -72,7 +72,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
pMediaInfo = pMediaInfo->next;
}
}
if(pMediaInfo)
{
OOTRACEDBGC3("Using configured media info (%s, %s)\n", call->callType,
@ -80,7 +80,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
pNewChannel->localRtpPort = pMediaInfo->lMediaRedirPort ? pMediaInfo->lMediaRedirPort : pMediaInfo->lMediaPort;
/* check MediaRedirPort here because RedirCPort is ReditPort + 1 and can't be 0 ;) */
pNewChannel->localRtcpPort = pMediaInfo->lMediaRedirPort ? pMediaInfo->lMediaRedirCPort : pMediaInfo->lMediaCntrlPort;
/* If user application has not specified a specific ip and is using
/* If user application has not specified a specific ip and is using
multihomed mode, substitute appropriate ip.
*/
if(!strcmp(pMediaInfo->lMediaIP, "0.0.0.0") || !strcmp(pMediaInfo->lMediaIP, "::"))
@ -102,7 +102,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
pNewChannel->localRtcpPort = ooGetNextPort (OORTP);
strcpy(pNewChannel->localIP, call->localIP);
}
/* Add new channel to the list */
pNewChannel->next = NULL;
if(!call->logicalChans) {
@ -113,7 +113,7 @@ OOLogicalChannel* ooAddNewLogicalChannel(OOH323CallData *call, int channelNo,
while(pChannel->next) pChannel = pChannel->next;
pChannel->next = pNewChannel;
}
/* increment logical channels */
call->noOfLogicalChannels++;
OOTRACEINFO3("Created new logical channel entry (%s, %s)\n", call->callType,
@ -144,22 +144,22 @@ OOLogicalChannel* ooFindLogicalChannelByLogicalChannelNo(OOH323CallData *call,
return pLogicalChannel;
}
OOLogicalChannel * ooFindLogicalChannelByOLC(OOH323CallData *call,
OOLogicalChannel * ooFindLogicalChannelByOLC(OOH323CallData *call,
H245OpenLogicalChannel *olc)
{
H245DataType * psDataType=NULL;
H245H2250LogicalChannelParameters * pslcp=NULL;
OOTRACEDBGC4("ooFindLogicalChannel by olc %d (%s, %s)\n",
OOTRACEDBGC4("ooFindLogicalChannel by olc %d (%s, %s)\n",
olc->forwardLogicalChannelNumber, call->callType, call->callToken);
if(olc->m.reverseLogicalChannelParametersPresent)
{
OOTRACEDBGC3("Finding receive channel (%s,%s)\n", call->callType,
OOTRACEDBGC3("Finding receive channel (%s,%s)\n", call->callType,
call->callToken);
psDataType = &olc->reverseLogicalChannelParameters.dataType;
/* Only H2250LogicalChannelParameters are supported */
if(olc->reverseLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters){
OOTRACEERR4("Error:Invalid olc %d received (%s, %s)\n",
OOTRACEERR4("Error:Invalid olc %d received (%s, %s)\n",
olc->forwardLogicalChannelNumber, call->callType, call->callToken);
return NULL;
}
@ -168,14 +168,14 @@ OOLogicalChannel * ooFindLogicalChannelByOLC(OOH323CallData *call,
return ooFindLogicalChannel(call, pslcp->sessionID, "receive", psDataType);
}
else{
OOTRACEDBGC3("Finding transmit channel (%s, %s)\n", call->callType,
OOTRACEDBGC3("Finding transmit channel (%s, %s)\n", call->callType,
call->callToken);
psDataType = &olc->forwardLogicalChannelParameters.dataType;
/* Only H2250LogicalChannelParameters are supported */
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
if(olc->forwardLogicalChannelParameters.multiplexParameters.t !=
T_H245OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters_h2250LogicalChannelParameters)
{
OOTRACEERR4("Error:Invalid olc %d received (%s, %s)\n",
OOTRACEERR4("Error:Invalid olc %d received (%s, %s)\n",
olc->forwardLogicalChannelNumber, call->callType, call->callToken);
return NULL;
}
@ -184,7 +184,7 @@ OOLogicalChannel * ooFindLogicalChannelByOLC(OOH323CallData *call,
}
}
OOLogicalChannel * ooFindLogicalChannel(OOH323CallData *call, int sessionID,
OOLogicalChannel * ooFindLogicalChannel(OOH323CallData *call, int sessionID,
char *dir, H245DataType * dataType)
{
OOLogicalChannel * pChannel = NULL;
@ -246,7 +246,7 @@ OOLogicalChannel* ooGetTransmitLogicalChannel
while(pChannel)
{
OOTRACEINFO6("Listing logical channel %d cap %d state %d for (%s, %s)\n",
pChannel->channelNo, pChannel->chanCap->cap, pChannel->state,
pChannel->channelNo, pChannel->chanCap->cap, pChannel->state,
call->callType, call->callToken);
if(!strcmp(pChannel->dir, "transmit") && pChannel->state != OO_LOGICALCHAN_IDLE &&
pChannel->state != OO_LOGICALCHAN_PROPOSEDFS)
@ -283,13 +283,13 @@ int ooClearAllLogicalChannels(OOH323CallData *call)
OOTRACEINFO3("Clearing all logical channels (%s, %s)\n", call->callType,
call->callToken);
temp = call->logicalChans;
while(temp)
{
prev = temp;
temp = temp->next;
ooClearLogicalChannel(call, prev->channelNo);/* TODO: efficiency - This causes re-search
ooClearLogicalChannel(call, prev->channelNo);/* TODO: efficiency - This causes re-search
of logical channel in the list. Can be
easily improved.*/
}
@ -321,7 +321,7 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
if(epCap->stopReceiveChannel)
{
epCap->stopReceiveChannel(call, pLogicalChannel);
OOTRACEINFO4("Stopped Receive channel %d (%s, %s)\n",
OOTRACEINFO4("Stopped Receive channel %d (%s, %s)\n",
channelNo, call->callType, call->callToken);
}
else{
@ -336,12 +336,12 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
if(epCap->stopTransmitChannel)
{
epCap->stopTransmitChannel(call, pLogicalChannel);
OOTRACEINFO4("Stopped Transmit channel %d (%s, %s)\n",
OOTRACEINFO4("Stopped Transmit channel %d (%s, %s)\n",
channelNo, call->callType, call->callToken);
}
else{
OOTRACEERR4("ERROR:No callback registered for stopTransmitChannel"
" %d (%s, %s)\n", channelNo, call->callType,
" %d (%s, %s)\n", channelNo, call->callType,
call->callToken);
}
}
@ -355,11 +355,11 @@ int ooClearLogicalChannel(OOH323CallData *call, int channelNo)
int ooRemoveLogicalChannel(OOH323CallData *call, int ChannelNo)
{
OOLogicalChannel * temp = NULL, *prev=NULL;
OOLogicalChannel * temp = NULL, *prev=NULL;
if(!call->logicalChans)
{
OOTRACEERR4("ERROR:Remove Logical Channel - Channel %d not found "
"Empty channel List(%s, %s)\n", ChannelNo, call->callType,
"Empty channel List(%s, %s)\n", ChannelNo, call->callType,
call->callToken);
return OO_FAILED;
}
@ -381,23 +381,23 @@ int ooRemoveLogicalChannel(OOH323CallData *call, int ChannelNo)
prev = temp;
temp = temp->next;
}
OOTRACEERR4("ERROR:Remove Logical Channel - Channel %d not found "
"(%s, %s)\n", ChannelNo, call->callType, call->callToken);
return OO_FAILED;
}
/*
Change the state of the channel as established and close all other
channels with same session IDs. This is useful for handling fastStart,
/*
Change the state of the channel as established and close all other
channels with same session IDs. This is useful for handling fastStart,
as the endpoint can open multiple logical channels for same sessionID.
Once the remote endpoint confirms it's selection, all other channels for
Once the remote endpoint confirms it's selection, all other channels for
the same sessionID must be closed.
*/
int ooOnLogicalChannelEstablished
(OOH323CallData *call, OOLogicalChannel * pChannel)
{
OOLogicalChannel * temp = NULL, *prev=NULL;
OOLogicalChannel * temp = NULL, *prev=NULL;
OOTRACEDBGC3("In ooOnLogicalChannelEstablished (%s, %s)\n",
call->callType, call->callToken);
pChannel->state = OO_LOGICALCHAN_ESTABLISHED;
@ -417,4 +417,3 @@ int ooOnLogicalChannelEstablished
}
return OO_OK;
}

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooLogChan.h
* @file ooLogChan.h
* This file contains structures and functions for maintaining information
* on logical channels within the stack.
*/
@ -34,13 +34,13 @@ extern "C" {
struct ooH323EpCapability;
struct OOH323CallData;
/**
/**
* Logical channel states.
*/
typedef enum {
OO_LOGICAL_CHAN_UNKNOWN,
OO_LOGICALCHAN_IDLE,
OO_LOGICALCHAN_PROPOSED,
OO_LOGICAL_CHAN_UNKNOWN,
OO_LOGICALCHAN_IDLE,
OO_LOGICALCHAN_PROPOSED,
OO_LOGICALCHAN_ESTABLISHED,
OO_LOGICALCHAN_PROPOSEDFS,
OO_LOGICALCHAN_CLOSEPENDING
@ -60,7 +60,7 @@ typedef struct OOLogicalChannel {
int localRtpPort;
int localRtcpPort;
char localIP[2+8*4+7];
OOLogicalChannelState state;
OOLogicalChannelState state;
struct ooH323EpCapability *chanCap;
struct OOLogicalChannel *next;
} OOLogicalChannel;
@ -70,7 +70,7 @@ typedef struct OOLogicalChannel {
/**
* This function is used to add a new logical channel entry into the list
* of currently active logical channels.
* @param call Pointer to the call for which new logical channel
* @param call Pointer to the call for which new logical channel
* entry has to be created.
* @param channelNo Channel number for the new channel entry.
* @param sessionID Session identifier for the new channel.
@ -80,26 +80,26 @@ typedef struct OOLogicalChannel {
* @return Pointer to logical channel, on success. NULL, on failure
*/
EXTERN ooLogicalChannel* ooAddNewLogicalChannel
(struct OOH323CallData *call, int channelNo, int sessionID,
(struct OOH323CallData *call, int channelNo, int sessionID,
char *dir, ooH323EpCapability *epCap);
/**
* This function is used to find a logical channel using the logical
* This function is used to find a logical channel using the logical
* channel number as a key.
* @param call Pointer to the call for which logical channel is
* @param call Pointer to the call for which logical channel is
* required.
* @param channelNo Forward Logical Channel number for the logical channel
*
* @return Pointer to the logical channel if found, NULL
* otherwise.
* @return Pointer to the logical channel if found, NULL
* otherwise.
*/
EXTERN ooLogicalChannel* ooFindLogicalChannelByLogicalChannelNo
(struct OOH323CallData *call, int channelNo);
/**
* This function is called when a new logical channel is established. It is
* particularly useful in case of faststart. When the remote endpoint selects
* one of the proposed alternatives, other channels for the same session type
* This function is called when a new logical channel is established. It is
* particularly useful in case of faststart. When the remote endpoint selects
* one of the proposed alternatives, other channels for the same session type
* need to be closed. This function is used for that.
*
* @param call Handle to the call which owns the logical channel.
@ -110,24 +110,24 @@ EXTERN int ooOnLogicalChannelEstablished
(struct OOH323CallData *call, OOLogicalChannel * pChannel);
/**
* This function is used to retrieve a logical channel with a particular
* sessionID. Note that there can be two entries of logical channel, one in
* each direction. This function will return the first channel which has the
* This function is used to retrieve a logical channel with a particular
* sessionID. Note that there can be two entries of logical channel, one in
* each direction. This function will return the first channel which has the
* same session ID.
* @param call Handle to the call which owns the channels to be searched.
* @param sessionID Session id of the session which is to be searched for.
* @param dir Direction of the channel.(transmit/receive)
*
* @return Returns a pointer to the logical channel if found, NULL
* @return Returns a pointer to the logical channel if found, NULL
* otherwise.
*/
EXTERN ooLogicalChannel* ooGetLogicalChannel
(struct OOH323CallData *call, int sessionID, char *dir);
/**
* This function is used to remove a logical channel from the list of
* This function is used to remove a logical channel from the list of
* channels within the call structure.
* @param call Pointer to the call from which logical channel has
* @param call Pointer to the call from which logical channel has
* to be removed.
* @param ChannelNo Forward logical channel number of the channel to be
* removed.
@ -137,7 +137,7 @@ EXTERN int ooRemoveLogicalChannel (struct OOH323CallData *call, int ChannelNo);
/**
* This function is used to cleanup a logical channel. It first stops media if
* it is still active and then removes the channel from the list, freeing up
* it is still active and then removes the channel from the list, freeing up
* all the associated memory.
* @param call Handle to the call which owns the logical channel.
* @param channelNo Channel number identifying the channel.
@ -147,7 +147,7 @@ EXTERN int ooRemoveLogicalChannel (struct OOH323CallData *call, int ChannelNo);
EXTERN int ooClearLogicalChannel (struct OOH323CallData *call, int channelNo);
/**
* This function is used to cleanup all the logical channels associated with
* This function is used to cleanup all the logical channels associated with
* the call.
* @param call Handle to the call which owns the channels.
*
@ -184,8 +184,8 @@ EXTERN OOLogicalChannel * ooFindLogicalChannel
EXTERN OOLogicalChannel* ooGetTransmitLogicalChannel(struct OOH323CallData *call);
EXTERN OOLogicalChannel* ooGetReceiveLogicalChannel(struct OOH323CallData *call);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -79,10 +79,10 @@ int ooSocketsInit ()
WSADATA wsaData;
int err;
if (inited) return ASN_OK;
if (inited) return ASN_OK;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup (wVersionRequested, &wsaData);
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
@ -100,58 +100,58 @@ int ooSocketsInit ()
// ws32 = LoadLibrary ("WSOCK32.DLL");
ws32 = LoadLibrary ("WS2_32.DLL");
if (ws32 == NULL) return ASN_E_NOTINIT;
wsaStartup = (LPFN_WSASTARTUP) GetProcAddress (ws32, "WSAStartup");
if (wsaStartup == NULL) return ASN_E_NOTINIT;
send = (LPFN_SEND) GetProcAddress (ws32, "send");
if (send == NULL) return ASN_E_NOTINIT;
socket = (LPFN_SOCKET) GetProcAddress (ws32, "socket");
if (socket == NULL) return ASN_E_NOTINIT;
setsockopt = (LPFN_SETSOCKOPT) GetProcAddress (ws32, "setsockopt");
if (setsockopt == NULL) return ASN_E_NOTINIT;
bind = (LPFN_BIND) GetProcAddress (ws32, "bind");
if (bind == NULL) return ASN_E_NOTINIT;
htonl = (LPFN_HTONL) GetProcAddress (ws32, "htonl");
if (htonl == NULL) return ASN_E_NOTINIT;
htons = (LPFN_HTONS) GetProcAddress (ws32, "htons");
if (htons == NULL) return ASN_E_NOTINIT;
connect = (LPFN_CONNECT) GetProcAddress (ws32, "connect");
if (connect == NULL) return ASN_E_NOTINIT;
listen = (LPFN_LISTEN) GetProcAddress (ws32, "listen");
if (listen == NULL) return ASN_E_NOTINIT;
accept = (LPFN_ACCEPT) GetProcAddress (ws32, "accept");
if (accept == NULL) return ASN_E_NOTINIT;
inet_addr = (LPFN_INET_ADDR) GetProcAddress (ws32, "inet_addr");
if (inet_addr == NULL) return ASN_E_NOTINIT;
ntohl = (LPFN_NTOHL) GetProcAddress (ws32, "ntohl");
if (ntohl == NULL) return ASN_E_NOTINIT;
ntohs = (LPFN_NTOHS) GetProcAddress (ws32, "ntohs");
if (ntohs == NULL) return ASN_E_NOTINIT;
recv = (LPFN_RECV) GetProcAddress (ws32, "recv");
if (recv == NULL) return ASN_E_NOTINIT;
shutdown = (LPFN_SHUTDOWN) GetProcAddress (ws32, "shutdown");
if (shutdown == NULL) return ASN_E_NOTINIT;
closesocket = (LPFN_CLOSESOCKET) GetProcAddress (ws32, "closesocket");
if (closesocket == NULL) return ASN_E_NOTINIT;
getsockname = (LPFN_GETSOCKNAME) GetProcAddress (ws32, "getsockname");
if (getsockname == NULL) return ASN_E_NOTINIT;
ioctlsocket = (LPFN_IOCTLSOCKET) GetProcAddress(ws32, "ioctlsocket");
if(ioctlsocket == NULL) return ASN_E_NOTINIT;
@ -172,15 +172,15 @@ int ooSocketsInit ()
gethostbyname = (LPFN_GETHOSTBYNAME) GetProcAddress (ws32, "gethostbyname");
if (gethostbyname == NULL) return ASN_E_NOTINIT;
WSAGetLastError = (LPFN_WSAGETLASTERROR) GetProcAddress (ws32,
WSAGetLastError = (LPFN_WSAGETLASTERROR) GetProcAddress (ws32,
"WSAGetLastError");
if (WSAGetLastError == NULL) return ASN_E_NOTINIT;
WSACleanup = (LPFN_WSACLEANUP) GetProcAddress (ws32, "WSACleanup");
if (WSACleanup == NULL) return ASN_E_NOTINIT;
if (wsaStartup (MAKEWORD(1, 1), &wsaData) == -1) return ASN_E_NOTINIT;
#endif
return ASN_OK;
@ -193,7 +193,7 @@ typedef int OOSOCKLEN;
typedef socklen_t OOSOCKLEN;
#endif
int ooSocketCreate (OOSOCKET* psocket, int family)
int ooSocketCreate (OOSOCKET* psocket, int family)
{
int on;
OOSOCKET sock;
@ -212,14 +212,14 @@ int ooSocketCreate (OOSOCKET* psocket, int family)
SOCK_STREAM,
0);
}
if (sock == OOSOCKET_INVALID){
OOTRACEERR1("Error:Failed to create TCP socket\n");
return ASN_E_INVSOCKET;
}
on = 1;
if (setsockopt (sock, SOL_SOCKET, SO_REUSEADDR,
if (setsockopt (sock, SOL_SOCKET, SO_REUSEADDR,
(const char* ) &on, sizeof (on)) == -1)
{
OOTRACEERR1("Error:Failed to set socket option SO_REUSEADDR\n");
@ -227,7 +227,7 @@ int ooSocketCreate (OOSOCKET* psocket, int family)
}
linger.l_onoff = 1;
linger.l_linger = 0;
if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
(const char* ) &linger, sizeof (linger)) == -1)
{
OOTRACEERR1("Error:Failed to set socket option linger\n");
@ -244,7 +244,7 @@ int ooSocketCreate (OOSOCKET* psocket, int family)
return ASN_OK;
}
int ooSocketCreateUDP (OOSOCKET* psocket, int family)
int ooSocketCreateUDP (OOSOCKET* psocket, int family)
{
int on;
OOSOCKET sock;
@ -264,7 +264,7 @@ int ooSocketCreateUDP (OOSOCKET* psocket, int family)
}
on = 1;
if (setsockopt (sock, SOL_SOCKET, SO_REUSEADDR,
if (setsockopt (sock, SOL_SOCKET, SO_REUSEADDR,
(const char* ) &on, sizeof (on)) == -1)
{
OOTRACEERR1("Error:Failed to set socket option SO_REUSEADDR\n");
@ -274,7 +274,7 @@ int ooSocketCreateUDP (OOSOCKET* psocket, int family)
/*
linger.l_onoff = 1;
linger.l_linger = 0;
if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
if (setsockopt (sock, SOL_SOCKET, SO_LINGER,
(const char* ) &linger, sizeof (linger)) == -1)
return ASN_E_INVSOCKET;
*/
@ -290,7 +290,7 @@ int ooSocketClose (OOSOCKET socket)
return ASN_OK;
}
int ooSocketBind (OOSOCKET socket, OOIPADDR addr, int port)
int ooSocketBind (OOSOCKET socket, OOIPADDR addr, int port)
{
struct ast_sockaddr m_addr;
@ -298,7 +298,7 @@ int ooSocketBind (OOSOCKET socket, OOIPADDR addr, int port)
if (socket == OOSOCKET_INVALID)
{
{
OOTRACEERR1("Error:Invalid socket passed to bind\n");
return ASN_E_INVSOCKET;
}
@ -343,7 +343,7 @@ int ooSocketGetIpAndPort(OOSOCKET socket, char *ip, int len, int *port, int *fam
host = ast_sockaddr_stringify_addr(&addr);
if(host && strlen(host) < (unsigned)len)
strcpy(ip, host);
strcpy(ip, host);
else{
OOTRACEERR1("Error:Insufficient buffer for ip address - "
"ooSocketGetIpAndPort\n");
@ -361,7 +361,7 @@ int ooSocketGetIpAndPort(OOSOCKET socket, char *ip, int len, int *port, int *fam
return ASN_OK;
}
int ooSocketListen (OOSOCKET socket, int maxConnection)
int ooSocketListen (OOSOCKET socket, int maxConnection)
{
if (socket == OOSOCKET_INVALID) return ASN_E_INVSOCKET;
@ -371,8 +371,8 @@ int ooSocketListen (OOSOCKET socket, int maxConnection)
return ASN_OK;
}
int ooSocketAccept (OOSOCKET socket, OOSOCKET *pNewSocket,
char* destAddr, int* destPort)
int ooSocketAccept (OOSOCKET socket, OOSOCKET *pNewSocket,
char* destAddr, int* destPort)
{
struct ast_sockaddr addr;
char* host = NULL;
@ -393,15 +393,15 @@ int ooSocketAccept (OOSOCKET socket, OOSOCKET *pNewSocket,
return ASN_OK;
}
int ooSocketConnect (OOSOCKET socket, const char* host, int port)
int ooSocketConnect (OOSOCKET socket, const char* host, int port)
{
struct ast_sockaddr m_addr;
if (socket == OOSOCKET_INVALID)
{
{
return ASN_E_INVSOCKET;
}
memset (&m_addr, 0, sizeof (m_addr));
ast_parse_arg(host, PARSE_ADDR, &m_addr);
ast_sockaddr_set_port(&m_addr, port);
@ -414,13 +414,13 @@ int ooSocketConnect (OOSOCKET socket, const char* host, int port)
}
/*
// **Need to add check whether complete data was sent by checking the return
// **value of send and if complete data is not sent then add mechanism to
// **value of send and if complete data is not sent then add mechanism to
// **send remaining bytes. This will make ooSocketSend call atomic.
*/
int ooSocketSend (OOSOCKET socket, const ASN1OCTET* pdata, ASN1UINT size)
{
if (socket == OOSOCKET_INVALID) return ASN_E_INVSOCKET;
if (send (socket, (const char*) pdata, size, SEND_FLAGS) == -1)
return ASN_E_INVSOCKET;
return ASN_OK;
@ -431,14 +431,14 @@ int ooSocketSendTo(OOSOCKET socket, const ASN1OCTET* pdata, ASN1UINT size,
{
struct sockaddr_in m_addr;
if (socket == OOSOCKET_INVALID) return ASN_E_INVSOCKET;
memset (&m_addr, 0, sizeof (m_addr));
m_addr.sin_family = AF_INET;
m_addr.sin_port = htons ((unsigned short)port);
m_addr.sin_addr.s_addr = inet_addr (host);
if (sendto (socket, (const char*) pdata, size, SEND_FLAGS,
(const struct sockaddr*)&m_addr,
if (sendto (socket, (const char*) pdata, size, SEND_FLAGS,
(const struct sockaddr*)&m_addr,
sizeof(m_addr)) == -1)
return ASN_E_INVSOCKET;
return ASN_OK;
@ -476,8 +476,8 @@ int ooSocketRecvFrom (OOSOCKET socket, ASN1OCTET* pbuf, ASN1UINT bufsize,
addrlen = sizeof(m_addr);
memset (&m_addr, 0, sizeof (m_addr));
if ((len = recvfrom (socket, (char*) pbuf, bufsize, 0,
if ((len = recvfrom (socket, (char*) pbuf, bufsize, 0,
(struct sockaddr*)&m_addr, (socklen_t *) &addrlen)) == -1)
return ASN_E_INVSOCKET;
@ -494,12 +494,12 @@ int ooSocketRecvFrom (OOSOCKET socket, ASN1OCTET* pbuf, ASN1UINT bufsize,
return len;
}
int ooSocketSelect(int nfds, fd_set *readfds, fd_set *writefds,
int ooSocketSelect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval * timeout)
{
int ret;
int ret;
#if defined (_WIN32)
ret = select(nfds, readfds, writefds, exceptfds,
ret = select(nfds, readfds, writefds, exceptfds,
(const struct timeval *) timeout);
#else
ret = select(nfds, readfds, writefds, exceptfds, timeout);
@ -515,7 +515,7 @@ int ooSocketPoll(struct pollfd *pfds, int nfds, int timeout)
int ooPDRead(struct pollfd *pfds, int nfds, int fd)
{
int i;
for (i=0;i<nfds;i++)
for (i=0;i<nfds;i++)
if (pfds[i].fd == fd && (pfds[i].revents & POLLIN))
return 1;
return 0;
@ -546,8 +546,8 @@ int ooGetLocalIPAddress(char * pIPAddrs)
if (hp->h_addrtype == AF_INET6) {
struct in6_addr i;
memcpy(&i, hp->h_addr, sizeof(i));
strcpy(pIPAddrs, (inet_ntop(AF_INET6, &i,
hostname, sizeof(hostname))) == NULL ? "::1" :
strcpy(pIPAddrs, (inet_ntop(AF_INET6, &i,
hostname, sizeof(hostname))) == NULL ? "::1" :
inet_ntop(AF_INET6, &i, hostname, sizeof(hostname)));
} else {
struct in_addr i;
@ -564,7 +564,7 @@ int ooGetLocalIPAddress(char * pIPAddrs)
return ASN_OK;
}
/* int ooSocketStrToAddr (const char* pIPAddrStr, OOIPADDR* pIPAddr)
/* int ooSocketStrToAddr (const char* pIPAddrStr, OOIPADDR* pIPAddr)
{
int b1, b2, b3, b4;
int rv = sscanf (pIPAddrStr, "%d.%d.%d.%d", &b1, &b2, &b3, &b4);
@ -572,7 +572,7 @@ int ooGetLocalIPAddress(char * pIPAddrs)
(b1 < 0 || b1 > 256) || (b2 < 0 || b2 > 256) ||
(b3 < 0 || b3 > 256) || (b4 < 0 || b4 > 256))
return ASN_E_INVPARAM;
*pIPAddr = ((b1 & 0xFF) << 24) | ((b2 & 0xFF) << 16) |
*pIPAddr = ((b1 & 0xFF) << 24) | ((b2 & 0xFF) << 16) |
((b3 & 0xFF) << 8) | (b4 & 0xFF);
return ASN_OK;
}
@ -594,9 +594,9 @@ int ooSocketConvertIpToNwAddr(char *inetIp, unsigned char *netIp)
OOTRACEERR1("Error:Failed to convert address\n");
return -1;
}
#endif
memcpy(netIp, (char*)&sin.sin_addr.s_addr, sizeof(unsigned long));
return ASN_OK;
}
@ -606,7 +606,7 @@ int ooSocketAddrToStr (OOIPADDR ipAddr, char* pbuf, int bufsize)
char buf1[5], buf2[5], buf3[5], buf4[5];
int cnt = 0;
if (bufsize < 8)
if (bufsize < 8)
return ASN_E_BUFOVFLW;
cnt += sprintf (buf1, "%lu", (ipAddr >> 24) & 0xFF);
@ -654,7 +654,7 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
if(ooSocketCreateUDP(&sock, 4)!= ASN_OK)
{
OOTRACEERR1("Error:Failed to create udp socket - "
"ooSocketGetInterfaceList\n");
"ooSocketGetInterfaceList\n");
return -1;
}
#ifdef SIOCGIFNUM
@ -666,7 +666,7 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
#else
ifNum = 50;
#endif
ifc.ifc_len = ifNum * sizeof(struct ifreq);
ifc.ifc_req = (struct ifreq *)memAlloc(pctxt, ifNum *sizeof(struct ifreq));
if(!ifc.ifc_req)
@ -686,7 +686,7 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
#ifdef ifr_netmask
char mask[50];
#endif
pIf = (struct OOInterface*)memAlloc(pctxt, sizeof(struct OOInterface));
pName = (char*)memAlloc(pctxt, strlen(ifName->ifr_name)+1);
if(!pIf)
@ -696,15 +696,15 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
return -1;
}
OOTRACEDBGA2("\tInterface name: %s\n", ifName->ifr_name);
strcpy(ifReq.ifr_name, ifName->ifr_name);
strcpy(pName, ifName->ifr_name);
pIf->name = pName;
/* Check whether the interface is up*/
if (ioctl(sock, SIOCGIFFLAGS, &ifReq) < 0) {
OOTRACEERR2("Error:Unable to determine status of interface %s\n",
OOTRACEERR2("Error:Unable to determine status of interface %s\n",
pName);
memFreePtr(pctxt, pIf->name);
memFreePtr(pctxt, pIf);
@ -719,9 +719,9 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
}
/* Retrieve interface address */
if (ioctl(sock, SIOCGIFADDR, &ifReq) < 0)
if (ioctl(sock, SIOCGIFADDR, &ifReq) < 0)
{
OOTRACEWARN2("Warn:Unable to determine address of interface %s\n",
OOTRACEWARN2("Warn:Unable to determine address of interface %s\n",
pName);
memFreePtr(pctxt, pIf->name);
memFreePtr(pctxt, pIf);
@ -740,11 +740,11 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
return -1;
}
strcpy(pIf->addr, addr);
#ifdef ifr_netmask
if (ioctl(sock, SIOCGIFNETMASK, &ifReq) < 0)
if (ioctl(sock, SIOCGIFNETMASK, &ifReq) < 0)
{
OOTRACEWARN2("Warn:Unable to determine mask for interface %s\n",
OOTRACEWARN2("Warn:Unable to determine mask for interface %s\n",
pName);
memFreePtr(pctxt, pIf->name);
memFreePtr(pctxt, pIf->addr);
@ -793,7 +793,7 @@ int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList)
*/
}
}
}
return ASN_OK;
}
#endif

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooSocket.h
/**
* @file ooSocket.h
* Common runtime constants, data structure definitions, and run-time functions
* to support the sockets' operations.
*/
@ -60,7 +60,7 @@ extern "C" {
#endif /* MAKE_DLL */
#endif /* EXTERN */
/**
/**
* @defgroup sockets Socket Layer
* @{
*/
@ -75,7 +75,7 @@ typedef int OOSOCKET; /**< Socket's handle */
#define OOSOCKET_INVALID ((OOSOCKET)-1)
/**
/**
* The IP address represented as unsigned long value. The most significant 8
* bits in this unsigned long value represent the first number of the IP
* address. The least significant 8 bits represent the last number of the IP
@ -115,7 +115,7 @@ typedef struct OOInterface{
* @return Completion status of operation: 0 (ASN_OK) = success,
* negative return value is error.
*/
EXTERN int ooSocketAccept (OOSOCKET socket, OOSOCKET *pNewSocket,
EXTERN int ooSocketAccept (OOSOCKET socket, OOSOCKET *pNewSocket,
char* destAddr, int* destPort);
/**
@ -185,7 +185,7 @@ EXTERN int ooSocketConnect (OOSOCKET socket, const char* host, int port);
EXTERN int ooSocketCreate (OOSOCKET* psocket, int family);
/**
* This function creates a UDP datagram socket.
* This function creates a UDP datagram socket.
*
* @param psocket The pointer to the socket's handle variable to receive
* the handle of new socket.
@ -204,7 +204,7 @@ EXTERN int ooSocketCreateUDP (OOSOCKET* psocket, int family);
EXTERN int ooSocketsInit (void);
/**
* This function terminates use of sockets by an application. This function
* This function terminates use of sockets by an application. This function
* must be called after done with sockets.
*
* @return Completion status of operation: 0 (ASN_OK) = success,
@ -256,17 +256,17 @@ EXTERN int ooSocketRecvPeek
* @return If no error occurs, returns the number of bytes
* received. Otherwise, the negative value is error code.
*/
EXTERN int ooSocketRecv (OOSOCKET socket, ASN1OCTET* pbuf,
EXTERN int ooSocketRecv (OOSOCKET socket, ASN1OCTET* pbuf,
ASN1UINT bufsize);
/**
* This function receives data from a connected/unconnected socket. It is used
* to read incoming data on sockets. It populates the remotehost and
* remoteport parameters with information of remote host. See description of
* to read incoming data on sockets. It populates the remotehost and
* remoteport parameters with information of remote host. See description of
* 'recvfrom' socket function for further details.
*
* @param socket The socket's handle created by call to ooSocketCreate
*
*
* @param pbuf Pointer to the buffer for the incoming data.
* @param bufsize Length of the buffer.
* @param remotehost Pointer to a buffer in which remote ip address
@ -279,7 +279,7 @@ EXTERN int ooSocketRecv (OOSOCKET socket, ASN1OCTET* pbuf,
* received. Otherwise, negative value.
*/
EXTERN int ooSocketRecvFrom (OOSOCKET socket, ASN1OCTET* pbuf,
ASN1UINT bufsize, char * remotehost,
ASN1UINT bufsize, char * remotehost,
ASN1UINT hostBufLen, int * remoteport);
/**
* This function sends data on a connected socket. It is used to write outgoing
@ -293,47 +293,47 @@ EXTERN int ooSocketRecvFrom (OOSOCKET socket, ASN1OCTET* pbuf,
* @return Completion status of operation: 0 (ASN_OK) = success,
* negative return value is error.
*/
EXTERN int ooSocketSend (OOSOCKET socket, const ASN1OCTET* pdata,
EXTERN int ooSocketSend (OOSOCKET socket, const ASN1OCTET* pdata,
ASN1UINT size);
/**
* This function sends data on a connected or unconnected socket. See
* This function sends data on a connected or unconnected socket. See
* description of 'sendto' socket function for further details.
*
* @param socket The socket's handle created by call to ::rtSocketCreate
* or ::rtSocketAccept function.
* @param pdata Buffer containing the data to be transmitted.
* @param size Length of the data in pdata.
* @param remotehost Remote host ip address to which data has to
* @param remotehost Remote host ip address to which data has to
* be sent.
* @param remoteport Remote port ip address to which data has to
* @param remoteport Remote port ip address to which data has to
* be sent.
*
* @return Completion status of operation: 0 (ASN_OK) = success,
* negative return value is error.
*/
EXTERN int ooSocketSendTo(OOSOCKET socket, const ASN1OCTET* pdata,
EXTERN int ooSocketSendTo(OOSOCKET socket, const ASN1OCTET* pdata,
ASN1UINT size, const char* remotehost,
int remoteport);
/**
* This function is used for synchronous monitoring of multiple sockets.
* For more information refer to documnetation of "select" system call.
* For more information refer to documnetation of "select" system call.
*
* @param nfds The highest numbered descriptor to be monitored
* @param nfds The highest numbered descriptor to be monitored
* plus one.
* @param readfds The descriptors listed in readfds will be watched for
* @param readfds The descriptors listed in readfds will be watched for
* whether read would block on them.
* @param writefds The descriptors listed in writefds will be watched for
* whether write would block on them.
* @param exceptfds The descriptors listed in exceptfds will be watched for
* exceptions.
* @param timeout Upper bound on amout of time elapsed before select
* returns.
* @param timeout Upper bound on amout of time elapsed before select
* returns.
* @return Completion status of operation: 0 (ASN_OK) = success,
* negative return value is error.
*/
EXTERN int ooSocketSelect(int nfds, fd_set *readfds, fd_set *writefds,
EXTERN int ooSocketSelect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval * timeout) attribute_deprecated;
EXTERN int ooSocketPoll(struct pollfd *pfds, int nfds, int timeout);
@ -379,7 +379,7 @@ EXTERN int ooPDWrite(struct pollfd *pfds, int nfds, int fd);
EXTERN int ooGetLocalIPAddress(char * pIPAddrs);
EXTERN int ooSocketGetSockName(OOSOCKET socket, struct sockaddr_in *name,
EXTERN int ooSocketGetSockName(OOSOCKET socket, struct sockaddr_in *name,
socklen_t *size);
@ -389,7 +389,7 @@ EXTERN short ooSocketHTONS(short val);
/**
* This function is used to retrieve the ip and port number used by the socket
* passed as parameter. It internally uses getsockname system call for this
* passed as parameter. It internally uses getsockname system call for this
* purpose.
* @param socket Socket for which ip and port has to be determined.
* @param ip Buffer in which ip address will be returned.
@ -403,12 +403,11 @@ EXTERN int ooSocketGetIpAndPort(OOSOCKET socket, char *ip, int len, int *port, i
EXTERN int ooSocketGetInterfaceList(OOCTXT *pctxt, OOInterface **ifList);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* _OOSOCKET_H_ */

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -57,14 +57,14 @@ int isRunning(char *callToken) {
return 0;
}
OOStkCmdStat ooMakeCall
OOStkCmdStat ooMakeCall
(const char* dest, char* callToken, size_t bufsiz, ooCallOptions *opts)
{
OOStackCommand cmd;
if(!callToken)
return OO_STKCMD_INVALIDPARAM;
/* Generate call token*/
if (ooGenerateOutgoingCallToken (callToken, bufsiz) != OO_OK){
@ -86,14 +86,14 @@ OOStkCmdStat ooMakeCall
}
strcpy((char*)cmd.param1, dest);
cmd.param2 = ast_malloc(strlen(callToken)+1);
if(!cmd.param2)
{
ast_free(cmd.param1);
return OO_STKCMD_MEMERR;
}
strcpy((char*)cmd.param2, callToken);
if(!opts)
@ -122,7 +122,7 @@ OOStkCmdStat ooMakeCall
return OO_STKCMD_SUCCESS;
}
OOStkCmdStat ooRunCall
OOStkCmdStat ooRunCall
(const char* dest, char* callToken, size_t bufsiz, ooCallOptions *opts)
{
OOStackCommand cmd;
@ -145,7 +145,7 @@ OOStkCmdStat ooRunCall
if(!callToken)
return OO_STKCMD_INVALIDPARAM;
memset(&cmd, 0, sizeof(OOStackCommand));
cmd.type = OO_CMD_MAKECALL;
@ -157,14 +157,14 @@ OOStkCmdStat ooRunCall
strcpy((char*)cmd.param1, dest);
cmd.plen1 = strlen(dest);
cmd.param2 = ast_malloc(strlen(callToken)+1);
if(!cmd.param2)
{
ast_free(cmd.param1);
return OO_STKCMD_MEMERR;
}
strcpy((char*)cmd.param2, callToken);
cmd.plen2 = strlen(callToken);
@ -230,7 +230,7 @@ OOStkCmdStat ooManualRingback(const char *callToken)
}
strcpy((char*)cmd.param1, callToken);
cmd.plen1 = strlen(callToken);
if(ooWriteCallStackCommand(call,&cmd) != OO_OK)
{
ast_free(cmd.param1);
@ -274,7 +274,7 @@ OOStkCmdStat ooManualProgress(const char *callToken)
}
strcpy((char*)cmd.param1, callToken);
cmd.plen1 = strlen(callToken);
if(ooWriteCallStackCommand(call, &cmd) != OO_OK)
{
ast_free(cmd.param1);
@ -315,7 +315,7 @@ OOStkCmdStat ooAnswerCall(const char *callToken)
return OO_STKCMD_MEMERR;
}
strcpy((char*)cmd.param1, callToken);
cmd.plen1 = strlen(callToken);
cmd.plen1 = strlen(callToken);
if(ooWriteCallStackCommand(call, &cmd) != OO_OK)
{
@ -426,7 +426,7 @@ OOStkCmdStat ooHangCall(const char* callToken, OOCallClearReason reason, int q93
ast_free(cmd.param1);
ast_free(cmd.param2);
ast_free(cmd.param3);
return OO_STKCMD_SUCCESS;
}
@ -443,7 +443,7 @@ OOStkCmdStat ooStopMonitor()
memset(&cmd, 0, sizeof(OOStackCommand));
cmd.type = OO_CMD_STOPMONITOR;
if(ooWriteStackCommand(&cmd) != OO_OK)
return OO_STKCMD_WRITEERR;
@ -485,7 +485,7 @@ OOStkCmdStat ooSendDTMFDigit(const char *callToken, const char* dtmf)
cmd.plen1 = strlen(callToken);
strcpy((char*)cmd.param2, dtmf);
cmd.plen2 = strlen(dtmf);
if(ooWriteCallStackCommand(call,&cmd) != OO_OK)
{
ast_free(cmd.param1);
@ -533,7 +533,7 @@ OOStkCmdStat ooSetANI(const char *callToken, const char* ani)
cmd.plen1 = strlen(callToken);
strcpy((char*)cmd.param2, ani);
cmd.plen2 = strlen(ani);
if(ooWriteCallStackCommand(call,&cmd) != OO_OK)
{
ast_free(cmd.param1);
@ -643,7 +643,7 @@ OOStkCmdStat ooRequestChangeMode(const char *callToken, int isT38Mode)
cmd.plen1 = strlen(callToken);
*((int *) cmd.param2) = isT38Mode;
cmd.plen2 = sizeof(int);
if(ooWriteCallStackCommand(call,&cmd) != OO_OK)
{
ast_free(cmd.param1);
@ -672,11 +672,10 @@ const char* ooGetStkCmdStatusCodeTxt(OOStkCmdStat stat)
case OO_STKCMD_WRITEERR:
return "Stack command - write error";
case OO_STKCMD_CONNECTIONERR:
case OO_STKCMD_CONNECTIONERR:
return "Stack command - Failed to create command channel";
default:
return "Invalid status code";
}
}

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooStackCmds.h
* @file ooStackCmds.h
* This file contains stack commands which an user application can use to make
* call, hang call etc.
* call, hang call etc.
*/
#ifndef OO_STACKCMDS_H
@ -38,7 +38,7 @@ extern "C" {
/**
/**
* @defgroup stackcmds Stack Control Commands
* @{
*/
@ -70,11 +70,11 @@ typedef enum OOStackCmdID {
OO_CMD_REQMODE, /*!< Request new mode */
OO_CMD_SETANI, /*! <Set conncted info */
OO_CMD_UPDLC /*! <Update Logical channels */
} OOStackCmdID;
/**
* This structure is used to queue a stack command for processing in
* This structure is used to queue a stack command for processing in
* the event handler loop.
*/
typedef struct OOStackCommand {
@ -99,7 +99,7 @@ typedef struct OOStackCommand {
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooMakeCall
EXTERN OOStkCmdStat ooMakeCall
(const char* dest, char *callToken, size_t bufsiz, ooCallOptions *opts);
@ -108,7 +108,7 @@ EXTERN OOStkCmdStat ooMakeCall
* This function is used to send a manual ringback message (alerting message)
* for a call. Effective only when manual-ringback is enabled.
* @param callToken Unique token for the call.
*
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooManualRingback(const char *callToken);
@ -117,7 +117,7 @@ EXTERN OOStkCmdStat ooManualProgress(const char *callToken);
/**
* This function is used to answer a call
* @param callToken Unique token for the call
*
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooAnswerCall(const char *callToken);
@ -142,7 +142,7 @@ EXTERN OOStkCmdStat ooForwardCall(const char* callToken, char *dest);
EXTERN OOStkCmdStat ooHangCall(const char* callToken, OOCallClearReason reason, int q931cause);
/**
* This command function can be used by an user application to send a DTMF
* This command function can be used by an user application to send a DTMF
* sequence using H.245 UserInputIndication message.
* @param callToken Unique token for the call
* @param alpha Alphanumeric string reperesenting dtmf sequence
@ -168,8 +168,8 @@ EXTERN OOStkCmdStat ooStopMonitor(void);
* @return Text description corresponding to the code.
*/
EXTERN const char* ooGetStkCmdStatusCodeTxt(OOStkCmdStat stat);
/**
* @}
/**
* @}
*/
EXTERN OOStkCmdStat ooRequestChangeMode(const char *callToken, int isT38Mode);

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -29,13 +29,13 @@
#endif
/**
* This is a timer list used by test application chansetup only.
* This is a timer list used by test application chansetup only.
*/
DList g_TimerList;
OOTimer* ooTimerCreate
(OOCTXT* pctxt, DList *pList, OOTimerCbFunc cb, OOUINT32 deltaSecs, void *data,
OOTimer* ooTimerCreate
(OOCTXT* pctxt, DList *pList, OOTimerCbFunc cb, OOUINT32 deltaSecs, void *data,
OOBOOL reRegister)
{
OOTimer* pTimer = (OOTimer*) memAlloc (pctxt, sizeof(OOTimer));
@ -108,7 +108,7 @@ void ooTimerFireExpired (OOCTXT* pctxt, DList *pList)
if (ooTimerExpired (pTimer)) {
/*
* Re-register before calling callback function in case it is
* a long duration callback.
* a long duration callback.
*/
if (pTimer->reRegister) ooTimerReset (pctxt, pList, pTimer);
@ -150,8 +150,8 @@ struct timeval* ooTimerNextTimeout (DList *pList, struct timeval* ptimeout)
ooGetTimeOfDay (&tvstr, 0);
ptimeout->tv_sec =
OOMAX ((int) 0, (int) (ptimer->expireTime.tv_sec - tvstr.tv_sec));
ptimeout->tv_sec =
OOMAX ((int) 0, (int) (ptimer->expireTime.tv_sec - tvstr.tv_sec));
ptimeout->tv_usec = ptimer->expireTime.tv_usec - tvstr.tv_usec;
@ -166,7 +166,7 @@ struct timeval* ooTimerNextTimeout (DList *pList, struct timeval* ptimeout)
return (ptimeout);
}
/*
/*
* Reregister a timer entry. This function is responsible for moving
* the current pointer in the timer list to the next element to be
* processed..

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the LICENSE.txt file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooTimer.h
/**
* @file ooTimer.h
* Timer structures and functions.
*/
#ifndef _OOTIMER_H_
@ -41,7 +41,7 @@ extern "C" {
#endif
/**
* This function computes the relative expiration time from the current
* This function computes the relative expiration time from the current
* time for the given timer object.
*
* @param pTimer Pointer to timer object.
@ -59,7 +59,7 @@ EXTERN void ooTimerComputeExpireTime (OOTimer* pTimer);
* @param reRegister Should timer be re-registered after it expires?
* @return Pointer to created timer object.
*/
EXTERN OOTimer* ooTimerCreate
EXTERN OOTimer* ooTimerCreate
(OOCTXT* pctxt, DList *pList, OOTimerCbFunc cb, OOUINT32 deltaSecs, void *data,
OOBOOL reRegister);
@ -80,13 +80,13 @@ EXTERN void ooTimerDelete (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);
EXTERN OOBOOL ooTimerExpired (OOTimer* pTimer);
/**
* This function loops through the global timer list and fires all
* This function loops through the global timer list and fires all
* expired timers by calling the registered callback functions.
*/
EXTERN void ooTimerFireExpired (OOCTXT* pctxt, DList* pList);
/**
* This function inserts the given timer object into the correct
* This function inserts the given timer object into the correct
* chronological position in the global timer list.
* @param pctxt Pointer to OOCTXT structure used for memory allocation.
* @param pList List in which timer has to be inserted.
@ -96,7 +96,7 @@ EXTERN void ooTimerFireExpired (OOCTXT* pctxt, DList* pList);
EXTERN int ooTimerInsertEntry (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);
/**
* This function calculates the relative time from the current time
* This function calculates the relative time from the current time
* that the first timer in global timer list will expire.
* @param pList Handle to timer list
* @param ptimeout timeval structure to receive timeout value.
@ -105,7 +105,7 @@ EXTERN int ooTimerInsertEntry (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);
EXTERN struct timeval* ooTimerNextTimeout (DList* pList, struct timeval* ptimeout);
/**
* This function resets the given timer object if its reregister flag
* This function resets the given timer object if its reregister flag
* is set. Otherwise, it is deleted.
* @param pctxt Pointer to OOCTXT structre used for memory allocation.
* @param pList Pointer to timer list.

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -30,7 +30,7 @@ OOBOOL ooUtilsIsStrEmpty (const char* str)
}
OOBOOL ooIsDailedDigit(const char* str)
OOBOOL ooIsDailedDigit(const char* str)
{
if(str == NULL || *str =='\0') { return FALSE; }
while(*str != '\0')

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooUtils.h
* This file contains general utility functions.
* @file ooUtils.h
* This file contains general utility functions.
*/
#ifndef _OOUTILS_H_
#define _OOUTILS_H_
@ -29,11 +29,11 @@
* @param tabsiz Number of items in the table
* @return Text for item or '?' if idx outside bounds of table
*/
EXTERN const char* ooUtilsGetText
EXTERN const char* ooUtilsGetText
(OOUINT32 idx, const char** table, size_t tabsiz);
/**
* Test if given string value is empty. String is considered to empty
* Test if given string value is empty. String is considered to empty
* if value is NULL or there are no characters in string (strlen == 0).
*
* @param str String to test
@ -43,7 +43,7 @@ EXTERN OOBOOL ooUtilsIsStrEmpty (const char * str);
/**
* Test if given string value is digit string.
* Test if given string value is digit string.
*
* @param str String to test
* @return TRUE if string contains all digits; FALSE otherwise

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooasn1.h
/**
* @file ooasn1.h
* Common ASN.1 runtime constants, data structure definitions, and run-time
* functions to support ASN.1 PER encoding/decoding as defined in the
* functions to support ASN.1 PER encoding/decoding as defined in the
* ITU-T standards.
*/
#ifndef _OOASN1_H_
@ -31,8 +31,8 @@
#include <stddef.h>
#include "dlist.h"
#include "ootrace.h"
/**
* @defgroup cruntime C Runtime Common Functions
/**
* @defgroup cruntime C Runtime Common Functions
* @{
*/
@ -237,7 +237,7 @@ defined(_WIN32)
#elif defined(__IBMC__) || defined(__GNUC__) || defined(__SUNPRO_C) || \
defined(__SUNPRO_CC) || defined(__CC_ARM) || \
defined(__HPUX_CC__) || defined(__HP_aCC)
defined(__HPUX_CC__) || defined(__HP_aCC)
#define ASN1INT64 long long
#else /* !MSC_VER && !__IBMC__ etc */
@ -423,7 +423,7 @@ typedef struct OOCTXT { /* context block */
#endif
/**
* @defgroup mem Memory Allocation Macros and Functions
* @defgroup mem Memory Allocation Macros and Functions
* @ingroup cruntime
*
* Memory allocation functions and macros handle memory management for the
@ -570,7 +570,7 @@ decodeConstrainedStringEx (pctxt, pvalue, permCharSet, 8, 7, 7)
/* Context management functions */
/**
* @defgroup cmfun Context Management Functions
* @defgroup cmfun Context Management Functions
* @{
*
* Context initialization functions handle the allocation, initialization, and
@ -601,7 +601,7 @@ decodeConstrainedStringEx (pctxt, pvalue, permCharSet, 8, 7, 7)
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int initContextBuffer
EXTERN int initContextBuffer
(OOCTXT* pctxt, const ASN1OCTET* bufaddr, ASN1UINT bufsiz);
/**
@ -643,17 +643,17 @@ EXTERN int initSubContext (OOCTXT* pctxt, OOCTXT* psrc);
EXTERN void setCtxtFlag (OOCTXT* pctxt, ASN1USINT mask);
EXTERN void clearCtxtFlag (OOCTXT* pctxt, ASN1USINT mask);
EXTERN int setPERBuffer
EXTERN int setPERBuffer
(OOCTXT* pctxt, ASN1OCTET* bufaddr, ASN1UINT bufsiz, ASN1BOOL aligned);
EXTERN int setPERBufferUsingCtxt (OOCTXT* pTarget, OOCTXT* pSource);
#define ZEROCONTEXT(pctxt) memset(pctxt,0,sizeof(OOCTXT))
/**
/**
* @} cmfun
*/
/**
* @defgroup errfp Error Formatting and Print Functions
* @defgroup errfp Error Formatting and Print Functions
* @{
*
* Error formatting and print functions allow information about the
@ -691,7 +691,7 @@ EXTERN int errAddIntParm (ASN1ErrInfo* pErrInfo, int errParm);
* @param errprm_p The typed error parameter.
* @return The status of the operation.
*/
EXTERN int errAddStrParm (ASN1ErrInfo* pErrInfo,
EXTERN int errAddStrParm (ASN1ErrInfo* pErrInfo,
const char* errprm_p);
/**
@ -711,7 +711,7 @@ EXTERN int errAddStrParm (ASN1ErrInfo* pErrInfo,
EXTERN int errAddUIntParm (ASN1ErrInfo* pErrInfo, unsigned int errParm);
EXTERN int errCopyData (ASN1ErrInfo* pSrcErrInfo,
EXTERN int errCopyData (ASN1ErrInfo* pSrcErrInfo,
ASN1ErrInfo* pDestErrInfo);
/**
@ -764,7 +764,7 @@ EXTERN void errPrint (ASN1ErrInfo* pErrInfo);
*/
EXTERN int errReset (ASN1ErrInfo* pErrInfo);
/**
/**
* This function sets error information in an error information structure. The
* information set includes status code, module name, and line number. Location
* information (i.e. module name and line number) is pushed onto a stack within
@ -787,7 +787,7 @@ EXTERN int errReset (ASN1ErrInfo* pErrInfo);
* information and return the status value in one line of
* code.
*/
EXTERN int errSetData (ASN1ErrInfo* pErrInfo, int status,
EXTERN int errSetData (ASN1ErrInfo* pErrInfo, int status,
const char* module, int lno);
#ifndef _COMPACT
@ -802,8 +802,8 @@ errSetData(&(ctxt)->errInfo,stat,__FILE__,__LINE__)
#define LOG_ASN1ERR_AND_FREE(pctxt,stat,lctxt) \
freeContext ((lctxt)), LOG_ASN1ERR(pctxt, stat)
/**
* @}
/**
* @}
*/
#define RT_MH_DONTKEEPFREE 0x1
@ -819,12 +819,12 @@ freeContext ((lctxt)), LOG_ASN1ERR(pctxt, stat)
* @{
*/
/**
* Allocate memory. This macro allocates the given number of bytes. It is
* Allocate memory. This macro allocates the given number of bytes. It is
* similar to the C \c malloc run-time function.
*
*
* @param pctxt - Pointer to a context block
* @param nbytes - Number of bytes of memory to allocate
* @return - Void pointer to allocated memory or NULL if insufficient memory
* @return - Void pointer to allocated memory or NULL if insufficient memory
* was available to fulfill the request.
*/
#define memAlloc(pctxt,nbytes) \
@ -833,41 +833,41 @@ memHeapAlloc(&(pctxt)->pTypeMemHeap,nbytes)
/**
* Allocate and zero memory. This macro allocates the given number of bytes
* and then initializes the memory block to zero.
*
*
* @param pctxt - Pointer to a context block
* @param nbytes - Number of bytes of memory to allocate
* @return - Void pointer to allocated memory or NULL if insufficient memory
* @return - Void pointer to allocated memory or NULL if insufficient memory
* was available to fulfill the request.
*/
#define memAllocZ(pctxt,nbytes) \
memHeapAllocZ(&(pctxt)->pTypeMemHeap,nbytes)
/**
* Reallocate memory. This macro reallocates a memory block (either
* expands or contracts) to the given number of bytes. It is
* Reallocate memory. This macro reallocates a memory block (either
* expands or contracts) to the given number of bytes. It is
* similar to the C \c realloc run-time function.
*
*
* @param pctxt - Pointer to a context block
* @param mem_p - Pointer to memory block to reallocate. This must have been
* @param mem_p - Pointer to memory block to reallocate. This must have been
* allocated using the memHeapAlloc macro or the memHeapAlloc function.
* @param nbytes - Number of bytes of memory to which the block is to be
* @param nbytes - Number of bytes of memory to which the block is to be
* resized.
* @return - Void pointer to allocated memory or NULL if insufficient memory
* was available to fulfill the request. This may be the same as the pmem
* @return - Void pointer to allocated memory or NULL if insufficient memory
* was available to fulfill the request. This may be the same as the pmem
* pointer that was passed in if the block did not need to be relocated.
*/
#define memRealloc(pctxt,mem_p,nbytes) \
memHeapRealloc(&(pctxt)->pTypeMemHeap, (void*)mem_p, nbytes)
/**
* Free memory pointer. This macro frees memory at the given pointer.
* The memory must have been allocated using the memHeapAlloc (or similar)
* macros or the mem memory allocation macros. This macro is
* Free memory pointer. This macro frees memory at the given pointer.
* The memory must have been allocated using the memHeapAlloc (or similar)
* macros or the mem memory allocation macros. This macro is
* similar to the C \c free function.
*
*
* @param pctxt - Pointer to a context block
* @param mem_p - Pointer to memory block to free. This must have
* been allocated using the memHeapAlloc or memAlloc macro or the
* @param mem_p - Pointer to memory block to free. This must have
* been allocated using the memHeapAlloc or memAlloc macro or the
* memHeapAlloc function.
*/
#define memFreePtr(pctxt,mem_p) \
@ -875,34 +875,34 @@ if (memHeapCheckPtr (&(pctxt)->pTypeMemHeap, (void*)mem_p)) \
memHeapFreePtr(&(pctxt)->pTypeMemHeap, (void*)mem_p)
/**
* Free memory associated with a context. This macro frees all memory
* held within a context. This is all memory allocated using the
* memHeapAlloc (and similar macros) and the mem memory allocation
* Free memory associated with a context. This macro frees all memory
* held within a context. This is all memory allocated using the
* memHeapAlloc (and similar macros) and the mem memory allocation
* functions using the given context variable.
*
*
* @param pctxt - Pointer to a context block
*/
#define memFree(pctxt) \
memHeapFreeAll(&(pctxt)->pTypeMemHeap)
/**
* Reset memory associated with a context. This macro resets all memory
* held within a context. This is all memory allocated using the memHeapAlloc
* (and similar macros) and the mem memory allocation functions using the
* Reset memory associated with a context. This macro resets all memory
* held within a context. This is all memory allocated using the memHeapAlloc
* (and similar macros) and the mem memory allocation functions using the
* given context variable.
*
* <p>The difference between this and the ASN1MEMFREE macro is that the
* memory blocks held within the context are not actually freed. Internal
* pointers are reset so the existing blocks can be reused. This can
* provide a performace improvement for repetitive tasks such as decoding
* <p>The difference between this and the ASN1MEMFREE macro is that the
* memory blocks held within the context are not actually freed. Internal
* pointers are reset so the existing blocks can be reused. This can
* provide a performace improvement for repetitive tasks such as decoding
* messages in a loop.
*
*
* @param pctxt - Pointer to a context block
*/
#define memReset(pctxt) \
memHeapReset(&(pctxt)->pTypeMemHeap)
/* Alias for __cdecl modifier; if __cdecl keyword is not supported,
/* Alias for __cdecl modifier; if __cdecl keyword is not supported,
* redefine it as empty macro. */
#if !defined(OSCDECL)
@ -931,10 +931,10 @@ EXTERN void* memHeapRealloc (void** ppvMemHeap, void* mem_p, int nbytes_);
EXTERN void memHeapRelease (void** ppvMemHeap);
EXTERN void memHeapReset (void** ppvMemHeap);
EXTERN void* memHeapMarkSaved
EXTERN void* memHeapMarkSaved
(void** ppvMemHeap, const void* mem_p, ASN1BOOL saved);
EXTERN void memHeapSetProperty
EXTERN void memHeapSetProperty
(void** ppvMemHeap, ASN1UINT propId, void* pProp);
@ -1049,7 +1049,7 @@ csetvar.charSetAlignedBits = abits;
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeBits
EXTERN int decodeBits
(OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT nbits);
/**
@ -1072,7 +1072,7 @@ EXTERN int decodeBits
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeBitString
EXTERN int decodeBitString
(OOCTXT* pctxt, ASN1UINT* numbits_p, ASN1OCTET* buffer,
ASN1UINT bufsiz);
@ -1100,7 +1100,7 @@ EXTERN int decodeBitString
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeBMPString
EXTERN int decodeBMPString
(OOCTXT* pctxt, ASN1BMPString* pvalue, Asn116BitCharSet* permCharSet);
/**
@ -1128,7 +1128,7 @@ EXTERN int decodeByteAlign (OOCTXT* pctxt);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConsInteger
EXTERN int decodeConsInteger
(OOCTXT* pctxt, ASN1INT* pvalue, ASN1INT lower, ASN1INT upper);
/**
@ -1144,7 +1144,7 @@ EXTERN int decodeConsInteger
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConsUnsigned
EXTERN int decodeConsUnsigned
(OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower, ASN1UINT upper);
/**
@ -1160,7 +1160,7 @@ EXTERN int decodeConsUnsigned
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConsUInt8 (OOCTXT* pctxt,
EXTERN int decodeConsUInt8 (OOCTXT* pctxt,
ASN1UINT8* pvalue, ASN1UINT lower, ASN1UINT upper);
/**
@ -1176,7 +1176,7 @@ EXTERN int decodeConsUInt8 (OOCTXT* pctxt,
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConsUInt16
EXTERN int decodeConsUInt16
(OOCTXT* pctxt, ASN1USINT* pvalue, ASN1UINT lower, ASN1UINT upper);
/**
@ -1196,7 +1196,7 @@ EXTERN int decodeConsUInt16
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConsWholeNumber
EXTERN int decodeConsWholeNumber
(OOCTXT* pctxt, ASN1UINT* padjusted_value, ASN1UINT range_value);
/**
@ -1218,7 +1218,7 @@ EXTERN int decodeConsWholeNumber
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeConstrainedStringEx
EXTERN int decodeConstrainedStringEx
(OOCTXT* pctxt, const char** string, const char* charSet,
ASN1UINT abits, ASN1UINT ubits, ASN1UINT canSetBits);
@ -1262,7 +1262,7 @@ EXTERN int decodeDynBitString (OOCTXT* pctxt, ASN1DynBitStr* pBitStr);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeDynOctetString
EXTERN int decodeDynOctetString
(OOCTXT* pctxt, ASN1DynOctStr* pOctStr);
/**
@ -1321,14 +1321,14 @@ EXTERN int decodeObjectIdentifier (OOCTXT* pctxt, ASN1OBJID* pvalue);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeOctetString
EXTERN int decodeOctetString
(OOCTXT* pctxt, ASN1UINT* numocts_p, ASN1OCTET* buffer,
ASN1UINT bufsiz);
/**
* This function will decode an ASN.1 open type. This used to be the ASN.1 ANY
* type, but now is used in a variety of applications requiring an encoding
* that can be interpreted by a decoder without prior knowledge of the type
* type, but now is used in a variety of applications requiring an encoding
* that can be interpreted by a decoder without prior knowledge of the type
* of the variable.
*
* @param pctxt Pointer to a context structure. This provides a storage
@ -1342,7 +1342,7 @@ EXTERN int decodeOctetString
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeOpenType
EXTERN int decodeOpenType
(OOCTXT* pctxt, const ASN1OCTET** object_p2, ASN1UINT* numocts_p);
/**
@ -1360,7 +1360,7 @@ EXTERN int decodeOpenType
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeSmallNonNegWholeNumber
EXTERN int decodeSmallNonNegWholeNumber
(OOCTXT* pctxt, ASN1UINT* pvalue);
/**
@ -1374,7 +1374,7 @@ EXTERN int decodeSmallNonNegWholeNumber
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeSemiConsInteger
EXTERN int decodeSemiConsInteger
(OOCTXT* pctxt, ASN1INT* pvalue, ASN1INT lower);
/**
@ -1389,7 +1389,7 @@ EXTERN int decodeSemiConsInteger
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int decodeSemiConsUnsigned
EXTERN int decodeSemiConsUnsigned
(OOCTXT* pctxt, ASN1UINT* pvalue, ASN1UINT lower);
/**
@ -1420,7 +1420,7 @@ decodeSemiConsUnsigned(pctxt, pvalue, 0U)
EXTERN int decodeVarWidthCharString (OOCTXT* pctxt, const char** pvalue);
/**
* This function will encode a variable of the ASN.1 BOOLEAN type in
* This function will encode a variable of the ASN.1 BOOLEAN type in
* a single bit.
*
* @param pctxt Pointer to a context structure. This provides a storage
@ -1440,7 +1440,7 @@ EXTERN int encodeBit (OOCTXT* pctxt, ASN1BOOL value);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeBits
EXTERN int encodeBits
(OOCTXT* pctxt, ASN1UINT value, ASN1UINT nbits);
/**
@ -1456,7 +1456,7 @@ EXTERN int encodeBits
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeBitString
EXTERN int encodeBitString
(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);
/**
@ -1482,7 +1482,7 @@ EXTERN int encodeBitString
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeBMPString
EXTERN int encodeBMPString
(OOCTXT* pctxt, ASN1BMPString value, Asn116BitCharSet* permCharSet);
/**
@ -1532,7 +1532,7 @@ EXTERN int encodeCheckBuffer (OOCTXT* pctxt, ASN1UINT nbytes);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeConstrainedStringEx
EXTERN int encodeConstrainedStringEx
(OOCTXT* pctxt, const char* string, const char* charSet,
ASN1UINT abits, ASN1UINT ubits, ASN1UINT canSetBits);
@ -1548,7 +1548,7 @@ EXTERN int encodeConstrainedStringEx
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeConsInteger
EXTERN int encodeConsInteger
(OOCTXT* pctxt, ASN1INT value, ASN1INT lower, ASN1INT upper);
/**
@ -1566,7 +1566,7 @@ EXTERN int encodeConsInteger
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeConsUnsigned
EXTERN int encodeConsUnsigned
(OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower, ASN1UINT upper);
/**
@ -1584,7 +1584,7 @@ EXTERN int encodeConsUnsigned
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeConsWholeNumber
EXTERN int encodeConsWholeNumber
(OOCTXT* pctxt, ASN1UINT adjusted_value, ASN1UINT range_value);
/**
@ -1608,7 +1608,7 @@ EXTERN int encodeExpandBuffer (OOCTXT* pctxt, ASN1UINT nbytes);
* to get the pointer and length of the message. It is normally used when
* dynamic encoding is specified because the message pointer is not known until
* encoding is complete. If static encoding is used, the message starts at the
* beginning of the specified buffer adn the encodeGetMsgLen function can be
* beginning of the specified buffer adn the encodeGetMsgLen function can be
* used to obtain the lenght of the message.
*
* @param pctxt Pointer to a context structure. This provides a storage
@ -1675,7 +1675,7 @@ EXTERN int encodebitsFromOctet (OOCTXT* pctxt, ASN1OCTET value, ASN1UINT nbits);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeOctets
EXTERN int encodeOctets
(OOCTXT* pctxt, const ASN1OCTET* pvalue, ASN1UINT nbits);
/**
@ -1690,7 +1690,7 @@ EXTERN int encodeOctets
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeOctetString
EXTERN int encodeOctetString
(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);
/**
@ -1708,7 +1708,7 @@ EXTERN int encodeOctetString
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeOpenType
EXTERN int encodeOpenType
(OOCTXT* pctxt, ASN1UINT numocts, const ASN1OCTET* data);
/**
@ -1729,10 +1729,10 @@ EXTERN int encodeOpenType
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeOpenTypeExt
EXTERN int encodeOpenTypeExt
(OOCTXT* pctxt, DList* pElemList);
EXTERN int encodeOpenTypeExtBits
EXTERN int encodeOpenTypeExtBits
(OOCTXT* pctxt, DList* pElemList);
/**
@ -1762,7 +1762,7 @@ EXTERN int encodeSmallNonNegWholeNumber (OOCTXT* pctxt, ASN1UINT value);
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeSemiConsInteger
EXTERN int encodeSemiConsInteger
(OOCTXT* pctxt, ASN1INT value, ASN1INT lower);
/**
@ -1776,7 +1776,7 @@ EXTERN int encodeSemiConsInteger
* - 0 (ASN_OK) = success,
* - negative return value is error.
*/
EXTERN int encodeSemiConsUnsigned
EXTERN int encodeSemiConsUnsigned
(OOCTXT* pctxt, ASN1UINT value, ASN1UINT lower);
/**
@ -1791,15 +1791,15 @@ EXTERN int encodeSemiConsUnsigned
#define encodeUnconsInteger(pctxt,value) \
encodeSemiConsInteger(pctxt,value,ASN1INT_MIN)
EXTERN int encodeVarWidthCharString (OOCTXT* pctxt, const char* value);
EXTERN int encodeVarWidthCharString (OOCTXT* pctxt, const char* value);
EXTERN int addSizeConstraint (OOCTXT* pctxt, Asn1SizeCnst* pSize);
EXTERN ASN1BOOL alignCharStr
EXTERN ASN1BOOL alignCharStr
(OOCTXT* pctxt, ASN1UINT len, ASN1UINT nbits, Asn1SizeCnst* pSize);
EXTERN int bitAndOctetStringAlignmentTest
(Asn1SizeCnst* pSizeList, ASN1UINT itemCount,
EXTERN int bitAndOctetStringAlignmentTest
(Asn1SizeCnst* pSizeList, ASN1UINT itemCount,
ASN1BOOL bitStrFlag, ASN1BOOL* pAlignFlag);
EXTERN int getPERMsgLen (OOCTXT* pctxt);
@ -1811,20 +1811,20 @@ EXTERN Asn1SizeCnst* getSizeConstraint (OOCTXT* pctxt, ASN1BOOL extbit);
EXTERN int checkSizeConstraint(OOCTXT* pctxt, int size);
EXTERN ASN1UINT getUIntBitCount (ASN1UINT value);
EXTERN Asn1SizeCnst* checkSize
EXTERN Asn1SizeCnst* checkSize
(Asn1SizeCnst* pSizeList, ASN1UINT value, ASN1BOOL* pExtendable);
EXTERN void init16BitCharSet
EXTERN void init16BitCharSet
(Asn116BitCharSet* pCharSet, ASN116BITCHAR first,
ASN116BITCHAR last, ASN1UINT abits, ASN1UINT ubits);
EXTERN ASN1BOOL isExtendableSize (Asn1SizeCnst* pSizeList);
EXTERN void set16BitCharSet
EXTERN void set16BitCharSet
(OOCTXT* pctxt, Asn116BitCharSet* pCharSet, Asn116BitCharSet* pAlphabet);
#ifdef __cplusplus
}
#endif
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file oochannels.h
* This file contains functions to create and use channels.
* @file oochannels.h
* This file contains functions to create and use channels.
*/
#ifndef _OOCHANNELS_H_
#define _OOCHANNELS_H_
@ -46,7 +46,7 @@ extern "C" {
struct OOH323CallData;
struct Q931Message;
/**
/**
* @defgroup channels Channel Management
* @{
*/
@ -60,7 +60,7 @@ EXTERN int ooCreateH323Listener(void);
/**
* This function is used to create a listener for incoming H.245 connections.
* @param call Pointer to call for which H.245 listener has to be created
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCreateH245Listener(struct OOH323CallData *call);
@ -75,7 +75,7 @@ EXTERN int ooCloseH245Listener(struct OOH323CallData *call);
/**
* This function is used to accept incoming H.225 connections.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooAcceptH225Connection(void);
@ -84,16 +84,16 @@ EXTERN int ooAcceptH225Connection(void);
* This function is used to accept an incoming H.245 connection.
* @param call Pointer to a call for which H.245 connection request has
* arrived.
*
*
* @return OO_OK, on succes. OO_FAILED, on failure.
*/
EXTERN int ooAcceptH245Connection(struct OOH323CallData *call);
/**
* This function is used to create an H.225 connection to the remote end point.
* @param call Pointer to the call for which H.225 connection has to be
* @param call Pointer to the call for which H.225 connection has to be
* setup.
* @return OO_OK, on succes. OO_FAILED, on failure.
* @return OO_OK, on succes. OO_FAILED, on failure.
*/
EXTERN int ooCreateH225Connection(struct OOH323CallData *call);
@ -108,17 +108,17 @@ EXTERN int ooCreateH245Connection(struct OOH323CallData *call);
/**
* This function is used to close an H.225 connection
* @param call Pointer to the call for which H.225 connection has to be
* @param call Pointer to the call for which H.225 connection has to be
* closed.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooCloseH225Connection(struct OOH323CallData *call);
/**
* This function is used to close an H.245 connection for a call.
* This function is used to close an H.245 connection for a call.
*
* @param call Pointer to call for which H.245 connection has
* @param call Pointer to call for which H.245 connection has
* to be closed.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
@ -127,7 +127,7 @@ EXTERN int ooCloseH245Connection(struct OOH323CallData *call);
/**
* This function is used to start monitoring channels for the calls. It has
* an infinite loop which uses select to monitor various channels.
*
*
*/
EXTERN int ooMonitorChannels(void);
EXTERN int ooMonitorCmdChannels(void);
@ -144,22 +144,22 @@ EXTERN void ooStopMonitorCallChannels(OOH323CallData *);
/**
* This function is used to receive an H.2250 message received on a calls
* H.225 channel. It receives the message, decodes it and calls
* H.225 channel. It receives the message, decodes it and calls
* 'ooHandleH2250Message' to process the message.
* @param call Pointer to the call for which the message has to be
* @param call Pointer to the call for which the message has to be
* received.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH2250Receive(struct OOH323CallData *call);
/**
* This function is used to receive an H.245 message received on a calls
* H.245 channel. It receives the message, decodes it and calls
* H.245 channel. It receives the message, decodes it and calls
* 'ooHandleH245Message' to process it.
* @param call Pointer to the call for which the message has to be
* @param call Pointer to the call for which the message has to be
* received.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH245Receive(struct OOH323CallData *call);
@ -175,7 +175,7 @@ EXTERN int ooH245Receive(struct OOH323CallData *call);
EXTERN int ooSendH225Msg(struct OOH323CallData *call, struct Q931Message *msg);
/**
* This function is used to Send a message on the channel, when channel is
* This function is used to Send a message on the channel, when channel is
* available for write.
* @param call Pointer to call for which message has to be sent.
* @param type Type of the message.
@ -197,11 +197,11 @@ EXTERN int ooSendMsg(struct OOH323CallData *call, int type);
* @return OO_OK, on success. OO_FAILED, on failure
*/
EXTERN int ooOnSendMsg
(struct OOH323CallData *call, int msgType, int tunneledMsgType,
(struct OOH323CallData *call, int msgType, int tunneledMsgType,
int associatedChan);
/**
* This function is used to check the status of tcp connection.
* This function is used to check the status of tcp connection.
* @param call Handle to the call to which connection belongs.
* @param sock Connected socket.
*
@ -209,11 +209,10 @@ EXTERN int ooOnSendMsg
*/
EXTERN OOBOOL ooChannelsIsConnectionOK(OOH323CallData *call, OOSOCKET sock);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooh245.h
* This file contains functions to support H245 negotiations.
* @file ooh245.h
* This file contains functions to support H245 negotiations.
*/
#ifndef _OOH245HDR_H_
#define _OOH245HDR_H_
@ -43,7 +43,7 @@ extern "C" {
struct OOH323CallData;
/**
/**
* @defgroup h245 H.245 Message Handling
* @{
*/
@ -59,15 +59,15 @@ typedef struct H245Message {
/**
* Creates an outgoing H245 message of the type specified by the type
* argument for the Application context.
* argument for the Application context.
*
* @param msg A pointer to pointer to message which will be assigned to
* @param msg A pointer to pointer to message which will be assigned to
* allocated memory.
* @param type Type of the message to be created.
* (Request/Response/Command/Indication)
*
* @return Completion status of operation: 0 (OO_OK) = success,
* negative return value is error.
* negative return value is error.
*/
EXTERN int ooCreateH245Message(OOH323CallData* call, H245Message **msg, int type);
@ -77,7 +77,7 @@ EXTERN int ooCreateH245Message(OOH323CallData* call, H245Message **msg, int type
* @param call Handle to the call
* @param pmsg Pointer to an H245 message structure.
*
* @return OO_OK, on success. OO_FAILED, on failure
* @return OO_OK, on success. OO_FAILED, on failure
*/
EXTERN int ooFreeH245Message(struct OOH323CallData *call, H245Message *pmsg);
@ -92,8 +92,8 @@ EXTERN int ooFreeH245Message(struct OOH323CallData *call, H245Message *pmsg);
EXTERN int ooSendH245Msg(struct OOH323CallData *call, H245Message *msg);
/**
* This function is used to retrieve an H.245 message enqueued in the outgoing
* queue.
* This function is used to retrieve an H.245 message enqueued in the outgoing
* queue.
* @param call Pointer to the call for which message has to be retrieved.
* @param msgbuf Pointer to a buffer in which the message will be returned.
* @param len Pointer to an int variable which will contain length of
@ -103,17 +103,17 @@ EXTERN int ooSendH245Msg(struct OOH323CallData *call, H245Message *msg);
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooGetOutgoingH245Msgbuf(struct OOH323CallData *call,
ASN1OCTET *msgbuf,
EXTERN int ooGetOutgoingH245Msgbuf(struct OOH323CallData *call,
ASN1OCTET *msgbuf,
int *len, int *msgType);
/**
* This function is used to send out a terminal capability set message.
* This function is used to send out a terminal capability set message.
*
* @param call Pointer to a call for which TerminalCapabilitySet message
* will be sent.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooSendTermCapMsg(struct OOH323CallData *call);
EXTERN int ooSendEmptyTermCapMsg(struct OOH323CallData *call);
@ -128,10 +128,10 @@ EXTERN ASN1UINT ooGenerateStatusDeterminationNumber(void);
/**
* This fuction is used to handle received MasterSlaveDetermination procedure
* messages.
* messages.
* @param call Pointer to the call for which a message is received.
* @param pmsg Pointer to MSD message
* @param msgType Message type indicating whether received message is MSD,
* @param msgType Message type indicating whether received message is MSD,
* MSDAck, MSDReject etc...
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -152,11 +152,11 @@ EXTERN int ooSendMasterSlaveDetermination(struct OOH323CallData *call);
* This function is used to send a MasterSlaveDeterminationAck message.
* @param call Pointer to call for which MasterSlaveDeterminationAck has
* to be sent.
* @param status Result of the determination process(Master/Slave as it
* @param status Result of the determination process(Master/Slave as it
* applies to remote endpoint)
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooSendMasterSlaveDeterminationAck
(struct OOH323CallData* call, char * status);
@ -164,19 +164,19 @@ EXTERN int ooSendMasterSlaveDeterminationAck
* This function is used to send a MasterSlaveDeterminationReject message.
* @param call Pointer to call for which message is to be sent.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooSendMasterSlaveDeterminationReject (struct OOH323CallData* call);
/**
* This function is used to handle MasterSlaveReject message. If number of
* retries is less than max allowed, then it restarts the
* retries is less than max allowed, then it restarts the
* MasterSlaveDetermination procedure.
* @param call Handle to the call for which MasterSlaveReject is
* @param call Handle to the call for which MasterSlaveReject is
* received.
* @param reject Poinetr to the received reject message.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooHandleMasterSlaveReject
(struct OOH323CallData *call, H245MasterSlaveDeterminationReject* reject);
@ -193,13 +193,13 @@ EXTERN int ooHandleOpenLogicalChannel
(struct OOH323CallData* call, H245OpenLogicalChannel *olc);
/**
* This is a helper function used to handle a received OpenLogicalChannel
* This is a helper function used to handle a received OpenLogicalChannel
* message. It builds an OpenLogicalChannelAck message and sends it.
*
* @param call Pointer to cll for which OLC was received.
* @param olc The received OpenLogicalChannel message.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooHandleOpenLogicalChannel_helper
(struct OOH323CallData *call, H245OpenLogicalChannel*olc);
@ -222,22 +222,22 @@ int ooSendOpenLogicalChannelReject
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooOnReceivedOpenLogicalChannelAck(struct OOH323CallData *call,
EXTERN int ooOnReceivedOpenLogicalChannelAck(struct OOH323CallData *call,
H245OpenLogicalChannelAck *olcAck);
/**
* This function is used to handle the received OpenLogicalChannelReject
* This function is used to handle the received OpenLogicalChannelReject
* message.
* @param call Handle to the call for which the message is received.
* @param olcRejected Pointer to received OpenLogicalChannelReject message.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
int ooOnReceivedOpenLogicalChannelRejected(struct OOH323CallData *call,
int ooOnReceivedOpenLogicalChannelRejected(struct OOH323CallData *call,
H245OpenLogicalChannelReject *olcRejected);
/**
* This message is used to send an EndSession command. It builds a EndSession
* This message is used to send an EndSession command. It builds a EndSession
* command message and queues it into the calls outgoing queue.
* @param call Pointer to call for which EndSession command has to be
* sent.
@ -246,7 +246,7 @@ int ooOnReceivedOpenLogicalChannelRejected(struct OOH323CallData *call,
EXTERN int ooSendEndSessionCommand(struct OOH323CallData *call);
/**
* This function is used to handle a received H245Command message.
* This function is used to handle a received H245Command message.
* @param call Pointer to call for which an H245Command is received.
* @param command Pointer to a command message.
*
@ -259,7 +259,7 @@ EXTERN int ooHandleH245Command
/**
* This function is used to handle a received UserInput Indication message.
* It extracts the dtmf received through user-input message and calls endpoints
* onReceivedDTMF callback function, if such a function is registered by the
* onReceivedDTMF callback function, if such a function is registered by the
* endpoint.
* @param call Handle to the call for which user-input indication
* message is received.
@ -272,7 +272,7 @@ EXTERN int ooOnReceivedUserInputIndication
/**
* This function is called on receiving a TreminalCapabilitySetAck message.
* If the MasterSlaveDetermination process is also over, this function
* If the MasterSlaveDetermination process is also over, this function
* initiates the process of opening logical channels.
* @param call Pointer to call for which TCSAck is received.
*
@ -282,9 +282,9 @@ EXTERN int ooOnReceivedTerminalCapabilitySetAck(struct OOH323CallData* call);
/**
* This function is called to close all the open logical channels. It sends
* CloseLogicalChannel message for all the forward channels and sends
* CloseLogicalChannel message for all the forward channels and sends
* RequestCloseLogicalChannel message for all the reverse channels.
* @param call Pointer to call for which logical channels have to be
* @param call Pointer to call for which logical channels have to be
* closed.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -311,10 +311,10 @@ EXTERN int ooSendCloseLogicalChannel
* closeLogicalChannelAck message to the remote endpoint.
* @param call Pointer to call for which CloseLogicalChannel message is received.
* @param clc Pointer to received CloseLogicalChannel message.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooOnReceivedCloseLogicalChannel(struct OOH323CallData *call,
EXTERN int ooOnReceivedCloseLogicalChannel(struct OOH323CallData *call,
H245CloseLogicalChannel* clc);
/**
@ -322,10 +322,10 @@ EXTERN int ooOnReceivedCloseLogicalChannel(struct OOH323CallData *call,
* channel and removes it from the list of active logical channels.
* @param call Pointer to call for which CLCAck message is received.
* @param clcAck Pointer to the received CloseLogicalChannelAck message.
*
*
* @return OO_OK, on success. OO_FAILED, on failure
*/
EXTERN int ooOnReceivedCloseChannelAck(struct OOH323CallData* call,
EXTERN int ooOnReceivedCloseChannelAck(struct OOH323CallData* call,
H245CloseLogicalChannelAck* clcAck);
/**
@ -365,27 +365,27 @@ EXTERN int ooH245AcknowledgeTerminalCapabilitySet(struct OOH323CallData *call);
* @param call Pointer to call for which logical channels have to be opened.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooOpenLogicalChannels(struct OOH323CallData *call);
/**
* This function is used to send OpenLogicalChannel message for audio/video
* This function is used to send OpenLogicalChannel message for audio/video
* channel.
* @param call Pointer to call for which channel has to be opened.
* @param capType Type of media channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooOpenLogicalChannel(struct OOH323CallData *call,
EXTERN int ooOpenLogicalChannel(struct OOH323CallData *call,
enum OOCapType capType);
/**
* This function is used to build and send OpenLogicalChannel message using
* capability passed as parameter.
* @param call Pointer to call for which OpenLogicalChannel message
* @param call Pointer to call for which OpenLogicalChannel message
* has to be built.
* @param epCap Pointer to capability
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooOpenChannel
@ -415,7 +415,7 @@ EXTERN int ooSendH245UserInputIndication_signal
/**
* This function is used to request a remote end point to close a logical
* channel.
* channel.
* @param call Pointer to call for which the logical channel has to
* be closed.
* @param logicalChan Pointer to the logical channel structure which needs
@ -423,7 +423,7 @@ EXTERN int ooSendH245UserInputIndication_signal
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooSendRequestCloseLogicalChannel(struct OOH323CallData *call,
EXTERN int ooSendRequestCloseLogicalChannel(struct OOH323CallData *call,
ooLogicalChannel *logicalChan);
/**
@ -447,11 +447,11 @@ int ooSendRequestChannelCloseRelease
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooOnReceivedRequestChannelClose(struct OOH323CallData *call,
EXTERN int ooOnReceivedRequestChannelClose(struct OOH323CallData *call,
H245RequestChannelClose *rclc);
/**
* This function is used to handle a received RequestChannelCloseReject
* This function is used to handle a received RequestChannelCloseReject
* response message.
* @param call Handle to the call.
* @param rccReject Pointer to the received reject response message.
@ -462,7 +462,7 @@ int ooOnReceivedRequestChannelCloseReject
(struct OOH323CallData *call, H245RequestChannelCloseReject *rccReject);
/**
* This function is used to handle a received RequestChannelCloseAck
* This function is used to handle a received RequestChannelCloseAck
* response message.
* @param call Handle to the call.
* @param rccAck Pointer to the received ack response message.
@ -473,21 +473,21 @@ int ooOnReceivedRequestChannelCloseAck
(struct OOH323CallData *call, H245RequestChannelCloseAck *rccAck);
/**
* Builds an OLC for faststart with an audio/video capability passed as
* Builds an OLC for faststart with an audio/video capability passed as
* parameter.
* @param call Handle to call for which OLC has to be built.
* @param olc Pointer to an OLC structure which will be populated.
* @param epCap Pointer to the capability which will be used to
* @param epCap Pointer to the capability which will be used to
* build OLC.
* @param pctxt Pointer to an OOCTXT structure which will be used
* @param pctxt Pointer to an OOCTXT structure which will be used
* to allocate additional memory for OLC.
* @param dir Direction of OLC
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooBuildFastStartOLC(struct OOH323CallData *call,
H245OpenLogicalChannel *olc,
ooH323EpCapability *epCap,
EXTERN int ooBuildFastStartOLC(struct OOH323CallData *call,
H245OpenLogicalChannel *olc,
ooH323EpCapability *epCap,
OOCTXT*pctxt, int dir);
/**
@ -496,16 +496,16 @@ EXTERN int ooBuildFastStartOLC(struct OOH323CallData *call,
* of the olc received in SETUP.
* @param call Handle to call for which OLC has to be built.
* @param olc Pointer to an received OLC structure.
* @param epCap Pointer to the capability which will be used for
* @param epCap Pointer to the capability which will be used for
* this channel.
* @param pctxt Pointer to an OOCTXT structure which will be used
* @param pctxt Pointer to an OOCTXT structure which will be used
* to allocate additional memory for OLC.
* @param dir Direction of channel OORX, OOTX etc.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooPrepareFastStartResponseOLC
(OOH323CallData *call, H245OpenLogicalChannel *olc,
(OOH323CallData *call, H245OpenLogicalChannel *olc,
ooH323EpCapability *epCap, OOCTXT*pctxt, int dir);
/**
@ -533,7 +533,7 @@ int ooSendMasterSlaveDeterminationRelease(struct OOH323CallData * call);
/**
* This function is used to send a terminal capability set reject message
* to the remote endpoint.
* @param call Handle to the call for which reject message has to
* @param call Handle to the call for which reject message has to
* be sent.
* @param seqNo Sequence number of the TCS message to be rejected.
* @param cause Cause for rejecting a TCS message.
@ -546,7 +546,7 @@ int ooSendTerminalCapabilitySetReject
/**
* This function is used to send a TerminalCapabilitySetRelease message after
* capability exchange timer has expired.
* @param call Handle to call for which release message has to be
* @param call Handle to call for which release message has to be
* sent.
*
* @return OO_OK, on success; OO_FAILED, on failure.
@ -557,26 +557,26 @@ int ooSendRequestMode(OOH323CallData* call, int isT38Mode);
/**
* This is an helper function used to extract ip address and port info from
* This is an helper function used to extract ip address and port info from
* H245TransportAddress structure.
* @param call Handle to associated call.
* @param h245Address Handle to H245TransportAddress structure from which
* @param h245Address Handle to H245TransportAddress structure from which
* information has to be extracted.
* @param ip Pointer to buffer in which ip address will be
* @param ip Pointer to buffer in which ip address will be
* returned. Make sure that buffer has sufficient length.
* @param port Pointer to integer in which port number will be
* @param port Pointer to integer in which port number will be
* returned.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
int ooGetIpPortFromH245TransportAddress
(OOH323CallData *call, H245TransportAddress *h245Address, char *ip,
(OOH323CallData *call, H245TransportAddress *h245Address, char *ip,
int *port);
/**
* This is a callback function for handling an expired master-slave
* This is a callback function for handling an expired master-slave
* determination timer.
* @param data Callback data registered at the time of creation of
* @param data Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -584,9 +584,9 @@ int ooGetIpPortFromH245TransportAddress
int ooMSDTimerExpired(void *data);
/**
* This is a callback function for handling an expired capability exchange
* This is a callback function for handling an expired capability exchange
* timer.
* @param data Callback data registered at the time of creation of
* @param data Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -594,9 +594,9 @@ int ooMSDTimerExpired(void *data);
int ooTCSTimerExpired(void *data);
/**
* This is a callback function for handling an expired OpenLogicalChannel
* This is a callback function for handling an expired OpenLogicalChannel
* timer.
* @param pdata Callback data registered at the time of creation of
* @param pdata Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -604,9 +604,9 @@ int ooTCSTimerExpired(void *data);
int ooOpenLogicalChannelTimerExpired(void *pdata);
/**
* This is a callback function for handling an expired CloseLogicalChannel
* This is a callback function for handling an expired CloseLogicalChannel
* timer.
* @param pdata Callback data registered at the time of creation of
* @param pdata Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -614,9 +614,9 @@ int ooOpenLogicalChannelTimerExpired(void *pdata);
int ooCloseLogicalChannelTimerExpired(void *pdata);
/**
* This is a callback function for handling an expired RequestChannelClose
* This is a callback function for handling an expired RequestChannelClose
* timer.
* @param pdata Callback data registered at the time of creation of
* @param pdata Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
@ -625,14 +625,14 @@ int ooRequestChannelCloseTimerExpired(void *pdata);
/**
* This is a callback function for handling an expired EndSession timer.
* @param pdata Callback data registered at the time of creation of
* @param pdata Callback data registered at the time of creation of
* the timer.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
*/
int ooSessionTimerExpired(void *pdata);
/**
* @}
/**
* @}
*/
int ooRTDTimerExpired(void *pdata);

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooh323.h
* This file contains functions to support H.225 messages.
* @file ooh323.h
* This file contains functions to support H.225 messages.
*/
#ifndef _OOH323HDR_H_
#define _OOH323HDR_H_
@ -95,7 +95,7 @@ EXTERN int ooOnReceivedFacility
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooHandleTunneledH245Messages(struct OOH323CallData *call,
EXTERN int ooHandleTunneledH245Messages(struct OOH323CallData *call,
H225H323_UU_PDU * pH323UUPdu);
/**
@ -103,7 +103,7 @@ EXTERN int ooHandleTunneledH245Messages(struct OOH323CallData *call,
* @param call Handle to the call
* @param facility Pointer to the facility message.
*/
EXTERN int ooHandleStartH245FacilityMessage(struct OOH323CallData *call,
EXTERN int ooHandleStartH245FacilityMessage(struct OOH323CallData *call,
H225Facility_UUIE *facility);
/**
@ -112,13 +112,13 @@ EXTERN int ooHandleStartH245FacilityMessage(struct OOH323CallData *call,
* @param call Handle to the call.Null when retrieving registered
* aliases.
* @param pAddresses Pointer to the sequence of alias addresses.
* @param aliasList Handle to alias list to be populated with retrieved
* @param aliasList Handle to alias list to be populated with retrieved
* aliases.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323RetrieveAliases
(struct OOH323CallData *call, H225_SeqOfH225AliasAddress *pAddresses,
(struct OOH323CallData *call, H225_SeqOfH225AliasAddress *pAddresses,
OOAliases **aliasList);
/**
@ -133,16 +133,16 @@ EXTERN int ooPopulatePrefixList(OOCTXT *pctxt, OOAliases *pAliases,
* @param pAliases Pointer to aliases to be used for populating list.
* @param pAliasList Pointer to alias list to be populated.
*
* @return OO_OK, on success. OO_FAILED, otherwise.
* @return OO_OK, on success. OO_FAILED, otherwise.
*/
EXTERN int ooPopulateAliasList(OOCTXT *pctxt, OOAliases *pAliases,
H225_SeqOfH225AliasAddress *pAliasList, int pAliasType);
H225_SeqOfH225AliasAddress *pAliasList, int pAliasType);
/**
* This function is used to search a particular alias in the alias list. The
* search can be on the basis of alias type or value or both.
* @param aliasList Handle to the alias list to be searched.
* @param type Type of the alias, if search has to consider type as
* @param type Type of the alias, if search has to consider type as
* criterion, otherwise 0.
* @param value Value of the alias, if the search has to consider value as
* criterion, NULL otherwise.
@ -153,7 +153,7 @@ EXTERN OOAliases* ooH323GetAliasFromList
/**
* This function is used to add a new alias to alias list.
* @param pAliasList Pointer to Alias list.
* @param pctxt Pointer to OOCTXT structure to be used for memory
* @param pctxt Pointer to OOCTXT structure to be used for memory
* allocation.
* @param pAliasAddress New alias address to be added.
*
@ -169,12 +169,12 @@ EXTERN OOAliases* ooH323AddAliasToList
* @param h225Address Pointer to H225TransportAddress structure
* @param ip Pointer to the buffer in which dotted ip address will
* be returned.
* @param port Pointer to the integer in which port value will be
* @param port Pointer to the integer in which port value will be
* returned.
*
* @return OO_OK, on success; OO_FAILED, on failure.
*/
int ooH323GetIpPortFromH225TransportAddress(struct OOH323CallData *call,
int ooH323GetIpPortFromH225TransportAddress(struct OOH323CallData *call,
H225TransportAddress *h225Address, char *ip, int *port);
/**
* @}
@ -184,4 +184,3 @@ int ooH323GetIpPortFromH225TransportAddress(struct OOH323CallData *call,
#endif
#endif

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -36,7 +36,7 @@ extern DList g_TimerList;
int ooH323EpInitialize
(enum OOCallMode callMode, const char* tracefile)
{
memset(&gH323ep, 0, sizeof(ooEndPoint));
initContext(&(gH323ep.ctxt));
@ -46,25 +46,25 @@ int ooH323EpInitialize
{
if(strlen(tracefile)>= MAXFILENAME)
{
printf("Error:File name longer than allowed maximum %d\n",
printf("Error:File name longer than allowed maximum %d\n",
MAXFILENAME-1);
return OO_FAILED;
}
strcpy(gH323ep.traceFile, tracefile);
}
else{
strcpy(gH323ep.traceFile, DEFAULT_TRACEFILE);
strcpy(gH323ep.traceFile, DEFAULT_TRACEFILE);
}
gH323ep.fptraceFile = fopen(gH323ep.traceFile, "a");
if(gH323ep.fptraceFile == NULL)
{
printf("Error:Failed to open trace file %s for write.\n",
printf("Error:Failed to open trace file %s for write.\n",
gH323ep.traceFile);
return OO_FAILED;
}
/* Initialize default port ranges that will be used by stack.
/* Initialize default port ranges that will be used by stack.
Apps can override these by explicitely setting port ranges
*/
@ -79,12 +79,12 @@ int ooH323EpInitialize
gH323ep.rtpPorts.start = RTPPORTSSTART;
gH323ep.rtpPorts.max = RTPPORTSEND;
gH323ep.rtpPorts.current = RTPPORTSSTART;
OO_SETFLAG(gH323ep.flags, OO_M_FASTSTART);
OO_SETFLAG(gH323ep.flags, OO_M_TUNNELING);
OO_SETFLAG(gH323ep.flags, OO_M_AUTOANSWER);
OO_CLRFLAG(gH323ep.flags, OO_M_GKROUTED);
gH323ep.aliases = NULL;
gH323ep.termType = DEFAULT_TERMTYPE;
@ -107,7 +107,7 @@ int ooH323EpInitialize
ooH323EpSetCallerID(DEFAULT_CALLERID);
gH323ep.myCaps = NULL;
gH323ep.noOfCaps = 0;
gH323ep.callList = NULL;
@ -116,7 +116,7 @@ int ooH323EpInitialize
ast_mutex_init(&newCallLock);
ast_mutex_init(&bindPortLock);
gH323ep.dtmfmode = 0;
gH323ep.callingPartyNumber[0]='\0';
gH323ep.callingPartyNumber[0]='\0';
gH323ep.callMode = callMode;
gH323ep.isGateway = FALSE;
@ -164,7 +164,7 @@ int ooH323EpSetLocalAddress(const char* localip, int listenport)
strcpy(gH323ep.signallingIP, localip);
OOTRACEINFO2("Signalling IP address is set to %s\n", localip);
}
if(listenport)
{
gH323ep.listenPort = listenport;
@ -332,7 +332,7 @@ int ooH323EpSetH225MsgCallbacks(OOH225MsgCallbacks h225Callbacks)
return OO_OK;
}
int ooH323EpSetH323Callbacks(OOH323CALLBACKS h323Callbacks)
{
gH323ep.h323Callbacks.onNewCallCreated = h323Callbacks.onNewCallCreated;
@ -376,10 +376,10 @@ int ooH323EpDestroy(void)
if(gH323ep.listener)
{
ooSocketClose(*(gH323ep.listener));
gH323ep.listener = NULL;
gH323ep.listener = NULL;
}
ooGkClientDestroy();
ooGkClientDestroy();
if(gH323ep.fptraceFile)
{
@ -461,7 +461,7 @@ int ooH323EpEnableH245Tunneling(void)
OO_SETFLAG(gH323ep.flags, OO_M_TUNNELING);
return OO_OK;
}
int ooH323EpDisableH245Tunneling(void)
{
OO_CLRFLAG(gH323ep.flags, OO_M_TUNNELING);
@ -527,7 +527,7 @@ int ooH323EpSetCallingPartyNumber(const char* number)
int ret=OO_OK;
if(number)
{
strncpy(gH323ep.callingPartyNumber, number,
strncpy(gH323ep.callingPartyNumber, number,
sizeof(gH323ep.callingPartyNumber)-1);
ret = ooH323EpAddAliasDialedDigits((char*)number);
return ret;
@ -544,7 +544,7 @@ int ooH323EpSetTraceLevel(int traceLevel)
void ooH323EpPrintConfig(void)
{
OOTRACEINFO1("H.323 Endpoint Configuration is as follows:\n");
OOTRACEINFO2("\tTrace File: %s\n", gH323ep.traceFile);
if(!OO_TESTFLAG(gH323ep.flags, OO_M_FASTSTART))
@ -575,7 +575,7 @@ void ooH323EpPrintConfig(void)
OOTRACEINFO1("\tAutoAnswer - enabled\n");
else
OOTRACEINFO1("\tAutoAnswer - disabled\n");
OOTRACEINFO2("\tTerminal Type - %d\n", gH323ep.termType);
OOTRACEINFO2("\tT35 CountryCode - %d\n", gH323ep.t35CountryCode);
@ -585,7 +585,7 @@ void ooH323EpPrintConfig(void)
OOTRACEINFO2("\tManufacturer Code - %d\n", gH323ep.manufacturerCode);
OOTRACEINFO2("\tProductID - %s\n", gH323ep.productID);
OOTRACEINFO2("\tVersionID - %s\n", gH323ep.versionID);
OOTRACEINFO2("\tLocal signalling IP address - %s\n", gH323ep.signallingIP);
@ -595,8 +595,8 @@ void ooH323EpPrintConfig(void)
OOTRACEINFO2("\tCallerID - %s\n", gH323ep.callerid);
OOTRACEINFO2("\tCall Establishment Timeout - %d seconds\n",
gH323ep.callEstablishmentTimeout);
OOTRACEINFO2("\tCall Establishment Timeout - %d seconds\n",
gH323ep.callEstablishmentTimeout);
OOTRACEINFO2("\tMasterSlaveDetermination Timeout - %d seconds\n",
gH323ep.msdTimeout);
@ -609,7 +609,7 @@ void ooH323EpPrintConfig(void)
OOTRACEINFO2("\tSession Timeout - %d seconds\n", gH323ep.sessionTimeout);
return;
return;
}
@ -620,7 +620,7 @@ int ooH323EpAddG711Capability(int cap, int txframes, int rxframes, int dir,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
@ -631,7 +631,7 @@ int ooH323EpAddG728Capability(int cap, int txframes, int rxframes, int dir,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
@ -642,89 +642,89 @@ int ooH323EpAddG729Capability(int cap, int txframes, int rxframes, int dir,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes, FALSE,
dir, startReceiveChannel, startTransmitChannel,
dir, startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel, FALSE);
}
int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooH323EpAddG726Capability(int cap, int txframes, int rxframes,
int ooH323EpAddG726Capability(int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooH323EpAddAMRNBCapability(int cap, int txframes, int rxframes,
int ooH323EpAddAMRNBCapability(int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooH323EpAddSpeexCapability(int cap, int txframes, int rxframes,
int ooH323EpAddSpeexCapability(int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
return ooCapabilityAddSimpleCapability(NULL, cap, txframes, rxframes,
silenceSuppression, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
OOBOOL comfortNoise, OOBOOL scrambled, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddGSMCapability(NULL, cap, framesPerPkt, comfortNoise,
scrambled, dir, startReceiveChannel,
return ooCapabilityAddGSMCapability(NULL, cap, framesPerPkt, comfortNoise,
scrambled, dir, startReceiveChannel,
startTransmitChannel, stopReceiveChannel,
stopTransmitChannel, FALSE);
}
int ooH323EpAddH263VideoCapability(int cap, unsigned sqcifMPI,
unsigned qcifMPI, unsigned cifMPI,
unsigned cif4MPI, unsigned cif16MPI,
unsigned maxBitRate, int dir,
int ooH323EpAddH263VideoCapability(int cap, unsigned sqcifMPI,
unsigned qcifMPI, unsigned cifMPI,
unsigned cif4MPI, unsigned cif16MPI,
unsigned maxBitRate, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
cb_StopTransmitChannel stopTransmitChannel)
{
return ooCapabilityAddH263VideoCapability(NULL, sqcifMPI, qcifMPI, cifMPI,
return ooCapabilityAddH263VideoCapability(NULL, sqcifMPI, qcifMPI, cifMPI,
cif4MPI, cif16MPI, maxBitRate,dir,
startReceiveChannel, startTransmitChannel,
stopReceiveChannel, stopTransmitChannel,
stopReceiveChannel, stopTransmitChannel,
FALSE);
}
@ -805,7 +805,7 @@ int ooH323EpSetTCPPortRange(int base, int max)
gH323ep.tcpPorts.start = base;
if(max > 65500)
gH323ep.tcpPorts.max = 65500;
else
else
gH323ep.tcpPorts.max = max;
if(gH323ep.tcpPorts.max<gH323ep.tcpPorts.start)
@ -815,7 +815,7 @@ int ooH323EpSetTCPPortRange(int base, int max)
return OO_FAILED;
}
gH323ep.tcpPorts.current = gH323ep.tcpPorts.start;
OOTRACEINFO1("TCP port range initialize - successful\n");
return OO_OK;
}
@ -828,18 +828,18 @@ int ooH323EpSetUDPPortRange(int base, int max)
gH323ep.udpPorts.start = base;
if(max > 65500)
gH323ep.udpPorts.max = 65500;
else
else
gH323ep.udpPorts.max = max;
if(gH323ep.udpPorts.max<gH323ep.udpPorts.start)
{
OOTRACEERR1("Error: Failed to set udp ports- Max port number"
" less than Start port number\n");
return OO_FAILED;
}
gH323ep.udpPorts.current = gH323ep.udpPorts.start;
OOTRACEINFO1("UDP port range initialize - successful\n");
return OO_OK;
@ -853,18 +853,17 @@ int ooH323EpSetRTPPortRange(int base, int max)
gH323ep.rtpPorts.start = base;
if(max > 65500)
gH323ep.rtpPorts.max = 65500;
else
else
gH323ep.rtpPorts.max = max;
if(gH323ep.rtpPorts.max<gH323ep.rtpPorts.start)
{
OOTRACEERR1("Error: Failed to set rtp ports- Max port number"
" less than Start port number\n");
return OO_FAILED;
}
gH323ep.rtpPorts.current = gH323ep.rtpPorts.start;
OOTRACEINFO1("RTP port range initialize - successful\n");
return OO_OK;
}

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooh323ep.h
* This file contains H323 endpoint related functions.
* @file ooh323ep.h
* This file contains H323 endpoint related functions.
*/
#ifndef OO_H323EP_H_
#define OO_H323EP_H_
@ -53,7 +53,7 @@ extern "C" {
#endif /* EXTERN */
struct OOCapPrefs;
/**
/**
* @defgroup h323ep H323 Endpoint management functions
* @{
*/
@ -67,7 +67,7 @@ struct OOCapPrefs;
/**
* This structure is used to define the port ranges to be used
* by the application.
@ -78,19 +78,19 @@ typedef struct OOH323Ports {
int current; /*!< Current port number. */
} OOH323Ports;
/**
/**
* Structure to store all configuration information related to the
* endpoint created by an application
* endpoint created by an application
*/
typedef struct OOH323EndPoint {
/**
/**
* This context should be used for allocation of memory for
* items within the endpoint structure.
*/
OOCTXT ctxt;
/**
/**
* This context should be used for allocation of memory for
* message structures.
*/
@ -107,11 +107,11 @@ typedef struct OOH323EndPoint {
/** Range of port numbers to be used for RTP connections */
OOH323Ports rtpPorts;
ASN1UINT flags;
int termType; /* 50 - Terminal entity with No MC,
60 - Gateway entity with no MC,
int termType; /* 50 - Terminal entity with No MC,
60 - Gateway entity with no MC,
70 - Terminal Entity with MC, but no MP etc.*/
int t35CountryCode;
int t35Extension;
@ -166,14 +166,14 @@ EXTERN int ooH323EpInitialize
(enum OOCallMode callMode, const char* tracefile);
/**
* This function is used to represent the H.323 application endpoint as
* This function is used to represent the H.323 application endpoint as
* gateway, instead of an H.323 phone endpoint.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpSetAsGateway(void);
EXTERN void ooH323EpSetVersionInfo(int t35countrycode, int t35extensions, int manufacturer,
EXTERN void ooH323EpSetVersionInfo(int t35countrycode, int t35extensions, int manufacturer,
char* vendor, char* version);
/**
@ -183,7 +183,7 @@ EXTERN void ooH323EpSetVersionInfo(int t35countrycode, int t35extensions, int ma
* @param listenport Port to be used for listening for incoming calls.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooH323EpSetLocalAddress(const char* localip, int listenport);
/**
@ -192,7 +192,7 @@ EXTERN int ooH323EpSetLocalAddress(const char* localip, int listenport);
* @param base Starting port number for the range
* @param max Ending port number for the range.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpSetTCPPortRange(int base, int max);
@ -202,7 +202,7 @@ EXTERN int ooH323EpSetTCPPortRange(int base, int max);
* @param base Starting port number for the range
* @param max Ending port number for the range.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpSetUDPPortRange(int base, int max);
@ -212,7 +212,7 @@ EXTERN int ooH323EpSetUDPPortRange(int base, int max);
* @param base Starting port number for the range
* @param max Ending port number for the range.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpSetRTPPortRange(int base, int max);
@ -252,7 +252,7 @@ EXTERN int ooH323EpAddAliasURLID(const char* url);
/**
* This function is used to add an email id as an alias for the endpoint.
* @param email Email id to be set as an alias.
*
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddAliasEmailID(const char* email);
@ -266,7 +266,7 @@ EXTERN int ooH323EpAddAliasEmailID(const char* email);
EXTERN int ooH323EpAddAliasTransportID(const char* ipaddress);
/**
* This function is used to clear all the aliases used by the
* This function is used to clear all the aliases used by the
* H323 endpoint.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -284,9 +284,9 @@ EXTERN int ooH323EpSetH225MsgCallbacks(OOH225MsgCallbacks h225Callbacks);
/**
* This function is used to set high level H.323 callbacks for the endpoint.
* Make sure all unused callbacks in the structure are set to NULL before
* Make sure all unused callbacks in the structure are set to NULL before
* calling this function.
* @param h323Callbacks Callback structure containing various high level
* @param h323Callbacks Callback structure containing various high level
* callbacks.
* @return OO_OK, on success. OO_FAILED, on failure
*/
@ -294,8 +294,8 @@ EXTERN int ooH323EpSetH323Callbacks(OOH323CALLBACKS h323Callbacks);
/**
* This function is the last function to be invoked after done using the
* stack. It closes the H323 Endpoint for an application, releasing all
* This function is the last function to be invoked after done using the
* stack. It closes the H323 Endpoint for an application, releasing all
* the associated memory.
*
* @return OO_OK on success
@ -321,8 +321,8 @@ EXTERN int ooH323EpEnableAutoAnswer(void);
EXTERN int ooH323EpDisableAutoAnswer(void);
/**
* This function is used to enable manual ringback. By default the stack sends
* alerting message automatically on behalf of the endpoint application.
* This function is used to enable manual ringback. By default the stack sends
* alerting message automatically on behalf of the endpoint application.
* However, if endpoint application wants to do alerting user part first before
* sending out alerting message, it can enable this feature.
*
@ -331,7 +331,7 @@ EXTERN int ooH323EpDisableAutoAnswer(void);
EXTERN int ooH323EpEnableManualRingback(void);
/**
* This function is used to disable manual ringback. By default the
* This function is used to disable manual ringback. By default the
* manual ringback feature is disabled, i.e, the stack sends alerting on behalf
* of the application automatically.
*
@ -407,7 +407,7 @@ EXTERN int ooH323EpDisableGkRouted(void);
* @param productID New value for the product id.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooH323EpSetProductID (const char * productID);
/**
@ -429,7 +429,7 @@ EXTERN int ooH323EpSetCallerID (const char * callerID);
/**
* This function is used to set calling party number to be used for outbound
* calls.Note, you can override it for a specific call by using
* calls.Note, you can override it for a specific call by using
* ooCallSetCallingPartyNumber function.
* @param number e164 number to be used as calling party number.
*
@ -438,7 +438,7 @@ EXTERN int ooH323EpSetCallerID (const char * callerID);
EXTERN int ooH323EpSetCallingPartyNumber(const char * number);
/**
* This function is used to print the current configuration information of
* This function is used to print the current configuration information of
* the H323 endpoint to log file.
*/
void ooH323EpPrintConfig(void);
@ -447,7 +447,7 @@ void ooH323EpPrintConfig(void);
/**
* This function is used to add G728 capability to the H323 endpoint.
* @param cap Type of G728 capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -455,10 +455,10 @@ void ooH323EpPrintConfig(void);
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddG728Capability
(int cap, int txframes, int rxframes, int dir,
(int cap, int txframes, int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -467,7 +467,7 @@ EXTERN int ooH323EpAddG728Capability
/**
* This function is used to add G729 capability to the H323 endpoint.
* @param cap Type of G729 capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -475,10 +475,10 @@ EXTERN int ooH323EpAddG728Capability
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddG729Capability
(int cap, int txframes, int rxframes, int dir,
(int cap, int txframes, int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -488,7 +488,7 @@ EXTERN int ooH323EpAddG729Capability
/**
* This function is used to add G7231 capability to the H323 endpoint.
* @param cap Type of G7231 capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param silenceSuppression Silence Suppression support
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
@ -497,9 +497,9 @@ EXTERN int ooH323EpAddG729Capability
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
EXTERN int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
OOBOOL silenceSuppression, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
@ -509,7 +509,7 @@ EXTERN int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
/**
* This function is used to add G711 capability to the H323 endpoint.
* @param cap Type of G711 capability to be added.
* @param txframes Number of frames per packet for transmission.
* @param txframes Number of frames per packet for transmission.
* @param rxframes Number of frames per packet for reception.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -517,10 +517,10 @@ EXTERN int ooH323EpAddG7231Capability(int cap, int txframes, int rxframes,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddG711Capability
(int cap, int txframes, int rxframes, int dir,
(int cap, int txframes, int rxframes, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -530,8 +530,8 @@ EXTERN int ooH323EpAddG711Capability
/**
* This function is used to add a new GSM capability to the endpoint.
* @param cap Type of GSM capability to be added.
* @param framesPerPkt Number of GSM frames pre packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param framesPerPkt Number of GSM frames pre packet.
* @param comfortNoise Comfort noise spec for the capability.
* @param scrambled Scrambled enabled/disabled for the capability.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -539,10 +539,10 @@ EXTERN int ooH323EpAddG711Capability
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
OOBOOL comfortNoise,OOBOOL scrambled,int dir,
EXTERN int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
OOBOOL comfortNoise,OOBOOL scrambled,int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,
@ -550,18 +550,18 @@ EXTERN int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
/**
* This function is used to add H263 video capability to the H323 endpoint.
* @param cap Capability type - OO_H263VIDEO
* @param sqcifMPI Minimum picture interval for encoding/decoding
* @param sqcifMPI Minimum picture interval for encoding/decoding
* of SQCIF pictures.
* @param qcifMPI Minimum picture interval for encoding/decoding
* @param qcifMPI Minimum picture interval for encoding/decoding
* of QCIF pictures.
* @param cifMPI Minimum picture interval for encoding/decoding
* @param cifMPI Minimum picture interval for encoding/decoding
* of CIF pictures.
* @param cif4MPI Minimum picture interval for encoding/decoding
* @param cif4MPI Minimum picture interval for encoding/decoding
* of CIF4 pictures.
* @param cif16MPI Minimum picture interval for encoding/decoding
* @param cif16MPI Minimum picture interval for encoding/decoding
* of CIF16 pictures.
* @param maxBitRate Maximum bit rate in units of 100 bits/s at
* which a transmitter can transmit video or a
* which a transmitter can transmit video or a
* receiver can receive video.
* @param dir Direction of capability.OORX, OOTX, OORXANDTX
* @param startReceiveChannel Callback function to start receive channel.
@ -569,12 +569,12 @@ EXTERN int ooH323EpAddGSMCapability(int cap, ASN1USINT framesPerPkt,
* @param stopReceiveChannel Callback function to stop receive channel.
* @param stopTransmitChannel Callback function to stop transmit channel.
*
* @return OO_OK, on success. OO_FAILED, on failure.
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooH323EpAddH263VideoCapability(int cap, unsigned sqcifMPI,
unsigned qcifMPI, unsigned cifMPI,
unsigned cif4MPI, unsigned cif16MPI,
unsigned maxBitRate, int dir,
EXTERN int ooH323EpAddH263VideoCapability(int cap, unsigned sqcifMPI,
unsigned qcifMPI, unsigned cifMPI,
unsigned cif4MPI, unsigned cif16MPI,
unsigned maxBitRate, int dir,
cb_StartReceiveChannel startReceiveChannel,
cb_StartTransmitChannel startTransmitChannel,
cb_StopReceiveChannel stopReceiveChannel,

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -19,4 +19,3 @@
#endif

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -90,7 +90,7 @@ int ooBindPort (OOH323PortType type, OOSOCKET socket, char *ip)
}
}
#ifdef _WIN32
#ifdef _WIN32
int ooBindOSAllocatedPort(OOSOCKET socket, char *ip)
{
OOIPADDR ipAddrs;
@ -98,14 +98,14 @@ int ooBindOSAllocatedPort(OOSOCKET socket, char *ip)
struct sockaddr_in name;
size = sizeof(struct sockaddr_in);
ret= ooSocketStrToAddr (ip, &ipAddrs);
if((ret=ooSocketBind(socket, ipAddrs,
if((ret=ooSocketBind(socket, ipAddrs,
0))==ASN_OK)
{
ret = ooSocketGetSockName(socket, &name, &size);
if(ret == ASN_OK)
{
return name.sin_port;
}
}

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooports.h
* This file contains functions to manage ports used by the stack.
* @file ooports.h
* This file contains functions to manage ports used by the stack.
*/
#ifndef _OOPORTS_H_
@ -43,7 +43,7 @@ extern "C" {
/**
* Get the next port of type TCP/UDP/RTP from the corresponding range.
* When max value for the range is reached, it starts again from the
* When max value for the range is reached, it starts again from the
* first port number of the range.
*
* @param ep Reference to the H323 Endpoint structure.
@ -69,7 +69,7 @@ EXTERN int ooGetNextPort (OOH323PortType type);
EXTERN int ooBindPort (OOH323PortType type, OOSOCKET socket, char *ip);
/**
* This function is supported for windows version only.
* This function is supported for windows version only.
* Windows sockets have problem in reusing the addresses even after
* setting SO_REUSEADDR, hence in windows we just allow os to bind
* to any random port.
@ -80,7 +80,7 @@ EXTERN int ooBindPort (OOH323PortType type, OOSOCKET socket, char *ip);
* socket is bound and in case of failure just returns
* a negative value.
*/
#ifdef _WIN32
#ifdef _WIN32
EXTERN int ooBindOSAllocatedPort(OOSOCKET socket, char *ip);
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooq931.h
* This file contains functions to support call signalling.
* @file ooq931.h
* This file contains functions to support call signalling.
*/
#ifndef _OOQ931HDR_H_
@ -37,7 +37,7 @@ extern "C" {
#endif /* MAKE_DLL */
#endif /* EXTERN */
/**
/**
* @defgroup q931 Q.931/H.2250 Message Handling
* @{
*/
@ -48,11 +48,11 @@ extern "C" {
#define OO_MAX_CALL_TOKEN 999999
/* Q.931 packet must be at least 5 bytes long */
#define Q931_E_TOOSHORT (-1001)
#define Q931_E_TOOSHORT (-1001)
/* callReference field must be 2 bytes long */
#define Q931_E_INVCALLREF (-1002)
#define Q931_E_INVCALLREF (-1002)
/* invalid length of message */
#define Q931_E_INVLENGTH (-1003)
#define Q931_E_INVLENGTH (-1003)
enum Q931MsgTypes {
Q931NationalEscapeMsg = 0x00,
@ -217,8 +217,8 @@ enum Q931UserInfoLayer1Protocol{
/*
Structure to build store outgoing encoded UUIE
The different fields in the structure have octet lengths
as specified in the spec.
The different fields in the structure have octet lengths
as specified in the spec.
*/
typedef struct Q931InformationElement {
int discriminator;
@ -228,8 +228,8 @@ typedef struct Q931InformationElement {
} Q931InformationElement;
/**
* Q.931 message structure. Contains context for memory allocation,
* protocol discriminator, call reference, meesage type and list of
* Q.931 message structure. Contains context for memory allocation,
* protocol discriminator, call reference, meesage type and list of
* user-user information elements (IEs).
*/
typedef struct Q931Message {
@ -240,7 +240,7 @@ typedef struct Q931Message {
ASN1UINT tunneledMsgType; /* The H245 message this message is tunneling*/
ASN1INT logicalChannelNo; /* channel number associated with tunneled */
/* message, 0 if no channel */
DList ies;
DList ies;
Q931InformationElement *bearerCapabilityIE;
Q931InformationElement *callingPartyNumberIE;
Q931InformationElement *calledPartyNumberIE;
@ -266,13 +266,13 @@ struct OOH323CallData;
/*
* These are message callbacks which can be used by user applications
* to perform application specific things on receiving a particular
* to perform application specific things on receiving a particular
* message or before sending a particular message. For ex. user application
* can change values of some parameters of setup message before it is actually
* sent out.
*/
/**
* This callback is triggered when an H.225 SETUP message is received by
* This callback is triggered when an H.225 SETUP message is received by
* the application.
* @param call The call the message is associated with.
* @param pmsg Q.931 message structure.
@ -282,7 +282,7 @@ typedef int (*cb_OnReceivedSetup)
(struct OOH323CallData *call, struct Q931Message *pmsg);
/**
* This callback is triggered when an H.225 CONNECT message is received by
* This callback is triggered when an H.225 CONNECT message is received by
* the application.
* @param call The call the message is associated with.
* @param pmsg Q.931 message structure.
@ -292,8 +292,8 @@ typedef int (*cb_OnReceivedConnect)
(struct OOH323CallData *call, struct Q931Message *pmsg);
/**
* This callback is triggered after an H.225 SETUP message has been
* constructed and is ready to be sent out. It provides the application
* This callback is triggered after an H.225 SETUP message has been
* constructed and is ready to be sent out. It provides the application
* with an opportunity to add additional non-standard information.
* @param call The call the message is associated with.
* @param pmsg Q.931 message structure.
@ -303,8 +303,8 @@ typedef int (*cb_OnBuiltSetup)
(struct OOH323CallData *call, struct Q931Message *pmsg);
/**
* This callback is triggered after an H.225 CONNECT message has been
* constructed and is ready to be sent out. It provides the application
* This callback is triggered after an H.225 CONNECT message has been
* constructed and is ready to be sent out. It provides the application
* with an opportunity to add additional non-standard information.
* @param call The call the message is associated with.
* @param pmsg Q.931 message structure.
@ -314,7 +314,7 @@ typedef int (*cb_OnBuiltConnect)
(struct OOH323CallData *call, struct Q931Message *pmsg);
/**
* This structure holds the various callback functions that are
* This structure holds the various callback functions that are
* triggered when H.225 messages are received or constructed.
* @see ooH323EpSetH225MsgCallbacks
*/
@ -326,8 +326,8 @@ typedef struct OOH225MsgCallbacks {
} OOH225MsgCallbacks;
/**
* This function is invoked to decode a Q931 message.
*
* This function is invoked to decode a Q931 message.
*
* @param call Handle to call which owns the message.
* @param msg Pointer to the Q931 message
* @param length Length of the encoded data
@ -335,18 +335,18 @@ typedef struct OOH225MsgCallbacks {
*
* @return Completion status - 0 on success, -1 on failure
*/
EXTERN int ooQ931Decode
EXTERN int ooQ931Decode
(struct OOH323CallData *call, Q931Message* msg, int length, ASN1OCTET *data, int docallbacks);
/**
* This function is used to decode the UUIE of the message from the list of
* ies. It decodes the User-User ie and populates the userInfo field of the
* message.
* @param q931Msg Pointer to the message whose User-User ie has to be
* decoded.
* @param q931Msg Pointer to the message whose User-User ie has to be
* decoded.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
*/
EXTERN int ooDecodeUUIE(OOCTXT* pctxt, Q931Message *q931Msg);
/**
@ -360,20 +360,20 @@ EXTERN int ooDecodeUUIE(OOCTXT* pctxt, Q931Message *q931Msg);
EXTERN int ooEncodeUUIE(OOCTXT* pctxt, Q931Message *q931msg);
/**
* This function is invoked to retrieve an IE element from a Q931 message.
*
* This function is invoked to retrieve an IE element from a Q931 message.
*
* @param q931msg Pointer to the Q931 message
* @param ieCode IE code for the IE element to be retrieved
*
* @return Pointer to a Q931InformationElement contating
* @return Pointer to a Q931InformationElement contating
* the IE element.
*/
EXTERN Q931InformationElement* ooQ931GetIE (const Q931Message* q931msg,
EXTERN Q931InformationElement* ooQ931GetIE (const Q931Message* q931msg,
int ieCode);
/**
* This function is invoked to print a Q931 message.
*
* This function is invoked to print a Q931 message.
*
* @param q931msg Pointer to the Q931 message
*
* @return - none
@ -382,8 +382,8 @@ EXTERN void ooQ931Print (const Q931Message* q931msg);
/**
* This function is invoked to create an outgoing Q931 message.
*
* This function is invoked to create an outgoing Q931 message.
*
* @param msg Reference to the pointer of type Q931 message.
* @param msgType Type of Q931 message to be created
*
@ -392,7 +392,7 @@ EXTERN void ooQ931Print (const Q931Message* q931msg);
EXTERN int ooCreateQ931Message(OOCTXT* pctxt, Q931Message **msg, int msgType);
/**
* This function is invoked to generate a unique call reference number.
* This function is invoked to generate a unique call reference number.
*
* @return - call reference number
*/
@ -409,8 +409,8 @@ EXTERN ASN1USINT ooGenerateCallReference(void);
EXTERN int ooGenerateCallIdentifier(H225CallIdentifier *callid);
/**
* This function is invoked to release the memory used up by a Q931 message
*
* This function is invoked to release the memory used up by a Q931 message
*
* @param q931Msg Pointer to a Q931 message which has to be freed.
*
* @return Completion status - 0 on success, -1 on failure
@ -418,10 +418,10 @@ EXTERN int ooGenerateCallIdentifier(H225CallIdentifier *callid);
EXTERN int ooFreeQ931Message(OOCTXT* pctxt, Q931Message *q931Msg);
/**
* This function is invoked to retrive the outgoing message buffer for
* This function is invoked to retrive the outgoing message buffer for
* Q931 message
*
* @param call Pointer to call for which outgoing Q931 message has to be
* @param call Pointer to call for which outgoing Q931 message has to be
* retrieved.
* @param msgbuf Pointer to a buffer in which retrieved message will
* be returned.
@ -436,11 +436,11 @@ EXTERN int ooGetOutgoingQ931Msgbuf
(struct OOH323CallData *call, ASN1OCTET * msgbuf, int* len, int *msgType);
/**
* This function is invoked to send a ReleaseComplete message for
* This function is invoked to send a ReleaseComplete message for
* the currently active call.
*
* @param call Pointer to the call for which ReleaseComplete message have
* to be sent.
* @param call Pointer to the call for which ReleaseComplete message have
* to be sent.
*
* @return Completion status - 0 on success, -1 on failure
*/
@ -451,18 +451,18 @@ EXTERN int ooSendReleaseComplete(struct OOH323CallData *call);
* received setup message.
*
* @param call Pointer to the call for which CallProceeding message have to
* be sent.
* be sent.
*
* @return Completion status - 0 on success, -1 on failure
*/
EXTERN int ooSendCallProceeding(struct OOH323CallData *call);
/**
* This function is invoked to send alerting message in response to received
* setup message.
* This function is invoked to send alerting message in response to received
* setup message.
*
* @param call Pointer to the call for which Alerting message have to be
* sent.
* @param call Pointer to the call for which Alerting message have to be
* sent.
*
* @return Completion status - 0 on success, -1 on failure
*/
@ -477,8 +477,8 @@ EXTERN int ooSendStatusInquiry(struct OOH323CallData *call);
/**
* This function is invoked to send Facility message.
*
* @param call Pointer to the call for which Facility message have to be
* sent.
* @param call Pointer to the call for which Facility message have to be
* sent.
*
* @return Completion status - 0 on success, -1 on failure
*/
@ -497,11 +497,11 @@ EXTERN int ooQ931SendDTMFAsKeyPadIE
(struct OOH323CallData *call, const char* data);
/**
* This function is invoked to send a Connect message in response to received
* setup message.
* This function is invoked to send a Connect message in response to received
* setup message.
*
* @param call Pointer to the call for which connect message has to be
* sent.
* @param call Pointer to the call for which connect message has to be
* sent.
*
* @return Completion status - 0 on success, -1 on failure
*/
@ -509,7 +509,7 @@ EXTERN int ooSendConnect(struct OOH323CallData *call);
/**
* This function is used to send a SETUP message for outgoing call. It first
* creates an H.225 TCP connection with the remote end point and then sends
* creates an H.225 TCP connection with the remote end point and then sends
* SETUP message over this connection.
* @param dest Destination - IP:Port/alias.
* @param callToken Unique token for the new call.
@ -541,7 +541,7 @@ EXTERN int ooH323HandleCallFwdRequest(struct OOH323CallData *call);
/**
* This function is used for forwarding/redirecting a call to third party.
* @param callToken callToken for the call which has to be redirected.
* @param dest Address to which call has to be forwarded. Can be
* @param dest Address to which call has to be forwarded. Can be
* IP:Port or alias.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -559,7 +559,7 @@ EXTERN int ooH323ForwardCall(char* callToken, char *dest);
EXTERN int ooH323HangCall(char * callToken, OOCallClearReason reason, int q931);
/**
/**
* Function to accept a call by sending connect. This function is used
* as a helper function to ooSendConnect.
* @param call Pointer to the call for which connect has to be sent
@ -602,7 +602,7 @@ int ooGenerateCallToken (char *callToken, size_t size);
/**
* This function sends an encoded H.245 message buffer as a tunneled
* This function sends an encoded H.245 message buffer as a tunneled
* H.245 Facility message.
* @param call Pointer to the call for which H.245 message has to
* be tunneled.
@ -617,28 +617,28 @@ int ooGenerateCallToken (char *callToken, size_t size);
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooSendAsTunneledMessage
(struct OOH323CallData *call, ASN1OCTET* msgbuf,
int h245Len, int h245MsgType, int associatedChan);
(struct OOH323CallData *call, ASN1OCTET* msgbuf,
int h245Len, int h245MsgType, int associatedChan);
/**
* This function is used to encode an H.225 message.
* @param call Handle to the call.
* @param pq931Msg Pointer to the message to be encoded.
* @param msgbuf Pointer to the buffer in which encoded message will
* @param msgbuf Pointer to the buffer in which encoded message will
* be returned.
* @param size Size of the buffer passed.
*
* @return OO_OK, on success. OO_FAILED, on failure.
*/
int ooEncodeH225Message(struct OOH323CallData *call, Q931Message *pq931Msg,
int ooEncodeH225Message(struct OOH323CallData *call, Q931Message *pq931Msg,
char *msgbuf, int size);
/**
* This is a callback function which is called when there is no CONNECT
* This is a callback function which is called when there is no CONNECT
* response from the remote endpoint after the SETUP has been sent and timeout
* period has passed.
* @param data The callback data registered at the time of timer
* @param data The callback data registered at the time of timer
* creation.
*
* @return OO_OK, on success. OO_FAILED, on failure.
@ -670,8 +670,8 @@ EXTERN int ooQ931SetKeypadIE(OOCTXT* pctxt, Q931Message *pmsg, const char* data)
* @return OO_OK on success, OO_FAILED, on failure.
*/
EXTERN int ooSetBearerCapabilityIE
(OOCTXT* pctxt, Q931Message *pmsg, enum Q931CodingStandard codingStandard,
enum Q931InformationTransferCapability capability,
(OOCTXT* pctxt, Q931Message *pmsg, enum Q931CodingStandard codingStandard,
enum Q931InformationTransferCapability capability,
enum Q931TransferMode transferMode, enum Q931TransferRate transferRate,
enum Q931UserInfoLayer1Protocol userInfoLayer1);
@ -703,10 +703,10 @@ EXTERN int ooQ931SetCalledPartyNumberIE
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooQ931SetCallingPartyNumberIE
(OOCTXT* pctxt, Q931Message *pmsg, const char *number, unsigned plan, unsigned type,
(OOCTXT* pctxt, Q931Message *pmsg, const char *number, unsigned plan, unsigned type,
unsigned presentation, unsigned screening);
/**
/**
* This function is used to set a cause ie for a q931 message.
* @param pmsg Valid Q931 Message
* @param cause Q931 Cause Value
@ -716,15 +716,15 @@ EXTERN int ooQ931SetCallingPartyNumberIE
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooQ931SetCauseIE
(OOCTXT *pctxt, Q931Message *pmsg,enum Q931CauseValues cause, unsigned coding,
(OOCTXT *pctxt, Q931Message *pmsg,enum Q931CauseValues cause, unsigned coding,
unsigned location);
EXTERN int ooQ931SetCallStateIE
(OOCTXT *pctxt, Q931Message *pmsg, unsigned char callstate);
/**
* This function is used to convert a call clear reason to cause and
* reason code. It is used when local user is endoing the call and
* This function is used to convert a call clear reason to cause and
* reason code. It is used when local user is endoing the call and
* sending releaseComplete.
* @param clearReason Reason for ending call.
* @param cause Pointer to Q931CauseVaules enum in which cause
@ -735,7 +735,7 @@ EXTERN int ooQ931SetCallStateIE
* @return OO_OK, on success. OO_FAILED, on failure.
*/
EXTERN int ooQ931GetCauseAndReasonCodeFromCallClearReason
(OOCallClearReason clearReason, enum Q931CauseValues *cause,
(OOCallClearReason clearReason, enum Q931CauseValues *cause,
unsigned *reasonCode);
/**
@ -750,7 +750,7 @@ EXTERN OOCallClearReason ooGetCallClearReasonFromCauseAndReasonCode
(enum Q931CauseValues cause, unsigned reasonCode);
/**
* This function is used to retrieve the description text for a
* This function is used to retrieve the description text for a
* message type.
*
* @param msgType Message type.
@ -775,8 +775,8 @@ EXTERN int ooSendStartH245Facility(struct OOH323CallData *call);
EXTERN int ooSendFSUpdate(struct OOH323CallData *call);
EXTERN int ooHandleFastStartChannels(struct OOH323CallData *pCall);
/**
* @}
/**
* @}
*/
#ifdef __cplusplus
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -47,7 +47,7 @@ void ooTrace(OOUINT32 traceLevel, const char * fmtspec, ...) {
if(traceLevel > gs_traceLevel) return;
va_start (arglist, fmtspec);
/* memset(logMessage, 0, MAXLOGMSGLEN);*/
vsprintf(logMessage, fmtspec, arglist);
vsprintf(logMessage, fmtspec, arglist);
va_end(arglist);
ooTraceLogMessage(logMessage);
}
@ -59,18 +59,18 @@ void ooTraceLogMessage(const char * logMessage)
static int lasttime=25;
int printDate =0;
static int printTime=1;
#ifdef _WIN32
SYSTEMTIME systemTime;
GetLocalTime(&systemTime);
GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "HH':'mm':'ss",
GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "HH':'mm':'ss",
timeString, 100);
GetTimeFormat(LOCALE_SYSTEM_DEFAULT,0, &systemTime, "H", currtime, 3);
if(lasttime> atoi(currtime))
printDate=1;
lasttime = atoi(currtime);
#else
struct tm *ptime;
char dateString[10];
@ -80,10 +80,10 @@ void ooTraceLogMessage(const char * logMessage)
strftime(currtime, 3, "%H", ptime);
if(lasttime>atoi(currtime))
printDate = 1;
lasttime = atoi(currtime);
lasttime = atoi(currtime);
#endif
#ifdef _WIN32
if(printDate)
{
@ -92,25 +92,25 @@ void ooTraceLogMessage(const char * logMessage)
systemTime.wMonth, systemTime.wDay, systemTime.wYear);
}
if(printTime) {
fprintf(gH323ep.fptraceFile, "%s:%03d %s", timeString,
fprintf(gH323ep.fptraceFile, "%s:%03d %s", timeString,
systemTime.wMilliseconds, logMessage);
}
else
fprintf(gH323ep.fptraceFile, "%s", logMessage);
fflush(gH323ep.fptraceFile);
#else
if(printDate)
{
printDate = 0;
strftime(dateString, 10, "%d", ptime);
fprintf(gH323ep.fptraceFile, "---------Date %s---------\n",
fprintf(gH323ep.fptraceFile, "---------Date %s---------\n",
dateString);
}
if(printTime) {
struct timeval systemTime;
gettimeofday(&systemTime, NULL);
fprintf(gH323ep.fptraceFile, "%s:%03ld %s", timeString,
fprintf(gH323ep.fptraceFile, "%s:%03ld %s", timeString,
(long) systemTime.tv_usec/1000, logMessage);
}
else
@ -118,7 +118,7 @@ void ooTraceLogMessage(const char * logMessage)
fflush(gH323ep.fptraceFile);
#endif
if(strchr(logMessage, '\n'))
printTime = 1;
else
@ -131,4 +131,3 @@ int ooLogAsn1Error(int stat, const char * fname, int lno)
OOTRACEERR4("Asn1Error: %d at %s:%d\n", stat, fname, lno);
return stat;
}

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ootrace.h
* @file ootrace.h
* This file defines the trace functionality
*/
#include "ooCommon.h"
@ -67,7 +67,7 @@
#define OOTRACEINFO4(a,b,c,d) ooTrace(OOTRCLVLINFO,a,b,c,d)
#define OOTRACEINFO5(a,b,c,d,e) ooTrace(OOTRCLVLINFO,a,b,c,d,e)
#define OOTRACEINFO6(a,b,c,d,e,f) ooTrace(OOTRCLVLINFO,a,b,c,d,e, f)
#ifndef _COMPACT
#ifndef _COMPACT
#define OOTRACEDBGA1(a) ooTrace(OOTRCLVLDBGA,a)
#define OOTRACEDBGA2(a,b) ooTrace(OOTRCLVLDBGA,a,b)
#define OOTRACEDBGA3(a,b,c) ooTrace(OOTRCLVLDBGA,a,b,c)
@ -83,13 +83,13 @@
#define OOTRACEDBGC4(a,b,c,d) ooTrace(OOTRCLVLDBGC,a,b,c,d)
#define OOTRACEDBGC5(a,b,c,d,e) ooTrace(OOTRCLVLDBGC,a,b,c,d,e)
#else
#define OOTRACEDBGA1(a)
#define OOTRACEDBGA1(a)
#define OOTRACEDBGA2(a,b)
#define OOTRACEDBGA3(a,b,c)
#define OOTRACEDBGA4(a,b,c,d)
#define OOTRACEDBGA5(a,b,c,d,e)
#define OOTRACEDBGB1(a)
#define OOTRACEDBGB2(a,b)
#define OOTRACEDBGB2(a,b)
#define OOTRACEDBGB3(a,b,c)
#define OOTRACEDBGB4(a,b,c,d)
#define OOTRACEDBGC1(a)
@ -113,11 +113,11 @@ extern "C" {
/**
* This function is used to set the trace level.
* @param traceLevel New trace level. Various values are: OOTRCLVLERR,
* @param traceLevel New trace level. Various values are: OOTRCLVLERR,
* OOTRCLVLWARN, OOTRCLVLINFO, OOTRCLVLDBGA, OOTRCLVLDBGB,
* OOTRCLVLDBGC
*
* @return None
* @return None
*/
EXTERN void ooSetTraceThreshold(OOUINT32 traceLevel);
@ -126,7 +126,7 @@ EXTERN void ooSetTraceThreshold(OOUINT32 traceLevel);
*
* @param traceLevel Trace level for the message.
* @param fmtspec Printf style format spec.
* @param ... Printf style variable list of arguments
* @param ... Printf style variable list of arguments
*
* @return - none
*/

View File

@ -1,50 +1,50 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/*! \mainpage
/*! \mainpage
* <H1>ooH323c Stack Functions</H1>
*
* The <B>Objective Open H.323 for C (ooH323c)</B> protocol stack is an
* open source applications program interface (API) for building H.323 based
* applications. The stack implements Q.931/H.225 call signaling procedures,
* H.245 logical channel operations, and Registration, Admission, and Status
* The <B>Objective Open H.323 for C (ooH323c)</B> protocol stack is an
* open source applications program interface (API) for building H.323 based
* applications. The stack implements Q.931/H.225 call signaling procedures,
* H.245 logical channel operations, and Registration, Admission, and Status
* (RAS) messaging for Gatekeeper communications.
*
* The categories of user functions provided are as follows:
* <UL>
* <LI>Stack command functions. These are high level functions used to
* initiate common H.323 telephony operations (for example, to make a
* <LI>Stack command functions. These are high level functions used to
* initiate common H.323 telephony operations (for example, to make a
* call).</LI>
* <LI>Gatekeeper functions. These are high level functions for
* <LI>Gatekeeper functions. These are high level functions for
* managing communications with a gatekeeper using RAS messages.</LI>
* <LI>H.323 endpoint management functions. These are function for
* <LI>H.323 endpoint management functions. These are function for
* used for managing the global H.323 endpoint.</LI>
* <LI>Call management functions. These are functions used to manage
* <LI>Call management functions. These are functions used to manage
* active calls within the stack.</LI>
* <LI>Capability management functions. These functions are used for
* <LI>Capability management functions. These functions are used for
* negotiating capabilities between two different terminals.</LI>
* <LI>H.225 and H.245 message handling functions. Functions for
* <LI>H.225 and H.245 message handling functions. Functions for
* creating and handling H.323 standard ASN.1 messages.</LI>
* <LI>Q.931 functions. Functions for the execution of various
* <LI>Q.931 functions. Functions for the execution of various
* standard Q.931 operations.</LI>
* <LI>TCP/IP and UDP socket communication functions. Low-level
* <LI>TCP/IP and UDP socket communication functions. Low-level
* functions for writing data to and receiving data from sockets.</LI>
* </UL>
*/
*/
/**
* @file ootypes.h
* @file ootypes.h
* This file contains definitions of common constants and data structures.
*/
#ifndef _OOTYPES_H_
@ -71,7 +71,7 @@
#endif /* MAKE_DLL */
#endif /* EXTERN */
/**
/**
* @defgroup ootypes Common type and constant definitions.
* @{
*/
@ -86,7 +86,7 @@
*/
typedef enum OOMasterSlaveState {
OO_MasterSlave_Idle,
OO_MasterSlave_DetermineSent,
OO_MasterSlave_DetermineSent,
OO_MasterSlave_AckReceived,
OO_MasterSlave_Master,
OO_MasterSlave_Slave
@ -97,25 +97,25 @@ typedef enum OOMSAckStatus {
OO_msAck_remoteReceived
} OOMSAckStatus;
/**
* States defined for the capability exchange procedure.
/**
* States defined for the capability exchange procedure.
*/
typedef enum {
OO_LocalTermCapExchange_Idle,
OO_LocalTermCapSetSent,
OO_LocalTermCapSetAckRecvd,
OO_RemoteTermCapExchange_Idle,
OO_RemoteTermCapSetRecvd,
OO_LocalTermCapExchange_Idle,
OO_LocalTermCapSetSent,
OO_LocalTermCapSetAckRecvd,
OO_RemoteTermCapExchange_Idle,
OO_RemoteTermCapSetRecvd,
OO_RemoteTermCapSetAckSent
} OOCapExchangeState;
/**
/**
* Call clear reason codes.
*/
typedef enum OOCallClearReason {
OO_REASON_UNKNOWN=0,
OO_REASON_UNKNOWN=0,
OO_REASON_INVALIDMESSAGE,
OO_REASON_TRANSPORTFAILURE,
OO_REASON_TRANSPORTFAILURE,
OO_REASON_NOROUTE,
OO_REASON_NOUSER,
OO_REASON_NOBW,
@ -125,10 +125,10 @@ typedef enum OOCallClearReason {
OO_REASON_GK_UNREACHABLE,
OO_REASON_GK_CLEARED,
OO_REASON_NOCOMMON_CAPABILITIES,
OO_REASON_REMOTE_FWDED,
OO_REASON_REMOTE_FWDED,
OO_REASON_LOCAL_FWDED,
OO_REASON_REMOTE_CLEARED,
OO_REASON_LOCAL_CLEARED,
OO_REASON_REMOTE_CLEARED,
OO_REASON_LOCAL_CLEARED,
OO_REASON_REMOTE_BUSY,
OO_REASON_LOCAL_BUSY,
OO_REASON_REMOTE_NOANSWER,
@ -241,8 +241,8 @@ typedef enum OOCallMode {
/*TODO: Should add caller-id, callername etc. So that they can be changed per
call basis*/
/**
* This structure defines options that can be set at the level of an
* individual call. They override options set in the H.323 endpoint
* This structure defines options that can be set at the level of an
* individual call. They override options set in the H.323 endpoint
* structure.
*/
typedef struct ooCallOptions {
@ -252,7 +252,7 @@ typedef struct ooCallOptions {
OOCallMode callMode; /*!< Type of channel to setup with FastStart */
int transfercap; /* q931 cap */
}ooCallOptions;
struct OOH323CallData;
@ -266,4 +266,3 @@ typedef struct ooTimerCallback{
* @}
*/
#endif

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -23,7 +23,7 @@
ASN1BOOL isExtendableSize (Asn1SizeCnst* pSizeList);
static ASN1BOOL isFixedSize (Asn1SizeCnst* pSizeList);
ASN1BOOL alignCharStr
ASN1BOOL alignCharStr
(OOCTXT* pctxt, ASN1UINT len, ASN1UINT nbits, Asn1SizeCnst* pSize)
{
if (TRUE) {
@ -59,16 +59,16 @@ ASN1BOOL alignCharStr
return FALSE;
}
int bitAndOctetStringAlignmentTest (Asn1SizeCnst* pSizeList,
ASN1UINT itemCount,
int bitAndOctetStringAlignmentTest (Asn1SizeCnst* pSizeList,
ASN1UINT itemCount,
ASN1BOOL bitStrFlag,
ASN1BOOL* pAlignFlag)
{
ASN1UINT threshold = (bitStrFlag) ? 16 : 2;
if (pSizeList == 0 || itemCount > threshold)
if (pSizeList == 0 || itemCount > threshold)
*pAlignFlag = TRUE;
else if (isFixedSize(pSizeList))
else if (isFixedSize(pSizeList))
*pAlignFlag = FALSE;
else {
@ -91,8 +91,8 @@ int bitAndOctetStringAlignmentTest (Asn1SizeCnst* pSizeList,
return (ASN_OK);
}
Asn1SizeCnst* checkSize (Asn1SizeCnst* pSizeList,
ASN1UINT value,
Asn1SizeCnst* checkSize (Asn1SizeCnst* pSizeList,
ASN1UINT value,
ASN1BOOL* pExtendable)
{
Asn1SizeCnst* lpSize = pSizeList;
@ -132,7 +132,7 @@ int addSizeConstraint (OOCTXT* pctxt, Asn1SizeCnst* pSize)
lpSize = pSize;
while (lpSize) {
if (pctxt->pSizeConstraint->lower <= lpSize->lower ||
pctxt->pSizeConstraint->upper >= lpSize->upper)
pctxt->pSizeConstraint->upper >= lpSize->upper)
{
/* Set the extension flag to the value of the size */
/* constraint structure that the item falls within.. */
@ -196,32 +196,32 @@ int checkSizeConstraint(OOCTXT* pctxt, int size)
}
ASN1UINT getUIntBitCount (ASN1UINT value)
{
{
/* Binary search - decision tree (5 tests, rarely 6) */
return
((value < 1<<15) ?
((value < 1<<7) ?
((value < 1<<3) ?
((value < 1<<1) ? ((value < 1<<0) ? 0 : 1) :
((value < 1<<1) ? ((value < 1<<0) ? 0 : 1) :
((value < 1<<2) ? 2 : 3)) :
((value < 1<<5) ? ((value < 1<<4) ? 4 : 5) :
((value < 1<<5) ? ((value < 1<<4) ? 4 : 5) :
((value < 1<<6) ? 6 : 7))) :
((value < 1<<11) ?
((value < 1<<9) ? ((value < 1<<8) ? 8 : 9) :
((value < 1<<9) ? ((value < 1<<8) ? 8 : 9) :
((value < 1<<10) ? 10 : 11)) :
((value < 1<<13) ? ((value < 1<<12) ? 12 : 13) :
((value < 1<<13) ? ((value < 1<<12) ? 12 : 13) :
((value < 1<<14) ? 14 : 15)))) :
((value < 1<<23) ?
((value < 1<<19) ?
((value < 1<<17) ? ((value < 1<<16) ? 16 : 17) :
((value < 1<<17) ? ((value < 1<<16) ? 16 : 17) :
((value < 1<<18) ? 18 : 19)) :
((value < 1<<21) ? ((value < 1<<20) ? 20 : 21) :
((value < 1<<21) ? ((value < 1<<20) ? 20 : 21) :
((value < 1<<22) ? 22 : 23))) :
((value < 1<<27) ?
((value < 1<<25) ? ((value < 1<<24) ? 24 : 25) :
((value < 1<<25) ? ((value < 1<<24) ? 24 : 25) :
((value < 1<<26) ? 26 : 27)) :
((value < 1<<29) ? ((value < 1<<28) ? 28 : 29) :
((value < 1<<30) ? 30 :
((value < 1<<29) ? ((value < 1<<28) ? 28 : 29) :
((value < 1<<30) ? 30 :
((value < 1UL<<31) ? 31 : 32))))));
}
@ -257,7 +257,7 @@ static ASN1BOOL isFixedSize (Asn1SizeCnst* pSizeList)
return FALSE;
}
void set16BitCharSet
void set16BitCharSet
(OOCTXT* pctxt, Asn116BitCharSet* pCharSet, Asn116BitCharSet* pAlphabet)
{
/* Permitted alphabet range can either be specified as a range of */
@ -267,7 +267,7 @@ void set16BitCharSet
int nocts = pAlphabet->charSet.nchars * 2;
pCharSet->charSet.nchars = pAlphabet->charSet.nchars;
pCharSet->charSet.data =
pCharSet->charSet.data =
(ASN116BITCHAR*) ASN1MALLOC (pctxt, nocts);
if (pCharSet->charSet.data != NULL)
@ -286,4 +286,3 @@ void set16BitCharSet
pCharSet->alignedBits <<= 1;
}

View File

@ -1,20 +1,20 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/* This is an implementation of a simple print handler. It outputs
the fields of an encoded PER message to stdout in a structured output
/* This is an implementation of a simple print handler. It outputs
the fields of an encoded PER message to stdout in a structured output
format..
*/
#include "asterisk.h"
@ -36,10 +36,10 @@ AST_MUTEX_DEFINE_STATIC(printlock);
static const char* pVarName;
static int gIndentSpaces;
static const char* bitStrToString
static const char* bitStrToString
(ASN1UINT numbits, const ASN1OCTET* data, char* buffer, size_t bufsiz);
static const char* octStrToString
static const char* octStrToString
(ASN1UINT numocts, const ASN1OCTET* data, char* buffer, size_t bufsiz);
void printCharStr32BitValue (ASN1UINT nchars, ASN132BITCHAR* data);
@ -232,7 +232,7 @@ void printOpenTypeValue (ASN1UINT numocts, const ASN1OCTET* data)
OOTRACEDBGB1 ("< encoded data >\n");
}
static const char* bitStrToString
static const char* bitStrToString
(ASN1UINT numbits, const ASN1OCTET* data, char* buffer, size_t bufsiz)
{
size_t i;
@ -258,7 +258,7 @@ static const char* bitStrToString
return buffer;
}
static const char* octStrToString
static const char* octStrToString
(ASN1UINT numocts, const ASN1OCTET* data, char* buffer, size_t bufsiz)
{
size_t i;

View File

@ -1,22 +1,22 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
@file printHandler.h
This is an implementation of a simple print handler. It outputs
the fields of an encoded PER message to stdout in a structured output
@file printHandler.h
This is an implementation of a simple print handler. It outputs
the fields of an encoded PER message to stdout in a structured output
format..
*/

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -1,21 +1,21 @@
/*
* Copyright (C) 1997-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file rtctype.h
/**
* @file rtctype.h
*/
#ifndef _RTCTYPE_H_
#define _RTCTYPE_H_
@ -83,4 +83,3 @@ extern EXTERN const ASN1OCTET rtCtypeTable[256];
#endif
#endif /* _RTCTYPE_H_ */

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
@ -116,7 +116,7 @@ void* ooh323c_call_thread(void* dummy)
} while (mycthread->call != NULL && res >= 0);
ast_mutex_destroy(&mycthread->lock);
close(mycthread->thePipe[0]);
@ -240,10 +240,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g711 ulaw capability to H323 endpoint\n");
}
ret= ooH323EpAddG711Capability(OO_G711ULAW64K, gtxframes, grxframes,
ret= ooH323EpAddG711Capability(OO_G711ULAW64K, gtxframes, grxframes,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
if(ast_format_cmp(format, ast_format_alaw) == AST_FORMAT_CMP_EQUAL)
@ -251,10 +251,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g711 alaw capability to H323 endpoint\n");
}
ret= ooH323EpAddG711Capability(OO_G711ALAW64K, gtxframes, grxframes,
ret= ooH323EpAddG711Capability(OO_G711ALAW64K, gtxframes, grxframes,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -263,27 +263,27 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g729A capability to H323 endpoint\n");
}
ret = ooH323EpAddG729Capability(OO_G729A, 2, 24,
ret = ooH323EpAddG729Capability(OO_G729A, 2, 24,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
if (gH323Debug) {
ast_verb(0, "\tAdding g729 capability to H323 endpoint\n");
}
ret |= ooH323EpAddG729Capability(OO_G729, 2, 24,
ret |= ooH323EpAddG729Capability(OO_G729, 2, 24,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
if (gH323Debug) {
ast_verb(0, "\tAdding g729b capability to H323 endpoint\n");
}
ret |= ooH323EpAddG729Capability(OO_G729B, 2, 24,
ret |= ooH323EpAddG729Capability(OO_G729B, 2, 24,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -292,10 +292,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g7231 capability to H323 endpoint\n");
}
ret = ooH323EpAddG7231Capability(OO_G7231, 1, 1, FALSE,
ret = ooH323EpAddG7231Capability(OO_G7231, 1, 1, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -305,10 +305,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g726 capability to H323 endpoint\n");
}
ret = ooH323EpAddG726Capability(OO_G726, gtxframes, grxframes, FALSE,
ret = ooH323EpAddG726Capability(OO_G726, gtxframes, grxframes, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -318,10 +318,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding g726aal2 capability to H323 endpoint\n");
}
ret = ooH323EpAddG726Capability(OO_G726AAL2, gtxframes, grxframes, FALSE,
ret = ooH323EpAddG726Capability(OO_G726AAL2, gtxframes, grxframes, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -331,10 +331,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding h263 capability to H323 endpoint\n");
}
ret = ooH323EpAddH263VideoCapability(OO_H263VIDEO, 1, 0, 0, 0, 0, 320*1024,
ret = ooH323EpAddH263VideoCapability(OO_H263VIDEO, 1, 0, 0, 0, 0, 320*1024,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -344,10 +344,10 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding gsm capability to H323 endpoint\n");
}
ret = ooH323EpAddGSMCapability(OO_GSMFULLRATE, 4, FALSE, FALSE,
ret = ooH323EpAddGSMCapability(OO_GSMFULLRATE, 4, FALSE, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -357,17 +357,17 @@ int ooh323c_set_capability
if (gH323Debug) {
ast_verb(0, "\tAdding speex capability to H323 endpoint\n");
}
ret = ooH323EpAddSpeexCapability(OO_SPEEX, 4, 4, FALSE,
ret = ooH323EpAddSpeexCapability(OO_SPEEX, 4, 4, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
ao2_ref(format, -1);
ao2_ref(format, -1);
}
if(dtmf & H323_DTMF_CISCO)
ret |= ooH323EpEnableDTMFCISCO(0);
if(dtmf & H323_DTMF_RFC2833)
@ -386,7 +386,7 @@ int ooh323c_set_capability_for_call
{
int ret = 0, x, txframes;
if (gH323Debug) {
ast_verb(0, "\tAdding capabilities to call(%s, %s)\n", call->callType,
ast_verb(0, "\tAdding capabilities to call(%s, %s)\n", call->callType,
call->callToken);
}
if(dtmf & H323_DTMF_CISCO || 1)
@ -399,7 +399,7 @@ int ooh323c_set_capability_for_call
ret |= ooCallEnableDTMFH245Signal(call);
if (t38support)
ooCapabilityAddT38Capability(call, OO_T38, OORXANDTX,
ooCapabilityAddT38Capability(call, OO_T38, OORXANDTX,
&ooh323c_start_receive_datachannel,
&ooh323c_start_transmit_datachannel,
&ooh323c_stop_receive_datachannel,
@ -412,15 +412,15 @@ int ooh323c_set_capability_for_call
if(ast_format_cmp(format, ast_format_ulaw) == AST_FORMAT_CMP_EQUAL)
{
if (gH323Debug) {
ast_verb(0, "\tAdding g711 ulaw capability to call(%s, %s)\n",
ast_verb(0, "\tAdding g711 ulaw capability to call(%s, %s)\n",
call->callType, call->callToken);
}
txframes = ast_format_cap_get_format_framing(cap, format);
ret= ooCallAddG711Capability(call, OO_G711ULAW64K, txframes,
txframes, OORXANDTX,
ret= ooCallAddG711Capability(call, OO_G711ULAW64K, txframes,
txframes, OORXANDTX,
&ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
if(ast_format_cmp(format, ast_format_alaw) == AST_FORMAT_CMP_EQUAL)
@ -430,11 +430,11 @@ int ooh323c_set_capability_for_call
call->callType, call->callToken);
}
txframes = ast_format_cap_get_format_framing(cap, format);
ret= ooCallAddG711Capability(call, OO_G711ALAW64K, txframes,
txframes, OORXANDTX,
ret= ooCallAddG711Capability(call, OO_G711ALAW64K, txframes,
txframes, OORXANDTX,
&ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -448,7 +448,7 @@ int ooh323c_set_capability_for_call
ret = ooCallAddG726Capability(call, OO_G726, txframes, grxframes, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -463,23 +463,23 @@ int ooh323c_set_capability_for_call
ret = ooCallAddG726Capability(call, OO_G726AAL2, txframes, grxframes, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
if(ast_format_cmp(format, ast_format_g729) == AST_FORMAT_CMP_EQUAL)
{
txframes = (ast_format_cap_get_format_framing(cap, format))/10;
if (gH323Debug) {
ast_verb(0, "\tAdding g729A capability to call(%s, %s)\n",
call->callType, call->callToken);
}
ret= ooCallAddG729Capability(call, OO_G729A, txframes, txframes,
ret= ooCallAddG729Capability(call, OO_G729A, txframes, txframes,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
if (g729onlyA)
continue;
@ -487,19 +487,19 @@ int ooh323c_set_capability_for_call
ast_verb(0, "\tAdding g729 capability to call(%s, %s)\n",
call->callType, call->callToken);
}
ret|= ooCallAddG729Capability(call, OO_G729, txframes, txframes,
ret|= ooCallAddG729Capability(call, OO_G729, txframes, txframes,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
if (gH323Debug) {
ast_verb(0, "\tAdding g729B capability to call(%s, %s)\n",
call->callType, call->callToken);
}
ret|= ooCallAddG729Capability(call, OO_G729B, txframes, txframes,
ret|= ooCallAddG729Capability(call, OO_G729B, txframes, txframes,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -510,10 +510,10 @@ int ooh323c_set_capability_for_call
ast_verb(0, "\tAdding g7231 capability to call (%s, %s)\n",
call->callType, call->callToken);
}
ret = ooCallAddG7231Capability(call, OO_G7231, 1, 1, FALSE,
ret = ooCallAddG7231Capability(call, OO_G7231, 1, 1, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -524,10 +524,10 @@ int ooh323c_set_capability_for_call
ast_verb(0, "\tAdding h263 capability to call (%s, %s)\n",
call->callType, call->callToken);
}
ret = ooCallAddH263VideoCapability(call, OO_H263VIDEO, 1, 0, 0, 0, 0, 320*1024,
ret = ooCallAddH263VideoCapability(call, OO_H263VIDEO, 1, 0, 0, 0, 0, 320*1024,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -535,26 +535,26 @@ int ooh323c_set_capability_for_call
if(ast_format_cmp(format, ast_format_gsm) == AST_FORMAT_CMP_EQUAL)
{
if (gH323Debug) {
ast_verb(0, "\tAdding gsm capability to call(%s, %s)\n",
ast_verb(0, "\tAdding gsm capability to call(%s, %s)\n",
call->callType, call->callToken);
}
ret = ooCallAddGSMCapability(call, OO_GSMFULLRATE, 4, FALSE, FALSE,
ret = ooCallAddGSMCapability(call, OO_GSMFULLRATE, 4, FALSE, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
if(ast_format_cmp(format, ast_format_speex) == AST_FORMAT_CMP_EQUAL)
{
if (gH323Debug) {
ast_verb(0, "\tAdding Speex capability to call(%s, %s)\n",
ast_verb(0, "\tAdding Speex capability to call(%s, %s)\n",
call->callType, call->callToken);
}
ret = ooCallAddSpeexCapability(call, OO_SPEEX, 4, 4, FALSE,
ret = ooCallAddSpeexCapability(call, OO_SPEEX, 4, 4, FALSE,
OORXANDTX, &ooh323c_start_receive_channel,
&ooh323c_start_transmit_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_receive_channel,
&ooh323c_stop_transmit_channel);
}
@ -569,7 +569,7 @@ int ooh323c_set_aliases(ooAliases * aliases)
while(cur)
{
switch(cur->type)
{
{
case T_H225AliasAddress_dialedDigits:
ooH323EpAddAliasDialedDigits(cur->value);
break;
@ -589,7 +589,7 @@ int ooh323c_set_aliases(ooAliases * aliases)
}
return 1;
}
int ooh323c_start_receive_channel(ooCallData *call, ooLogicalChannel *pChannel)
{
struct ast_format *tmpfmt = NULL;
@ -694,5 +694,3 @@ struct ast_format *convertH323CapToAsteriskCap(int cap)
return NULL;
}

View File

@ -1,15 +1,15 @@
/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/

View File

@ -447,7 +447,7 @@ static struct ast_config *realtime_multi_mysql(const char *database, const char
release_database(dbh);
return NULL;
}
if (!(cfg = ast_config_new())) {
/* If I can't alloc memory at this point, why bother doing anything else? */
ast_log(LOG_WARNING, "Out of memory!\n");
@ -749,7 +749,7 @@ static int update2_mysql(const char *database, const char *tablename, const stru
return (int)numrows;
}
static int store_mysql(const char *database, const char *table, const struct ast_variable *rt_fields)
{
struct mysql_conn *dbh;
@ -873,7 +873,7 @@ static int destroy_mysql(const char *database, const char *table, const char *ke
return (int)numrows;
}
static struct ast_config *config_mysql(const char *database, const char *table, const char *file, struct ast_config *cfg, struct ast_flags config_flags, const char *unused, const char *who_asked)
{
struct mysql_conn *dbh;
@ -1561,4 +1561,3 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "MySQL RealTime Config
.reload = reload,
.load_pri = AST_MODPRI_REALTIME_DRIVER,
);

View File

@ -1,6 +1,6 @@
#
# Asterisk -- An open source telephony toolkit.
#
#
# Makefile for AGI-related stuff
#
# Copyright (C) 1999-2006, Digium

View File

@ -101,7 +101,7 @@ static int read_environment(void)
/* Load into normal environment */
setenv(buf, val, 1);
}
/* Never reached */
return 0;
@ -163,7 +163,7 @@ static char *wait_result(void)
}
}
}
}
static char *run_command(char *command)

View File

@ -50,7 +50,7 @@ static int read_environment(void)
/* Load into normal environment */
setenv(buf, val, 1);
}
/* Never reached */
return 0;
@ -101,7 +101,7 @@ static char *wait_result(void)
}
}
}
}
static char *run_command(char *command)

View File

@ -265,12 +265,12 @@ MYCONTINUE:
my $cmdr = `ln -s $mp3 $link`;
chomp($cmdr);
print "Failed to create symlink to mp3: $cmdr\n" if $cmdr ne '';
print "EXEC MP3Player \"$link\"\n";
my $result = <STDIN>; &check_result($result);
`rm $link`;
if (!$MENUAFTERSONG) {
print "EXEC Playback \"$FESTIVALCACHE/jukebox_thankyou\"\n";
my $result = <STDIN>; &check_result($result);

View File

@ -1,6 +1,6 @@
#
# Asterisk -- An open source telephony toolkit.
#
#
# Makefile for PBX applications
#
# Copyright (C) 1999-2006, Digium, Inc.

View File

@ -29,7 +29,7 @@
* \addtogroup configuration_file Configuration Files
*/
/*!
/*!
* \page adsi.conf adsi.conf
* \verbinclude adsi.conf.sample
*/
@ -933,7 +933,7 @@ static const struct adsi_key_cmd kcmds[] = {
};
static const struct adsi_key_cmd opcmds[] = {
/* 1 - Branch on event -- handled specially */
{ "SHOWKEYS", 2, showkeys },
/* Display Control */
@ -1573,7 +1573,7 @@ static int adsi_prog(struct ast_channel *chan, const char *script)
static int adsi_exec(struct ast_channel *chan, const char *data)
{
int res = 0;
if (ast_strlen_zero(data))
data = "asterisk.adsi";
@ -1598,8 +1598,8 @@ static int unload_module(void)
* Module loading including tests for configuration or dependencies.
* This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
* or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
*/
static int load_module(void)

View File

@ -32,7 +32,7 @@
* \addtogroup configuration_file Configuration Files
*/
/*!
/*!
* \page amd.conf amd.conf
* \verbinclude amd.conf.sample
*/
@ -314,7 +314,7 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
if (dspsilence > 0) {
silenceDuration = dspsilence;
if (silenceDuration >= betweenWordsSilence) {
if (currentState != STATE_IN_SILENCE ) {
ast_verb(3, "AMD: Channel [%s]. Changed state to STATE_IN_SILENCE\n", ast_channel_name(chan));
@ -336,7 +336,7 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
res = 1;
break;
}
if (silenceDuration >= afterGreetingSilence && inGreeting == 1) {
ast_verb(3, "AMD: Channel [%s]. HUMAN: silenceDuration:%d afterGreetingSilence:%d\n",
ast_channel_name(chan), silenceDuration, afterGreetingSilence);
@ -346,7 +346,7 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
res = 1;
break;
}
} else {
consecutiveVoiceDuration += framelength;
voiceDuration += framelength;
@ -395,12 +395,12 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
inInitialSilence = 0;
inGreeting = 1;
}
}
}
ast_frfree(f);
}
if (!res) {
/* It took too long to get a frame back. Giving up. */
ast_verb(3, "AMD: Channel [%s]. Too long...\n", ast_channel_name(chan));
@ -505,8 +505,8 @@ static int unload_module(void)
* Module loading including tests for configuration or dependencies.
* This function can return AST_MODULE_LOAD_FAILURE, AST_MODULE_LOAD_DECLINE,
* or AST_MODULE_LOAD_SUCCESS. If a dependency or environment variable fails
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* tests return AST_MODULE_LOAD_FAILURE. If the module can not load the
* configuration file or other non-critical problem return
* AST_MODULE_LOAD_DECLINE. On success return AST_MODULE_LOAD_SUCCESS.
*/
static int load_module(void)

View File

@ -101,7 +101,7 @@ static const char app[] = "Authenticate";
</syntax>
<description>
<para>This application asks the caller to enter a given password in order to continue dialplan execution.</para>
<para>If the password begins with the <literal>/</literal> character,
<para>If the password begins with the <literal>/</literal> character,
it is interpreted as a file which contains a list of valid passwords, listed 1 password per line in the file.</para>
<para>When using a database key, the value associated with the key can be anything.</para>
<para>Users have three attempts to authenticate before the channel is hung up.</para>
@ -156,7 +156,7 @@ static int auth_exec(struct ast_channel *chan, const char *data)
} else {
prompt = "agent-pass";
}
/* Start asking for password */
for (retries = 0; retries < 3; retries++) {
if ((res = ast_app_getdata(chan, prompt, passwd, maxdigits, 0)) < 0)

View File

@ -91,7 +91,7 @@ static const char app[] = "ChanIsAvail";
</variable>
<variable name="AVAILCAUSECODE">
<para>The cause code returned when requesting the channel</para>
</variable>
</variable>
</variablelist>
</description>
</application>
@ -171,7 +171,7 @@ static int chanavail_exec(struct ast_channel *chan, const char *data)
ast_str_append(&tmp_availstat, 0, "%s%s", ast_str_strlen(tmp_availstat) ? "&" : "", tmp);
if ((inuse <= 1) && (tempchan = ast_request(tech, ast_channel_nativeformats(chan), NULL, chan, number, &status))) {
ast_str_append(&tmp_availchan, 0, "%s%s", ast_str_strlen(tmp_availchan) ? "&" : "", ast_channel_name(tempchan));
snprintf(tmp, sizeof(tmp), "%s/%s", tech, number);
ast_str_append(&tmp_availorig, 0, "%s%s", ast_str_strlen(tmp_availorig) ? "&" : "", tmp);
@ -210,4 +210,3 @@ static int load_module(void)
}
AST_MODULE_INFO_STANDARD_EXTENDED(ASTERISK_GPL_KEY, "Check channel availability");

View File

@ -99,7 +99,7 @@
<option name="e">
<argument name="ext" required="true" />
<para>Enable <emphasis>enforced</emphasis> mode, so the spying channel can
only monitor extensions whose name is in the <replaceable>ext</replaceable> : delimited
only monitor extensions whose name is in the <replaceable>ext</replaceable> : delimited
list.</para>
</option>
<option name="E">
@ -111,7 +111,7 @@
listed in <replaceable>grp</replaceable> matches one or more groups from the
<variable>SPYGROUP</variable> variable set on the channel to be spied upon.</para>
</argument>
<note><para>both <replaceable>grp</replaceable> and <variable>SPYGROUP</variable> can contain
<note><para>both <replaceable>grp</replaceable> and <variable>SPYGROUP</variable> can contain
either a single group or a colon-delimited list of groups, such
as <literal>sales:support:accounting</literal>.</para></note>
</option>
@ -137,7 +137,7 @@
selected channel name.</para>
</option>
<option name="r">
<para>Record the session to the monitor spool directory. An optional base for the filename
<para>Record the session to the monitor spool directory. An optional base for the filename
may be specified. The default is <literal>chanspy</literal>.</para>
<argument name="basename" />
</option>
@ -154,7 +154,7 @@
</option>
<option name="v">
<argument name="value" />
<para>Adjust the initial volume in the range from <literal>-4</literal>
<para>Adjust the initial volume in the range from <literal>-4</literal>
to <literal>4</literal>. A negative value refers to a quieter setting.</para>
</option>
<option name="w">
@ -179,11 +179,11 @@
name of the last channel that was spied on will be stored
in the <variable>SPY_CHANNEL</variable> variable.</para>
</option>
</optionlist>
</optionlist>
</parameter>
</syntax>
<description>
<para>This application is used to listen to the audio from an Asterisk channel. This includes the audio
<para>This application is used to listen to the audio from an Asterisk channel. This includes the audio
coming in and out of the channel being spied on. If the <literal>chanprefix</literal> parameter is specified,
only channels beginning with this string will be spied upon.</para>
<para>While spying, the following actions may be performed:</para>
@ -248,7 +248,7 @@
<option name="e">
<argument name="ext" required="true" />
<para>Enable <emphasis>enforced</emphasis> mode, so the spying channel can
only monitor extensions whose name is in the <replaceable>ext</replaceable> : delimited
only monitor extensions whose name is in the <replaceable>ext</replaceable> : delimited
list.</para>
</option>
<option name="E">
@ -260,7 +260,7 @@
listed in <replaceable>grp</replaceable> matches one or more groups from the
<variable>SPYGROUP</variable> variable set on the channel to be spied upon.</para>
</argument>
<note><para>both <replaceable>grp</replaceable> and <variable>SPYGROUP</variable> can contain
<note><para>both <replaceable>grp</replaceable> and <variable>SPYGROUP</variable> can contain
either a single group or a colon-delimited list of groups, such
as <literal>sales:support:accounting</literal>.</para></note>
</option>
@ -286,7 +286,7 @@
selected channel name.</para>
</option>
<option name="r">
<para>Record the session to the monitor spool directory. An optional base for the filename
<para>Record the session to the monitor spool directory. An optional base for the filename
may be specified. The default is <literal>chanspy</literal>.</para>
<argument name="basename" />
</option>
@ -299,7 +299,7 @@
</option>
<option name="v">
<argument name="value" />
<para>Adjust the initial volume in the range from <literal>-4</literal>
<para>Adjust the initial volume in the range from <literal>-4</literal>
to <literal>4</literal>. A negative value refers to a quieter setting.</para>
</option>
<option name="w">
@ -324,13 +324,13 @@
name of the last channel that was spied on will be stored
in the <variable>SPY_CHANNEL</variable> variable.</para>
</option>
</optionlist>
</optionlist>
</parameter>
</syntax>
<description>
<para>This application is used to listen to the audio from an Asterisk channel. This includes
<para>This application is used to listen to the audio from an Asterisk channel. This includes
the audio coming in and out of the channel being spied on. Only channels created by outgoing calls for the
specified extension will be selected for spying. If the optional context is not supplied,
specified extension will be selected for spying. If the optional context is not supplied,
the current channel's context will be used.</para>
<para>While spying, the following actions may be performed:</para>
<para> - Dialing <literal>#</literal> cycles the volume level.</para>
@ -1039,7 +1039,7 @@ static int common_exec(struct ast_channel *chan, struct ast_flags *flags,
num_mygroups = ast_app_separate_args(dup_mygroup, ':', mygroups,
ARRAY_LEN(mygroups));
/* Before dahdi scan was part of chanspy, it would use the "GROUP" variable
/* Before dahdi scan was part of chanspy, it would use the "GROUP" variable
* rather than "SPYGROUP", this check is done to preserve expected behavior */
ast_autochan_channel_lock(autochan);
if (ast_test_flag(flags, OPTION_DAHDI_SCAN)) {

View File

@ -219,7 +219,7 @@ static int controlplayback_exec(struct ast_channel *chan, const char *data)
ast_log(LOG_WARNING, "ControlPlayback requires an argument (filename)\n");
return -1;
}
tmp = ast_strdupa(data);
AST_STANDARD_APP_ARGS(args, tmp);

View File

@ -21,7 +21,7 @@
* \brief Execute an ISDN RAS
*
* \author Mark Spencer <markster@digium.com>
*
*
* \ingroup applications
*/
@ -131,7 +131,7 @@ static void run_ras(struct ast_channel *chan, char *args)
int signalled = 0;
struct dahdi_bufferinfo savebi;
int x;
res = ioctl(ast_channel_fd(chan, 0), DAHDI_GET_BUFINFO, &savebi);
if(res) {
ast_log(LOG_WARNING, "Unable to check buffer policy on channel %s\n", ast_channel_name(chan));
@ -161,7 +161,7 @@ static void run_ras(struct ast_channel *chan, char *args)
if (WIFEXITED(status)) {
ast_verb(3, "RAS on %s terminated with status %d\n", ast_channel_name(chan), WEXITSTATUS(status));
} else if (WIFSIGNALED(status)) {
ast_verb(3, "RAS on %s terminated with signal %d\n",
ast_verb(3, "RAS on %s terminated with signal %d\n",
ast_channel_name(chan), WTERMSIG(status));
} else {
ast_verb(3, "RAS on %s terminated weirdly.\n", ast_channel_name(chan));
@ -187,11 +187,11 @@ static int dahdiras_exec(struct ast_channel *chan, const char *data)
char *args;
struct dahdi_params dahdip;
if (!data)
if (!data)
data = "";
args = ast_strdupa(data);
/* Answer the channel if it's not up */
if (ast_channel_state(chan) != AST_STATE_UP)
ast_answer(chan);
@ -216,7 +216,7 @@ static int dahdiras_exec(struct ast_channel *chan, const char *data)
return res;
}
static int unload_module(void)
static int unload_module(void)
{
return ast_unregister_application(app);
}
@ -227,5 +227,3 @@ static int load_module(void)
}
AST_MODULE_INFO_STANDARD_EXTENDED(ASTERISK_GPL_KEY, "DAHDI ISDN Remote Access Server");

View File

@ -405,7 +405,7 @@
</argument>
</option>
<option name="R">
<para>Default: Indicate ringing to the calling party, even if the called party isn't actually ringing.
<para>Default: Indicate ringing to the calling party, even if the called party isn't actually ringing.
Allow interruption of the ringback if early media is received on the channel.</para>
</option>
<option name="S">

View File

@ -200,7 +200,7 @@ static int dictate_exec(struct ast_channel *chan, const char *data)
samples += ffactor;
ast_seekstream(fs, samples, SEEK_SET);
break;
default:
got = 0;
}
@ -256,7 +256,7 @@ static int dictate_exec(struct ast_channel *chan, const char *data)
break;
}
}
} else if (f->frametype == AST_FRAME_VOICE) {
switch(mode) {
struct ast_frame *fr;
@ -328,7 +328,7 @@ static int dictate_exec(struct ast_channel *chan, const char *data)
}
break;
}
}
ast_frfree(f);
@ -354,4 +354,3 @@ static int load_module(void)
}
AST_MODULE_INFO_STANDARD_EXTENDED(ASTERISK_GPL_KEY, "Virtual Dictation Machine");

Some files were not shown because too many files have changed in this diff Show More