[asterisk-addons-commits] objsys: branch 1.4 r337 - in
/branches/1.4: ./ asterisk-ooh323c/ asterisk-ooh...
asterisk-addons-commits at lists.digium.com
asterisk-addons-commits at lists.digium.com
Tue Jan 30 09:58:32 MST 2007
Author: objsys
Date: Tue Jan 30 10:58:31 2007
New Revision: 337
URL: http://svn.digium.com/view/asterisk-addons?view=rev&rev=337
Log:
Merged revisions 332-336 via svnmerge from
https://origsvn.digium.com/svn/asterisk-addons/branches/1.2
........
r332 | objsys | 2007-01-25 12:36:03 -0500 (Thu, 25 Jan 2007) | 1 line
find user to use IP for searching user
........
r333 | objsys | 2007-01-29 11:37:01 -0500 (Mon, 29 Jan 2007) | 1 line
disabled the Q.931 header screening for CallingPartyNumber
........
r334 | objsys | 2007-01-29 11:37:34 -0500 (Mon, 29 Jan 2007) | 1 line
obj-sys 0.6 release change log
........
r335 | objsys | 2007-01-29 13:16:44 -0500 (Mon, 29 Jan 2007) | 1 line
obj-sys 0.6 release changes
........
r336 | objsys | 2007-01-29 15:10:02 -0500 (Mon, 29 Jan 2007) | 1 line
added FAQ for channel drivr
........
Added:
branches/1.4/asterisk-ooh323c/FAQ.html
- copied unchanged from r336, branches/1.2/asterisk-ooh323c/FAQ.html
Modified:
branches/1.4/ (props changed)
branches/1.4/asterisk-ooh323c/ChangeLog
branches/1.4/asterisk-ooh323c/README
branches/1.4/asterisk-ooh323c/configure
branches/1.4/asterisk-ooh323c/configure.in
branches/1.4/asterisk-ooh323c/ooh323c/src/ooq931.c
branches/1.4/asterisk-ooh323c/ooh323c/src/ootypes.h
branches/1.4/asterisk-ooh323c/src/chan_h323.c
branches/1.4/asterisk-ooh323c/src/chan_h323.h
Propchange: branches/1.4/
------------------------------------------------------------------------------
--- branch-1.2-merged (original)
+++ branch-1.2-merged Tue Jan 30 10:58:31 2007
@@ -1,1 +1,1 @@
-/branches/1.2:1-183,209,211,257-258,264,268-273,305-328
+/branches/1.2:1-183,209,211,257-258,264,268-273,305-328,332-336
Modified: branches/1.4/asterisk-ooh323c/ChangeLog
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/ChangeLog?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/ChangeLog (original)
+++ branches/1.4/asterisk-ooh323c/ChangeLog Tue Jan 30 10:58:31 2007
@@ -1,8 +1,23 @@
-SVN Branch:
+Release 0.6
+* Includes ooh323c stack 0.8.3 version API
+* Added fast start response in ALERTING message for early audio.
+ Solves the problem to listening PSTN ring or announcements.
+* Changed CallingPartyNumber IE to disable the CLI screening in Q.931 header
+ (Thanks to Tim King)
+* Added MediaWaitForConnect configuration option (Thanks to Tim King,
+ for suggesting this option)
+* Added priority to Tunneling usage over H.245 Control channel
* Fixed crash for call transfer caused by channel ownership change.
- Thanks to Flagman <Flagman at incomtel.ru>
+ Thanks to Flagman <Flagman at incomtel.ru>
* Fixed occasional improper call hangup warning, bug# 7464
+* Added searching user based on IP address of incoming call, in addition to H323ID
+ Thanks to C. Maj & all others for suggestion
+* Fix reload flag problem of faststart, tunneling and mediawaitforconnrect
+ configuration options
+* Added H.263 video codec negotiation handling
+* Fixed h323_log file bug for message type indication
+
Release 0.5
* Includes changes of ooh323c stack 0.8.2 version
1. Used rand number for conference id, Thanks to Patrick Jordan
Modified: branches/1.4/asterisk-ooh323c/README
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/README?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/README (original)
+++ branches/1.4/asterisk-ooh323c/README Tue Jan 30 10:58:31 2007
@@ -1,5 +1,5 @@
- Copyright (C) 2005, Objective Systems, Inc.
+ Copyright (C) 2007, Objective Systems, Inc.
Objective Systems asterisk-ooh323c driver for supporting H323 on asterisk
@@ -8,11 +8,11 @@
H.323 stack from Objective Systems(www.obj-sys.com/open), to be used with
asterisk, an open source IP-PBX solution, from Digium, Inc.(www.asterisk.org)
- Capabilities supported: ulaw, gsm, g728, g729, g729a, g723.1, rfc2833
+ Capabilities supported: ulaw, alaw, gsm, g728, g729, g729a, g723.1, rfc2833
Package Contents:
- asterisk-ooh323c-0.5
+ asterisk-ooh323c-0.6
|
|-src [H323 channel driver code]
|
@@ -56,7 +56,7 @@
'super user' mode and then run:
>make install
- 3. Open h323.conf.sample in asterisk-ooh323c-0.5 directory. Under [general]
+ 3. Open h323.conf.sample in asterisk-ooh323c-0.6 directory. Under [general]
you will see global configuration setting. Modify IP addresses of asterisk
server "bindaddr" to match your configuration.
@@ -89,7 +89,7 @@
CLI>stop now
Now to run tests, you will have to copy extensions.conf.sample in
- asterisk-ooh323c-0.5 directory to /etc/asterisk as extensions.conf. Make
+ asterisk-ooh323c-0.6 directory to /etc/asterisk as extensions.conf. Make
sure to save a backup copy of your existing extensions.conf. Now restart
the pbx as follows:
>/usr/sbin/asterisk -vvvc
Modified: branches/1.4/asterisk-ooh323c/configure
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/configure?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/configure (original)
+++ branches/1.4/asterisk-ooh323c/configure Tue Jan 30 10:58:31 2007
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for ASTERISK-OOH323C 0.5.
+# Generated by GNU Autoconf 2.57 for ASTERISK-OOH323C 0.6.
#
# Report bugs to <Objective Systems <support at obj-sys.com>>.
#
@@ -427,8 +427,8 @@
# Identity of this package.
PACKAGE_NAME='ASTERISK-OOH323C'
PACKAGE_TARNAME='asterisk-ooh323c'
-PACKAGE_VERSION='0.5'
-PACKAGE_STRING='ASTERISK-OOH323C 0.5'
+PACKAGE_VERSION='0.6'
+PACKAGE_STRING='ASTERISK-OOH323C 0.6'
PACKAGE_BUGREPORT='Objective Systems <support at obj-sys.com>'
ac_unique_file="src/chan_h323.c"
@@ -938,7 +938,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ASTERISK-OOH323C 0.5 to adapt to many kinds of systems.
+\`configure' configures ASTERISK-OOH323C 0.6 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1004,7 +1004,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ASTERISK-OOH323C 0.5:";;
+ short | recursive ) echo "Configuration of ASTERISK-OOH323C 0.6:";;
esac
cat <<\_ACEOF
@@ -1099,7 +1099,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-ASTERISK-OOH323C configure 0.5
+ASTERISK-OOH323C configure 0.6
generated by GNU Autoconf 2.57
Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
@@ -1114,7 +1114,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ASTERISK-OOH323C $as_me 0.5, which was
+It was created by ASTERISK-OOH323C $as_me 0.6, which was
generated by GNU Autoconf 2.57. Invocation command line was
$ $0 $@
@@ -1451,7 +1451,7 @@
PACKAGE=asterisk-ooh323c
-VERSION=0.5
+VERSION=0.6
ac_aux_dir=
for ac_dir in config $srcdir/config; do
@@ -9612,7 +9612,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by ASTERISK-OOH323C $as_me 0.5, which was
+This file was extended by ASTERISK-OOH323C $as_me 0.6, which was
generated by GNU Autoconf 2.57. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -9675,7 +9675,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-ASTERISK-OOH323C config.status 0.5
+ASTERISK-OOH323C config.status 0.6
configured by $0, generated by GNU Autoconf 2.57,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
Modified: branches/1.4/asterisk-ooh323c/configure.in
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/configure.in?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/configure.in (original)
+++ branches/1.4/asterisk-ooh323c/configure.in Tue Jan 30 10:58:31 2007
@@ -1,7 +1,7 @@
AC_PREREQ(2.57)
-AC_INIT([ASTERISK-OOH323C],[0.5],[Objective Systems <support at obj-sys.com>],[asterisk-ooh323c])
+AC_INIT([ASTERISK-OOH323C],[0.6],[Objective Systems <support at obj-sys.com>],[asterisk-ooh323c])
PACKAGE=asterisk-ooh323c
-VERSION=0.5
+VERSION=0.6
AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
Modified: branches/1.4/asterisk-ooh323c/ooh323c/src/ooq931.c
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/ooh323c/src/ooq931.c?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/ooh323c/src/ooq931.c (original)
+++ branches/1.4/asterisk-ooh323c/ooh323c/src/ooq931.c Tue Jan 30 10:58:31 2007
@@ -2037,10 +2037,10 @@
/* Set calling party number Q931 IE */
if(call->callingPartyNumber)
ooQ931SetCallingPartyNumberIE(q931msg,
- (const char*)call->callingPartyNumber, 1, 0, 1, 1);
-
-
- /* Set called party number Q931 ie */
+ (const char*)call->callingPartyNumber, 1, 0, 0, 0);
+
+
+ /* Set called party number Q931 IE */
if(call->calledPartyNumber)
ooQ931SetCalledPartyNumberIE(q931msg,
(const char*)call->calledPartyNumber, 1, 0);
Modified: branches/1.4/asterisk-ooh323c/ooh323c/src/ootypes.h
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/ooh323c/src/ootypes.h?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/ooh323c/src/ootypes.h (original)
+++ branches/1.4/asterisk-ooh323c/ooh323c/src/ootypes.h Tue Jan 30 10:58:31 2007
@@ -61,7 +61,7 @@
-#define OOH323C_VERSION "v0.8.2"
+#define OOH323C_VERSION "v0.8.3"
#ifndef EXTERN
#ifdef MAKE_DLL
Modified: branches/1.4/asterisk-ooh323c/src/chan_h323.c
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/src/chan_h323.c?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/src/chan_h323.c (original)
+++ branches/1.4/asterisk-ooh323c/src/chan_h323.c Tue Jan 30 10:58:31 2007
@@ -145,6 +145,8 @@
struct ast_codec_pref prefs;
int dtmfmode;
int rtptimeout;
+ int mUseIP; /* Use IP address or H323-ID to search user */
+ char mIP[20];
struct ooh323_user *next;
};
@@ -159,6 +161,7 @@
char accountcode[20];
int amaflags;
int dtmfmode;
+ int mFriend; /* indicates defined as friend */
char ip[20];
int port;
char *h323id; /* H323-ID alias, which asterisk will register with gk to reach this peer*/
@@ -460,6 +463,9 @@
char tmp[256];
char formats[512];
int oldformat;
+ char *sport = NULL;
+ int port = 0;
+
if(gH323Debug)
ast_verbose("--- ooh323_request - data %s format %s\n", (char*)data,
ast_getformatname_multiple(formats,512,format) );
@@ -504,9 +510,16 @@
dest = tmp;
ext = NULL;
}
-
- if(dest)
- peer = find_peer(dest);
+
+ /*if((sport = strchr(dest, ':'))) {
+ *sport = '\0';
+ sport++;
+ port = atoi(sport);
+ }*/
+
+ if(dest) {
+ peer = find_peer(dest, port);
+ }
else{
ast_log(LOG_ERROR, "Destination format is not supported\n");
return NULL;
@@ -526,7 +539,7 @@
if(peer->capability & format)
p->capability = peer->capability & format;
else{
- p->capability = peer->capability;
+ p->capability = peer->capability;
}
memcpy(&p->prefs, &peer->prefs, sizeof(struct ast_codec_pref));
p->dtmfmode = peer->dtmfmode;
@@ -539,11 +552,14 @@
memcpy(&p->prefs, &gPrefs, sizeof(struct ast_codec_pref));
p->username = strdup(dest);
-
p->host = strdup(dest);
- if(ext)
+ if(port > 0) {
+ p->port = port;
+ }
+ if(ext) {
strncpy(p->exten, ext, sizeof(p->exten)-1);
+ }
}
@@ -594,53 +610,104 @@
return p;
}
-struct ooh323_user *find_user(const char * name)
+struct ooh323_user *find_user(const char * name, const char* ip)
{
struct ooh323_user *user=NULL;
if(gH323Debug)
- ast_verbose("--- find_user\n");
-
+ ast_verbose("--- find_user \n");
user = userl.users;
ast_mutex_lock(&userl.lock);
while(user)
{
- if(name && !strcmp(user->name, name))
+ if(ip && user->mUseIP && !strcmp(user->mIP, ip)) {
break;
+ }
+ if(name && !strcmp(user->name, name)) {
+ break;
+ }
user = user->next;
}
ast_mutex_unlock(&userl.lock);
+
if(gH323Debug)
ast_verbose("+++ find_user\n");
return user;
}
-struct ooh323_peer *find_peer(const char * name)
-{
- struct ooh323_peer *peer=NULL;
-
- if(gH323Debug)
- ast_verbose("--- find_peer\n");
+struct ooh323_peer *find_friend(const char *name, int port)
+{
+ struct ooh323_peer *peer=NULL;
+
+ if(gH323Debug)
+ ast_verbose("--- find_friend \"%s\"\n", name);
peer = peerl.peers;
ast_mutex_lock(&peerl.lock);
while(peer)
{
+ if(gH323Debug) {
+ ast_verbose(" comparing with \"%s\"\n", peer->ip);
+ }
+ if(!strcmp(peer->ip, name)) {
+ if(port > 0 && peer->port == port) { break; }
+ else if (port <= 0) { break; }
+ }
+ peer = peer->next;
+ }
+ ast_mutex_unlock(&peerl.lock);
+
+ if(gH323Debug) {
+ if(peer) {
+ ast_verbose(" found matching friend\n");
+ }
+ ast_verbose("+++ find_friend \"%s\"\n", name);
+ }
+
+ return peer;
+}
+
+
+struct ooh323_peer *find_peer(const char * name, int port)
+{
+ struct ooh323_peer *peer=NULL;
+
+ if(gH323Debug)
+ ast_verbose("--- find_peer \"%s\"\n", name);
+
+
+ peer = peerl.peers;
+ ast_mutex_lock(&peerl.lock);
+ while(peer)
+ {
+ if(gH323Debug) {
+ ast_verbose(" comparing with \"%s\"\n", peer->ip);
+ }
if(!strcasecmp(peer->name, name))
break;
if(peer->h323id && !strcasecmp(peer->h323id, name))
break;
if(peer->e164 && !strcasecmp(peer->e164, name))
break;
+ /*
+ if(!strcmp(peer->ip, name)) {
+ if(port > 0 && peer->port == port) { break; }
+ else if (port <= 0) { break; }
+ }
+ */
peer = peer->next;
}
ast_mutex_unlock(&peerl.lock);
- if(gH323Debug)
- ast_verbose("+++ find_peer\n");
+ if(gH323Debug) {
+ if(peer) {
+ ast_verbose(" found matching peer\n");
+ }
+ ast_verbose("+++ find_peer \"%s\"\n", name);
+ }
return peer;
}
@@ -1263,7 +1330,7 @@
if(p->callerid_name)
{
p->username = strdup(p->callerid_name);
- user = find_user(p->username);
+ user = find_user(p->username, call->remoteIP);
if(user)
{
ast_mutex_lock(&user->lock);
@@ -1604,6 +1671,10 @@
else if (!strcasecmp(v->name, "amaflags")) {
user->amaflags = ast_cdr_amaflags2int(v->value);
}
+ else if (!strcasecmp(v->name, "ip")) {
+ strncpy(user->mIP, v->value, sizeof(user->mIP)-1);
+ user->mUseIP = 1;
+ }
else if (!strcasecmp(v->name, "dtmfmode")) {
if(!strcasecmp(v->value, "rfc2833"))
user->dtmfmode = H323_DTMF_RFC2833;
@@ -1624,7 +1695,7 @@
return user;
}
-static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v)
+static struct ooh323_peer *build_peer(const char *name, struct ast_variable *v, int friend_type)
{
struct ooh323_peer *peer=NULL;
@@ -1642,6 +1713,9 @@
strncpy(peer->accountcode, gAccountcode, sizeof(peer->accountcode)-1);
peer->amaflags = gAMAFLAGS;
peer->dtmfmode = gDTMFMode;
+ if(0 == friend_type) {
+ peer->mFriend = 1;
+ }
while(v) {
if (!strcasecmp(v->name, "h323id")) {
@@ -1982,10 +2056,11 @@
{
if(strcasecmp(cat, "general"))
{
+ int friend_type = strcasecmp(utype, "friend");
utype = ast_variable_retrieve(cfg, cat, "type");
if(utype)
{
- if(!strcmp(utype, "user") || !strcasecmp(utype, "friend"))
+ if(!strcmp(utype, "user") || 0 == friend_type)
{
user = build_user(cat, ast_variable_browse(cfg, cat));
if (user)
@@ -1999,15 +2074,15 @@
ast_log(LOG_WARNING, "Failed to build user %s\n", cat);
}
}
- if(!strcasecmp(utype, "peer") || !strcasecmp(utype, "friend"))
+ if(!strcasecmp(utype, "peer") || 0 == friend_type)
{
- peer = build_peer(cat, ast_variable_browse(cfg, cat));
+ peer = build_peer(cat, ast_variable_browse(cfg, cat), friend_type);
if(peer)
{
- ast_mutex_lock(&userl.lock);
+ ast_mutex_lock(&peerl.lock);
peer->next = peerl.peers;
peerl.peers = peer;
- ast_mutex_unlock(&userl.lock);
+ ast_mutex_unlock(&peerl.lock);
}
else {
ast_log(LOG_WARNING, "Failed to build peer %s\n", cat);
@@ -2578,6 +2653,7 @@
}
ooh323_do_reload();
}
+
/* Check for interfaces needing to be killed */
ast_mutex_lock(&iflock);
struct ooh323_pvt *h323_next;
@@ -2594,6 +2670,7 @@
}
ast_mutex_unlock(&iflock);
pthread_testcancel();
+
/* Wait for sched or io */
res = ast_sched_wait(sched);
if ((res < 0) || (res > 1000)) {
Modified: branches/1.4/asterisk-ooh323c/src/chan_h323.h
URL: http://svn.digium.com/view/asterisk-addons/branches/1.4/asterisk-ooh323c/src/chan_h323.h?view=diff&rev=337&r1=336&r2=337
==============================================================================
--- branches/1.4/asterisk-ooh323c/src/chan_h323.h (original)
+++ branches/1.4/asterisk-ooh323c/src/chan_h323.h Tue Jan 30 10:58:31 2007
@@ -77,8 +77,8 @@
struct ooh323_user;
struct ooh323_peer;
/* Helper functions */
-struct ooh323_user *find_user(const char * name);
-struct ooh323_peer *find_peer(const char * name);
+struct ooh323_user *find_user(const char * name, const char *ip);
+struct ooh323_peer *find_peer(const char * name, int port);
void ooh323_delete_peer(struct ooh323_peer *peer);
int delete_users(void);
More information about the asterisk-addons-commits
mailing list