summaryrefslogtreecommitdiff
path: root/res
diff options
context:
space:
mode:
authorMatthew Nicholson <mnicholson@digium.com>2011-10-03 15:55:28 +0000
committerMatthew Nicholson <mnicholson@digium.com>2011-10-03 15:55:28 +0000
commit69ea68a1f5bf287ba9333482dc240d129d35be9d (patch)
tree9b14ca51cffe0cf2ff853f83b06e5fd3227218a7 /res
parent0932d899e661753dad52202aea24291c14af41fd (diff)
Merged revisions 339045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/10 ........ r339045 | mnicholson | 2011-10-03 10:54:55 -0500 (Mon, 03 Oct 2011) | 4 lines Ported ast_fax_caps_to_str() to 10, not sure why it wasn't already here. This function prints a list of caps instead of a hex bitfield. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@339046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res')
-rw-r--r--res/res_fax.c58
1 files changed, 56 insertions, 2 deletions
diff --git a/res/res_fax.c b/res/res_fax.c
index d177e717f..ae599372d 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -563,6 +563,58 @@ static int update_modem_bits(enum ast_fax_modems *bits, const char *value)
}
return 0;
}
+static char *ast_fax_caps_to_str(enum ast_fax_capabilities caps, char *buf, size_t bufsize)
+{
+ char *out = buf;
+ size_t size = bufsize;
+ int first = 1;
+
+ if (caps & AST_FAX_TECH_SEND) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "SEND");
+ first = 0;
+ }
+ if (caps & AST_FAX_TECH_RECEIVE) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "RECEIVE");
+ first = 0;
+ }
+ if (caps & AST_FAX_TECH_AUDIO) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "AUDIO");
+ first = 0;
+ }
+ if (caps & AST_FAX_TECH_T38) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "T38");
+ first = 0;
+ }
+ if (caps & AST_FAX_TECH_MULTI_DOC) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "MULTI_DOC");
+ first = 0;
+ }
+ if (caps & AST_FAX_TECH_GATEWAY) {
+ if (!first) {
+ ast_build_string(&buf, &size, ",");
+ }
+ ast_build_string(&buf, &size, "GATEWAY");
+ first = 0;
+ }
+
+
+ return out;
+}
static int ast_fax_modem_to_str(enum ast_fax_modems bits, char *tbuf, size_t bufsize)
{
@@ -836,7 +888,8 @@ static struct ast_fax_session *fax_session_reserve(struct ast_fax_session_detail
AST_RWLIST_UNLOCK(&faxmodules);
if (!faxmod) {
- ast_log(LOG_ERROR, "Could not locate a FAX technology module with capabilities (0x%X)\n", details->caps);
+ char caps[128] = "";
+ ast_log(LOG_ERROR, "Could not locate a FAX technology module with capabilities (%s)\n", ast_fax_caps_to_str(details->caps, caps, sizeof(caps)));
ao2_ref(s, -1);
return NULL;
}
@@ -952,7 +1005,8 @@ static struct ast_fax_session *fax_session_new(struct ast_fax_session_details *d
AST_RWLIST_UNLOCK(&faxmodules);
if (!faxmod) {
- ast_log(LOG_ERROR, "Could not locate a FAX technology module with capabilities (0x%X)\n", details->caps);
+ char caps[128] = "";
+ ast_log(LOG_ERROR, "Could not locate a FAX technology module with capabilities (%s)\n", ast_fax_caps_to_str(details->caps, caps, sizeof(caps)));
ao2_ref(s, -1);
return NULL;
}