aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-21 15:12:41 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-21 15:12:41 +0000
commit152d1eec4d601637ca0a181ce60836eaf816e094 (patch)
treef9e15e1dd85f612ea5774d482c94478da924aee6
parent047eb3003126deb9a7a79e1ba9e2f282441ac5e5 (diff)
spelling and formatting fixes (issue #6760)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@13850 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_skinny.c1036
1 files changed, 518 insertions, 518 deletions
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 6a6702af0..360900750 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -70,9 +70,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/dsp.h"
#include "asterisk/stringfields.h"
-/************************************************************************************/
-/* Skinny/Asterisk Protocol Settings */
-/************************************************************************************/
+/*************************************
+ * Skinny/Asterisk Protocol Settings *
+ *************************************/
static const char desc[] = "Skinny Client Control Protocol (Skinny)";
static const char tdesc[] = "Skinny Client Control Protocol (Skinny)";
static const char config[] = "skinny.conf";
@@ -81,17 +81,17 @@ static const char config[] = "skinny.conf";
static int capability = AST_FORMAT_ULAW;
#define DEFAULT_SKINNY_PORT 2000
-#define DEFAULT_SKINNY_BACKLOG 2
+#define DEFAULT_SKINNY_BACKLOG 2
#define SKINNY_MAX_PACKET 1000
-static int keep_alive = 120;
+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;
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned int UINT32;
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define letohl(x) (x)
@@ -101,13 +101,13 @@ typedef unsigned int UINT32;
#else
#if defined(SOLARIS) || defined(__Darwin__) || defined(__NetBSD__)
#define __bswap_16(x) \
- ((((x) & 0xff00) >> 8) | \
- (((x) & 0x00ff) << 8))
+ ((((x) & 0xff00) >> 8) | \
+ (((x) & 0x00ff) << 8))
#define __bswap_32(x) \
- ((((x) & 0xff000000) >> 24) | \
- (((x) & 0x00ff0000) >> 8) | \
- (((x) & 0x0000ff00) << 8) | \
- (((x) & 0x000000ff) << 24))
+ ((((x) & 0xff000000) >> 24) | \
+ (((x) & 0x00ff0000) >> 8) | \
+ (((x) & 0x0000ff00) << 8) | \
+ (((x) & 0x000000ff) << 24))
#else
#include <bits/byteswap.h>
#endif
@@ -118,9 +118,9 @@ typedef unsigned int UINT32;
#endif
-/************************************************************************************/
-/* Protocol Messages */
-/************************************************************************************/
+/*********************
+ * Protocol Messages *
+ *********************/
/* message types */
#define KEEP_ALIVE_MESSAGE 0x0000
/* no additional struct */
@@ -248,7 +248,7 @@ typedef struct start_media_transmission_message {
#define STOP_MEDIA_TRANSMISSION_MESSAGE 0x008B
typedef struct stop_media_transmission_message {
int conferenceId;
- int passThruPartyId;
+ int passThruPartyId;
} stop_media_transmission_message;
#define CALL_INFO_MESSAGE 0x008F
@@ -257,9 +257,9 @@ typedef struct call_info_message {
char callingParty[24];
char calledPartyName[40];
char calledParty[24];
- int instance;
- int reference;
- int type;
+ int instance;
+ int reference;
+ int type;
char originalCalledPartyName[40];
char originalCalledParty[24];
} call_info_message;
@@ -273,10 +273,10 @@ typedef struct speed_dial_stat_res_message {
#define LINE_STAT_RES_MESSAGE 0x0092
typedef struct line_stat_res_message {
- int linenumber;
+ int linenumber;
char lineDirNumber[24];
char lineDisplayName[42];
- int space;
+ int space;
} line_stat_res_message;
#define DEFINETIMEDATE_MESSAGE 0x0094
@@ -533,7 +533,7 @@ typedef struct soft_key_template {
int softKeyOffset;
int softKeyCount;
int totalSoftKeyCount;
- soft_key_template_definition softKeyTemplateDefinition[32];
+ soft_key_template_definition softKeyTemplateDefinition[32];
} soft_key_template;
#define SOFT_KEY_SET_RES_MESSAGE 0x0109
@@ -574,7 +574,7 @@ static const char *soft_key_set_hack = {
};
typedef struct soft_key_set_definition {
- UINT8 softKeyTemplateIndex[16];
+ UINT8 softKeyTemplateIndex[16];
UINT16 softKeyInfoIndex[16];
} soft_key_set_definition;
@@ -620,12 +620,12 @@ typedef struct activate_call_plane_message {
int lineInstance;
} activate_call_plane_message;
-#define DIALLED_NUMBER_MESSAGE 0x011D
-typedef struct dialled_number_message {
- char dialledNumber[24];
+#define DIALED_NUMBER_MESSAGE 0x011D
+typedef struct dialed_number_message {
+ char dialedNumber[24];
int lineInstance;
int callReference;
-} dialled_number_message;
+} dialed_number_message;
/* packet composition */
typedef struct {
@@ -665,13 +665,13 @@ typedef struct {
open_recieve_channel_ack_message openrecievechannelack;
close_recieve_channel_message closerecievechannel;
display_notify_message displaynotify;
- dialled_number_message diallednumber;
+ dialed_number_message dialednumber;
} data;
} skinny_req;
-/************************************************************************************/
-/* Asterisk specific globals */
-/************************************************************************************/
+/*****************************
+ * Asterisk specific globals *
+ *****************************/
static int skinnydebug = 1; /* XXX for now, enable debugging default */
@@ -681,7 +681,7 @@ static char ourhost[256];
static int ourport;
static struct in_addr __ourip;
struct ast_hostent ahp; struct hostent *hp;
-static int skinnysock = -1;
+static int skinnysock = -1;
static pthread_t tcp_thread;
static pthread_t accept_t;
static char context[AST_MAX_CONTEXT] = "default";
@@ -708,7 +708,7 @@ static int amaflags = 0;
static int callnums = 1;
#define SUB_REAL 0
-#define SUB_ALT 1
+#define SUB_ALT 1
#define MAX_SUBS 2
#define SKINNY_SPEAKERON 1
@@ -737,7 +737,7 @@ static int callnums = 1;
#define SKINNY_NOTONE 0x7F
#define SKINNY_LAMP_OFF 1
-#define SKINNY_LAMP_ON 2
+#define SKINNY_LAMP_ON 2
#define SKINNY_LAMP_WINK 3
#define SKINNY_LAMP_FLASH 4
#define SKINNY_LAMP_BLINK 5
@@ -751,21 +751,21 @@ static int callnums = 1;
#define TYPE_LINE 2
/* Skinny rtp stream modes. Do we really need this? */
-#define SKINNY_CX_SENDONLY 0
-#define SKINNY_CX_RECVONLY 1
-#define SKINNY_CX_SENDRECV 2
-#define SKINNY_CX_CONF 3
-#define SKINNY_CX_CONFERENCE 3
-#define SKINNY_CX_MUTE 4
-#define SKINNY_CX_INACTIVE 4
+#define SKINNY_CX_SENDONLY 0
+#define SKINNY_CX_RECVONLY 1
+#define SKINNY_CX_SENDRECV 2
+#define SKINNY_CX_CONF 3
+#define SKINNY_CX_CONFERENCE 3
+#define SKINNY_CX_MUTE 4
+#define SKINNY_CX_INACTIVE 4
#if 0
static char *skinny_cxmodes[] = {
- "sendonly",
- "recvonly",
- "sendrecv",
- "confrnce",
- "inactive"
+ "sendonly",
+ "recvonly",
+ "sendrecv",
+ "confrnce",
+ "inactive"
};
#endif
@@ -792,7 +792,7 @@ AST_MUTEX_DEFINE_STATIC(pagingdevicelock);
#endif
/* This is the thread for the monitor which checks for input on the channels
- which are not currently in use. */
+ which are not currently in use. */
static pthread_t monitor_thread = AST_PTHREADT_NULL;
/* Wait up to 16 seconds for first digit */
@@ -825,7 +825,7 @@ struct skinny_line {
ast_mutex_t lock;
char name[80];
char label[42]; /* Label that shows next to the line buttons */
- struct skinny_subchannel *sub; /* pointer to our current connection, channel and stuff */
+ struct skinny_subchannel *sub; /* pointer to our current connection, channel and stuff */
char accountcode[AST_MAX_ACCOUNT_CODE];
char exten[AST_MAX_EXTENSION]; /* Extention where to start */
char context[AST_MAX_CONTEXT];
@@ -1006,7 +1006,7 @@ static int transmit_response(struct skinnysession *s, skinny_req *req)
/* XXX Do this right */
static int convert_cap(int capability)
{
- return 4; /* ulaw (this is not the same as asterisk's '4' */
+ return 4; /* ulaw (this is not the same as asterisk's '4' */
}
@@ -1063,11 +1063,11 @@ static void transmit_callstate(struct skinnysession *s, int instance, int state,
req->data.closerecievechannel.partyId = 0;
transmit_response(s, req);
memset(req, 0, memsize);
- req->len = htolel(sizeof(stop_media_transmission_message)+4);
- req->e = htolel(STOP_MEDIA_TRANSMISSION_MESSAGE);
- req->data.stopmedia.conferenceId = 0;
- req->data.stopmedia.passThruPartyId = 0;
- transmit_response(s, req);
+ req->len = htolel(sizeof(stop_media_transmission_message)+4);
+ req->e = htolel(STOP_MEDIA_TRANSMISSION_MESSAGE);
+ req->data.stopmedia.conferenceId = 0;
+ req->data.stopmedia.passThruPartyId = 0;
+ transmit_response(s, req);
}
}
@@ -1233,10 +1233,10 @@ static void transmit_displaynotify(struct skinnysession *s, char *text, int t)
req = req_alloc(sizeof(struct display_notify_message));
- if (!req) {
- ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
- return;
- }
+ if (!req) {
+ ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
+ return;
+ }
req->e = htolel(DISPLAY_NOTIFY_MESSAGE);
req->len = htolel(sizeof(display_notify_message) + 4);
@@ -1256,10 +1256,10 @@ static void transmit_displaypromptstatus(struct skinnysession *s, char *text, in
req = req_alloc(sizeof(struct display_prompt_status_message));
- if (!req) {
- ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
- return;
- }
+ if (!req) {
+ ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
+ return;
+ }
req->e = htolel(DISPLAY_PROMPT_STATUS_MESSAGE);
req->len = htolel(sizeof(display_prompt_status_message) + 4);
@@ -1275,22 +1275,22 @@ static void transmit_displaypromptstatus(struct skinnysession *s, char *text, in
transmit_response(s, req);
}
-static void transmit_diallednumber(struct skinnysession *s, char *text, int instance, int callid)
+static void transmit_dialednumber(struct skinnysession *s, char *text, int instance, int callid)
{
skinny_req *req;
- req = req_alloc(sizeof(struct dialled_number_message));
+ req = req_alloc(sizeof(struct dialed_number_message));
- if (!req) {
- ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
- return;
- }
+ if (!req) {
+ ast_log(LOG_ERROR, "Unable to allocate skinny_request, this is bad\n");
+ return;
+ }
- req->e = htolel(DIALLED_NUMBER_MESSAGE);
- req->len = htolel(sizeof(dialled_number_message) + 4);
- strncpy(req->data.diallednumber.dialledNumber, text, sizeof(req->data.diallednumber.dialledNumber)-1);
- req->data.diallednumber.lineInstance = htolel(instance);
- req->data.diallednumber.callReference = htolel(callid);
+ req->e = htolel(DIALED_NUMBER_MESSAGE);
+ req->len = htolel(sizeof(dialed_number_message) + 4);
+ strncpy(req->data.dialednumber.dialedNumber, text, sizeof(req->data.dialednumber.dialedNumber)-1);
+ req->data.dialednumber.lineInstance = htolel(instance);
+ req->data.dialednumber.callReference = htolel(callid);
transmit_response(s, req);
}
@@ -1357,7 +1357,7 @@ static int skinny_set_rtp_peer(struct ast_channel *chan, struct ast_rtp *rtp, st
static struct ast_rtp_protocol skinny_rtp = {
.type = "Skinny",
.get_rtp_info = skinny_get_rtp_peer,
- .get_vrtp_info = skinny_get_vrtp_peer,
+ .get_vrtp_info = skinny_get_vrtp_peer,
.set_rtp_peer = skinny_set_rtp_peer,
};
@@ -1383,7 +1383,7 @@ static int skinny_no_debug(int fd, int argc, char *argv[])
static int skinny_show_devices(int fd, int argc, char *argv[])
{
- struct skinny_device *d;
+ struct skinny_device *d;
struct skinny_line *l;
int numlines = 0;
char iabuf[INET_ADDRSTRLEN];
@@ -1418,7 +1418,7 @@ static int skinny_show_devices(int fd, int argc, char *argv[])
static int skinny_show_lines(int fd, int argc, char *argv[])
{
- struct skinny_device *d;
+ struct skinny_device *d;
struct skinny_line *l;
if (argc != 3) {
@@ -1460,16 +1460,16 @@ static char no_debug_usage[] =
"Usage: skinny no debug\n"
" Disables dumping of Skinny packets for debugging purposes\n";
-static struct ast_cli_entry cli_show_devices =
+static struct ast_cli_entry cli_show_devices =
{ { "skinny", "show", "devices", NULL }, skinny_show_devices, "Show defined Skinny devices", show_devices_usage };
-static struct ast_cli_entry cli_show_lines =
+static struct ast_cli_entry cli_show_lines =
{ { "skinny", "show", "lines", NULL }, skinny_show_lines, "Show defined Skinny lines per device", show_lines_usage };
-static struct ast_cli_entry cli_debug =
+static struct ast_cli_entry cli_debug =
{ { "skinny", "debug", NULL }, skinny_do_debug, "Enable Skinny debugging", debug_usage };
-static struct ast_cli_entry cli_no_debug =
+static struct ast_cli_entry cli_no_debug =
{ { "skinny", "no", "debug", NULL }, skinny_no_debug, "Disable Skinny debugging", no_debug_usage };
#if 0
@@ -1499,16 +1499,16 @@ static struct skinny_device *build_device(char *cat, struct ast_variable *v)
} else if (!strcasecmp(v->name, "port")) {
d->addr.sin_port = htons(atoi(v->value));
} else if (!strcasecmp(v->name, "device")) {
- strncpy(d->id, v->value, sizeof(d->id)-1);
+ strncpy(d->id, v->value, sizeof(d->id)-1);
} else if (!strcasecmp(v->name, "permit") || !strcasecmp(v->name, "deny")) {
d->ha = ast_append_ha(v->name, v->value, d->ha);
} else if (!strcasecmp(v->name, "context")) {
strncpy(context, v->value, sizeof(context) - 1);
} else if (!strcasecmp(v->name, "version")) {
- strncpy(d->version_id, v->value, sizeof(d->version_id) -1);
+ strncpy(d->version_id, v->value, sizeof(d->version_id) -1);
} else if (!strcasecmp(v->name, "nat")) {
nat = ast_true(v->value);
- } else if (!strcasecmp(v->name, "model")) {
+ } else if (!strcasecmp(v->name, "model")) {
strncpy(d->model, v->value, sizeof(d->model) - 1);
} else if (!strcasecmp(v->name, "callerid")) {
if (!strcasecmp(v->value, "asreceived")) {
@@ -1519,44 +1519,44 @@ static struct skinny_device *build_device(char *cat, struct ast_variable *v)
}
} else if (!strcasecmp(v->name, "language")) {
strncpy(language, v->value, sizeof(language)-1);
- } else if (!strcasecmp(v->name, "accountcode")) {
- strncpy(accountcode, v->value, sizeof(accountcode)-1);
- } else if (!strcasecmp(v->name, "amaflags")) {
- y = ast_cdr_amaflags2int(v->value);
- if (y < 0) {
- ast_log(LOG_WARNING, "Invalid AMA flags: %s at line %d\n", v->value, v->lineno);
- } else {
- amaflags = y;
- }
+ } else if (!strcasecmp(v->name, "accountcode")) {
+ strncpy(accountcode, v->value, sizeof(accountcode)-1);
+ } else if (!strcasecmp(v->name, "amaflags")) {
+ y = ast_cdr_amaflags2int(v->value);
+ if (y < 0) {
+ ast_log(LOG_WARNING, "Invalid AMA flags: %s at line %d\n", v->value, v->lineno);
+ } else {
+ amaflags = y;
+ }
} else if (!strcasecmp(v->name, "musiconhold")) {
- strncpy(musicclass, v->value, sizeof(musicclass)-1);
- } else if (!strcasecmp(v->name, "callgroup")) {
- cur_callergroup = ast_get_group(v->value);
- } else if (!strcasecmp(v->name, "pickupgroup")) {
- cur_pickupgroup = ast_get_group(v->value);
- } else if (!strcasecmp(v->name, "immediate")) {
- immediate = ast_true(v->value);
- } else if (!strcasecmp(v->name, "cancallforward")) {
- cancallforward = ast_true(v->value);
- } else if (!strcasecmp(v->name, "mailbox")) {
- strncpy(mailbox, v->value, sizeof(mailbox) -1);
- } else if (!strcasecmp(v->name, "callreturn")) {
+ strncpy(musicclass, v->value, sizeof(musicclass)-1);
+ } else if (!strcasecmp(v->name, "callgroup")) {
+ cur_callergroup = ast_get_group(v->value);
+ } else if (!strcasecmp(v->name, "pickupgroup")) {
+ cur_pickupgroup = ast_get_group(v->value);
+ } else if (!strcasecmp(v->name, "immediate")) {
+ immediate = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "cancallforward")) {
+ cancallforward = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "mailbox")) {
+ strncpy(mailbox, v->value, sizeof(mailbox) -1);
+ } else if (!strcasecmp(v->name, "callreturn")) {
callreturn = ast_true(v->value);
- } else if (!strcasecmp(v->name, "callwaiting")) {
- callwaiting = ast_true(v->value);
- } else if (!strcasecmp(v->name, "transfer")) {
- transfer = ast_true(v->value);
- } else if (!strcasecmp(v->name, "threewaycalling")) {
- threewaycalling = ast_true(v->value);
- } else if (!strcasecmp(v->name, "mwiblink")) {
- mwiblink = ast_true(v->value);
- } else if (!strcasecmp(v->name, "linelabel")) {
- strncpy(linelabel, v->value, sizeof(linelabel)-1);
- } else if (!strcasecmp(v->name, "trunk") || !strcasecmp(v->name, "line")) {
+ } else if (!strcasecmp(v->name, "callwaiting")) {
+ callwaiting = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "transfer")) {
+ transfer = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "threewaycalling")) {
+ threewaycalling = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "mwiblink")) {
+ mwiblink = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "linelabel")) {
+ strncpy(linelabel, v->value, sizeof(linelabel)-1);
+ } else if (!strcasecmp(v->name, "trunk") || !strcasecmp(v->name, "line")) {
l = malloc(sizeof(struct skinny_line));;
if (l) {
memset(l, 0, sizeof(struct skinny_line));
- ast_mutex_init(&l->lock);
+ ast_mutex_init(&l->lock);
strncpy(l->name, v->value, sizeof(l->name) - 1);
/* XXX Should we check for uniqueness?? XXX */
@@ -1565,7 +1565,7 @@ static struct skinny_device *build_device(char *cat, struct ast_variable *v)
strncpy(l->cid_name, cid_name, sizeof(l->cid_name) - 1);
strncpy(l->label, linelabel, sizeof(l->label) - 1);
strncpy(l->language, language, sizeof(l->language) - 1);
- strncpy(l->musicclass, musicclass, sizeof(l->musicclass)-1);
+ strncpy(l->musicclass, musicclass, sizeof(l->musicclass)-1);
strncpy(l->mailbox, mailbox, sizeof(l->mailbox)-1);
strncpy(l->mailbox, mailbox, sizeof(l->mailbox)-1);
if (!ast_strlen_zero(mailbox)) {
@@ -1583,42 +1583,42 @@ static struct skinny_device *build_device(char *cat, struct ast_variable *v)
l->callgroup = cur_callergroup;
l->pickupgroup = cur_pickupgroup;
l->callreturn = callreturn;
- l->cancallforward = cancallforward;
- l->callwaiting = callwaiting;
- l->transfer = transfer;
- l->threewaycalling = threewaycalling;
- l->mwiblink = mwiblink;
- l->onhooktime = time(NULL);
+ l->cancallforward = cancallforward;
+ l->callwaiting = callwaiting;
+ l->transfer = transfer;
+ l->threewaycalling = threewaycalling;
+ l->mwiblink = mwiblink;
+ l->onhooktime = time(NULL);
l->instance = 1;
- /* ASSUME we're onhook at this point*/
- l->hookstate = SKINNY_ONHOOK;
-
- for (i = 0; i < MAX_SUBS; i++) {
- sub = malloc(sizeof(struct skinny_subchannel));
- if (sub) {
- ast_verbose(VERBOSE_PREFIX_3 "Allocating Skinny subchannel '%d' on %s@%s\n", i, l->name, d->name);
- memset(sub, 0, sizeof(struct skinny_subchannel));
- ast_mutex_init(&sub->lock);
- sub->parent = l;
- /* Make a call*ID */
+ /* ASSUME we're onhook at this point*/
+ l->hookstate = SKINNY_ONHOOK;
+
+ for (i = 0; i < MAX_SUBS; i++) {
+ sub = malloc(sizeof(struct skinny_subchannel));
+ if (sub) {
+ ast_verbose(VERBOSE_PREFIX_3 "Allocating Skinny subchannel '%d' on %s@%s\n", i, l->name, d->name);
+ memset(sub, 0, sizeof(struct skinny_subchannel));
+ ast_mutex_init(&sub->lock);
+ sub->parent = l;
+ /* Make a call*ID */
sub->callid = callnums;
callnums++;
- sub->cxmode = SKINNY_CX_INACTIVE;
- sub->nat = nat;
- sub->next = l->sub;
- l->sub = sub;
- } else {
- /* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating subchannel");
- return NULL;
- }
- }
- l->next = d->lines;
+ sub->cxmode = SKINNY_CX_INACTIVE;
+ sub->nat = nat;
+ sub->next = l->sub;
+ l->sub = sub;
+ } else {
+ /* XXX Should find a way to clean up our memory */
+ ast_log(LOG_WARNING, "Out of memory allocating subchannel");
+ return NULL;
+ }
+ }
+ l->next = d->lines;
d->lines = l;
- } else {
- /* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating line");
- return NULL;
+ } else {
+ /* XXX Should find a way to clean up our memory */
+ ast_log(LOG_WARNING, "Out of memory allocating line");
+ return NULL;
}
} else {
ast_log(LOG_WARNING, "Don't know keyword '%s' at line %d\n", v->name, v->lineno);
@@ -1698,212 +1698,212 @@ static void *skinny_ss(void *data)
int timeout = firstdigittimeout;
int res;
int getforward=0;
-
+
if (option_verbose > 2) {
ast_verbose( VERBOSE_PREFIX_3 "Starting simple switch on '%s@%s'\n", l->name, l->parent->name);
}
while(len < AST_MAX_EXTENSION-1) {
- res = ast_waitfordigit(chan, timeout);
- timeout = 0;
- if (res < 0) {
+ res = ast_waitfordigit(chan, timeout);
+ timeout = 0;
+ if (res < 0) {
if (skinnydebug) {
ast_verbose("Skinny(%s@%s): waitfordigit returned < 0\n", l->name, l->parent->name);
- }
+ }
ast_indicate(chan, -1);
ast_hangup(chan);
- return NULL;
- } else if (res) {
- exten[len++]=res;
- exten[len] = '\0';
- }
- if (!ast_ignore_pattern(chan->context, exten)) {
+ return NULL;
+ } else if (res) {
+ exten[len++]=res;
+ exten[len] = '\0';
+ }
+ if (!ast_ignore_pattern(chan->context, exten)) {
transmit_tone(s, SKINNY_SILENCE);
- }
- if (ast_exists_extension(chan, chan->context, exten, 1, l->cid_num)) {
- if (!res || !ast_matchmore_extension(chan, chan->context, exten, 1, l->cid_num)) {
- if (getforward) {
- /* Record this as the forwarding extension */
- strncpy(l->call_forward, exten, sizeof(l->call_forward) - 1);
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Setting call forward to '%s' on channel %s\n",
- l->call_forward, chan->name);
- }
- transmit_tone(s, SKINNY_DIALTONE);
- if (res) {
- break;
- }
+ }
+ if (ast_exists_extension(chan, chan->context, exten, 1, l->cid_num)) {
+ if (!res || !ast_matchmore_extension(chan, chan->context, exten, 1, l->cid_num)) {
+ if (getforward) {
+ /* Record this as the forwarding extension */
+ strncpy(l->call_forward, exten, sizeof(l->call_forward) - 1);
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Setting call forward to '%s' on channel %s\n",
+ l->call_forward, chan->name);
+ }
+ transmit_tone(s, SKINNY_DIALTONE);
+ if (res) {
+ break;
+ }
ast_safe_sleep(chan, 500);
- ast_indicate(chan, -1);
+ ast_indicate(chan, -1);
ast_safe_sleep(chan, 1000);
- memset(exten, 0, sizeof(exten));
- transmit_tone(s, SKINNY_DIALTONE);
- len = 0;
- getforward = 0;
- } else {
- strncpy(chan->exten, exten, sizeof(chan->exten)-1);
- if (!ast_strlen_zero(l->cid_num)) {
- if (!l->hidecallerid) {
- chan->cid.cid_num = strdup(l->cid_num);
- chan->cid.cid_ani = strdup(l->cid_num);
- }
- ast_setstate(chan, AST_STATE_RING);
- res = ast_pbx_run(chan);
- if (res) {
- ast_log(LOG_WARNING, "PBX exited non-zero\n");
+ memset(exten, 0, sizeof(exten));
+ transmit_tone(s, SKINNY_DIALTONE);
+ len = 0;
+ getforward = 0;
+ } else {
+ strncpy(chan->exten, exten, sizeof(chan->exten)-1);
+ if (!ast_strlen_zero(l->cid_num)) {
+ if (!l->hidecallerid) {
+ chan->cid.cid_num = strdup(l->cid_num);
+ chan->cid.cid_ani = strdup(l->cid_num);
+ }
+ ast_setstate(chan, AST_STATE_RING);
+ res = ast_pbx_run(chan);
+ if (res) {
+ ast_log(LOG_WARNING, "PBX exited non-zero\n");
transmit_tone(s, SKINNY_REORDER);
- }
- return NULL;
- }
+ }
+ return NULL;
+ }
}
- } else {
- /* It's a match, but they just typed a digit, and there is an ambiguous match,
- so just set the timeout to matchdigittimeout and wait some more */
- timeout = matchdigittimeout;
- }
+ } else {
+ /* It's a match, but they just typed a digit, and there is an ambiguous match,
+ so just set the timeout to matchdigittimeout and wait some more */
+ timeout = matchdigittimeout;
+ }
} else if (res == 0) {
- ast_log(LOG_DEBUG, "Not enough digits (and no ambiguous match)...\n");
- transmit_tone(s, SKINNY_REORDER);
- ast_hangup(chan);
- return NULL;
- } else if (l->callwaiting && !strcmp(exten, "*70")) {
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Disabling call waiting on %s\n", chan->name);
- }
- /* Disable call waiting if enabled */
- l->callwaiting = 0;
- transmit_tone(s, SKINNY_DIALTONE);
+ ast_log(LOG_DEBUG, "Not enough digits (and no ambiguous match)...\n");
+ transmit_tone(s, SKINNY_REORDER);
+ ast_hangup(chan);
+ return NULL;
+ } else if (l->callwaiting && !strcmp(exten, "*70")) {
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Disabling call waiting on %s\n", chan->name);
+ }
+ /* Disable call waiting if enabled */
+ l->callwaiting = 0;
+ transmit_tone(s, SKINNY_DIALTONE);
len = 0;
- memset(exten, 0, sizeof(exten));\
- timeout = firstdigittimeout;
- } else if (!strcmp(exten,ast_pickup_ext())) {
- /* Scan all channels and see if any there
- * ringing channqels with that have call groups
- * that equal this channels pickup group
- */
- if (ast_pickup_call(chan)) {
- ast_log(LOG_WARNING, "No call pickup possible...\n");
+ memset(exten, 0, sizeof(exten));
+ timeout = firstdigittimeout;
+ } else if (!strcmp(exten,ast_pickup_ext())) {
+ /* Scan all channels and see if any there
+ * ringing channels with that have call groups
+ * that equal this channels pickup group
+ */
+ if (ast_pickup_call(chan)) {
+ ast_log(LOG_WARNING, "No call pickup possible...\n");
transmit_tone(s, SKINNY_REORDER);
- }
- ast_hangup(chan);
- return NULL;
- } else if (!l->hidecallerid && !strcmp(exten, "*67")) {
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Disabling Caller*ID on %s\n", chan->name);
- }
- /* Disable Caller*ID if enabled */
- l->hidecallerid = 1;
- if (chan->cid.cid_num) {
- free(chan->cid.cid_num);
- }
- chan->cid.cid_num = NULL;
- if (chan->cid.cid_name) {
- free(chan->cid.cid_name);
- }
- chan->cid.cid_name = NULL;
- transmit_tone(s, SKINNY_DIALTONE);
- len = 0;
- memset(exten, 0, sizeof(exten));
- timeout = firstdigittimeout;
- } else if (l->callreturn && !strcmp(exten, "*69")) {
- res = 0;
- if (!ast_strlen_zero(l->lastcallerid)) {
- res = ast_say_digit_str(chan, l->lastcallerid, "", chan->language);
- }
- if (!res) {
- transmit_tone(s, SKINNY_DIALTONE);
}
- break;
- } else if (!strcmp(exten, "*78")) {
- /* Do not disturb */
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Enabled DND on channel %s\n", chan->name);
- }
- transmit_tone(s, SKINNY_DIALTONE);
- l->dnd = 1;
- getforward = 0;
- memset(exten, 0, sizeof(exten));
- len = 0;
- } else if (!strcmp(exten, "*79")) {
- /* Do not disturb */
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Disabled DND on channel %s\n", chan->name);
- }
+ ast_hangup(chan);
+ return NULL;
+ } else if (!l->hidecallerid && !strcmp(exten, "*67")) {
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Disabling Caller*ID on %s\n", chan->name);
+ }
+ /* Disable Caller*ID if enabled */
+ l->hidecallerid = 1;
+ if (chan->cid.cid_num) {
+ free(chan->cid.cid_num);
+ }
+ chan->cid.cid_num = NULL;
+ if (chan->cid.cid_name) {
+ free(chan->cid.cid_name);
+ }
+ chan->cid.cid_name = NULL;
transmit_tone(s, SKINNY_DIALTONE);
- l->dnd = 0;
- getforward = 0;
- memset(exten, 0, sizeof(exten));
- len = 0;
- } else if (l->cancallforward && !strcmp(exten, "*72")) {
- transmit_tone(s, SKINNY_DIALTONE);
- getforward = 1;
- memset(exten, 0, sizeof(exten));
- len = 0;
- } else if (l->cancallforward && !strcmp(exten, "*73")) {
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Cancelling call forwarding on channel %s\n", chan->name);
- }
- transmit_tone(s, SKINNY_DIALTONE);
- memset(l->call_forward, 0, sizeof(l->call_forward));
- getforward = 0;
- memset(exten, 0, sizeof(exten));
- len = 0;
- } else if (!strcmp(exten, ast_parking_ext()) &&
- sub->next->owner &&
- ast_bridged_channel(sub->next->owner)) {
- /* This is a three way call, the main call being a real channel,
- and we're parking the first call. */
- ast_masq_park_call(ast_bridged_channel(sub->next->owner), chan, 0, NULL);
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Parking call to '%s'\n", chan->name);
- }
- break;
- } else if (!ast_strlen_zero(l->lastcallerid) && !strcmp(exten, "*60")) {
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Blacklisting number %s\n", l->lastcallerid);
- }
- res = ast_db_put("blacklist", l->lastcallerid, "1");
- if (!res) {
- transmit_tone(s, SKINNY_DIALTONE);
- memset(exten, 0, sizeof(exten));
- len = 0;
- }
- } else if (l->hidecallerid && !strcmp(exten, "*82")) {
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "Enabling Caller*ID on %s\n", chan->name);
- }
- /* Enable Caller*ID if enabled */
- l->hidecallerid = 0;
- if (chan->cid.cid_num) {
- free(chan->cid.cid_num);
- }
- if (!ast_strlen_zero(l->cid_num)) {
- chan->cid.cid_num = strdup(l->cid_num);
- }
- if (chan->cid.cid_name) {
- free(chan->cid.cid_name);
- }
- if (!ast_strlen_zero(l->cid_name)) {
- chan->cid.cid_name = strdup(l->cid_name);
+ len = 0;
+ memset(exten, 0, sizeof(exten));
+ timeout = firstdigittimeout;
+ } else if (l->callreturn && !strcmp(exten, "*69")) {
+ res = 0;
+ if (!ast_strlen_zero(l->lastcallerid)) {
+ res = ast_say_digit_str(chan, l->lastcallerid, "", chan->language);
}
- transmit_tone(s, SKINNY_DIALTONE);
- len = 0;
- memset(exten, 0, sizeof(exten));
- timeout = firstdigittimeout;
- } else if (!ast_canmatch_extension(chan, chan->context, exten, 1, chan->cid.cid_num) &&
- ((exten[0] != '*') || (!ast_strlen_zero(exten) > 2))) {
- ast_log(LOG_WARNING, "Can't match [%s] from '%s' in context %s\n", exten, chan->cid.cid_num ? chan->cid.cid_num : "<Unknown Caller>", chan->context);
- transmit_tone(s, SKINNY_REORDER);
+ if (!res) {
+ transmit_tone(s, SKINNY_DIALTONE);
+ }
+ break;
+ } else if (!strcmp(exten, "*78")) {
+ /* Do not disturb */
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Enabled DND on channel %s\n", chan->name);
+ }
+ transmit_tone(s, SKINNY_DIALTONE);
+ l->dnd = 1;
+ getforward = 0;
+ memset(exten, 0, sizeof(exten));
+ len = 0;
+ } else if (!strcmp(exten, "*79")) {
+ /* Do not disturb */
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Disabled DND on channel %s\n", chan->name);
+ }
+ transmit_tone(s, SKINNY_DIALTONE);
+ l->dnd = 0;
+ getforward = 0;
+ memset(exten, 0, sizeof(exten));
+ len = 0;
+ } else if (l->cancallforward && !strcmp(exten, "*72")) {
+ transmit_tone(s, SKINNY_DIALTONE);
+ getforward = 1;
+ memset(exten, 0, sizeof(exten));
+ len = 0;
+ } else if (l->cancallforward && !strcmp(exten, "*73")) {
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Cancelling call forwarding on channel %s\n", chan->name);
+ }
+ transmit_tone(s, SKINNY_DIALTONE);
+ memset(l->call_forward, 0, sizeof(l->call_forward));
+ getforward = 0;
+ memset(exten, 0, sizeof(exten));
+ len = 0;
+ } else if (!strcmp(exten, ast_parking_ext()) &&
+ sub->next->owner &&
+ ast_bridged_channel(sub->next->owner)) {
+ /* This is a three way call, the main call being a real channel,
+ and we're parking the first call. */
+ ast_masq_park_call(ast_bridged_channel(sub->next->owner), chan, 0, NULL);
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Parking call to '%s'\n", chan->name);
+ }
+ break;
+ } else if (!ast_strlen_zero(l->lastcallerid) && !strcmp(exten, "*60")) {
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Blacklisting number %s\n", l->lastcallerid);
+ }
+ res = ast_db_put("blacklist", l->lastcallerid, "1");
+ if (!res) {
+ transmit_tone(s, SKINNY_DIALTONE);
+ memset(exten, 0, sizeof(exten));
+ len = 0;
+ }
+ } else if (l->hidecallerid && !strcmp(exten, "*82")) {
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "Enabling Caller*ID on %s\n", chan->name);
+ }
+ /* Enable Caller*ID if enabled */
+ l->hidecallerid = 0;
+ if (chan->cid.cid_num) {
+ free(chan->cid.cid_num);
+ }
+ if (!ast_strlen_zero(l->cid_num)) {
+ chan->cid.cid_num = strdup(l->cid_num);
+ }
+ if (chan->cid.cid_name) {
+ free(chan->cid.cid_name);
+ }
+ if (!ast_strlen_zero(l->cid_name)) {
+ chan->cid.cid_name = strdup(l->cid_name);
+ }
+ transmit_tone(s, SKINNY_DIALTONE);
+ len = 0;
+ memset(exten, 0, sizeof(exten));
+ timeout = firstdigittimeout;
+ } else if (!ast_canmatch_extension(chan, chan->context, exten, 1, chan->cid.cid_num) &&
+ ((exten[0] != '*') || (!ast_strlen_zero(exten) > 2))) {
+ ast_log(LOG_WARNING, "Can't match [%s] from '%s' in context %s\n", exten, chan->cid.cid_num ? chan->cid.cid_num : "<Unknown Caller>", chan->context);
+ transmit_tone(s, SKINNY_REORDER);
/* hang out for 3 seconds to let congestion play */
- ast_safe_sleep(chan, 3000);
- break;
- }
- if (!timeout) {
- timeout = gendigittimeout;
+ ast_safe_sleep(chan, 3000);
+ break;
+ }
+ if (!timeout) {
+ timeout = gendigittimeout;
}
- if (len && !ast_ignore_pattern(chan->context, exten)) {
+ if (len && !ast_ignore_pattern(chan->context, exten)) {
ast_indicate(chan, -1);
}
- }
+ }
ast_hangup(chan);
return NULL;
}
@@ -1915,11 +1915,11 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
int res = 0;
int tone = 0;
struct skinny_line *l;
- struct skinny_subchannel *sub;
+ struct skinny_subchannel *sub;
struct skinnysession *session;
sub = ast->tech_pvt;
- l = sub->parent;
+ l = sub->parent;
session = l->parent->session;
if (!l->parent->registered) {
@@ -1932,26 +1932,26 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
return -1;
}
- if (skinnydebug) {
- ast_verbose(VERBOSE_PREFIX_3 "skinny_call(%s)\n", ast->name);
- }
+ if (skinnydebug) {
+ ast_verbose(VERBOSE_PREFIX_3 "skinny_call(%s)\n", ast->name);
+ }
if (l->dnd) {
ast_queue_control(ast, AST_CONTROL_BUSY);
return -1;
}
-
+
switch (l->hookstate) {
- case SKINNY_OFFHOOK:
- tone = SKINNY_CALLWAITTONE;
- break;
- case SKINNY_ONHOOK:
+ case SKINNY_OFFHOOK:
+ tone = SKINNY_CALLWAITTONE;
+ break;
+ case SKINNY_ONHOOK:
tone = SKINNY_ALERT;
break;
- default:
- ast_log(LOG_ERROR, "Don't know how to deal with hookstate %d\n", l->hookstate);
- break;
- }
+ default:
+ ast_log(LOG_ERROR, "Don't know how to deal with hookstate %d\n", l->hookstate);
+ break;
+ }
transmit_lamp_indication(session, STIMULUS_LINE, l->instance, SKINNY_LAMP_BLINK);
transmit_ringer_mode(session, SKINNY_RING_INSIDE);
@@ -1998,20 +1998,20 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
static int skinny_hangup(struct ast_channel *ast)
{
- struct skinny_subchannel *sub = ast->tech_pvt;
- struct skinny_line *l = sub->parent;
- struct skinnysession *s = l->parent->session;
-
- if (skinnydebug) {
- ast_verbose("skinny_hangup(%s) on %s@%s\n", ast->name, l->name, l->parent->name);
- }
- if (!ast->tech_pvt) {
- ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
- return 0;
- }
-
- if (l->parent->registered) {
- if ((sub->parent->type = TYPE_LINE) && (sub->parent->hookstate == SKINNY_OFFHOOK)) {
+ struct skinny_subchannel *sub = ast->tech_pvt;
+ struct skinny_line *l = sub->parent;
+ struct skinnysession *s = l->parent->session;
+
+ if (skinnydebug) {
+ ast_verbose("skinny_hangup(%s) on %s@%s\n", ast->name, l->name, l->parent->name);
+ }
+ if (!ast->tech_pvt) {
+ ast_log(LOG_DEBUG, "Asked to hangup channel not connected\n");
+ return 0;
+ }
+
+ if (l->parent->registered) {
+ if ((sub->parent->type = TYPE_LINE) && (sub->parent->hookstate == SKINNY_OFFHOOK)) {
sub->parent->hookstate = SKINNY_ONHOOK;
transmit_callstate(s, l->instance, SKINNY_ONHOOK, sub->callid);
transmit_lamp_indication(s, STIMULUS_LINE, l->instance, SKINNY_LAMP_OFF);
@@ -2024,39 +2024,39 @@ static int skinny_hangup(struct ast_channel *ast)
transmit_lamp_indication(s, STIMULUS_LINE, l->instance, SKINNY_LAMP_OFF);
do_housekeeping(s);
}
- }
- ast_mutex_lock(&sub->lock);
- sub->owner = NULL;
- ast->tech_pvt = NULL;
- sub->alreadygone = 0;
- sub->outgoing = 0;
- if (sub->rtp) {
- ast_rtp_destroy(sub->rtp);
- sub->rtp = NULL;
- }
- ast_mutex_unlock(&sub->lock);
- return 0;
+ }
+ ast_mutex_lock(&sub->lock);
+ sub->owner = NULL;
+ ast->tech_pvt = NULL;
+ sub->alreadygone = 0;
+ sub->outgoing = 0;
+ if (sub->rtp) {
+ ast_rtp_destroy(sub->rtp);
+ sub->rtp = NULL;
+ }
+ ast_mutex_unlock(&sub->lock);
+ return 0;
}
static int skinny_answer(struct ast_channel *ast)
{
- int res = 0;
- struct skinny_subchannel *sub = ast->tech_pvt;
- struct skinny_line *l = sub->parent;
- struct skinnysession *s = l->parent->session;
+ int res = 0;
+ struct skinny_subchannel *sub = ast->tech_pvt;
+ struct skinny_line *l = sub->parent;
+ struct skinnysession *s = l->parent->session;
- sub->cxmode = SKINNY_CX_SENDRECV;
- if (!sub->rtp) {
+ sub->cxmode = SKINNY_CX_SENDRECV;
+ if (!sub->rtp) {
start_rtp(sub);
- }
- ast_verbose("skinny_answer(%s) on %s@%s-%d\n", ast->name, l->name, l->parent->name, sub->callid);
- if (ast->_state != AST_STATE_UP) {
- ast_setstate(ast, AST_STATE_UP);
- }
- transmit_tone(s, SKINNY_NOTONE);
- transmit_callstate(s, l->instance, SKINNY_CONNECTED, sub->callid);
- transmit_displaypromptstatus(s, "Connected", 0, l->instance, sub->callid);
- return res;
+ }
+ ast_verbose("skinny_answer(%s) on %s@%s-%d\n", ast->name, l->name, l->parent->name, sub->callid);
+ if (ast->_state != AST_STATE_UP) {
+ ast_setstate(ast, AST_STATE_UP);
+ }
+ transmit_tone(s, SKINNY_NOTONE);
+ transmit_callstate(s, l->instance, SKINNY_CONNECTED, sub->callid);
+ transmit_displaypromptstatus(s, "Connected", 0, l->instance, sub->callid);
+ return res;
}
static struct ast_frame *skinny_rtp_read(struct skinny_subchannel *sub)
@@ -2078,7 +2078,7 @@ static struct ast_frame *skinny_rtp_read(struct skinny_subchannel *sub)
return f;
}
-static struct ast_frame *skinny_read(struct ast_channel *ast)
+static struct ast_frame *skinny_read(struct ast_channel *ast)
{
struct ast_frame *fr;
struct skinny_subchannel *sub = ast->tech_pvt;
@@ -2109,7 +2109,7 @@ static int skinny_write(struct ast_channel *ast, struct ast_frame *frame)
if (sub) {
ast_mutex_lock(&sub->lock);
if (sub->rtp) {
- res = ast_rtp_write(sub->rtp, frame);
+ res = ast_rtp_write(sub->rtp, frame);
}
ast_mutex_unlock(&sub->lock);
}
@@ -2119,7 +2119,7 @@ static int skinny_write(struct ast_channel *ast, struct ast_frame *frame)
static int skinny_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
{
struct skinny_subchannel *sub = newchan->tech_pvt;
- ast_log(LOG_NOTICE, "skinny_fixup(%s, %s)\n", oldchan->name, newchan->name);
+ ast_log(LOG_NOTICE, "skinny_fixup(%s, %s)\n", oldchan->name, newchan->name);
if (sub->owner != oldchan) {
ast_log(LOG_WARNING, "old channel wasn't %p but was %p\n", oldchan, sub->owner);
return -1;
@@ -2134,55 +2134,55 @@ static int skinny_senddigit(struct ast_channel *ast, char digit)
struct skinny_subchannel *sub = ast->tech_pvt;
int tmp;
/* not right */
- sprintf(tmp, "%d", digit);
+ sprintf(tmp, "%d", digit);
transmit_tone(sub->parent->parent->session, digit);
#endif
return -1;
}
static char *control2str(int ind) {
- static char tmp[100];
-
- switch (ind) {
- case AST_CONTROL_HANGUP:
- return "Other end has hungup";
- case AST_CONTROL_RING:
- return "Local ring";
- case AST_CONTROL_RINGING:
- return "Remote end is ringing";
- case AST_CONTROL_ANSWER:
- return "Remote end has answered";
- case AST_CONTROL_BUSY:
- return "Remote end is busy";
- case AST_CONTROL_TAKEOFFHOOK:
- return "Make it go off hook";
- case AST_CONTROL_OFFHOOK:
- return "Line is off hook";
- case AST_CONTROL_CONGESTION:
- return "Congestion (circuits busy)";
- case AST_CONTROL_FLASH:
- return "Flash hook";
- case AST_CONTROL_WINK:
- return "Wink";
- case AST_CONTROL_OPTION:
- return "Set a low-level option";
- case AST_CONTROL_RADIO_KEY:
- return "Key Radio";
- case AST_CONTROL_RADIO_UNKEY:
- return "Un-Key Radio";
- case AST_CONTROL_PROGRESS:
- return "Remote end is making Progress";
- case AST_CONTROL_PROCEEDING:
- return "Remote end is proceeding";
- case AST_CONTROL_HOLD:
- return "Hold";
- case AST_CONTROL_UNHOLD:
- return "Unhold";
+ static char tmp[100];
+
+ switch (ind) {
+ case AST_CONTROL_HANGUP:
+ return "Other end has hungup";
+ case AST_CONTROL_RING:
+ return "Local ring";
+ case AST_CONTROL_RINGING:
+ return "Remote end is ringing";
+ case AST_CONTROL_ANSWER:
+ return "Remote end has answered";
+ case AST_CONTROL_BUSY:
+ return "Remote end is busy";
+ case AST_CONTROL_TAKEOFFHOOK:
+ return "Make it go off hook";
+ case AST_CONTROL_OFFHOOK:
+ return "Line is off hook";
+ case AST_CONTROL_CONGESTION:
+ return "Congestion (circuits busy)";
+ case AST_CONTROL_FLASH:
+ return "Flash hook";
+ case AST_CONTROL_WINK:
+ return "Wink";
+ case AST_CONTROL_OPTION:
+ return "Set a low-level option";
+ case AST_CONTROL_RADIO_KEY:
+ return "Key Radio";
+ case AST_CONTROL_RADIO_UNKEY:
+ return "Un-Key Radio";
+ case AST_CONTROL_PROGRESS:
+ return "Remote end is making Progress";
+ case AST_CONTROL_PROCEEDING:
+ return "Remote end is proceeding";
+ case AST_CONTROL_HOLD:
+ return "Hold";
+ case AST_CONTROL_UNHOLD:
+ return "Unhold";
case -1:
- return "Stop tone";
- }
- snprintf(tmp, 100, "UNKNOWN-%d", ind);
- return tmp;
+ return "Stop tone";
+ }
+ snprintf(tmp, 100, "UNKNOWN-%d", ind);
+ return tmp;
}
@@ -2192,16 +2192,16 @@ static int skinny_indicate(struct ast_channel *ast, int ind)
struct skinny_line *l = sub->parent;
struct skinnysession *s = l->parent->session;
- if (skinnydebug) {
- ast_verbose(VERBOSE_PREFIX_3 "Asked to indicate '%s' condition on channel %s\n", control2str(ind), ast->name);
- }
+ if (skinnydebug) {
+ ast_verbose(VERBOSE_PREFIX_3 "Asked to indicate '%s' condition on channel %s\n", control2str(ind), ast->name);
+ }
switch(ind) {
case AST_CONTROL_RINGING:
if (ast->_state != AST_STATE_UP) {
if (!sub->progress) {
transmit_tone(s, SKINNY_ALERT);
transmit_callstate(s, l->instance, SKINNY_RINGOUT, sub->callid);
- transmit_diallednumber(s, ast->exten, l->instance, sub->callid);
+ transmit_dialednumber(s, ast->exten, l->instance, sub->callid);
transmit_displaypromptstatus(s, "Ring Out", 0, l->instance, sub->callid);
transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, ast->exten, ast->exten, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
sub->ringing = 1;
@@ -2215,28 +2215,28 @@ static int skinny_indicate(struct ast_channel *ast, int ind)
transmit_callstate(s, l->instance, SKINNY_BUSY, sub->callid);
sub->alreadygone = 1;
ast_softhangup_nolock(ast, AST_SOFTHANGUP_DEV);
- break;
- }
- return -1;
+ break;
+ }
+ return -1;
case AST_CONTROL_CONGESTION:
if (ast->_state != AST_STATE_UP) {
transmit_tone(s, SKINNY_REORDER);
transmit_callstate(s, l->instance, SKINNY_CONGESTION, sub->callid);
sub->alreadygone = 1;
- ast_softhangup_nolock(ast, AST_SOFTHANGUP_DEV);
- break;
- }
- return -1;
+ ast_softhangup_nolock(ast, AST_SOFTHANGUP_DEV);
+ break;
+ }
+ return -1;
case AST_CONTROL_PROGRESS:
- if ((ast->_state != AST_STATE_UP) && !sub->progress && !sub->outgoing) {
+ if ((ast->_state != AST_STATE_UP) && !sub->progress && !sub->outgoing) {
transmit_tone(s, SKINNY_ALERT);
transmit_callstate(s, l->instance, SKINNY_PROGRESS, sub->callid);
transmit_displaypromptstatus(s, "Call Progress", 0, l->instance, sub->callid);
transmit_callinfo(s, ast->cid.cid_name, ast->cid.cid_num, ast->exten, ast->exten, l->instance, sub->callid, 2); /* 2 = outgoing from phone */
- sub->progress = 1;
- break;
- }
- return -1;
+ sub->progress = 1;
+ break;
+ }
+ return -1;
case -1:
transmit_tone(s, SKINNY_SILENCE);
break;
@@ -2310,8 +2310,8 @@ static struct ast_channel *skinny_new(struct skinny_subchannel *sub, int state)
}
} else {
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
- }
- return tmp;
+ }
+ return tmp;
}
static int handle_message(skinny_req *req, struct skinnysession *s)
@@ -2429,7 +2429,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
ast_verbose("Recieved Stimulus: Transfer(%d)\n", stimulusInstance);
}
transmit_tone(s, SKINNY_DIALTONE);
- /* XXX determine the best way to pull off a conference. Meetme? */
+ /* XXX determine the best way to pull off a conference. Meetme? */
break;
case STIMULUS_VOICEMAIL:
if (skinnydebug) {
@@ -2483,7 +2483,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
}
sub = find_subchannel_by_line(s->device->lines);
/* turn the speaker on */
- transmit_speaker_mode(s, 1);
+ transmit_speaker_mode(s, 1);
break;
default:
ast_verbose("RECEIVED UNKNOWN STIMULUS: %d(%d)\n", stimulus, stimulusInstance);
@@ -2531,7 +2531,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
}
}
req->data.buttontemplate.buttonOffset = 0;
- req->data.buttontemplate.buttonCount = htolel(buse->num_buttons);
+ req->data.buttontemplate.buttonCount = htolel(buse->num_buttons);
req->data.buttontemplate.totalButtonCount = htolel(buse->num_buttons);
for (i=0; i<42; i++) {
if (i < buse->num_buttons) {
@@ -2555,7 +2555,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
transmit_response(s, req);
break;
case SOFT_KEY_SET_REQ_MESSAGE:
- if (skinnydebug) {
+ if (skinnydebug) {
ast_verbose("Received SoftKeySetReq\n");
}
memset(req, 0, SKINNY_MAX_PACKET);
@@ -2566,8 +2566,8 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
req->data.softkeysets.totalSoftKeySetCount = htolel(11);
/* XXX Wicked hack XXX */
memcpy(req->data.softkeysets.softKeySetDefinition,
- soft_key_set_hack,
- sizeof(req->data.softkeysets.softKeySetDefinition));
+ soft_key_set_hack,
+ sizeof(req->data.softkeysets.softKeySetDefinition));
transmit_response(s,req);
break;
case SOFT_KEY_TEMPLATE_REQ_MESSAGE:
@@ -2581,8 +2581,8 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
req->data.softkeytemplate.softKeyCount = htolel(sizeof(soft_key_template_default) / sizeof(soft_key_template_definition));
req->data.softkeytemplate.totalSoftKeyCount = htolel(sizeof(soft_key_template_default) / sizeof(soft_key_template_definition));
memcpy(req->data.softkeytemplate.softKeyTemplateDefinition,
- soft_key_template_default,
- sizeof(soft_key_template_default));
+ soft_key_template_default,
+ sizeof(soft_key_template_default));
transmit_response(s,req);
break;
case TIME_DATE_REQ_MESSAGE:
@@ -2616,7 +2616,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
can work here was well. Yikes. */
req->data.speeddialreq.speedDialNumber = speedDialNum;
snprintf(req->data.speeddial.speedDialDirNumber, sizeof(req->data.speeddial.speedDialDirNumber), "31337");
- snprintf(req->data.speeddial.speedDialDisplayName, sizeof(req->data.speeddial.speedDialDisplayName),"Asterisk Rules!");
+ snprintf(req->data.speeddial.speedDialDisplayName, sizeof(req->data.speeddial.speedDialDisplayName),"Asterisk Rules!");
#endif
transmit_response(s, req);
break;
@@ -2650,7 +2650,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
if (skinnydebug) {
ast_verbose("Received CapabilitiesRes\n");
}
- /* XXX process the capabilites */
+ /* XXX process the capabilites */
break;
case KEEP_ALIVE_MESSAGE:
memset(req, 0, SKINNY_MAX_PACKET);
@@ -2712,13 +2712,13 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
transmit_callstate(s, s->device->lines->instance, sub->parent->hookstate,sub->callid);
if (skinnydebug) {
ast_verbose("Skinny %s@%s went on hook\n",sub->parent->name, sub->parent->parent->name);
- }
- if (sub->parent->transfer && (sub->owner && sub->next->owner) && ((!sub->outgoing) || (!sub->next->outgoing))) {
+ }
+ if (sub->parent->transfer && (sub->owner && sub->next->owner) && ((!sub->outgoing) || (!sub->next->outgoing))) {
/* We're allowed to transfer, we have two active calls and */
/* we made at least one of the calls. Let's try and transfer */
#if 0
- if ((res = attempt_transfer(p)) < 0) {
+ if ((res = attempt_transfer(p)) < 0) {
if (p->sub->next->owner) {
sub->next->alreadygone = 1;
ast_queue_hangup(sub->next->owner,1);
@@ -2726,22 +2726,22 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
} else if (res) {
ast_log(LOG_WARNING, "Transfer attempt failed\n");
return -1;
- }
+ }
#endif
} else {
- /* Hangup the current call */
- /* If there is another active call, skinny_hangup will ring the phone with the other call */
- if (sub->owner) {
- sub->alreadygone = 1;
- ast_queue_hangup(sub->owner);
- } else {
- ast_log(LOG_WARNING, "Skinny(%s@%s-%d) channel already destroyed\n",
- sub->parent->name, sub->parent->parent->name, sub->callid);
- }
- }
- if ((sub->parent->hookstate == SKINNY_ONHOOK) && (!sub->next->rtp)) {
+ /* Hangup the current call */
+ /* If there is another active call, skinny_hangup will ring the phone with the other call */
+ if (sub->owner) {
+ sub->alreadygone = 1;
+ ast_queue_hangup(sub->owner);
+ } else {
+ ast_log(LOG_WARNING, "Skinny(%s@%s-%d) channel already destroyed\n",
+ sub->parent->name, sub->parent->parent->name, sub->callid);
+ }
+ }
+ if ((sub->parent->hookstate == SKINNY_ONHOOK) && (!sub->next->rtp)) {
do_housekeeping(s);
- }
+ }
break;
case KEYPAD_BUTTON_MESSAGE:
digit = letohl(req->data.keypad.button);
@@ -2766,16 +2766,16 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
d = '0' + digit;
ast_log(LOG_WARNING, "Unsupported digit %d\n", digit);
}
- f.subclass = d;
+ f.subclass = d;
f.src = "skinny";
sub = find_subchannel_by_line(s->device->lines);
if (sub->owner) {
/* XXX MUST queue this frame to all subs in threeway call if threeway call is active */
ast_queue_frame(sub->owner, &f);
- if (sub->next->owner) {
+ if (sub->next->owner) {
ast_queue_frame(sub->next->owner, &f);
- }
- } else {
+ }
+ } else {
ast_verbose("No owner: %s\n", s->device->lines->name);
}
break;
@@ -2791,7 +2791,7 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
port = htolel(req->data.openrecievechannelack.port);
sin.sin_family = AF_INET;
/* I smell endian problems */
- memcpy(&sin.sin_addr, addr, sizeof(sin.sin_addr));
+ memcpy(&sin.sin_addr, addr, sizeof(sin.sin_addr));
sin.sin_port = htons(port);
if (skinnydebug) {
ast_verbose("ipaddr = %s:%d\n", ast_inet_ntoa(iabuf, sizeof(iabuf), sin.sin_addr), ntohs(sin.sin_port));
@@ -2805,19 +2805,19 @@ static int handle_message(skinny_req *req, struct skinnysession *s)
break;
}
memset(req, 0, SKINNY_MAX_PACKET);
- req->len = htolel(sizeof(start_media_transmission_message)+4);
- req->e = htolel(START_MEDIA_TRANSMISSION_MESSAGE);
- req->data.startmedia.conferenceId = 0;
- req->data.startmedia.passThruPartyId = 0;
- memcpy(req->data.startmedia.remoteIp, &s->device->ourip, 4); /* Endian? */
- req->data.startmedia.remotePort = htolel(ntohs(us.sin_port));
- req->data.startmedia.packetSize = htolel(20);
- req->data.startmedia.payloadType = htolel(convert_cap(s->device->lines->capability));
- req->data.startmedia.qualifier.precedence = htolel(127);
- req->data.startmedia.qualifier.vad = 0;
- req->data.startmedia.qualifier.packets = 0;
- req->data.startmedia.qualifier.bitRate = 0;
- transmit_response(s, req);
+ req->len = htolel(sizeof(start_media_transmission_message)+4);
+ req->e = htolel(START_MEDIA_TRANSMISSION_MESSAGE);
+ req->data.startmedia.conferenceId = 0;
+ req->data.startmedia.passThruPartyId = 0;
+ memcpy(req->data.startmedia.remoteIp, &s->device->ourip, 4); /* Endian? */
+ req->data.startmedia.remotePort = htolel(ntohs(us.sin_port));
+ req->data.startmedia.packetSize = htolel(20);
+ req->data.startmedia.payloadType = htolel(convert_cap(s->device->lines->capability));
+ req->data.startmedia.qualifier.precedence = htolel(127);
+ req->data.startmedia.qualifier.vad = 0;
+ req->data.startmedia.qualifier.packets = 0;
+ req->data.startmedia.qualifier.bitRate = 0;
+ transmit_response(s, req);
break;
default:
ast_verbose("RECEIVED UNKNOWN MESSAGE TYPE: %x\n", letohl(req->e));
@@ -2856,11 +2856,11 @@ static void destroy_session(struct skinnysession *s)
ast_mutex_unlock(&sessionlock);
}
-static int get_input(struct skinnysession *s)
-{
- int res;
+static int get_input(struct skinnysession *s)
+{
+ int res;
int dlen = 0;
- struct pollfd fds[1];
+ struct pollfd fds[1];
fds[0].fd = s->fd;
fds[0].events = POLLIN;
@@ -2885,10 +2885,10 @@ static int get_input(struct skinnysession *s)
if (res != (dlen+4)) {
ast_log(LOG_WARNING, "Skinny Client sent less data than expected.\n");
return -1;
- }
- }
- return res;
-}
+ }
+ }
+ return res;
+}
static skinny_req *skinny_req_parse(struct skinnysession *s)
{
@@ -2917,7 +2917,7 @@ static void *skinny_session(void *data)
struct skinnysession *s = data;
char iabuf[INET_ADDRSTRLEN];
- ast_verbose(VERBOSE_PREFIX_3 "Starting Skinny session from %s\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
+ ast_verbose(VERBOSE_PREFIX_3 "Starting Skinny session from %s\n", ast_inet_ntoa(iabuf, sizeof(iabuf), s->sin.sin_addr));
for (;;) {
res = 0;
res = get_input(s);
@@ -3064,16 +3064,16 @@ static struct ast_channel *skinny_request(const char *type, int format, void *da
ast_log(LOG_NOTICE, "Skinny channels require a device\n");
return NULL;
}
- sub = find_subchannel_by_name(tmp);
+ sub = find_subchannel_by_name(tmp);
if (!sub) {
ast_log(LOG_NOTICE, "No available lines on: %s\n", dest);
return NULL;
}
- if (option_verbose > 2) {
- ast_verbose(VERBOSE_PREFIX_3 "skinny_request(%s)\n", tmp);
- ast_verbose(VERBOSE_PREFIX_3 "Skinny cw: %d, dnd: %d, so: %d, sno: %d\n",
- sub->parent->callwaiting, sub->parent->dnd, sub->owner ? 1 : 0, sub->next->owner ? 1: 0);
- }
+ if (option_verbose > 2) {
+ ast_verbose(VERBOSE_PREFIX_3 "skinny_request(%s)\n", tmp);
+ ast_verbose(VERBOSE_PREFIX_3 "Skinny cw: %d, dnd: %d, so: %d, sno: %d\n",
+ sub->parent->callwaiting, sub->parent->dnd, sub->owner ? 1 : 0, sub->next->owner ? 1: 0);
+ }
tmpc = skinny_new(sub->owner ? sub->next : sub, AST_STATE_DOWN);
if (!tmpc) {
ast_log(LOG_WARNING, "Unable to make channel for '%s'\n", tmp);
@@ -3162,7 +3162,7 @@ static int reload_config(void)
cat = ast_category_browse(cfg, NULL);
while(cat) {
if (!strcasecmp(cat, "general")) {
- /* Nothing to do */
+ /* Nothing to do */
#if 0
} else if (!strncasecmp(cat, "paging-", 7)) {
p = build_paging_device(cat, ast_variable_browse(cfg, cat));
@@ -3174,7 +3174,7 @@ static int reload_config(void)
if (d) {
if (option_verbose > 2) {
ast_verbose(VERBOSE_PREFIX_3 "Added device '%s'\n", d->name);
- }
+ }
ast_mutex_lock(&devicelock);
d->next = devices;
devices = d;
@@ -3349,12 +3349,12 @@ int unload_module()
return -1;
}
- ast_rtp_proto_register(&skinny_rtp);
+ ast_rtp_proto_register(&skinny_rtp);
ast_channel_unregister(&skinny_tech);
- ast_cli_register(&cli_show_devices);
- ast_cli_register(&cli_show_lines);
- ast_cli_register(&cli_debug);
- ast_cli_register(&cli_no_debug);
+ ast_cli_register(&cli_show_devices);
+ ast_cli_register(&cli_show_lines);
+ ast_cli_register(&cli_debug);
+ ast_cli_register(&cli_no_debug);
return 0;
#endif