Index: chan_mobile.c =================================================================== --- chan_mobile.c (revision 440) +++ chan_mobile.c (working copy) @@ -591,7 +591,7 @@ return -1; } - ast_debug(1, "Calling %s on %s\n", dest, ast->name); + ast_log(LOG_DEBUG, "Calling %s on %s\n", dest, ast->name); if (pvt->type == MBL_TYPE_PHONE) { ast_copy_string(pvt->dial_number, dest_num, sizeof(pvt->dial_number)); @@ -618,10 +618,11 @@ } pvt = ast->tech_pvt; - ast_debug(1, "Hanging up device %s.\n", pvt->id); + ast_log(LOG_DEBUG, "Hanging up device %s.\n", pvt->id); ast_channel_lock(ast); - ast_channel_set_fd(ast, 0, -1); + ast->fds[0] = -1; + //ast_channel_set_fd(ast, 0, -1); ast_channel_unlock(ast); if (pvt->type == MBL_TYPE_HEADSET && pvt->sco_socket != -1) { @@ -679,7 +680,7 @@ if (pvt->type == MBL_TYPE_HEADSET) return 0; - ast_debug(1, "Dialed %c\n", digit); + ast_log(LOG_DEBUG, "Dialed %c\n", digit); switch(digit) { case '0': @@ -806,7 +807,7 @@ device = ast_strdupa(S_OR(data, "")); - ast_debug(1, "Checking device state for device %s\n", device); + ast_log(LOG_DEBUG, "Checking device state for device %s\n", device); AST_LIST_TRAVERSE(&devices, pvt, entry) { if (!strcmp(pvt->id, device)) @@ -838,7 +839,7 @@ int s; if ((s = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM)) < 0) { - ast_debug(1, "socket() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "socket() failed (%d).\n", errno); return -1; } @@ -847,7 +848,7 @@ bacpy(&addr.rc_bdaddr, &src); addr.rc_channel = (uint8_t) 1; if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - ast_debug(1, "bind() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "bind() failed (%d).\n", errno); close(s); return -1; } @@ -857,7 +858,7 @@ bacpy(&addr.rc_bdaddr, &dst); addr.rc_channel = remote_channel; if (connect(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - ast_debug(1, "connect() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "connect() failed (%d).\n", errno); close(s); return -1; } @@ -873,12 +874,12 @@ ssize_t num_write; int len; - ast_debug(1, "rfcomm_write() (%s) [%s]\n", pvt->id, buf); + ast_log(LOG_DEBUG, "rfcomm_write() (%s) [%s]\n", pvt->id, buf); len = strlen(buf); p = buf; while (len > 0) { if ((num_write = write(pvt->rfcomm_socket, p, len)) == -1) { - ast_debug(1, "rfcomm_write() error [%d]\n", errno); + ast_log(LOG_DEBUG, "rfcomm_write() error [%d]\n", errno); return 0; } len -= num_write; @@ -968,7 +969,7 @@ int s; if ((s = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_SCO)) < 0) { - ast_debug(1, "socket() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "socket() failed (%d).\n", errno); return -1; } @@ -976,7 +977,7 @@ addr.sco_family = AF_BLUETOOTH; bacpy(&addr.sco_bdaddr, &src); if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - ast_debug(1, "bind() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "bind() failed (%d).\n", errno); close(s); return -1; } @@ -986,7 +987,7 @@ bacpy(&addr.sco_bdaddr, &dst); if (connect(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { - ast_debug(1, "sco connect() failed (%d).\n", errno); + ast_log(LOG_DEBUG, "sco connect() failed (%d).\n", errno); close(s); return -1; } @@ -1006,16 +1007,16 @@ if (( r = poll(&pfd, 1, -1)) != 1) { if (r == -1) - ast_debug(1, "poll() returned errno %d\n", errno); + ast_log(LOG_DEBUG, "poll() returned errno %d\n", errno); return 0; } if (pfd.revents != POLLOUT) - ast_debug(1, "pfd.revents = %d\n", pfd.revents); + ast_log(LOG_DEBUG, "pfd.revents = %d\n", pfd.revents); r = write(s, buf, len); if (r == -1) { - ast_debug(1, "sco write error %d\n", errno); + ast_log(LOG_DEBUG, "sco write error %d\n", errno); return 0; } @@ -1031,9 +1032,9 @@ r = read(s, buf, len); if (r != len) { if (r == -1) - ast_debug(1, "sco_read() error %d\n", errno); + ast_log(LOG_DEBUG, "sco_read() error %d\n", errno); else - ast_debug(1, "sco_read() read short frame.\n"); + ast_log(LOG_DEBUG, "sco_read() read short frame.\n"); return 0; } @@ -1053,10 +1054,10 @@ arglen = sizeof(arg); arg = 100; if (setsockopt(s, SOL_SCO, SCO_TXBUFS, &arg, arglen) == -1) - ast_debug(1, "error setting SCO_TXBUFS %d\n", errno); + ast_log(LOG_DEBUG, "error setting SCO_TXBUFS %d\n", errno); if (setsockopt(s, SOL_SCO, SCO_RXBUFS, &arg, arglen) == -1) - ast_debug(1, "error setting SCO_RXBUFS %d\n", errno); + ast_log(LOG_DEBUG, "error setting SCO_RXBUFS %d\n", errno); return 0; @@ -1084,7 +1085,7 @@ port = 0; session = sdp_connect(BDADDR_ANY, &bdaddr, SDP_RETRY_IF_BUSY); if (!session) { - ast_debug(1, "sdp_connect() failed on device %s.\n", addr); + ast_log(LOG_DEBUG, "sdp_connect() failed on device %s.\n", addr); return 0; } @@ -1104,9 +1105,9 @@ sdp_record_free(sdprec); sdp_list_free(response_list, 0); } else - ast_debug(1, "No responses returned for device %s.\n", addr); + ast_log(LOG_DEBUG, "No responses returned for device %s.\n", addr); } else - ast_debug(1, "sdp_service_search_attr_req() failed on device %s.\n", addr); + ast_log(LOG_DEBUG, "sdp_service_search_attr_req() failed on device %s.\n", addr); sdp_list_free(search_list, 0); sdp_list_free(attrid_list, 0); @@ -1220,7 +1221,7 @@ s = rfcomm_read(pvt, buf, 0, t); if ((s > 0) && (buf[0] != 0x0) && (buf[0] != '\r')) { - ast_debug(1, "rfcomm_read() (%s) [%s]\n", pvt->id, buf); + ast_log(LOG_DEBUG, "rfcomm_read() (%s) [%s]\n", pvt->id, buf); switch (pvt->state) { case MBL_STATE_INIT: if (strstr(buf, "+BRSF:")) { @@ -1261,7 +1262,7 @@ sprintf(pvt->ciev_callsetup_3, "%d,3", callsetupp); if (callsetupp == 0) /* This phone has no call setup indication!! ... */ pvt->no_callsetup = 1; - ast_debug(1, "CIEV_CALL=%d CIEV_CALLSETUP=%d\n", callp, callsetupp); + ast_log(LOG_DEBUG, "CIEV_CALL=%d CIEV_CALLSETUP=%d\n", callp, callsetupp); } if (strstr(buf, "OK")) { rfcomm_write(pvt, "AT+CIND?\r"); @@ -1313,7 +1314,7 @@ case MBL_STATE_PREIDLE: /* Nothing handled here, wait for timeout, then off we go... */ break; case MBL_STATE_IDLE: - ast_debug(1, "Device %s [%s]\n", pvt->id, buf); + ast_log(LOG_DEBUG, "Device %s [%s]\n", pvt->id, buf); if (strstr(buf, "RING")) { pvt->state = MBL_STATE_RING; } else if (strstr(buf, "+CIEV:")) { @@ -1491,7 +1492,7 @@ pvt->state = MBL_STATE_RING2; } else if (pvt->state == MBL_STATE_HANGUP) { if (pvt->hangup_count == 6) { - ast_debug(1, "Device %s failed to hangup after 6 tries, disconnecting.\n", pvt->id); + ast_log(LOG_DEBUG, "Device %s failed to hangup after 6 tries, disconnecting.\n", pvt->id); monitor = 0; } rfcomm_write(pvt, "AT+CHUP\r"); @@ -1557,12 +1558,13 @@ s = rfcomm_read(pvt, buf, 0, t); if ((s > 0) && (buf[0] != 0x0) && (buf[0] != '\r')) { - ast_debug(1, "rfcomm_read() (%s) [%s]\n", pvt->id, buf); + ast_log(LOG_DEBUG, "rfcomm_read() (%s) [%s]\n", pvt->id, buf); switch (pvt->state) { case MBL_STATE_RING2: if (strstr(buf, "AT+CKPD=")) { ast_channel_lock(pvt->owner); - ast_channel_set_fd(pvt->owner, 0, pvt->sco_socket); + pvt->owner->fds[0] = pvt->sco_socket; + //ast_channel_set_fd(pvt->owner, 0, pvt->sco_socket); ast_channel_unlock(pvt->owner); ast_queue_control(pvt->owner, AST_CONTROL_ANSWER); pvt->state = MBL_STATE_INCOMING; @@ -1713,11 +1715,11 @@ return NULL; } while (1) { - ast_debug(1, "About to accept() socket.\n"); + ast_log(LOG_DEBUG, "About to accept() socket.\n"); addrlen = sizeof(struct sockaddr_sco); if ((ns = accept(adapter->sco_socket, (struct sockaddr *)&addr, &addrlen)) > -1) { - ast_debug(1, "accept()ed socket.\n"); + ast_log(LOG_DEBUG, "accept()ed socket.\n"); sco_set_options(ns); @@ -1725,7 +1727,7 @@ getsockopt(ns, SOL_SCO, SCO_OPTIONS, &so, &len); ba2str(&addr.sco_bdaddr, saddr); - ast_debug(1, "Incoming Audio Connection from device %s MTU is %d\n", saddr, so.mtu); + ast_log(LOG_DEBUG, "Incoming Audio Connection from device %s MTU is %d\n", saddr, so.mtu); pvt = NULL; AST_LIST_TRAVERSE(&devices, pvt, entry) { @@ -1738,11 +1740,12 @@ pvt->sco_socket = ns; if (pvt->owner) { ast_channel_lock(pvt->owner); - ast_channel_set_fd(pvt->owner, 0, ns); + pvt->owner->fds[0] = ns; + //ast_channel_set_fd(pvt->owner, 0, ns); ast_channel_unlock(pvt->owner); } } else - ast_debug(1, "Could not find device for incoming Audio Connection.\n"); + ast_log(LOG_DEBUG, "Could not find device for incoming Audio Connection.\n"); } else { ast_log(LOG_ERROR, "accept() failed %d\n", errno); } @@ -1772,7 +1775,7 @@ char nadapters = 0; struct ast_flags config_flags = { 0 }; - cfg = ast_config_load(MBL_CONFIG, config_flags); + cfg = ast_config_load(MBL_CONFIG); //, config_flags); if (!cfg) return 0; @@ -1787,7 +1790,7 @@ if (!strcasecmp(cat, "adapter")) { id = ast_variable_retrieve(cfg, cat, "id"); address = ast_variable_retrieve(cfg, cat, "address"); - ast_debug(1, "Loading adapter %s %s.\n", id, address); + ast_log(LOG_DEBUG, "Loading adapter %s %s.\n", id, address); if (id && address) { if ((adapter = ast_malloc(sizeof(struct adapter_pvt)))) { ast_copy_string(adapter->id, id, sizeof(adapter->id)); @@ -1834,7 +1837,7 @@ cat = ast_category_browse(cfg, NULL); while (cat) { if (strcasecmp(cat, "general") && strcasecmp(cat, "adapter")) { - ast_debug(1, "Loading device %s.\n", cat); + ast_log(LOG_DEBUG, "Loading device %s.\n", cat); address = ast_variable_retrieve(cfg, cat, "address"); useadapter = ast_variable_retrieve(cfg, cat, "adapter"); port = ast_variable_retrieve(cfg, cat, "port");