Don't do reinvite if both parties talk diffrent codecs
[asterisk/asterisk.git] / channels / h323 / chan_h323.h
index ec718f9..78d7fd4 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * chan_oh323.h
+ * chan_h323.h
  *
  * OpenH323 Channel Driver for ASTERISK PBX.
  *                     By Jeremy McNamara
  *
  * This file is part of the chan_oh323 driver for Asterisk
  *
- * chan_oh323 is free software; you can redistribute it and/or modify
+ * chan_h323 is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version. 
  *
- * chan_oh323 is distributed WITHOUT ANY WARRANTY; without even 
+ * chan_h323 is distributed WITHOUT ANY WARRANTY; without even 
  * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
  * PURPOSE. See the GNU General Public License for more details. 
  *
@@ -23,6 +23,7 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
  *
+ * Version Info: $Id$
  */
 
 #include <arpa/inet.h>
@@ -37,14 +38,15 @@ struct oh323_user {
        char callerid[80];
        char accountcode[20];
        int amaflags;
-       int     noFastStart;
-       int     noH245Tunneling;
-       int     noSilenceSuppression;
+       int noFastStart;
+       int noH245Tunneling;
+       int noSilenceSuppression;
        int inUse;
        int incominglimit;
        int bridge;
        int nat;
        int dtmfmode;
+       int host;
        struct ast_ha *ha;
        struct sockaddr_in addr;
        struct oh323_user *next;
@@ -83,10 +85,10 @@ struct oh323_alias {
        PBX application and passed through make_call 
        function*/
 typedef struct call_options {
+       char               *callerid;
        int                             noFastStart;
        int                             noH245Tunnelling;
        int                             noSilenceSuppression;
-       int                             jitter;
        unsigned int    port;
 } call_options_t;
 
@@ -95,6 +97,7 @@ typedef struct call_options {
        asterisk channels to acutal h.323 connections */
 typedef struct call_details {  
        unsigned int call_reference;
+
        const char *call_token;                         
        const char *call_source_aliases;
        const char *call_dest_alias;
@@ -103,6 +106,11 @@ typedef struct call_details {
        const char *sourceIp;
 } call_details_t;
 
+typedef struct rtp_info {
+       char *addr;
+       unsigned int port;
+} rtp_info_t;
+
 /* This is a callback prototype function, called pass
    DTMF down the RTP. */
 typedef int (*send_digit_cb)(unsigned, char);
@@ -110,7 +118,7 @@ send_digit_cb       on_send_digit;
 
 /* This is a callback prototype function, called to collect
    the external RTP port from Asterisk. */
-typedef int (*on_connection_cb)(unsigned);
+typedef rtp_info_t *(*on_connection_cb)(unsigned);
 on_connection_cb       on_create_connection; 
 
 /* This is a callback prototype function, called upon
@@ -156,14 +164,23 @@ extern "C" {
        void h323_debug(int, unsigned);
 
        /* callback function handler*/
-       void h323_callback_register(setup_incoming_cb, setup_outbound_cb, on_connection_cb, start_logchan_cb, clear_con_cb, con_established_cb, send_digit_cb);
+       void h323_callback_register(setup_incoming_cb,
+                                                               setup_outbound_cb,
+                                                               on_connection_cb,
+                                                               start_logchan_cb,
+                                                               clear_con_cb,
+                                                               con_established_cb,
+                                                               send_digit_cb);
+
 
        int h323_set_capability(int, int);
        int h323_set_alias(struct oh323_alias *);
        int h323_set_gk(int, char *, char *);
 
+       void h323_set_id(char *);
+
        /* H323 listener related funcions */
-       int h323_start_listener(int, struct sockaddr_in, int);
+       int h323_start_listener(int, struct sockaddr_in);
 
        void h323_native_bridge(const char *, char *, char *);