static int port = 1720;
static int gkroute = 0;
+static int noFastStart = 1;
+static int noH245Tunneling = 0;
+
/* to find user by alias is default, alternative is the incomming call's source IP address*/
static int userbyalias = 1;
}
}
+ p->calloptions.noFastStart = noFastStart;
+ p->calloptions.noH245Tunneling = noH245Tunneling;
+
res = h323_make_call(called_addr, &(p->cd), p->calloptions);
if (res) {
strncpy(p->accountcode, user->accountcode, sizeof(p->accountcode)-1);
}
+
/* Increment the usage counter */
user->inUse++;
}
/* fire up the H.323 Endpoint */
if (!h323_end_point_exist()) {
- h323_end_point_create();
+ h323_end_point_create(noFastStart,noH245Tunneling);
}
h323debug=0;
dtmfmode = H323_DTMF_RFC2833;
userbyalias = ast_true(v->value);
} else if (!strcasecmp(v->name, "bridge")) {
bridge_default = ast_true(v->value);
- }
+ } else if (!strcasecmp(v->name, "noFastStart")) {
+ noFastStart = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "noH245Tunneling")) {
+ noH245Tunneling = ast_true(v->value);
+ }
v = v->next;
}
/** Options for connections creation */
BOOL noFastStart = TRUE;
-BOOL noH245Tunnelling;
+BOOL noH245Tunneling;
BOOL noSilenceSuppression;
/**
if (noFastStart)
options |= H323Connection::FastStartOptionDisable;
- if (noH245Tunnelling)
+ if (noH245Tunneling)
options |= H323Connection::H245TunnelingOptionDisable;
return new MyH323Connection(*this, callReference, options);
return 1;
}
-void h323_end_point_create(void)
+void h323_end_point_create(int no_fast_start, int no_h245_tunneling)
{
channelsOpen = 0;
+
+ noFastStart = (BOOL)no_fast_start;
+ noH245Tunneling = (BOOL)no_h245_tunneling;
+
localProcess = new MyProcess();
localProcess->Main();
}
{
int res;
PString token;
+ PString dest(host);
if (!h323_end_point_exist()) {
return 1;
}
- PString dest(host);
+ noFastStart = call_options.noFastStart;
+ noH245Tunneling = call_options.noH245Tunneling;
res = endPoint->MakeCall(dest, token, &cd->call_reference, call_options.port, call_options.callerid, call_options.callername);
memcpy((char *)(cd->call_token), (const unsigned char *)token, token.GetLength());
struct oh323_peer {
char name[80];
char context[80];
- int noFastStart;
- int noH245Tunneling;
- int noSilenceSuppression;
- int inUse;
- int outgoinglimit;
- int bridge;
- int nat;
- int dtmfmode;
- struct sockaddr_in addr;
+ int noFastStart;
+ int noH245Tunneling;
+ int noSilenceSuppression;
+ int inUse;
+ int outgoinglimit;
+ int bridge;
+ int nat;
+ int dtmfmode;
int delme;
+ struct sockaddr_in addr;
struct oh323_peer *next;
};
char *callerid;
char *callername;
int noFastStart;
- int noH245Tunnelling;
+ int noH245Tunneling;
int noSilenceSuppression;
unsigned int port;
} call_options_t;
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;
#endif
void h323_gk_urq(void);
- void h323_end_point_create(void);
+ void h323_end_point_create(int, int);
void h323_end_process(void);
int h323_end_point_exist(void);