Merged revisions 55954 via svnmerge from
[asterisk/asterisk.git] / channels / chan_alsa.c
index 6c52b3c..1651b7d 100644 (file)
@@ -185,7 +185,7 @@ static int nosound = 0;
 
 /* ZZ */
 static struct ast_channel *alsa_request(const char *type, int format, void *data, int *cause);
-static int alsa_digit(struct ast_channel *c, char digit);
+static int alsa_digit(struct ast_channel *c, char digit, unsigned int duration);
 static int alsa_text(struct ast_channel *c, const char *text);
 static int alsa_hangup(struct ast_channel *c);
 static int alsa_answer(struct ast_channel *c);
@@ -494,10 +494,11 @@ static int soundcard_init(void)
        return readdev;
 }
 
-static int alsa_digit(struct ast_channel *c, char digit)
+static int alsa_digit(struct ast_channel *c, char digit, unsigned int duration)
 {
        ast_mutex_lock(&alsalock);
-       ast_verbose(" << Console Received digit %c >> \n", digit);
+       ast_verbose(" << Console Received digit %c of duration %u ms >> \n", 
+               digit, duration);
        ast_mutex_unlock(&alsalock);
        return 0;
 }
@@ -579,6 +580,7 @@ static int alsa_hangup(struct ast_channel *c)
        c->tech_pvt = NULL;
        alsa.owner = NULL;
        ast_verbose(" << Hangup on console >> \n");
+       ast_module_unref(ast_module_info->self);
        if (hookstate) {
                hookstate = 0;
                if (!autoanswer) {
@@ -804,6 +806,7 @@ static struct ast_channel *alsa_new(struct chan_alsa_pvt *p, int state)
        if (!ast_strlen_zero(language))
                ast_string_field_set(tmp, language, language);
        p->owner = tmp;
+       ast_module_ref(ast_module_info->self);
        ast_jb_configure(tmp, &global_jbconf);
        if (state != AST_STATE_DOWN) {
                if (ast_pbx_start(tmp)) {