[asterisk-commits] branch oej/codecnegotiation r34088 - in
/team/oej/codecnegotiation: ./ apps/ ...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Wed Jun 14 07:10:39 MST 2006
Author: oej
Date: Wed Jun 14 09:10:38 2006
New Revision: 34088
URL: http://svn.digium.com/view/asterisk?rev=34088&view=rev
Log:
resolve conflict in app_dial, reset automerge
Added:
team/oej/codecnegotiation/abstract_jb.c
- copied unchanged from r31953, trunk/abstract_jb.c
team/oej/codecnegotiation/fixedjitterbuf.c
- copied unchanged from r31953, trunk/fixedjitterbuf.c
team/oej/codecnegotiation/fixedjitterbuf.h
- copied unchanged from r31953, trunk/fixedjitterbuf.h
team/oej/codecnegotiation/include/asterisk/abstract_jb.h
- copied unchanged from r31953, trunk/include/asterisk/abstract_jb.h
Modified:
team/oej/codecnegotiation/ (props changed)
team/oej/codecnegotiation/.cleancount
team/oej/codecnegotiation/CREDITS
team/oej/codecnegotiation/Makefile
team/oej/codecnegotiation/apps/app_dial.c
team/oej/codecnegotiation/apps/app_meetme.c
team/oej/codecnegotiation/apps/app_morsecode.c
team/oej/codecnegotiation/apps/app_queue.c
team/oej/codecnegotiation/build_tools/menuselect.c
team/oej/codecnegotiation/build_tools/menuselect.h
team/oej/codecnegotiation/build_tools/menuselect_curses.c
team/oej/codecnegotiation/cdr/cdr_radius.c
team/oej/codecnegotiation/channel.c
team/oej/codecnegotiation/channels/chan_alsa.c
team/oej/codecnegotiation/channels/chan_h323.c
team/oej/codecnegotiation/channels/chan_iax2.c
team/oej/codecnegotiation/channels/chan_jingle.c
team/oej/codecnegotiation/channels/chan_mgcp.c
team/oej/codecnegotiation/channels/chan_misdn.c
team/oej/codecnegotiation/channels/chan_oss.c
team/oej/codecnegotiation/channels/chan_sip.c
team/oej/codecnegotiation/channels/chan_skinny.c
team/oej/codecnegotiation/channels/chan_zap.c
team/oej/codecnegotiation/channels/h323/h323.conf.sample
team/oej/codecnegotiation/channels/misdn/chan_misdn_config.h
team/oej/codecnegotiation/channels/misdn/ie.c
team/oej/codecnegotiation/channels/misdn/isdn_lib.c
team/oej/codecnegotiation/channels/misdn/isdn_lib.h
team/oej/codecnegotiation/channels/misdn/isdn_msg_parser.c
team/oej/codecnegotiation/channels/misdn_config.c
team/oej/codecnegotiation/cli.c
team/oej/codecnegotiation/configs/alsa.conf.sample
team/oej/codecnegotiation/configs/jabber.conf.sample
team/oej/codecnegotiation/configs/mgcp.conf.sample
team/oej/codecnegotiation/configs/misdn.conf.sample
team/oej/codecnegotiation/configs/oss.conf.sample
team/oej/codecnegotiation/configs/sip.conf.sample
team/oej/codecnegotiation/configs/skinny.conf.sample
team/oej/codecnegotiation/configs/zapata.conf.sample
team/oej/codecnegotiation/frame.c
team/oej/codecnegotiation/include/asterisk/channel.h
team/oej/codecnegotiation/include/asterisk/frame.h
team/oej/codecnegotiation/include/asterisk/jabber.h
team/oej/codecnegotiation/include/asterisk/linkedlists.h
team/oej/codecnegotiation/include/asterisk/utils.h
team/oej/codecnegotiation/res/res_agi.c
team/oej/codecnegotiation/res/res_jabber.c
team/oej/codecnegotiation/res/res_musiconhold.c
team/oej/codecnegotiation/rtp.c
team/oej/codecnegotiation/translate.c
team/oej/codecnegotiation/utils.c
Propchange: team/oej/codecnegotiation/
------------------------------------------------------------------------------
automerge = http://edvina.net/training/
Propchange: team/oej/codecnegotiation/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.
Propchange: team/oej/codecnegotiation/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.
Propchange: team/oej/codecnegotiation/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jun 14 09:10:38 2006
@@ -1,1 +1,1 @@
-/trunk:1-31003
+/trunk:1-31975
Modified: team/oej/codecnegotiation/.cleancount
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/.cleancount?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/.cleancount (original)
+++ team/oej/codecnegotiation/.cleancount Wed Jun 14 09:10:38 2006
@@ -1,1 +1,1 @@
-17
+19
Modified: team/oej/codecnegotiation/CREDITS
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/CREDITS?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/CREDITS (original)
+++ team/oej/codecnegotiation/CREDITS Wed Jun 14 09:10:38 2006
@@ -30,57 +30,99 @@
=== MISCELLANEOUS PATCHES ===
Jim Dixon - Zapata Telephony and app_rpt
http://www.zapatatelephony.org/app_rpt.html
+
Russell Bryant - Asterisk 1.0 maintainer and misc. enhancements
russelb at clemson.edu
+
Anthony Minessale II - Countless big and small fixes, and relentless forward push
anthmct at yahoo.com http://www.asterlink.com
+
James Golovich - Innumerable contributions
You can find him and asterisk-perl at http://asterisk.gnuinter.net
+
Andre Bierwirth - Extension hints and status
+
Oliver Daudey - ISDN4Linux fixes
+
Pauline Middelink - ISDN4Linux patches and some general patches.
She can be found at http://www.polyware.nl/~middelink/En/
+
Jean-Denis Girard - Various contributions from the South Pacific Islands
jd-girard at esoft.pf http://www.esoft.pf
+
William Jordan / Vonage - MySQL enhancements to Voicemail
wjordan at vonage.com
+
Jac Kersing - Various fixes
+
Steven Critchfield - Seek and Trunc functions for playback and recording
critch at basesys.com
+
Jefferson Noxon - app_lookupcidname, app_db, and various other contributions
+
Klaus-Peter Junghanns - in-band DTMF on SIP and MGCP
+
Ross Finlayson - Dynamic RTP payload support
+
Mahmut Fettahlioglu - Audio recording, music-on-hold changes, alaw file
format, and various fixes. Can be contacted at mahmut at oa.com.au
+
James Dennis - Cisco SIP compatibility patches to work with SIP service
providers. Can be contacted at asterisk at jdennis.net
+
Tilghman Lesher - ast_localtime(); ast_say_date_with_format();
GotoIfTime, Random, SayUnixTime, HasNewVoicemail applications;
CUT, SORT, EVAL, CURL, FIELDQTY, STRFTIME, QUEUEAGENT* functions;
and other innumerable bug fixes. http://asterisk.drunkcoder.com/
+
Jayson Vantuyl - Manager protocol changes, various other bugs.
jvantuyl at computingedge.net
+
Thorsten Lockert - OpenBSD, FreeBSD ports, making MacOS X port run on 10.3,
dialplan include verification, route lookup on OpenBSD, SNMP agent
support (res_snmp), various other bugs. tholo at sigmasoft.com
+
Brian West - ODBC support and Bug Marshaling
+
Josh Roberson - chan_zap reload support, Advanced Voicemail Features, other misc. patches,
and Bug Marshalling. - josh at asteriasgi.com, http://www.asteriasgi.com
+
William Waites - syslog support, SIP NAT traversal for SIP-UA. ww at styx.org
+
Rich Murphey - Porting to FreeBSD, NetBSD, OpenBSD, and Darwin.
rich at whiteoaklabs.com http://whiteoaklabs.com
+
Simon Lockhart - Porting to Solaris (based on work of Logan ???)
simon at slimey.org
+
Olle E. Johansson - SIP RFC compliance, documentation and testing, testing, testing
oej at edvina.net, http://edvina.net
+
Steve Kann - new jitter buffer for IAX2
stevek at stevek.com
+
Constantine Filin - major contributions to the Asterisk Realtime Architecture
+
Steve Murphy - privacy support, $[ ] parser upgrade, AEL2 parser upgrade
+
Claude Patry - bug fixes, feature enhancements, and bug marshalling
cpatry at gmail.com
+
Miroslav Nachev, miro at space-comm.com COSMOS Software Enterprises, Ltd.
- for Variable for No Answer Timeout for Attended Transfer
+
+Slav Klenov & Vanheuverzwijn Joachim - development of the generic jitterbuffer
+ Securax Ltd. info at securax.be
+
+Roy Sigurd Karlsbakk - providing funding for generic jitterbuffer development
+ roy at karlsbakk.net, Briiz Telecom AS
+
+Voop A/S, Nuvio Inc and Foniris Telecom A/S - funding for rewrite of SIP transfers
+
+Philippe Sultan - RADIUS CDR module
+ INRIA, http://www.inria.fr/
+
+John Martin, Aupix - Improved video support in the SIP channel
=== OTHER CONTRIBUTIONS ===
John Todd - Monkey sounds and associated teletorture prompt
Modified: team/oej/codecnegotiation/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/Makefile?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/Makefile (original)
+++ team/oej/codecnegotiation/Makefile Wed Jun 14 09:10:38 2006
@@ -282,7 +282,7 @@
astmm.o enum.o srv.o dns.o aescrypt.o aestab.o aeskey.o \
utils.o plc.o jitterbuf.o dnsmgr.o devicestate.o \
netsock.o slinfactory.o ast_expr2.o ast_expr2f.o \
- cryptostub.o sha1.o http.o
+ cryptostub.o sha1.o http.o fixedjitterbuf.o abstract_jb.o
# we need to link in the objects statically, not as a library, because
# otherwise modules will not have them available if none of the static
@@ -371,7 +371,7 @@
@echo " + make install +"
@echo " +-------------------------------------------+"
-all: cleantest defaults.h config.status menuselect.makeopts depend asterisk subdirs
+all: cleantest config.status menuselect.makeopts depend asterisk subdirs
config.status: configure
@CFLAGS="" ./configure
@@ -907,6 +907,7 @@
cleantest:
@if cmp -s .cleancount .lastclean ; then echo ; else \
$(MAKE) clean; cp -f .cleancount .lastclean;\
+ $(MAKE) defaults.h;\
fi
_uninstall:
Modified: team/oej/codecnegotiation/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/app_dial.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/app_dial.c (original)
+++ team/oej/codecnegotiation/apps/app_dial.c Wed Jun 14 09:10:38 2006
@@ -117,6 +117,8 @@
" action post answer options in conjunction with this option.\n"
" h - Allow the called party to hang up by sending the '*' DTMF digit.\n"
" H - Allow the calling party to hang up by hitting the '*' DTMF digit.\n"
+" i - Asterisk will ignore any forwarding requests it may receive on this\n"
+" dial attempt.\n"
" j - Jump to priority n+101 if all of the requested channels were busy.\n"
" L(x[:y][:z]) - Limit the call to 'x' ms. Play a warning when 'y' ms are\n"
" left. Repeat the warning every 'z' ms. The following special\n"
@@ -233,6 +235,7 @@
OPT_OPERMODE = (1 << 24),
OPT_CALLEE_PARK = (1 << 25),
OPT_CALLER_PARK = (1 << 26),
+ OPT_IGNORE_FORWARDING = (1 << 27),
} dial_exec_option_flags;
#define DIAL_STILLGOING (1 << 30)
@@ -262,6 +265,7 @@
AST_APP_OPTION_ARG('G', OPT_GOTO, OPT_ARG_GOTO),
AST_APP_OPTION('h', OPT_CALLEE_HANGUP),
AST_APP_OPTION('H', OPT_CALLER_HANGUP),
+ AST_APP_OPTION('i', OPT_IGNORE_FORWARDING),
AST_APP_OPTION('j', OPT_PRIORITY_JUMP),
AST_APP_OPTION_ARG('L', OPT_DURATION_LIMIT, OPT_ARG_DURATION_LIMIT),
AST_APP_OPTION_ARG('m', OPT_MUSICBACK, OPT_ARG_MUSICBACK),
@@ -479,10 +483,20 @@
ast_verbose(VERBOSE_PREFIX_3 "Now forwarding %s to '%s/%s' (thanks to %s)\n", in->name, tech, stuff, c->name);
/* Setup parameters */
c = o->chan = ast_request_inherit(in, tech, stuff, &cause);
- if (!c)
- ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s' (cause = %d)\n", tech, stuff, cause);
- else
- ast_channel_inherit_variables(in, o->chan);
+ /* If we have been told to ignore forwards, just set this channel to null and continue processing extensions normally */
+ if (ast_test_flag(peerflags, OPT_IGNORE_FORWARDING)) {
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_3 "Forwarding %s to '%s/%s' prevented.\n", in->name, tech, stuff);
+ c = o->chan = NULL;
+ cause = AST_CAUSE_BUSY;
+ } else {
+ /* Setup parameters */
+ c = o->chan = ast_request(tech, in->nativeformats, stuff, &cause);
+ if (!c)
+ ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s' (cause = %d)\n", tech, stuff, cause);
+ else
+ ast_channel_inherit_variables(in, o->chan);
+ }
} else {
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Too many forwards from %s\n", c->name);
@@ -819,7 +833,7 @@
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Setting operator services mode to %d.\n", opermode);
}
-
+
if (ast_test_flag(&opts, OPT_DURATION_STOP) && !ast_strlen_zero(opt_args[OPT_ARG_DURATION_STOP])) {
calldurationlimit = atoi(opt_args[OPT_ARG_DURATION_STOP]);
if (!calldurationlimit) {
@@ -1015,7 +1029,7 @@
/* If a channel group has been specified, get it for use when we create peer channels */
outbound_group = pbx_builtin_getvar_helper(chan, "OUTBOUND_GROUP");
- ast_copy_flags(peerflags, &opts, OPT_DTMF_EXIT | OPT_GO_ON | OPT_ORIGINAL_CLID | OPT_CALLER_HANGUP);
+ ast_copy_flags(peerflags, &opts, OPT_DTMF_EXIT | OPT_GO_ON | OPT_ORIGINAL_CLID | OPT_CALLER_HANGUP | OPT_IGNORE_FORWARDING);
/* loop through the list of dial destinations */
rest = args.peers;
while ((cur = strsep(&rest, "&")) ) {
@@ -1068,8 +1082,15 @@
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Now forwarding %s to '%s/%s' (thanks to %s)\n", chan->name, tech, stuff, tmp->chan->name);
ast_hangup(tmp->chan);
- /* Setup parameters */
- tmp->chan = ast_request_inherit(chan, tech, stuff, &cause);
+ /* If we have been told to ignore forwards, just set this channel to null and continue processing extensions normally */
+ if (ast_test_flag(&opts, OPT_IGNORE_FORWARDING)) {
+ tmp->chan = NULL;
+ cause = AST_CAUSE_BUSY;
+ if (option_verbose > 2)
+ ast_verbose(VERBOSE_PREFIX_3 "Forwarding %s to '%s/%s' prevented.\n", chan->name, tech, stuff);
+ } else {
+ tmp->chan = ast_request_inherit(chan, tech, stuff, &cause);
+ }
if (!tmp->chan)
ast_log(LOG_NOTICE, "Unable to create local channel for call forward to '%s/%s' (cause = %d)\n", tech, stuff, cause);
else
Modified: team/oej/codecnegotiation/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/app_meetme.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/app_meetme.c (original)
+++ team/oej/codecnegotiation/apps/app_meetme.c Wed Jun 14 09:10:38 2006
@@ -151,7 +151,7 @@
/*! If set, user will be asked to record name on entry of conference
* without review */
CONFFLAG_STARTMUTED = (1 << 24)
- /*! If set, the user will be initially muted by admin */
+ /*! If set, the user will be initially self-muted */
};
AST_APP_OPTIONS(meetme_opts, {
@@ -212,7 +212,7 @@
" 'i' -- announce user join/leave with review\n"
" 'I' -- announce user join/leave without review\n"
" 'l' -- set listen only mode (Listen only, no talking)\n"
-" 'm' -- set initially muted by admin\n"
+" 'm' -- set initially muted\n"
" 'M' -- enable music on hold when the conference has a single caller\n"
" 'o' -- set talker optimization - treats talkers who aren't speaking as\n"
" being muted, meaning (a) No encode is done on transmission and\n"
@@ -250,10 +250,10 @@
" 'K' -- Kick all users out of conference\n"
" 'l' -- Unlock conference\n"
" 'L' -- Lock conference\n"
-" 'm' -- Unmute conference\n"
-" 'M' -- Mute conference\n"
-" 'n' -- Unmute entire conference (except admin)\n"
-" 'N' -- Mute entire conference (except admin)\n"
+" 'm' -- Unmute one user\n"
+" 'M' -- Mute one user\n"
+" 'n' -- Unmute all users in the conference\n"
+" 'N' -- Mute all non-admin users in the conference\n"
" 'r' -- Reset one user's volume settings\n"
" 'R' -- Reset all users volume settings\n"
" 's' -- Lower entire conference speaking volume\n"
@@ -703,7 +703,7 @@
user->chan->name,
user->userflags & CONFFLAG_ADMIN ? "(Admin)" : "",
user->userflags & CONFFLAG_MONITOR ? "(Listen only)" : "",
- user->adminflags & ADMINFLAG_MUTED ? "(Admin Muted)" : "",
+ user->adminflags & ADMINFLAG_MUTED ? "(Admin Muted)" : user->adminflags & ADMINFLAG_SELFMUTED ? "(Muted)" : "",
istalking(user->talking), hr, min, sec);
else
ast_cli(fd, "%d!%s!%s!%s!%s!%s!%s!%d!%02d:%02d:%02d\n",
@@ -713,7 +713,7 @@
user->chan->name,
user->userflags & CONFFLAG_ADMIN ? "1" : "",
user->userflags & CONFFLAG_MONITOR ? "1" : "",
- user->adminflags & ADMINFLAG_MUTED ? "1" : "",
+ user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED) ? "1" : "",
user->talking, hr, min, sec);
}
@@ -964,7 +964,7 @@
user->chan = chan;
user->userflags = confflags;
- user->adminflags = (confflags & CONFFLAG_STARTMUTED) ? ADMINFLAG_MUTED : 0;
+ user->adminflags = (confflags & CONFFLAG_STARTMUTED) ? ADMINFLAG_SELFMUTED : 0;
user->talking = -1;
conf->users++;
/* Update table */
@@ -1376,7 +1376,7 @@
user->zapchannel = !retryzap;
goto zapretry;
}
- if ((confflags & CONFFLAG_MONITOR) || (user->adminflags & ADMINFLAG_MUTED))
+ if ((confflags & CONFFLAG_MONITOR) || (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)))
f = ast_read_noaudio(c);
else
f = ast_read(c);
@@ -1480,13 +1480,16 @@
menu_active = 0;
/* for admin, change both admin and use flags */
- if (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) {
+ if (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED))
user->adminflags &= ~(ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED);
- if (!ast_streamfile(chan, "conf-unmuted", chan->language))
+ else
+ user->adminflags |= (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED);
+
+ if ((confflags & CONFFLAG_MONITOR) || (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED))) {
+ if (!ast_streamfile(chan, "conf-muted", chan->language))
ast_waitstream(chan, "");
} else {
- user->adminflags |= (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED);
- if (!ast_streamfile(chan, "conf-muted", chan->language))
+ if (!ast_streamfile(chan, "conf-unmuted", chan->language))
ast_waitstream(chan, "");
}
break;
@@ -1555,7 +1558,7 @@
user->adminflags ^= ADMINFLAG_SELFMUTED;
/* they can't override the admin mute state */
- if (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) {
+ if ((confflags & CONFFLAG_MONITOR) || (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED))) {
if (!ast_streamfile(chan, "conf-muted", chan->language))
ast_waitstream(chan, "");
} else {
@@ -1615,7 +1618,7 @@
fr.offset = AST_FRIENDLY_OFFSET;
if (!user->listen.actual &&
((confflags & CONFFLAG_MONITOR) ||
- (user->adminflags & ADMINFLAG_MUTED) ||
+ (user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) ||
(!user->talking && (confflags & CONFFLAG_OPTIMIZETALKER))
)) {
int index;
@@ -2297,13 +2300,13 @@
break;
case 109: /* m: Unmute */
if (user) {
- user->adminflags &= ~ADMINFLAG_MUTED;
+ user->adminflags &= ~(ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED);
} else
ast_log(LOG_NOTICE, "Specified User not found!\n");
break;
case 110: /* n: Unmute all users */
AST_LIST_TRAVERSE(&cnf->userlist, user, list)
- user->adminflags &= ~ADMINFLAG_MUTED;
+ user->adminflags &= ~(ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED);
break;
case 107: /* k: Kick user */
if (user)
@@ -2424,7 +2427,7 @@
if (mute)
user->adminflags |= ADMINFLAG_MUTED; /* request user muting */
else
- user->adminflags &= ~ADMINFLAG_MUTED; /* request user unmuting */
+ user->adminflags &= ~(ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED); /* request user unmuting */
AST_LIST_UNLOCK(&confs);
Modified: team/oej/codecnegotiation/apps/app_morsecode.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/app_morsecode.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/app_morsecode.c (original)
+++ team/oej/codecnegotiation/apps/app_morsecode.c Wed Jun 14 09:10:38 2006
@@ -74,10 +74,10 @@
"--..--", /* 44 - , */
"-....-", /* 45 - - */
".-.-.-", /* 46 - . */
- "-··-·", /* 47 - / */
+ "-..-.", /* 47 - / */
"-----", ".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..", "----.", /* 48-57 - 0-9 */
"---...", /* 58 - : */
- "-·-·-·", /* 59 - ; */
+ "-.-.-.", /* 59 - ; */
"", /* 60 - < */
"-...-", /* 61 - = */
"", /* 62 - > */
@@ -86,18 +86,18 @@
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--",
"-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..",
"-.--.-", /* 91 - [ (really '(') */
- "-··-·", /* 92 - \ (really '/') */
+ "-..-.", /* 92 - \ (really '/') */
"-.--.-", /* 93 - ] (really ')') */
"", /* 94 - ^ */
- "··--·-", /* 95 - _ */
+ "..--.-", /* 95 - _ */
".----.", /* 96 - ` */
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--",
"-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--..",
"-.--.-", /* 123 - { (really '(') */
"", /* 124 - | */
"-.--.-", /* 125 - } (really ')') */
- "-··-·", /* 126 - ~ (really bar) */
- "· · ·", /* 127 - <del> (error) */
+ "-..-.", /* 126 - ~ (really bar) */
+ ". . .", /* 127 - <del> (error) */
};
static void playtone(struct ast_channel *chan, int tone, int len)
Modified: team/oej/codecnegotiation/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/app_queue.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/app_queue.c (original)
+++ team/oej/codecnegotiation/apps/app_queue.c Wed Jun 14 09:10:38 2006
@@ -2606,7 +2606,7 @@
if (bridge != AST_PBX_NO_HANGUP_PEER)
ast_hangup(peer);
update_queue(qe->parent, member);
- res = bridge ? -1 : 0;
+ res = bridge ? bridge : 1;
}
out:
hangupcalls(outgoing, NULL);
Modified: team/oej/codecnegotiation/build_tools/menuselect.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/build_tools/menuselect.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/build_tools/menuselect.c (original)
+++ team/oej/codecnegotiation/build_tools/menuselect.c Wed Jun 14 09:10:38 2006
@@ -39,20 +39,6 @@
#include "asterisk/linkedlists.h"
#undef MENUSELECT_DEBUG
-
-struct depend {
- /*! the name of the dependency */
- const char *name;
- /*! for linking */
- AST_LIST_ENTRY(depend) list;
-};
-
-struct conflict {
- /*! the name of the conflict */
- const char *name;
- /*! for linking */
- AST_LIST_ENTRY(conflict) list;
-};
/*! The list of categories */
struct categories categories = AST_LIST_HEAD_NOLOCK_INIT_VALUE;
Modified: team/oej/codecnegotiation/build_tools/menuselect.h
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/build_tools/menuselect.h?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/build_tools/menuselect.h (original)
+++ team/oej/codecnegotiation/build_tools/menuselect.h Wed Jun 14 09:10:38 2006
@@ -31,8 +31,19 @@
#define OUTPUT_MAKEOPTS_DEFAULT "menuselect.makeopts"
#define MENUSELECT_DEPS "build_tools/menuselect-deps"
-struct depend;
-struct conflict;
+struct depend {
+ /*! the name of the dependency */
+ const char *name;
+ /*! for linking */
+ AST_LIST_ENTRY(depend) list;
+};
+
+struct conflict {
+ /*! the name of the conflict */
+ const char *name;
+ /*! for linking */
+ AST_LIST_ENTRY(conflict) list;
+};
struct member {
/*! What will be sent to the makeopts file */
Modified: team/oej/codecnegotiation/build_tools/menuselect_curses.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/build_tools/menuselect_curses.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/build_tools/menuselect_curses.c (original)
+++ team/oej/codecnegotiation/build_tools/menuselect_curses.c Wed Jun 14 09:10:38 2006
@@ -126,7 +126,9 @@
{
int i = 0;
int j = 0;
- struct member *mem;
+ struct member *mem, *curmem = NULL;
+ struct depend *dep;
+ struct conflict *con;
char buf[64];
const char *desc = NULL;
@@ -146,15 +148,35 @@
waddstr(menu, buf);
if (curopt + 1 == i)
- desc = mem->displayname;
+ curmem = mem;
if (i == end)
break;
}
- if (desc) {
+ if (curmem->displayname) {
wmove(menu, end - start + 2, max_x / 2 - 16);
- waddstr(menu, desc);
+ waddstr(menu, curmem->displayname);
+ }
+ if (!AST_LIST_EMPTY(&curmem->deps)) {
+ wmove(menu, end - start + 3, max_x / 2 - 16);
+ strcpy(buf, "Depends on: ");
+ AST_LIST_TRAVERSE(&curmem->deps, dep, list) {
+ strncat(buf, dep->name, sizeof(buf) - strlen(buf) - 1);
+ if (AST_LIST_NEXT(dep, list))
+ strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
+ }
+ waddstr(menu, buf);
+ }
+ if (!AST_LIST_EMPTY(&curmem->conflicts)) {
+ wmove(menu, end - start + 4, max_x / 2 - 16);
+ strcpy(buf, "Conflicts with: ");
+ AST_LIST_TRAVERSE(&curmem->conflicts, con, list) {
+ strncat(buf, con->name, sizeof(buf) - strlen(buf) - 1);
+ if (AST_LIST_NEXT(con, list))
+ strncat(buf, ", ", sizeof(buf) - strlen(buf) - 1);
+ }
+ waddstr(menu, buf);
}
wmove(menu, curopt - start, max_x / 2 - 9);
Modified: team/oej/codecnegotiation/cdr/cdr_radius.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/cdr/cdr_radius.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/cdr/cdr_radius.c (original)
+++ team/oej/codecnegotiation/cdr/cdr_radius.c Wed Jun 14 09:10:38 2006
@@ -47,6 +47,7 @@
#include "asterisk/module.h"
#include "asterisk/logger.h"
#include "asterisk/utils.h"
+#include "asterisk/options.h"
/*! ISO 8601 standard format */
#define DATE_FORMAT "%Y-%m-%d %T %z"
@@ -216,7 +217,8 @@
VALUE_PAIR *send = NULL;
if (build_radius_record(&send, cdr)) {
- ast_log(LOG_WARNING, "Unable to create RADIUS record. CDR not recorded!\n");
+ if (option_debug)
+ ast_log(LOG_DEBUG, "Unable to create RADIUS record. CDR not recorded!\n");
return result;
}
Modified: team/oej/codecnegotiation/channel.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channel.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channel.c (original)
+++ team/oej/codecnegotiation/channel.c Wed Jun 14 09:10:38 2006
@@ -1011,6 +1011,9 @@
while ((vardata = AST_LIST_REMOVE_HEAD(headp, entries)))
ast_var_delete(vardata);
+
+ /* Destroy the jitterbuffer */
+ ast_jb_destroy(chan);
ast_string_field_free_all(chan);
free(chan);
@@ -2094,7 +2097,7 @@
int ast_internal_timing_enabled(struct ast_channel *chan)
{
int ret = ast_opt_internal_timing && chan->timingfd > -1;
- if (option_debug > 3)
+ if (option_debug > 20)
ast_log(LOG_DEBUG, "Internal timing is %s (option_internal_timing=%d chan->timingfd=%d)\n", ret? "enabled": "disabled", ast_opt_internal_timing, chan->timingfd);
return ret;
}
@@ -2547,7 +2550,12 @@
timeout = 0; /* trick to force exit from the while() */
break;
- case AST_CONTROL_PROGRESS: /* Ignore */
+ /* Ignore these */
+ case AST_CONTROL_PROGRESS:
+ case AST_CONTROL_PROCEEDING:
+ case AST_CONTROL_HOLD:
+ case AST_CONTROL_UNHOLD:
+ case AST_CONTROL_VIDUPDATE:
case -1: /* Ignore -- just stopping indications */
break;
@@ -2812,6 +2820,14 @@
int ast_channel_masquerade(struct ast_channel *original, struct ast_channel *clone)
{
int res = -1;
+
+ /* each of these channels may be sitting behind a channel proxy (i.e. chan_agent)
+ and if so, we don't really want to masquerade it, but its proxy */
+ if (original->_bridge && (original->_bridge != ast_bridged_channel(original)))
+ original = original->_bridge;
+
+ if (clone->_bridge && (clone->_bridge != ast_bridged_channel(clone)))
+ clone = clone->_bridge;
if (original == clone) {
ast_log(LOG_WARNING, "Can't masquerade channel '%s' into itself!\n", original->name);
@@ -3290,6 +3306,9 @@
int watch_c0_dtmf;
int watch_c1_dtmf;
void *pvt0, *pvt1;
+ /* Indicates whether a frame was queued into a jitterbuffer */
+ int frame_put_in_jb = 0;
+ int jb_in_use;
int to;
cs[0] = c0;
@@ -3301,6 +3320,9 @@
watch_c0_dtmf = config->flags & AST_BRIDGE_DTMF_CHANNEL_0;
watch_c1_dtmf = config->flags & AST_BRIDGE_DTMF_CHANNEL_1;
+ /* Check the need of a jitterbuffer for each channel */
+ jb_in_use = ast_jb_do_usecheck(c0, c1);
+
for (;;) {
struct ast_channel *who, *other;
@@ -3319,9 +3341,15 @@
}
} else
to = -1;
+ /* Calculate the appropriate max sleep interval - in general, this is the time,
+ left to the closest jb delivery moment */
+ if (jb_in_use)
+ to = ast_jb_get_when_to_wakeup(c0, c1, to);
who = ast_waitfor_n(cs, 2, &to);
if (!who) {
- ast_log(LOG_DEBUG, "Nobody there, continuing...\n");
+ /* No frame received within the specified timeout - check if we have to deliver now */
+ if (jb_in_use)
+ ast_jb_get_and_deliver(c0, c1);
if (c0->_softhangup == AST_SOFTHANGUP_UNBRIDGE || c1->_softhangup == AST_SOFTHANGUP_UNBRIDGE) {
if (c0->_softhangup == AST_SOFTHANGUP_UNBRIDGE)
c0->_softhangup = 0;
@@ -3341,6 +3369,9 @@
}
other = (who == c0) ? c1 : c0; /* the 'other' channel */
+ /* Try add the frame info the who's bridged channel jitterbuff */
+ if (jb_in_use)
+ frame_put_in_jb = !ast_jb_put(other, f);
if ((f->frametype == AST_FRAME_CONTROL) && !(config->flags & AST_BRIDGE_IGNORE_SIGS)) {
int bridge_exit = 0;
@@ -3377,8 +3408,13 @@
ast_log(LOG_DEBUG, "Got DTMF on channel (%s)\n", who->name);
break;
}
- /* other frames go to the other side */
- ast_write(other, f);
+ /* Write immediately frames, not passed through jb */
+ if (!frame_put_in_jb)
+ ast_write(other, f);
+
+ /* Check if we have to deliver now */
+ if (jb_in_use)
+ ast_jb_get_and_deliver(c0, c1);
}
/* XXX do we want to pass on also frames not matched above ? */
ast_frfree(f);
Modified: team/oej/codecnegotiation/channels/chan_alsa.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_alsa.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_alsa.c (original)
+++ team/oej/codecnegotiation/channels/chan_alsa.c Wed Jun 14 09:10:38 2006
@@ -60,6 +60,7 @@
#include "asterisk/causes.h"
#include "asterisk/endian.h"
#include "asterisk/stringfields.h"
+#include "asterisk/abstract_jb.h"
#include "busy.h"
#include "ringtone.h"
@@ -69,6 +70,16 @@
#ifdef ALSA_MONITOR
#include "alsa-monitor.h"
#endif
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+ .flags = 0,
+ .max_size = -1,
+ .resync_threshold = -1,
+ .impl = ""
+};
+static struct ast_jb_conf global_jbconf;
#define DEBUG 0
/* Which device to use */
@@ -812,6 +823,8 @@
tmp = NULL;
}
}
+ if (tmp)
+ ast_jb_configure(tmp, &global_jbconf);
}
return tmp;
}
@@ -1051,9 +1064,18 @@
int x;
struct ast_config *cfg;
struct ast_variable *v;
+
+ /* Copy the default jb config over global_jbconf */
+ memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
if ((cfg = ast_config_load(config))) {
v = ast_variable_browse(cfg, "general");
while(v) {
+ /* handle jb conf */
+ if (!ast_jb_read_conf(&global_jbconf, v->name, v->value)) {
+ v = v->next;
+ continue;
+ }
if (!strcasecmp(v->name, "autoanswer"))
autoanswer = ast_true(v->value);
else if (!strcasecmp(v->name, "silencesuppression"))
Modified: team/oej/codecnegotiation/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_h323.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_h323.c (original)
+++ team/oej/codecnegotiation/channels/chan_h323.c Wed Jun 14 09:10:38 2006
@@ -83,6 +83,7 @@
#include "asterisk/dsp.h"
#include "asterisk/causes.h"
#include "asterisk/stringfields.h"
+#include "asterisk/abstract_jb.h"
#ifdef __cplusplus
}
#endif
@@ -104,6 +105,16 @@
/* global debug flag */
int h323debug;
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+ .flags = 0,
+ .max_size = -1,
+ .resync_threshold = -1,
+ .impl = ""
+};
+static struct ast_jb_conf global_jbconf;
/** Variables required by Asterisk */
static const char desc[] = "The NuFone Network's Open H.323 Channel Driver";
@@ -211,7 +222,7 @@
.type = "H323",
.description = tdesc,
.capabilities = ((AST_FORMAT_MAX_AUDIO << 1) - 1),
- .properties = AST_CHAN_TP_WANTSJITTER,
+ .properties = AST_CHAN_TP_WANTSJITTER | AST_CHAN_TP_CREATESJITTER,
.requester = oh323_request,
.send_digit = oh323_digit,
.call = oh323_call,
@@ -786,6 +797,10 @@
ch = NULL;
}
}
+
+ /* Configure the new channel jb */
+ if (ch && pvt && pvt->rtp)
+ ast_jb_configure(ch, &global_jbconf);
} else {
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
}
@@ -2017,8 +2032,18 @@
global_options.dtmfmode = H323_DTMF_RFC2833;
global_options.capability = GLOBAL_CAPABILITY;
global_options.bridge = 1; /* Do native bridging by default */
+
+ /* Copy the default jb config over global_jbconf */
+ memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
v = ast_variable_browse(cfg, "general");
- while(v) {
+ while (v) {
+ /* handle jb conf */
+ if (!ast_jb_read_conf(&global_jbconf, v->name, v->value)) {
+ v = v->next;
+ continue;
+ }
+
/* Create the interface list */
if (!strcasecmp(v->name, "port")) {
h323_signalling_port = (int)strtol(v->value, NULL, 10);
Modified: team/oej/codecnegotiation/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_iax2.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_iax2.c (original)
+++ team/oej/codecnegotiation/channels/chan_iax2.c Wed Jun 14 09:10:38 2006
@@ -1543,6 +1543,7 @@
the IAX thread with the iaxsl lock held. */
struct iax_frame *fr = data;
fr->retrans = -1;
+ fr->af.has_timing_info = 0;
if (iaxs[fr->callno] && !ast_test_flag(iaxs[fr->callno], IAX_ALREADYGONE))
iax2_queue_frame(fr->callno, &fr->af);
/* Free our iax frame */
Modified: team/oej/codecnegotiation/channels/chan_jingle.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_jingle.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_jingle.c (original)
+++ team/oej/codecnegotiation/channels/chan_jingle.c Wed Jun 14 09:10:38 2006
@@ -69,10 +69,21 @@
#include "asterisk/utils.h"
#include "asterisk/causes.h"
#include "asterisk/astobj.h"
+#include "asterisk/abstract_jb.h"
#include "asterisk/jabber.h"
#include "asterisk/jingle.h"
#define JINGLE_CONFIG "jingle.conf"
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+ .flags = 0,
+ .max_size = -1,
+ .resync_threshold = -1,
+ .impl = ""
+};
+static struct ast_jb_conf global_jbconf;
enum jingle_protocol {
AJI_PROTOCOL_UDP = 1,
@@ -191,6 +202,7 @@
.indicate = jingle_indicate,
.fixup = jingle_fixup,
.send_html = jingle_sendhtml,
+ .properties = AST_CHAN_TP_WANTSJITTER | AST_CHAN_TP_CREATESJITTER
};
static struct sockaddr_in bindaddr = { 0, }; /*!< The address we bind to */
@@ -772,6 +784,11 @@
ast_hangup(tmp);
tmp = NULL;
}
+
+ /* Configure the new channel jb */
+ if (tmp && i && i->rtp)
+ ast_jb_configure(tmp, &global_jbconf);
+
return tmp;
}
@@ -1452,8 +1469,15 @@
return 0;
}
+ /* Copy the default jb config over global_jbconf */
+ memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
cat = ast_category_browse(cfg, NULL);
for (var = ast_variable_browse(cfg, "general"); var; var = var->next) {
+ /* handle jb conf */
+ if (!ast_jb_read_conf(&global_jbconf, var->name, var->value))
+ continue;
+
if (!strcasecmp(var->name, "allowguest"))
allowguest =
(ast_true(ast_variable_retrieve(cfg, "general", "allowguest"))) ? 1 : 0;
Modified: team/oej/codecnegotiation/channels/chan_mgcp.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_mgcp.c?rev=34088&r1=34087&r2=34088&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_mgcp.c (original)
+++ team/oej/codecnegotiation/channels/chan_mgcp.c Wed Jun 14 09:10:38 2006
@@ -117,6 +117,7 @@
#include "asterisk/dsp.h"
#include "asterisk/devicestate.h"
#include "asterisk/stringfields.h"
+#include "asterisk/abstract_jb.h"
#ifndef IPTOS_MINCOST
#define IPTOS_MINCOST 0x02
@@ -136,6 +137,16 @@
#ifndef INADDR_NONE
#define INADDR_NONE (in_addr_t)(-1)
#endif
+
+/*! Global jitterbuffer configuration - by default, jb is disabled */
+static struct ast_jb_conf default_jbconf =
+{
+ .flags = 0,
+ .max_size = -1,
+ .resync_threshold = -1,
+ .impl = ""
+};
+static struct ast_jb_conf global_jbconf;
static const char tdesc[] = "Media Gateway Control Protocol (MGCP)";
static const char config[] = "mgcp.conf";
@@ -353,10 +364,6 @@
This should be obsoleted */
char cxident[80];
char callid[80];
-/* SC: obsolete
- time_t lastouttime;
- int lastout;
-*/
int cxmode;
struct mgcp_request *cx_queue; /*!< SC: pending CX commands */
ast_mutex_t cx_queue_lock; /*!< SC: CX queue lock */
@@ -364,10 +371,6 @@
int iseq; /* Not used? RTP? */
int outgoing;
int alreadygone;
-/* SC: obsolete
- int messagepending;
- struct mgcp_message *msgs;
-*/
struct mgcp_subchannel *next; /* for out circular linked list */
};
@@ -503,7 +506,7 @@
.type = "MGCP",
.description = tdesc,
.capabilities = AST_FORMAT_ULAW,
- .properties = AST_CHAN_TP_WANTSJITTER,
+ .properties = AST_CHAN_TP_WANTSJITTER | AST_CHAN_TP_CREATESJITTER,
.requester = mgcp_request,
.devicestate = mgcp_devicestate,
.call = mgcp_call,
@@ -1498,6 +1501,10 @@
ast_verbose(VERBOSE_PREFIX_3 "MGCP mgcp_new(%s) created in state: %s\n",
tmp->name, ast_state2str(state));
}
+
+ /* Configure the new channel jb */
+ if (tmp && sub && sub->rtp)
+ ast_jb_configure(tmp, &global_jbconf);
} else {
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
}
@@ -4164,8 +4171,18 @@
}
memset(&bindaddr, 0, sizeof(bindaddr));
dtmfmode = 0;
+
+ /* Copy the default jb config over global_jbconf */
+ memcpy(&global_jbconf, &default_jbconf, sizeof(struct ast_jb_conf));
+
[... 6272 lines stripped ...]
More information about the asterisk-commits
mailing list