diff options
author | Russell Bryant <russell@russellbryant.com> | 2009-06-30 16:40:38 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2009-06-30 16:40:38 +0000 |
commit | c511a2674906fd93470f0a9b77340041771466e1 (patch) | |
tree | d3d6aa7ea86d11ecaa6e88efbc46a5dde1c63ea5 /addons/ooh323c/src/ooports.h | |
parent | 62d3f1dfd9632f18c4f7c12e44af30f4cc08c292 (diff) |
Move Asterisk-addons modules into the main Asterisk source tree.
Someone asked yesterday, "is there a good reason why we can't just put these
modules in Asterisk?". After a brief discussion, as long as the modules are
clearly set aside in their own directory and not enabled by default, it is
perfectly fine.
For more information about why a module goes in addons, see README-addons.txt.
chan_ooh323 does not currently compile as it is behind some trunk API updates.
However, it will not build by default, so it should be okay for now.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@204413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'addons/ooh323c/src/ooports.h')
-rw-r--r-- | addons/ooh323c/src/ooports.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/addons/ooh323c/src/ooports.h b/addons/ooh323c/src/ooports.h new file mode 100644 index 000000000..0b53e8af8 --- /dev/null +++ b/addons/ooh323c/src/ooports.h @@ -0,0 +1,91 @@ +/* + * 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 + * 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 + * maintain this copyright notice. + * + *****************************************************************************/ + +/** + * @file ooports.h + * This file contains functions to manage ports used by the stack. + */ + +#ifndef _OOPORTS_H_ +#define _OOPORTS_H_ + +#include "ootypes.h" + +typedef enum OOH323PortType { + OOTCP, OOUDP, OORTP +} OOH323PortType; + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef EXTERN +#ifdef MAKE_DLL +#define EXTERN __declspec(dllexport) +#else +#define EXTERN +#endif /* MAKE_DLL */ +#endif /* EXTERN */ + +/** + * 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 + * first port number of the range. + * + * @param ep Reference to the H323 Endpoint structure. + * @param type Type of the port to be retrieved(OOTCP/OOUDP/OORTP). + * + * @return The next port number for the specified type is returned. + */ +EXTERN int ooGetNextPort (OOH323PortType type); + +/** + * Bind socket to a port within the port range specified by the + * application at the startup. + * + * @param ep Reference to H323 Endpoint structure. + * @param type Type of the port required for the socket. + * @param socket The socket to be bound. + * @param ip Dotted Ip address to bind to. + * + * @return In case of success returns the port number to which + * socket is bound and in case of failure just returns + * a negative value. +*/ +EXTERN int ooBindPort (OOH323PortType type, OOSOCKET socket, char *ip); + +/** + * 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. + * @param socket Socket to be bound. + * @param ip Dotted ip address to bind to. + * + * @return In case of success returns the port number to which + * socket is bound and in case of failure just returns + * a negative value. + */ +#ifdef _WIN32 +EXTERN int ooBindOSAllocatedPort(OOSOCKET socket, char *ip); +#endif + +#ifdef __cplusplus +} +#endif + +#endif |