--- chan_mobile.c.orig 2009-04-13 22:19:57.000000000 +0200 +++ chan_mobile.c 2009-04-14 13:36:27.000000000 +0200 @@ -308,13 +308,13 @@ struct adapter_pvt *adapter; inquiry_info *ii = NULL; int max_rsp, num_rsp; - int len, flags; - int i, phport, hsport; + int len, flags, has_phport2=0; + int i, phport, phport2, hsport; char addr[19] = {0}; char name[31] = {0}; -#define FORMAT1 "%-17.17s %-30.30s %-6.6s %-7.7s %-4.4s\n" -#define FORMAT2 "%-17.17s %-30.30s %-6.6s %-7.7s %d\n" +#define FORMAT1 "%-17.17s %-30.30s %-6.6s %-10.10s %-4.4s\n" +#define FORMAT2 "%-17.17s %-30.30s %-6.6s %-10.10s %d\n" switch (cmd) { case CLI_INIT: @@ -357,13 +357,21 @@ if (hci_read_remote_name(adapter->hci_socket, &(ii + i)->bdaddr, sizeof(name) - 1, name, 0) < 0) strcpy(name, "[unknown]"); phport = sdp_search(addr, HANDSFREE_AGW_PROFILE_ID); + phport2 = sdp_search(addr, HEADSET_AGW_PROFILE_ID); if (!phport) hsport = sdp_search(addr, HEADSET_PROFILE_ID); else hsport = 0; ast_cli(a->fd, FORMAT2, addr, name, (phport > 0 || hsport > 0) ? "Yes" : "No", (phport > 0) ? "Phone" : "Headset", (phport > 0) ? phport : hsport); + if (phport2) { + has_phport2 = 1; + ast_cli(a->fd, FORMAT2, addr, name, "(Yes)", + "(Phone HS)", phport2); + } } + if(has_phport2) + ast_cli(a->fd, "(Use port of 'Phone HS' (=headset audio gateway) if 'Phone' does not work.)\n"); } else ast_cli(a->fd, "No Bluetooth Cell / Mobile devices found.\n");