[asterisk-commits] branch oej/codecnegotiation r34813 - in
/team/oej/codecnegotiation: ./ apps/ ...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Mon Jun 19 06:42:04 MST 2006
Author: oej
Date: Mon Jun 19 08:42:03 2006
New Revision: 34813
URL: http://svn.digium.com/view/asterisk?rev=34813&view=rev
Log:
Reset automerge
Modified:
team/oej/codecnegotiation/ (props changed)
team/oej/codecnegotiation/Makefile
team/oej/codecnegotiation/apps/Makefile
team/oej/codecnegotiation/apps/app_voicemail.c
team/oej/codecnegotiation/cdr/Makefile
team/oej/codecnegotiation/channels/Makefile
team/oej/codecnegotiation/channels/chan_agent.c
team/oej/codecnegotiation/channels/chan_iax2.c
team/oej/codecnegotiation/channels/chan_jingle.c
team/oej/codecnegotiation/channels/chan_local.c
team/oej/codecnegotiation/channels/chan_misdn.c
team/oej/codecnegotiation/channels/chan_skinny.c
team/oej/codecnegotiation/channels/misdn/isdn_lib.c
team/oej/codecnegotiation/channels/misdn/isdn_lib.h
team/oej/codecnegotiation/codecs/Makefile
team/oej/codecnegotiation/configs/iax.conf.sample
team/oej/codecnegotiation/configs/indications.conf.sample
team/oej/codecnegotiation/configs/skinny.conf.sample
team/oej/codecnegotiation/db1-ast/Makefile
team/oej/codecnegotiation/doc/ael.txt
team/oej/codecnegotiation/doc/radius.txt
team/oej/codecnegotiation/formats/Makefile
team/oej/codecnegotiation/funcs/Makefile
team/oej/codecnegotiation/include/asterisk/ael_structs.h
team/oej/codecnegotiation/pbx/Makefile
team/oej/codecnegotiation/pbx/pbx_ael.c
team/oej/codecnegotiation/res/Makefile
team/oej/codecnegotiation/res/res_jabber.c
team/oej/codecnegotiation/res/res_smdi.c
team/oej/codecnegotiation/say.c
team/oej/codecnegotiation/sounds/Makefile
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 Mon Jun 19 08:42:03 2006
@@ -1,1 +1,1 @@
-/trunk:1-34443
+/trunk:1-34811
Modified: team/oej/codecnegotiation/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/Makefile?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/Makefile (original)
+++ team/oej/codecnegotiation/Makefile Mon Jun 19 08:42:03 2006
@@ -145,13 +145,13 @@
OPTIMIZE+=-O6
else
# Stack backtraces, while useful for debugging, are incompatible with optimizations
- ifeq (${OSARCH},Linux)
+ ifeq ($(OSARCH),Linux)
CFLAGS+=-DSTACK_BACKTRACES
endif
endif
else
# Stack backtraces, while useful for debugging, are incompatible with optimizations
- ifeq (${OSARCH},Linux)
+ ifeq ($(OSARCH),Linux)
CFLAGS+=-DSTACK_BACKTRACES
endif
endif
@@ -277,7 +277,7 @@
ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS)
MOD_SUBDIRS=res channels pbx apps codecs formats cdr funcs
-OTHER_SUBDIRS=utils stdtime agi
+OTHER_SUBDIRS=utils agi
SUBDIRS:=$(MOD_SUBDIRS) $(OTHER_SUBDIRS)
OBJS=io.o sched.o logger.o frame.o loader.o config.o channel.o \
@@ -477,17 +477,14 @@
fi
@rm -f $@.tmp
-stdtime/libtime.a:
- CFLAGS="$(MOD_SUBDIR_CFLAGS)$(ASTCFLAGS)" $(MAKE) -C stdtime libtime.a
-
-asterisk: include/asterisk/buildopts.h editline/libedit.a db1-ast/libdb1.a stdtime/libtime.a $(OBJS)
+asterisk: include/asterisk/buildopts.h editline/libedit.a db1-ast/libdb1.a $(OBJS)
build_tools/make_build_h > include/asterisk/build.h.tmp
if cmp -s include/asterisk/build.h.tmp include/asterisk/build.h ; then echo ; else \
mv include/asterisk/build.h.tmp include/asterisk/build.h ; \
fi
rm -f include/asterisk/build.h.tmp
$(CC) -c -o buildinfo.o $(CFLAGS) buildinfo.c
- $(CC) $(DEBUG) $(ASTOBJ) $(ASTLINK) $(OBJS) buildinfo.o $(LIBEDIT) db1-ast/libdb1.a stdtime/libtime.a $(LIBS)
+ $(CC) $(DEBUG) $(ASTOBJ) $(ASTLINK) $(OBJS) buildinfo.o $(LIBEDIT) db1-ast/libdb1.a $(LIBS)
muted: muted.o
$(CC) $(AUDIO_LIBS) -o muted muted.o
@@ -668,7 +665,7 @@
adsi:
mkdir -p $(DESTDIR)$(ASTETCDIR)
for x in configs/*.adsi; do \
- if [ ! -f $(DESTDIR)$(ASTETCDIRX)/$$x ]; then \
+ if [ ! -f $(DESTDIR)$(ASTETCDIR)/$$x ]; then \
$(INSTALL) -m 644 $$x $(DESTDIR)$(ASTETCDIR)/`basename $$x` ; \
fi ; \
done
Modified: team/oej/codecnegotiation/apps/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/Makefile?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/Makefile (original)
+++ team/oej/codecnegotiation/apps/Makefile Mon Jun 19 08:42:03 2006
@@ -11,20 +11,15 @@
# the GNU General Public License
#
-include ../menuselect.makeopts
+ifneq ($(wildcard ../menuselect.makeopts),)
+ include ../menuselect.makeopts
+endif
SELECTED_MODS:=$(filter-out $(MENUSELECT_APPS),$(patsubst %.c,%,$(wildcard app_*.c)))
-# If you have UnixODBC you can use ODBC voicemail
-# storage
-#
-# Uncomment to use ODBC storage
-#CFLAGS+=-DUSE_ODBC_STORAGE
-# Uncomment for extended ODBC voicemail storage
-#CFLAGS+=-DEXTENDED_ODBC_STORAGE
-# See doc/README.odbcstorage for more information
+MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
-MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
+app_voicemail.o: CFLAGS+=$(patsubst %,-D%,$(MENUSELECT_app_voicemail))
all: $(MODS)
Modified: team/oej/codecnegotiation/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/apps/app_voicemail.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/apps/app_voicemail.c (original)
+++ team/oej/codecnegotiation/apps/app_voicemail.c Mon Jun 19 08:42:03 2006
@@ -40,6 +40,19 @@
* 12-04-2006 : Support for Polish added by DIR (www.dir.pl)
* Bartosz Supczinski <Bartosz.Supczinski at dir.pl>
*/
+
+/*** MAKEOPTS
+<category name="MENUSELECT_app_voicemail" displayname="Voicemail Build Options" positive_output="yes" remove_on_change="apps/app_voicemail.o">
+ <member name="ODBC_STORAGE" displayname="Storage of Voicemail using ODBC">
+ <depend>unixodbc</depend>
+ <defaultenabled>no</defaultenabled>
+ </member>
+ <member name="EXTENDED_ODBC_STORAGE" displayname="Storage of Voicemail using ODBC (extended)">
+ <depend>unixodbc</depend>
+ <defaultenabled>no</defaultenabled>
+ </member>
+</category>
+ ***/
#include "asterisk.h"
@@ -77,7 +90,7 @@
#include "asterisk/stringfields.h"
#include "asterisk/smdi.h"
#define SMDI_MWI_WAIT_TIMEOUT 1000 /* 1 second */
-#ifdef USE_ODBC_STORAGE
+#ifdef ODBC_STORAGE
#include "asterisk/res_odbc.h"
#endif
@@ -289,7 +302,7 @@
static void apply_options(struct ast_vm_user *vmu, const char *options);
-#ifdef USE_ODBC_STORAGE
+#ifdef ODBC_STORAGE
static char odbc_database[80];
static char odbc_table[80];
#define RETRIEVE(a,b) retrieve_file(a,b)
@@ -838,7 +851,7 @@
}
-#ifdef USE_ODBC_STORAGE
+#ifdef ODBC_STORAGE
static int retrieve_file(char *dir, int msgnum)
{
int x = 0;
@@ -1290,7 +1303,7 @@
}
fdlen = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
- printf("Length is %d\n", fdlen);
+ printf("Length is %zd\n", fdlen);
fdm = mmap(NULL, fdlen, PROT_READ | PROT_WRITE, MAP_SHARED,fd, 0);
if (!fdm) {
ast_log(LOG_WARNING, "Memory map failed!\n");
@@ -2015,7 +2028,7 @@
return (id >= 0 && id < (sizeof(msgs)/sizeof(msgs[0]))) ? msgs[id] : "Unknown";
}
-#ifdef USE_ODBC_STORAGE
+#ifdef ODBC_STORAGE
static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
{
int x = -1;
@@ -6183,7 +6196,7 @@
astsearch = "no";
ast_set2_flag((&globalflags), ast_true(astsearch), VM_SEARCH);
-#ifdef USE_ODBC_STORAGE
+#ifdef ODBC_STORAGE
strcpy(odbc_database, "asterisk");
if ((thresholdstr = ast_variable_retrieve(cfg, "general", "odbcstorage"))) {
ast_copy_string(odbc_database, thresholdstr, sizeof(odbc_database));
@@ -6614,7 +6627,7 @@
ast_install_vm_functions(has_voicemail, inboxcount, messagecount);
-#if defined(USE_ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE)
+#if defined(ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE)
ast_log(LOG_WARNING, "The current ODBC storage table format will be changed soon."
"Please update your tables as per the README and edit the apps/Makefile "
"and uncomment the line containing EXTENDED_ODBC_STORAGE to enable the "
Modified: team/oej/codecnegotiation/cdr/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/cdr/Makefile?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/cdr/Makefile (original)
+++ team/oej/codecnegotiation/cdr/Makefile Mon Jun 19 08:42:03 2006
@@ -11,7 +11,9 @@
# the GNU General Public License
#
-include ../menuselect.makeopts
+ifneq ($(wildcard ../menuselect.makeopts),)
+ include ../menuselect.makeopts
+endif
SELECTED_MODS:=$(filter-out $(MENUSELECT_CDR),$(patsubst %.c,%,$(wildcard cdr_*.c)))
@@ -39,7 +41,7 @@
MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
-all: depend $(MODS)
+all: $(MODS)
install: all
for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
Modified: team/oej/codecnegotiation/channels/Makefile
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/Makefile?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/Makefile (original)
+++ team/oej/codecnegotiation/channels/Makefile Mon Jun 19 08:42:03 2006
@@ -11,7 +11,9 @@
# the GNU General Public License
#
-include ../menuselect.makeopts
+ifneq ($(wildcard ../menuselect.makeopts),)
+ include ../menuselect.makeopts
+endif
SELECTED_MODS:=$(filter-out $(MENUSELECT_CHANNELS),$(patsubst %.c,%,$(wildcard chan_*.c)))
@@ -66,7 +68,7 @@
MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
-all: depend $(MODS)
+all: $(MODS)
clean-depend:
rm -f .depend
Modified: team/oej/codecnegotiation/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_agent.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_agent.c (original)
+++ team/oej/codecnegotiation/channels/chan_agent.c Mon Jun 19 08:42:03 2006
@@ -2584,6 +2584,7 @@
{
struct agent_pvt *p;
/* First, take us out of the channel loop */
+ ast_channel_unregister(&agent_tech);
/* Unregister dialplan functions */
ast_custom_function_unregister(&agent_function);
/* Unregister CLI commands */
@@ -2608,7 +2609,6 @@
}
AST_LIST_UNLOCK(&agents);
AST_LIST_HEAD_DESTROY(&agents);
-
return 0;
}
Modified: team/oej/codecnegotiation/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_iax2.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_iax2.c (original)
+++ team/oej/codecnegotiation/channels/chan_iax2.c Mon Jun 19 08:42:03 2006
@@ -8350,11 +8350,7 @@
peer->peercontext[0] = '\0';
while(v) {
if (!strcasecmp(v->name, "secret")) {
- if (!ast_strlen_zero(peer->secret)) {
- strncpy(peer->secret + strlen(peer->secret), ";", sizeof(peer->secret)-strlen(peer->secret) - 1);
- strncpy(peer->secret + strlen(peer->secret), v->value, sizeof(peer->secret)-strlen(peer->secret) - 1);
- } else
- ast_copy_string(peer->secret, v->value, sizeof(peer->secret));
+ ast_copy_string(peer->secret, v->value, sizeof(peer->secret));
} else if (!strcasecmp(v->name, "mailbox")) {
ast_copy_string(peer->mailbox, v->value, sizeof(peer->mailbox));
} else if (!strcasecmp(v->name, "dbsecret")) {
Modified: team/oej/codecnegotiation/channels/chan_jingle.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_jingle.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_jingle.c (original)
+++ team/oej/codecnegotiation/channels/chan_jingle.c Mon Jun 19 08:42:03 2006
@@ -479,13 +479,10 @@
struct jingle_pvt *tmp;
ast_log(LOG_DEBUG, "The client is %s\n", client->name);
- tmp = client->p;
/* Make sure our new call doesn't exist yet */
- while (tmp) {
- if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid)) {
+ for (tmp = client->p; tmp; tmp = tmp->next) {
+ if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid))
break;
- }
- tmp = tmp->next;
}
if (tmp) {
@@ -502,13 +499,10 @@
struct jingle_pvt *tmp;
ast_log(LOG_DEBUG, "The client is %s\n", client->name);
- tmp = client->p;
/* Make sure our new call doesn't exist yet */
- while (tmp) {
- if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid)) {
+ for (tmp = client->p; tmp; tmp = tmp->next) {
+ if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid))
break;
- }
- tmp = tmp->next;
}
if (tmp) {
@@ -536,21 +530,20 @@
iq = iks_new("iq");
jingle = iks_new(GOOGLE_NODE);
candidate = iks_new("candidate");
- ours1 = (struct jingle_candidate *) ast_calloc(1, sizeof(struct jingle_candidate));
- ours2 = (struct jingle_candidate *) ast_calloc(1, sizeof(struct jingle_candidate));
- if (!iq || !jingle || !candidate || !ours1 || !ours2) {
- ast_log(LOG_WARNING, "out of memory!\n");
+ if (!iq || !jingle || !candidate) {
+ ast_log(LOG_ERROR, "Memory allocation error\n");
goto safeout;
}
-
+ ours1 = ast_calloc(1, sizeof(*ours1));
+ ours2 = ast_calloc(1, sizeof(*ours2));
+ if (!ours1 || !ours2)
+ goto safeout;
iks_insert_node(iq, jingle);
iks_insert_node(jingle, candidate);
- while (p) {
- if (!strcasecmp(p->sid, sid)) {
+ for (; p; p = p->next) {
+ if (!strcasecmp(p->sid, sid))
break;
- }
- p = p->next;
}
if (!p) {
@@ -596,8 +589,7 @@
dest.sin_port = sin.sin_port;
- tmp = p->ourcandidates;
- while (tmp) { /*send standard candidates */
+ for (tmp = p->ourcandidates; tmp; tmp = tmp->next) {
snprintf(port, sizeof(port), "%d", tmp->port);
snprintf(preference, sizeof(preference), "%.2f", tmp->preference);
iks_insert_attrib(iq, "from", c->jid->full);
@@ -628,7 +620,6 @@
iks_insert_attrib(candidate, "network", "0");
iks_insert_attrib(candidate, "generation", "0");
iks_send(c->p, iq);
- tmp = tmp->next;
}
p->laststun = 0;
@@ -958,23 +949,18 @@
struct aji_client *c = client->connection;
struct jingle_candidate *newcandidate = NULL;
iks *traversenodes = NULL, *receipt = NULL;
- newcandidate =
- (struct jingle_candidate *) ast_calloc(1, sizeof(struct jingle_candidate));
+ newcandidate = ast_calloc(1, sizeof(*newcandidate));
if (!newcandidate)
return 0;
- memset(newcandidate, 0, sizeof(struct jingle_candidate));
- tmp = client->p;
- while (tmp) {
+ for (tmp = client->p; tmp; tmp = tmp->next) {
if (iks_find_with_attrib(pak->x, GOOGLE_NODE, GOOGLE_SID, tmp->sid)) {
p = tmp;
break;
}
- tmp = tmp->next;
- }
-
- if (!p) {
+ }
+
+ if (!p)
return -1;
- }
traversenodes = pak->query;
while(traversenodes) {
@@ -983,11 +969,9 @@
continue;
}
if(!strcasecmp(iks_name(traversenodes), "candidate")) {
- newcandidate =
- (struct jingle_candidate *) ast_calloc(1, sizeof(struct jingle_candidate));
+ newcandidate = ast_calloc(1, sizeof(*newcandidate));
if (!newcandidate)
return 0;
- memset(newcandidate, 0, sizeof(struct jingle_candidate));
ast_copy_string(newcandidate->name, iks_find_attrib(traversenodes, "name"),
sizeof(newcandidate->name));
ast_copy_string(newcandidate->ip, iks_find_attrib(traversenodes, "address"),
Modified: team/oej/codecnegotiation/channels/chan_local.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_local.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_local.c (original)
+++ team/oej/codecnegotiation/channels/chan_local.c Mon Jun 19 08:42:03 2006
@@ -126,16 +126,23 @@
int res;
exten = ast_strdupa(data);
- if ((context = strchr(exten, '@'))) {
- *context = '\0';
- context = context + 1;
- }
+ context = strchr(exten, '@');
+
+ if (!context) {
+ ast_log(LOG_WARNING, "Someone used Local/%s somewhere without a @context. This is bad.\n", exten);
+ return AST_DEVICE_INVALID;
+ }
+
+ *context = '\0';
+ context = context + 1;
+
if (option_debug > 2)
ast_log(LOG_DEBUG, "Checking if extension %s@%s exists (devicestate)\n", exten, context);
res = ast_exists_extension(NULL, context, exten, 1, NULL);
- if (!res)
+ if (!res) {
+
return AST_DEVICE_INVALID;
- else
+ } else
return AST_DEVICE_UNKNOWN;
}
Modified: team/oej/codecnegotiation/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_misdn.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_misdn.c (original)
+++ team/oej/codecnegotiation/channels/chan_misdn.c Mon Jun 19 08:42:03 2006
@@ -88,8 +88,6 @@
ast_mutex_t mutexjb;
};
-void export_ies(struct ast_channel *chan, struct misdn_bchannel *bc);
-void import_ies(struct ast_channel *chan, struct misdn_bchannel *bc);
/* allocates the jb-structure and initialise the elements*/
@@ -112,16 +110,6 @@
/* BEGIN: chan_misdn.h */
-
-enum tone_e {
- TONE_NONE=0,
- TONE_DIAL,
- TONE_ALERTING,
- TONE_FAR_ALERTING,
- TONE_BUSY,
- TONE_CUSTOM,
- TONE_FILE
-};
enum misdn_chan_state {
@@ -185,6 +173,8 @@
struct ast_trans_pvt *trans;
struct ast_channel * ast;
+
+ int dummy;
struct misdn_bchannel *bc;
struct misdn_bchannel *holded_bc;
@@ -198,6 +188,8 @@
int dropped_frame_cnt;
int far_alerting;
+ int other_pid;
+ struct chan_list *other_ch;
const struct tone_zone_sound *ts;
@@ -206,6 +198,11 @@
struct chan_list *prev;
struct chan_list *first;
};
+
+
+
+void export_ch(struct ast_channel *chan, struct misdn_bchannel *bc, struct chan_list *ch);
+void import_ch(struct ast_channel *chan, struct misdn_bchannel *bc, struct chan_list *ch);
struct robin_list {
char *group;
@@ -306,6 +303,7 @@
static void cl_queue_chan(struct chan_list **list, struct chan_list *chan);
static void cl_dequeue_chan(struct chan_list **list, struct chan_list *chan);
static struct chan_list *find_chan_by_bc(struct chan_list *list, struct misdn_bchannel *bc);
+static struct chan_list *find_chan_by_pid(struct chan_list *list, int pid);
@@ -1638,7 +1636,7 @@
update_config(ch,ORG_AST);
/* fill in some ies from channel vary*/
- import_ies(ast, newbc);
+ import_ch(ast, newbc, ch);
/* Finally The Options Override Everything */
if (opts)
@@ -1854,7 +1852,12 @@
p->state=MISDN_ALERTING;
chan_misdn_log(1, p->bc->port, " --> * IND :\tringing pid:%d\n",p->bc?p->bc->pid:-1);
misdn_lib_send_event( p->bc, EVENT_ALERTING);
-
+
+ if (p->other_ch && p->other_ch->bc && misdn_inband_avail(p->other_ch->bc)) {
+ chan_misdn_log(1,p->bc->port, " --> other End is mISDN and has inband info available\n");
+ break;
+ }
+
if ( !p->bc->nt && (p->orginator==ORG_MISDN) && !p->incoming_early_audio )
chan_misdn_log(1,p->bc->port, " --> incoming_early_audio off\n");
else
@@ -1902,10 +1905,11 @@
case -1 :
chan_misdn_log(1, p->bc->port, " --> * IND :\t-1! (stop indication) pid:%d\n",p->bc?p->bc->pid:-1);
- if (p->state == MISDN_CONNECTED)
+ tone_indicate(p, TONE_NONE);
+
+ if (p->state == MISDN_CONNECTED)
start_bc_tones(p);
- else
- tone_indicate(p, TONE_NONE);
+
break;
case AST_CONTROL_HOLD:
@@ -1967,7 +1971,9 @@
return 0;
}
- stop_bc_tones(p);
+ if (!p->bc->nt)
+ stop_bc_tones(p);
+
release_unlock;
@@ -1994,10 +2000,13 @@
case MISDN_HOLDED:
case MISDN_DIALING:
start_bc_tones(p);
- tone_indicate(p, TONE_BUSY);
+ tone_indicate(p, TONE_HANGUP);
p->state=MISDN_CLEANING;
-
- misdn_lib_send_event( bc, EVENT_RELEASE_COMPLETE);
+
+ if (bc->nt)
+ misdn_lib_send_event( bc, EVENT_DISCONNECT);
+ else
+ misdn_lib_send_event( bc, EVENT_RELEASE_COMPLETE);
break;
@@ -2007,7 +2016,7 @@
chan_misdn_log(2, bc->port, " --> * State Alerting\n");
if (p->orginator != ORG_AST)
- tone_indicate(p, TONE_BUSY);
+ tone_indicate(p, TONE_HANGUP);
p->state=MISDN_CLEANING;
misdn_lib_send_event( bc, EVENT_DISCONNECT);
@@ -2016,7 +2025,7 @@
/* Alerting or Disconect */
chan_misdn_log(2, bc->port, " --> * State Connected\n");
start_bc_tones(p);
- tone_indicate(p, TONE_BUSY);
+ tone_indicate(p, TONE_HANGUP);
misdn_lib_send_event( bc, EVENT_DISCONNECT);
p->state=MISDN_CLEANING; /* MISDN_HUNGUP_FROM_AST; */
@@ -2112,7 +2121,7 @@
if (!ast) return NULL;
if (! (tmp=MISDN_ASTERISK_TECH_PVT(ast)) ) return NULL;
if (!tmp->bc) return NULL;
-
+
len=read(tmp->pipe[0],tmp->ast_rd_buf,sizeof(tmp->ast_rd_buf));
if (len<=0) {
@@ -2349,6 +2358,9 @@
chan_misdn_log(3,cl->bc->port,"Tone Indicate:\n");
if (!cl->ast) {
+ chan_misdn_log(-1,cl->bc->port,"Ast Ptr Not existing anymore.. we need to generate tones ourselves now (tbd)\n");
+
+ misdn_lib_send_tone(cl->bc,tone);
return 0;
}
@@ -2361,7 +2373,7 @@
case TONE_ALERTING:
chan_misdn_log(3,cl->bc->port," --> Ring\n");
ts=ast_get_indication_tone(ast->zone,"ring");
- misdn_lib_tone_generator_stop(cl->bc);
+ misdn_lib_tone_generator_start(cl->bc);
break;
case TONE_FAR_ALERTING:
/* VERY UGLY HACK, BECAUSE CHAN_SIP DOES NOT GENERATE TONES */
@@ -2373,7 +2385,7 @@
case TONE_BUSY:
chan_misdn_log(3,cl->bc->port," --> Busy\n");
ts=ast_get_indication_tone(ast->zone,"busy");
- misdn_lib_tone_generator_stop(cl->bc);
+ misdn_lib_tone_generator_start(cl->bc);
break;
case TONE_FILE:
break;
@@ -2460,7 +2472,7 @@
chan_misdn_log(2, 0, " --> Group Call group: %s\n",group);
}
else if ((p = strchr(port_str, ':'))) {
- // we have a preselected channel
+ /* we have a preselected channel */
*p = 0;
channel = atoi(++p);
port = atoi(port_str);
@@ -2748,6 +2760,17 @@
return NULL;
}
+static struct chan_list *find_chan_by_pid(struct chan_list *list, int pid)
+{
+ struct chan_list *help=list;
+ for (;help; help=help->next) {
+ if (help->bc->pid == pid) return help;
+ }
+
+ chan_misdn_log(6, 0, "$$$ find_chan: No channel found for pid:%d\n",pid);
+
+ return NULL;
+}
static struct chan_list *find_holded(struct chan_list *list, struct misdn_bchannel *bc)
{
@@ -2839,8 +2862,15 @@
release_unlock;
chan_misdn_log(1, bc->port, "release_chan: bc with l3id: %x\n",bc->l3_id);
-
- //releaseing jitterbuffer
+#if 0
+ if (ch->dummy) {
+ ast_hangup(ast);
+ ch->ast=NULL;
+ ast=NULL;
+ }
+#endif
+
+ /*releaseing jitterbuffer*/
if (ch->jb ) {
misdn_jb_destroy(ch->jb);
ch->jb=NULL;
@@ -3042,46 +3072,30 @@
}
}
-void import_ies(struct ast_channel *chan, struct misdn_bchannel *bc)
-{
- const char *tmp;
-
- tmp=pbx_builtin_getvar_helper(chan,"PRI_MODE");
- if (tmp) bc->mode=atoi(tmp);
-
- tmp=pbx_builtin_getvar_helper(chan,"PRI_URATE");
- if (tmp) bc->urate=atoi(tmp);
-
- tmp=pbx_builtin_getvar_helper(chan,"PRI_RATE");
- if (tmp) bc->rate=atoi(tmp);
-
- tmp=pbx_builtin_getvar_helper(chan,"PRI_USER1");
- if (tmp) bc->user1=atoi(tmp);
-
- tmp=pbx_builtin_getvar_helper(chan,"PRI_PROGRESS_INDICATOR");
- if (tmp) bc->progress_indicator=atoi(tmp);
-}
-
-void export_ies(struct ast_channel *chan, struct misdn_bchannel *bc)
+
+
+
+void import_ch(struct ast_channel *chan, struct misdn_bchannel *bc, struct chan_list *ch)
+{
+ char *tmp;
+ tmp=pbx_builtin_getvar_helper(chan,"MISDN_PID");
+ if (tmp) {
+ ch->other_pid=atoi(tmp);
+ chan_misdn_log(1,bc->port,"IMPORT_PID: importing pid:%s\n",tmp);
+ if (ch->other_pid >0) {
+ ch->other_ch=find_chan_by_pid(cl_te,ch->other_pid);
+ if (ch->other_ch) ch->other_ch->other_ch=ch;
+ }
+ }
+}
+
+void export_ch(struct ast_channel *chan, struct misdn_bchannel *bc, struct chan_list *ch)
{
char tmp[32];
-
- sprintf(tmp,"%d",bc->mode);
- pbx_builtin_setvar_helper(chan,"_PRI_MODE",tmp);
-
- sprintf(tmp,"%d",bc->urate);
- pbx_builtin_setvar_helper(chan,"_PRI_URATE",tmp);
-
- sprintf(tmp,"%d",bc->rate);
- pbx_builtin_setvar_helper(chan,"_PRI_RATE",tmp);
-
- sprintf(tmp,"%d",bc->user1);
- pbx_builtin_setvar_helper(chan,"_PRI_USER1",tmp);
-
- sprintf(tmp,"%d",bc->progress_indicator);
- pbx_builtin_setvar_helper(chan,"_PRI_PROGRESS_INDICATOR",tmp);
-}
-
+ chan_misdn_log(1,bc->port,"EXPORT_PID: pid:%d\n",bc->pid);
+ sprintf(tmp,"%d",bc->pid);
+ pbx_builtin_setvar_helper(chan,"_MISDN_PID",tmp);
+}
int add_in_calls(int port)
{
@@ -3145,9 +3159,12 @@
if (ch ) {
switch (event) {
+ case EVENT_DISCONNECT:
case EVENT_RELEASE:
case EVENT_RELEASE_COMPLETE:
case EVENT_CLEANUP:
+ case EVENT_TIMEOUT:
+ chan_misdn_log(3,bc->port,"ast_hangup already called, so we have no ast ptr anymore in event(%s)\n",manager_isdn_get_info(event));
break;
default:
if ( !ch->ast || !MISDN_ASTERISK_PVT(ch->ast) || !MISDN_ASTERISK_TECH_PVT(ch->ast)) {
@@ -3357,8 +3374,8 @@
read_config(ch, ORG_MISDN);
- export_ies(chan, bc);
-
+ export_ch(chan, bc, ch);
+
ch->ast->rings=1;
ast_setstate(ch->ast, AST_STATE_RINGING);
@@ -3483,10 +3500,18 @@
}
} else {
-
if (bc->sending_complete) {
+ ch->state=MISDN_EXTCANTMATCH;
bc->out_cause=1;
- misdn_lib_send_event(bc, EVENT_RELEASE);
+
+ if (bc->nt) {
+ chan_misdn_log(0,bc->port," --> sending_complete so we never match ..\n");
+ misdn_lib_send_event(bc, EVENT_RELEASE_COMPLETE);
+ } else {
+ chan_misdn_log(0,bc->port," --> sending_complete so we never match ..\n");
+ misdn_lib_send_event(bc, EVENT_RELEASE);
+ }
+
} else {
int ret= misdn_lib_send_event(bc, EVENT_SETUP_ACKNOWLEDGE );
@@ -3633,12 +3658,12 @@
}
break;
case EVENT_DISCONNECT:
+ /*we might not have an ch->ast ptr here anymore*/
{
-
struct chan_list *holded_ch=find_holded(cl_te, bc);
-
- send_cause2ast(ch->ast,bc);
+ if (ch->ast)
+ send_cause2ast(ch->ast,bc);
chan_misdn_log(3,bc->port," --> org:%d nt:%d, inbandavail:%d state:%d\n", ch->orginator, bc->nt, misdn_inband_avail(bc), ch->state);
@@ -3655,7 +3680,7 @@
}
/*Check for holded channel, to implement transfer*/
- if (holded_ch ) {
+ if (holded_ch && ch->ast ) {
if (ch->state == MISDN_CONNECTED ) {
misdn_transfer_bc(ch, holded_ch) ;
misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
@@ -3722,10 +3747,18 @@
chan_misdn_log(9,bc->port,"TONE_GEN: len:%d\n");
if (!ast->generator) break;
-
+
+
+
tmp = ast->generatordata;
ast->generatordata = NULL;
generate = ast->generator->generate;
+
+ if (tone_len <0 || tone_len > 512 ) {
+ ast_log(LOG_WARNING, "TONE_GEN: len was %d, set to 128\n",tone_len);
+ tone_len=128;
+ }
+
res = generate(ast, tmp, tone_len, tone_len);
ast->generatordata = tmp;
@@ -3788,18 +3821,28 @@
}
break;
case EVENT_TIMEOUT:
-
- misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
- break;
{
- switch (ch->state) {
+ switch (ch->state) {
+ case MISDN_WAITING4DIGS:
case MISDN_CALLING:
-
- chan_misdn_log(-1, bc?bc->port:0, "GOT TIMOUT AT CALING pid:%d\n", bc?bc->pid:-1);
- break;
case MISDN_DIALING:
case MISDN_PROGRESS:
- break;
+ case MISDN_ALERTING:
+ case MISDN_PROCEEDING:
+ case MISDN_CALLING_ACKNOWLEDGE:
+ if (bc->nt) {
+ bc->progress_indicator=8;
+ tone_indicate(ch, TONE_BUSY);
+ }
+
+ bc->out_cause=1;
+ misdn_lib_send_event(bc,EVENT_DISCONNECT);
+ break;
+
+ case MISDN_CLEANING:
+ chan_misdn_log(1,bc->port," --> in state cleaning .. so ingoring, the stack should clean it for us\n");
+ break;
+
default:
misdn_lib_send_event(bc,EVENT_RELEASE_COMPLETE);
}
@@ -3883,7 +3926,7 @@
if (bridged && MISDN_ASTERISK_TECH_PVT(bridged)) {
ch=MISDN_ASTERISK_TECH_PVT(bridged);
- //ch->state=MISDN_FACILITY_DEFLECTED;
+ /*ch->state=MISDN_FACILITY_DEFLECTED;*/
if (ch->bc) {
/* todo */
}
Modified: team/oej/codecnegotiation/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/oej/codecnegotiation/channels/chan_skinny.c?rev=34813&r1=34812&r2=34813&view=diff
==============================================================================
--- team/oej/codecnegotiation/channels/chan_skinny.c (original)
+++ team/oej/codecnegotiation/channels/chan_skinny.c Mon Jun 19 08:42:03 2006
@@ -4,6 +4,7 @@
* Copyright (C) 1999 - 2005, Digium, Inc.
*
* chan_skinny was developed by Jeremy McNamara & Florian Overkamp
+ * chan_skinny was heavily modified/fixed by North Antara
*
* See http://www.asterisk.org for more information about
* the Asterisk project. Please do not directly contact
@@ -20,7 +21,7 @@
*
* \brief Implementation of the Skinny protocol
*
- * \author Jeremy McNamara & Florian Overkamp
+ * \author Jeremy McNamara & Florian Overkamp & North Antara
* \ingroup channel_drivers
*/
@@ -69,6 +70,7 @@
#include "asterisk/utils.h"
#include "asterisk/dsp.h"
#include "asterisk/stringfields.h"
+#include "asterisk/astobj.h"
#include "asterisk/abstract_jb.h"
/*************************************
@@ -87,11 +89,6 @@
static int keep_alive = 120;
static char date_format[6] = "D-M-Y";
static char version_id[16] = "P002F202";
-
-/* these should be in an include file, but dunno what to include */
-typedef unsigned char UINT8;
-typedef unsigned short UINT16;
-typedef unsigned int UINT32;
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define letohl(x) (x)
@@ -137,127 +134,164 @@
#define REGISTER_MESSAGE 0x0001
typedef struct register_message {
char name[16];
- int userId;
- int instance;
- char ip[4];
- int type;
- int maxStreams;
+ uint32_t userId;
+ uint32_t instance;
+ uint32_t ip;
+ uint32_t type;
+ uint32_t maxStreams;
} register_message;
#define IP_PORT_MESSAGE 0x0002
#define KEYPAD_BUTTON_MESSAGE 0x0003
typedef struct keypad_button_message {
- int button;
+ uint32_t button;
+ uint32_t lineInstance;
+ uint32_t callReference;
} keypad_button_message;
#define STIMULUS_MESSAGE 0x0005
typedef struct stimulus_message {
- int stimulus;
- int stimulusInstance;
+ uint32_t stimulus;
+ uint32_t stimulusInstance;
+ uint32_t unknown1;
} stimulus_message;
#define OFFHOOK_MESSAGE 0x0006
+typedef struct offhook_message {
+ uint32_t unknown1;
+ uint32_t unknown2;
+} offhook_message;
+
#define ONHOOK_MESSAGE 0x0007
+typedef struct onhook_message {
+ uint32_t unknown1;
+ uint32_t unknown2;
+} onhook_message;
#define CAPABILITIES_RES_MESSAGE 0x0010
typedef struct station_capabilities {
- int codec;
- int frames;
+ uint32_t codec;
+ uint32_t frames;
union {
char res[8];
- long rate;
+ uint64_t rate;
} payloads;
} station_capabilities;
typedef struct capabilities_res_message {
- int count;
+ uint32_t count;
struct station_capabilities caps[18];
} capabilities_res_message;
#define SPEED_DIAL_STAT_REQ_MESSAGE 0x000A
typedef struct speed_dial_stat_req_message {
- int speedDialNumber;
+ uint32_t speedDialNumber;
} speed_dial_stat_req_message;
#define LINE_STATE_REQ_MESSAGE 0x000B
typedef struct line_state_req_message {
- int lineNumber;
+ uint32_t lineNumber;
} line_state_req_message;
#define TIME_DATE_REQ_MESSAGE 0x000D
#define BUTTON_TEMPLATE_REQ_MESSAGE 0x000E
#define VERSION_REQ_MESSAGE 0x000F
#define SERVER_REQUEST_MESSAGE 0x0012
+
#define ALARM_MESSAGE 0x0020
+typedef struct alarm_message {
+ uint32_t alarmSeverity;
+ char displayMessage[80];
+ uint32_t alarmParam1;
+ uint32_t alarmParam2;
+} alarm_message;
#define OPEN_RECEIVE_CHANNEL_ACK_MESSAGE 0x0022
typedef struct open_receive_channel_ack_message {
- int status;
- char ipAddr[4];
- int port;
- int passThruId;
+ uint32_t status;
+ uint32_t ipAddr;
+ uint32_t port;
+ uint32_t passThruId;
} open_receive_channel_ack_message;
#define SOFT_KEY_SET_REQ_MESSAGE 0x0025
+
+#define SOFT_KEY_EVENT_MESSAGE 0x0026
+typedef struct soft_key_event_message {
+ uint32_t softKeyEvent;
+ uint32_t instance;
+ uint32_t reference;
+} soft_key_event_message;
+
#define UNREGISTER_MESSAGE 0x0027
#define SOFT_KEY_TEMPLATE_REQ_MESSAGE 0x0028
+#define HEADSET_STATUS_MESSAGE 0x002B
+#define REGISTER_AVAILABLE_LINES_MESSAGE 0x002D
#define REGISTER_ACK_MESSAGE 0x0081
typedef struct register_ack_message {
- int keepAlive;
+ uint32_t keepAlive;
char dateTemplate[6];
char res[2];
- int secondaryKeepAlive;
+ uint32_t secondaryKeepAlive;
char res2[4];
} register_ack_message;
#define START_TONE_MESSAGE 0x0082
typedef struct start_tone_message {
- int tone;
+ uint32_t tone;
} start_tone_message;
#define STOP_TONE_MESSAGE 0x0083
#define SET_RINGER_MESSAGE 0x0085
typedef struct set_ringer_message {
- int ringerMode;
+ uint32_t ringerMode;
+ uint32_t unknown1; /* See notes in transmit_ringer_mode */
+ uint32_t unknown2;
} set_ringer_message;
#define SET_LAMP_MESSAGE 0x0086
typedef struct set_lamp_message {
- int stimulus;
- int stimulusInstance;
- int deviceStimulus;
+ uint32_t stimulus;
+ uint32_t stimulusInstance;
+ uint32_t deviceStimulus;
} set_lamp_message;
#define SET_SPEAKER_MESSAGE 0x0088
typedef struct set_speaker_message {
- int mode;
+ uint32_t mode;
} set_speaker_message;
+
+/* XXX When do we need to use this? */
+#define SET_MICROPHONE_MESSAGE 0x0089
+typedef struct set_microphone_message {
+ uint32_t mode;
+} set_microphone_message;
#define START_MEDIA_TRANSMISSION_MESSAGE 0x008A
typedef struct media_qualifier {
- int precedence;
- int vad;
- int packets;
- int bitRate;
+ uint32_t precedence;
+ uint32_t vad;
+ uint32_t packets;
+ uint32_t bitRate;
} media_qualifier;
typedef struct start_media_transmission_message {
- int conferenceId;
- int passThruPartyId;
- char remoteIp[4];
- int remotePort;
- int packetSize;
- int payloadType;
+ uint32_t conferenceId;
+ uint32_t passThruPartyId;
+ uint32_t remoteIp;
+ uint32_t remotePort;
+ uint32_t packetSize;
+ uint32_t payloadType;
media_qualifier qualifier;
} start_media_transmission_message;
#define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B
typedef struct stop_media_transmission_message {
- int conferenceId;
- int passThruPartyId;
+ uint32_t conferenceId;
+ uint32_t passThruPartyId;
} stop_media_transmission_message;
#define CALL_INFO_MESSAGE 0x008F
@@ -266,199 +300,96 @@
char callingParty[24];
char calledPartyName[40];
char calledParty[24];
- int instance;
- int reference;
- int type;
+ uint32_t instance;
+ uint32_t reference;
+ uint32_t type;
char originalCalledPartyName[40];
char originalCalledParty[24];
} call_info_message;
#define SPEED_DIAL_STAT_RES_MESSAGE 0x0091
typedef struct speed_dial_stat_res_message {
- int speedDialNumber;
+ uint32_t speedDialNumber;
char speedDialDirNumber[24];
char speedDialDisplayName[40];
} speed_dial_stat_res_message;
#define LINE_STAT_RES_MESSAGE 0x0092
typedef struct line_stat_res_message {
- int linenumber;
+ uint32_t lineNumber;
char lineDirNumber[24];
char lineDisplayName[42];
- int space;
+ uint32_t space;
} line_stat_res_message;
#define DEFINETIMEDATE_MESSAGE 0x0094
typedef struct definetimedate_message {
- int year; /* since 1900 */
- int month;
- int dayofweek; /* monday = 1 */
- int day;
- int hour;
- int minute;
- int seconds;
- int milliseconds;
- int timestamp;
+ uint32_t year; /* since 1900 */
+ uint32_t month;
+ uint32_t dayofweek; /* monday = 1 */
+ uint32_t day;
+ uint32_t hour;
+ uint32_t minute;
+ uint32_t seconds;
+ uint32_t milliseconds;
+ uint32_t timestamp;
} definetimedate_message;
#define BUTTON_TEMPLATE_RES_MESSAGE 0x0097
-
typedef struct buttondefinition {
- UINT8 instanceNumber;
- UINT8 buttonDefinition;
+ uint8_t instanceNumber;
+ uint8_t buttonDefinition;
} button_definition;
-#define STIMULUS_REDIAL 0x01
-#define STIMULUS_SPEEDDIAL 0x02
-#define STIMULUS_HOLD 0x03
-#define STIMULUS_TRANSFER 0x04
-#define STIMULUS_FORWARDALL 0x05
-#define STIMULUS_FORWARDBUSY 0x06
-#define STIMULUS_FORWARDNOANSWER 0x07
-#define STIMULUS_DISPLAY 0x08
-#define STIMULUS_LINE 0x09
-#define STIMULUS_VOICEMAIL 0x0F
-#define STIMULUS_AUTOANSWER 0x11
-#define STIMULUS_CONFERENCE 0x7D
-#define STIMULUS_CALLPARK 0x7E
-#define STIMULUS_CALLPICKUP 0x7F
-#define STIMULUS_NONE 0xFF
-
-button_definition button_def_30vip[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 2, STIMULUS_LINE }, /* Line 2 */
- { 3, STIMULUS_LINE }, /* Line 3 */
- { 4, STIMULUS_LINE }, /* Line 4 */
- { 1, STIMULUS_CALLPARK }, /* Call Park */
- { 0, STIMULUS_NONE },
- { 1, STIMULUS_SPEEDDIAL }, /* Speeddial 1 */
- { 2, STIMULUS_SPEEDDIAL }, /* Speeddial 2 */
- { 3, STIMULUS_SPEEDDIAL }, /* Speeddial 3 */
- { 4, STIMULUS_SPEEDDIAL }, /* Speeddial 4 */
- { 5, STIMULUS_SPEEDDIAL }, /* Speeddial 5 */
- { 6, STIMULUS_SPEEDDIAL }, /* Speeddial 6 */
- { 1, STIMULUS_VOICEMAIL }, /* Voicemail */
- { 1, STIMULUS_FORWARDALL }, /* Forward All */
- { 1, STIMULUS_CONFERENCE }, /* Conference */
- { 0, STIMULUS_NONE },
- { 0, STIMULUS_NONE },
- { 0, STIMULUS_NONE },
- { 0, STIMULUS_NONE },
- { 0, STIMULUS_NONE },
- { 7, STIMULUS_SPEEDDIAL }, /* Speeddial 7 */
- { 8, STIMULUS_SPEEDDIAL }, /* Speeddial 8 */
- { 9, STIMULUS_SPEEDDIAL }, /* Speeddial 9 */
- { 10, STIMULUS_SPEEDDIAL } /* Speeddial 10 */
-};
-
-button_definition button_def_12sp[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 1, STIMULUS_SPEEDDIAL }, /* Speeddial 1 */
- { 2, STIMULUS_SPEEDDIAL }, /* Speeddial 2 */
- { 3, STIMULUS_SPEEDDIAL }, /* Speeddial 3 */
- { 4, STIMULUS_SPEEDDIAL }, /* Speeddial 4 */
- { 1, STIMULUS_VOICEMAIL }, /* Voicemail */
- { 5, STIMULUS_SPEEDDIAL }, /* Speeddial 5 */
- { 6, STIMULUS_SPEEDDIAL }, /* Speeddial 6 */
- { 7, STIMULUS_SPEEDDIAL }, /* Speeddial 7 */
- { 8, STIMULUS_SPEEDDIAL }, /* Speeddial 8 */
- { 9, STIMULUS_SPEEDDIAL } /* Speeddial 9 */
-};
-
-button_definition button_def_7902[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 1, STIMULUS_HOLD }, /* Hold */
- { 1, STIMULUS_TRANSFER },
- { 1, STIMULUS_DISPLAY },
- { 1, STIMULUS_VOICEMAIL },
- { 1, STIMULUS_CONFERENCE },
- { 1, STIMULUS_FORWARDALL },
- { 1, STIMULUS_SPEEDDIAL }, /* Speeddial 1 */
- { 2, STIMULUS_SPEEDDIAL }, /* Speeddial 2 */
- { 3, STIMULUS_SPEEDDIAL }, /* Speeddial 3 */
- { 4, STIMULUS_SPEEDDIAL }, /* Speeddial 4 */
- { 1, STIMULUS_REDIAL }
-};
-
-button_definition button_def_7910[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 1, STIMULUS_HOLD }, /* Hold */
- { 1, STIMULUS_TRANSFER },
- { 1, STIMULUS_DISPLAY },
- { 1, STIMULUS_VOICEMAIL },
- { 1, STIMULUS_CONFERENCE },
- { 1, STIMULUS_FORWARDALL },
- { 1, STIMULUS_SPEEDDIAL }, /* Speeddial 1 */
- { 2, STIMULUS_SPEEDDIAL }, /* Speeddial 2 */
- { 1, STIMULUS_REDIAL }
-};
-
-button_definition button_def_7920[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 2, STIMULUS_LINE }, /* Line 2 */
- { 1, STIMULUS_SPEEDDIAL }, /* Speeddial 1 */
- { 2, STIMULUS_SPEEDDIAL }, /* Speeddial 2 */
- { 3, STIMULUS_SPEEDDIAL }, /* Speeddial 3 */
- { 4, STIMULUS_SPEEDDIAL } /* Speeddial 4 */
-};
-
-button_definition button_def_7935[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 2, STIMULUS_LINE } /* Line 2 */
-};
-
-button_definition button_def_7940[] = {
- { 1, STIMULUS_LINE }, /* Line 1 */
- { 2, STIMULUS_LINE } /* Line 2 */
-};
-
[... 5184 lines stripped ...]
More information about the asterisk-commits
mailing list