Don't do reinvite if both parties talk diffrent codecs
[asterisk/asterisk.git] / channels / h323 / chan_h323.h
index d30a42e..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>
@@ -84,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;
 
@@ -96,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;
@@ -104,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);
@@ -111,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
@@ -157,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 *);