Asterisk - The Open Source Telephony Project GIT-master-2de1a68
chan_ooh323.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2004-2005 by Objective Systems, Inc.
3 *
4 * This software is furnished under an open source license and may be
5 * used and copied only in accordance with the terms of this license.
6 * The text of the license may generally be found in the root
7 * directory of this installation in the COPYING file. It
8 * can also be viewed online at the following URL:
9 *
10 * http://www.obj-sys.com/open/license.html
11 *
12 * Any redistributions of this file including modified versions must
13 * maintain this copyright notice.
14 *
15 *****************************************************************************/
16#ifndef _OO_CHAN_H323_H_
17#define _OO_CHAN_H323_H_
18
19#include "asterisk.h"
20#undef PACKAGE_NAME
21#undef PACKAGE_TARNAME
22#undef PACKAGE_VERSION
23#undef PACKAGE_STRING
24#undef PACKAGE_BUGREPORT
25
26#include <stdlib.h>
27#include <stdio.h>
28#include <string.h>
29#include <sys/socket.h>
30#include <sys/param.h>
31#include <arpa/inet.h>
32#include <net/if.h>
33#include <netinet/in.h>
34#include <netinet/in_systm.h>
35#include <netinet/ip.h>
36#include <unistd.h>
37#include <netdb.h>
38#include <errno.h>
39#include <fcntl.h>
40#include <signal.h>
41
42#include "asterisk/lock.h"
43#include "asterisk/channel.h"
44#include "asterisk/config.h"
45#include "asterisk/logger.h"
46#include "asterisk/module.h"
47#include "asterisk/pbx.h"
48#include "asterisk/utils.h"
49#include "asterisk/options.h"
50#include "asterisk/sched.h"
51#include "asterisk/io.h"
52#include "asterisk/causes.h"
53#include "asterisk/rtp_engine.h"
54#include "asterisk/acl.h"
55#include "asterisk/callerid.h"
56#include "asterisk/file.h"
57#include "asterisk/cli.h"
58#include "asterisk/app.h"
60#include "asterisk/manager.h"
61#include "asterisk/dsp.h"
63#include "asterisk/format.h"
64#include "asterisk/format_cap.h"
65#include "asterisk/udptl.h"
68#include "asterisk/paths.h"
69
70#include "ootypes.h"
71#include "ooUtils.h"
72#include "ooCapability.h"
73#include "oochannels.h"
74#include "ooh323ep.h"
75#include "ooh323cDriver.h"
76#include "ooCalls.h"
77#include "ooq931.h"
78#include "ooStackCmds.h"
79#include "ooCapability.h"
80#include "ooGkClient.h"
81
82
83struct ooh323_pvt;
84struct ooh323_user;
85struct ooh323_peer;
86/* Helper functions */
87struct ooh323_user *find_user(const char * name, const char *ip);
88struct ooh323_peer *find_peer(const char * name, int port);
89void ooh323_delete_peer(struct ooh323_peer *peer);
90
91int delete_users(void);
92int delete_peers(void);
93
94int ooh323_destroy(struct ooh323_pvt *p);
95int reload_config(int reload);
96int restart_monitor(void);
97
98int configure_local_rtp(struct ooh323_pvt *p, ooCallData* call);
99void setup_rtp_connection(ooCallData *call, const char *remoteIp,
100 int remotePort);
101void close_rtp_connection(ooCallData *call);
103 (struct ast_channel *ast, struct ooh323_pvt *p);
104
105void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txframes);
106void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt);
107
109
112int update_our_aliases(ooCallData *call, struct ooh323_pvt *p);
113
114/* h323 msg callbacks */
115int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg);
116int ooh323_onReceivedDigit(OOH323CallData *call, const char* digit);
117
118void setup_udptl_connection(ooCallData *call, const char *remoteIp, int remotePort);
119void close_udptl_connection(ooCallData *call);
120
121EXTERN char *handle_cli_ooh323_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
122
123#endif
Access Control of various sorts.
char digit
Asterisk main include file. File version handling, generic pbx functions.
CallerID (and other GR30) management and generation Includes code and algorithms from the Zapata libr...
Internal Asterisk hangup causes.
int ooh323_onReceivedDigit(OOH323CallData *call, const char *digit)
Definition: chan_ooh323.c:1798
void setup_rtp_connection(ooCallData *call, const char *remoteIp, int remotePort)
Definition: chan_ooh323.c:4775
int delete_users(void)
Definition: chan_ooh323.c:4265
void ooh323_delete_peer(struct ooh323_peer *peer)
Definition: chan_ooh323.c:2328
void close_rtp_connection(ooCallData *call)
Definition: chan_ooh323.c:4810
int ooh323_destroy(struct ooh323_pvt *p)
Definition: chan_ooh323.c:4117
EXTERN char * handle_cli_ooh323_reload(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
Definition: chan_ooh323.c:2778
int configure_local_rtp(struct ooh323_pvt *p, ooCallData *call)
Definition: chan_ooh323.c:4599
struct ooh323_user * find_user(const char *name, const char *ip)
Definition: chan_ooh323.c:832
int restart_monitor(void)
Definition: chan_ooh323.c:4082
void close_udptl_connection(ooCallData *call)
Definition: chan_ooh323.c:4901
int ooh323_onReceivedSetup(ooCallData *call, Q931Message *pmsg)
Definition: chan_ooh323.c:1840
void ooh323_set_read_format(ooCallData *call, struct ast_format *fmt)
Definition: chan_ooh323.c:1625
int update_our_aliases(ooCallData *call, struct ooh323_pvt *p)
Definition: chan_ooh323.c:4949
struct ooh323_peer * find_peer(const char *name, int port)
Definition: chan_ooh323.c:890
struct ast_frame * ooh323_rtp_read(struct ast_channel *ast, struct ooh323_pvt *p)
Definition: chan_ooh323.c:4978
int ooh323_convertAsteriskCapToH323Cap(struct ast_format *format)
Definition: chan_ooh323.c:4506
int ooh323_convert_hangupcause_h323ToAsterisk(int cause)
Definition: chan_ooh323.c:5206
int reload_config(int reload)
Definition: chan_ooh323.c:2813
int delete_peers(void)
Definition: chan_ooh323.c:4230
void setup_udptl_connection(ooCallData *call, const char *remoteIp, int remotePort)
Definition: chan_ooh323.c:4839
void ooh323_set_write_format(ooCallData *call, struct ast_format *fmt, int txframes)
Definition: chan_ooh323.c:1553
int ooh323_convert_hangupcause_asteriskToH323(int cause)
Definition: chan_ooh323.c:5179
static int call(void *data)
Definition: chan_pjsip.c:2391
General Asterisk PBX channel definitions.
Standard Command Line Interface.
Convenient Signal Processing routines.
Generic File Format Support. Should be included by clients of the file handling routines....
Media Format API.
Media Format Cache API.
Format Capabilities API.
static const char name[]
Definition: format_mp3.c:68
Application convenience functions, designed to give consistent look and feel to Asterisk apps.
Configuration File Parser.
Support for logging to various files, console and syslog Configuration in file logger....
I/O Management (derived from Cheops-NG)
Asterisk locking-related definitions:
The AMI - Asterisk Manager Interface - is a TCP protocol created to manage Asterisk with third-party ...
Asterisk module definitions.
Music on hold handling.
Options provided by main asterisk program.
Asterisk file paths, configured in asterisk.conf.
Core PBX routines and definitions.
static int reload(void)
Pluggable RTP Architecture.
Scheduler Routines (derived from cheops)
Main Channel structure associated with a channel.
descriptor for a cli entry.
Definition: cli.h:171
Definition of a media format.
Definition: format.c:43
Data structure associated with a single frame of data.
static struct test_val a
UDPTL support for T.38.
Utility functions.