[Asterisk-cvs] asterisk/channels chan_zap.c,1.143,1.144
markster at lists.digium.com
markster at lists.digium.com
Fri Nov 21 12:12:23 CST 2003
Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv11652/channels
Modified Files:
chan_zap.c
Log Message:
Make CALLTYPE available
Index: chan_zap.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_zap.c,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -d -r1.143 -r1.144
--- chan_zap.c 21 Nov 2003 18:24:49 -0000 1.143
+++ chan_zap.c 21 Nov 2003 18:38:42 -0000 1.144
@@ -2511,7 +2511,7 @@
static void *ss_thread(void *data);
-static struct ast_channel *zt_new(struct zt_pvt *, int, int, int, int);
+static struct ast_channel *zt_new(struct zt_pvt *, int, int, int, int, int);
static int attempt_transfer(struct zt_pvt *p)
{
@@ -3018,7 +3018,7 @@
(ast->_state == AST_STATE_RING)) {
if (!alloc_sub(p, SUB_THREEWAY)) {
/* Make new channel */
- chan = zt_new(p, AST_STATE_RESERVED, 0, SUB_THREEWAY, 0);
+ chan = zt_new(p, AST_STATE_RESERVED, 0, SUB_THREEWAY, 0, 0);
/* Swap things around between the three-way and real call */
swap_subs(p, SUB_THREEWAY, SUB_REAL);
/* Disable echo canceller for better dialing */
@@ -3727,7 +3727,34 @@
return res;
}
-static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int index, int law)
+#ifdef ZAPATA_PRI
+static void set_calltype(struct ast_channel *chan, int ctype)
+{
+ char *s = "UNKNOWN";
+ switch(ctype) {
+ case PRI_TRANS_CAP_SPEECH:
+ s = "SPEECH";
+ break;
+ case PRI_TRANS_CAP_DIGITAL:
+ s = "DIGITAL";
+ break;
+ case PRI_TRANS_CAP_RESTRICTED_DIGITAL:
+ s = "RESTRICTED_DIGITAL";
+ break;
+ case PRI_TRANS_CAP_3_1K_AUDIO:
+ s = "31KAUDIO";
+ break;
+ case PRI_TRANS_CAP_7K_AUDIO:
+ s = "7KAUDIO";
+ break;
+ case PRI_TRANS_CAP_VIDEO:
+ s = "VIDEO";
+ break;
+ }
+ pbx_builtin_setvar_helper(chan, "CALLTYPE", s);
+}
+#endif
+static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int index, int law, int ctype)
{
struct ast_channel *tmp;
int deflaw;
@@ -3853,6 +3880,7 @@
tmp->restrictcid = i->restrictcid;
tmp->callingpres = i->callingpres;
#ifdef ZAPATA_PRI
+ set_calltype(tmp, ctype);
/* Assume calls are not idle calls unless we're told differently */
i->isidlecall = 0;
i->alreadyhungup = 0;
@@ -4560,7 +4588,7 @@
zt_enable_ec(i);
/* The channel is immediately up. Start right away */
res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, ZT_TONE_RINGTONE);
- chan = zt_new(i, AST_STATE_RING, 1, SUB_REAL, 0);
+ chan = zt_new(i, AST_STATE_RING, 1, SUB_REAL, 0, 0);
if (!chan) {
ast_log(LOG_WARNING, "Unable to start PBX on channel %d\n", i->channel);
res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, ZT_TONE_CONGESTION);
@@ -4569,7 +4597,7 @@
}
} else {
/* Check for callerid, digits, etc */
- chan = zt_new(i, AST_STATE_RESERVED, 0, SUB_REAL, 0);
+ chan = zt_new(i, AST_STATE_RESERVED, 0, SUB_REAL, 0, 0);
if (chan) {
if (has_voicemail(i))
#ifdef ZT_TONE_STUTTER
@@ -4611,7 +4639,7 @@
case SIG_SF_FEATB:
case SIG_SF:
/* Check for callerid, digits, etc */
- chan = zt_new(i, AST_STATE_RING, 0, SUB_REAL, 0);
+ chan = zt_new(i, AST_STATE_RING, 0, SUB_REAL, 0, 0);
if (pthread_create(&threadid, &attr, ss_thread, chan)) {
ast_log(LOG_WARNING, "Unable to start simple switch thread on channel %d\n", i->channel);
res = tone_zone_play_tone(i->subs[SUB_REAL].zfd, ZT_TONE_CONGESTION);
@@ -5527,7 +5555,7 @@
}
}
p->outgoing = 1;
- tmp = zt_new(p, AST_STATE_RESERVED, 0, p->owner ? SUB_CALLWAIT : SUB_REAL, 0);
+ tmp = zt_new(p, AST_STATE_RESERVED, 0, p->owner ? SUB_CALLWAIT : SUB_REAL, 0, 0);
/* Make special notes */
if (res > 1) {
if (opt == 'c') {
@@ -6061,7 +6089,7 @@
/* Get the use_callingpres state */
pri->pvt[chan]->callingpres = e->ring.callingpres;
/* Start PBX */
- c = zt_new(pri->pvt[chan], AST_STATE_RING, 1, SUB_REAL, law);
+ c = zt_new(pri->pvt[chan], AST_STATE_RING, 1, SUB_REAL, law, e->ring.ctype);
if (c) {
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "Accepting call from '%s' to '%s' on channel %d, span %d\n",
More information about the svn-commits
mailing list