Remove as much trailing whitespace as possible.
Change-Id: I873c1c6d00f447269bd841494459efccdd2c19c0
This commit is contained in:
parent
9ef97b5a91
commit
fd0ca1c3f9
1
Makefile
1
Makefile
|
@ -1113,4 +1113,3 @@ FORCE:
|
|||
|
||||
# This only stops targets within the root Makefile from building in parallel.
|
||||
.NOTPARALLEL:
|
||||
|
||||
|
|
|
@ -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))
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -718,4 +718,3 @@ AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "MySQL CDR Backend",
|
|||
.unload = unload_module,
|
||||
.reload = reload,
|
||||
);
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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,
|
||||
¶meters, 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,
|
||||
¶meters, 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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]");
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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";
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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_ */
|
||||
|
|
|
@ -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) );
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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_ */
|
||||
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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..
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
*/
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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..
|
||||
*/
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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_ */
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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.
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
|
|
@ -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,
|
||||
);
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Asterisk -- An open source telephony toolkit.
|
||||
#
|
||||
#
|
||||
# Makefile for AGI-related stuff
|
||||
#
|
||||
# Copyright (C) 1999-2006, Digium
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Asterisk -- An open source telephony toolkit.
|
||||
#
|
||||
#
|
||||
# Makefile for PBX applications
|
||||
#
|
||||
# Copyright (C) 1999-2006, Digium, Inc.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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");
|
||||
|
||||
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue