use a function, cli_yesno(), to produce the output Yes or No for
authorLuigi Rizzo <rizzo@icir.org>
Sun, 29 Jul 2007 20:55:20 +0000 (20:55 +0000)
committerLuigi Rizzo <rizzo@icir.org>
Sun, 29 Jul 2007 20:55:20 +0000 (20:55 +0000)
CLI lines. This helps maintaining consistency on output, slightly
improves readability, and maybe one day will make it easier to
translate the output in other languages (though i have a hard time
believing that a CLI user who needs 'yes' and 'no' to be translated
can actually figure out what he/she is doing!)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77726 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 0bc1f7b..1eabb2e 100644 (file)
@@ -10442,6 +10442,16 @@ static int peer_status(struct sip_peer *peer, char *status, int statuslen)
        return res;
 }
 
        return res;
 }
 
+/*! \brief return Yes or No depending on the argument.
+ * This is used in many places in CLI command, having a function to generate
+ * this helps maintaining a consistent output (and possibly emitting the
+ * output in other languages, at some point).
+ */
+static const char *cli_yesno(int x)
+{
+       return x ? "Yes" : "No";
+}
+
 /*! \brief  CLI Command 'SIP Show Users' */
 static int sip_show_users(int fd, int argc, char *argv[])
 {
 /*! \brief  CLI Command 'SIP Show Users' */
 static int sip_show_users(int fd, int argc, char *argv[])
 {
@@ -10477,7 +10487,7 @@ static int sip_show_users(int fd, int argc, char *argv[])
                        iterator->secret, 
                        iterator->accountcode,
                        iterator->context,
                        iterator->secret, 
                        iterator->accountcode,
                        iterator->context,
-                       iterator->ha ? "Yes" : "No",
+                       cli_yesno(iterator->ha != NULL),
                        nat2str(ast_test_flag(&iterator->flags[0], SIP_NAT)));
                ASTOBJ_UNLOCK(iterator);
        } while (0)
                        nat2str(ast_test_flag(&iterator->flags[0], SIP_NAT)));
                ASTOBJ_UNLOCK(iterator);
        } while (0)
@@ -11064,27 +11074,27 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, const struct m
                ast_cli(fd, "  Call limit   : %d\n", peer->call_limit);
                if (peer->busy_level)
                        ast_cli(fd, "  Busy level   : %d\n", peer->busy_level);
                ast_cli(fd, "  Call limit   : %d\n", peer->call_limit);
                if (peer->busy_level)
                        ast_cli(fd, "  Busy level   : %d\n", peer->busy_level);
-               ast_cli(fd, "  Dynamic      : %s\n", peer->host_dynamic ? "Yes" : "No");
+               ast_cli(fd, "  Dynamic      : %s\n", cli_yesno(peer->host_dynamic));
                ast_cli(fd, "  Callerid     : %s\n", ast_callerid_merge(cbuf, sizeof(cbuf), peer->cid_name, peer->cid_num, "<unspecified>"));
                ast_cli(fd, "  MaxCallBR    : %d kbps\n", peer->maxcallbitrate);
                ast_cli(fd, "  Expire       : %ld\n", ast_sched_when(sched, peer->expire));
                ast_cli(fd, "  Insecure     : %s\n", insecure2str(ast_test_flag(&peer->flags[0], SIP_INSECURE)));
                ast_cli(fd, "  Nat          : %s\n", nat2str(ast_test_flag(&peer->flags[0], SIP_NAT)));
                ast_cli(fd, "  Callerid     : %s\n", ast_callerid_merge(cbuf, sizeof(cbuf), peer->cid_name, peer->cid_num, "<unspecified>"));
                ast_cli(fd, "  MaxCallBR    : %d kbps\n", peer->maxcallbitrate);
                ast_cli(fd, "  Expire       : %ld\n", ast_sched_when(sched, peer->expire));
                ast_cli(fd, "  Insecure     : %s\n", insecure2str(ast_test_flag(&peer->flags[0], SIP_INSECURE)));
                ast_cli(fd, "  Nat          : %s\n", nat2str(ast_test_flag(&peer->flags[0], SIP_NAT)));
-               ast_cli(fd, "  ACL          : %s\n", (peer->ha?"Yes":"No"));
-               ast_cli(fd, "  T38 pt UDPTL : %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_UDPTL)?"Yes":"No");
+               ast_cli(fd, "  ACL          : %s\n", cli_yesno(peer->ha != NULL));
+               ast_cli(fd, "  T38 pt UDPTL : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_UDPTL)));
 #ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS
 #ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS
-               ast_cli(fd, "  T38 pt RTP   : %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_RTP)?"Yes":"No");
-               ast_cli(fd, "  T38 pt TCP   : %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_TCP)?"Yes":"No");
+               ast_cli(fd, "  T38 pt RTP   : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_RTP)));
+               ast_cli(fd, "  T38 pt TCP   : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_T38SUPPORT_TCP)));
 #endif
 #endif
-               ast_cli(fd, "  CanReinvite  : %s\n", ast_test_flag(&peer->flags[0], SIP_CAN_REINVITE)?"Yes":"No");
-               ast_cli(fd, "  PromiscRedir : %s\n", ast_test_flag(&peer->flags[0], SIP_PROMISCREDIR)?"Yes":"No");
-               ast_cli(fd, "  User=Phone   : %s\n", ast_test_flag(&peer->flags[0], SIP_USEREQPHONE)?"Yes":"No");
-               ast_cli(fd, "  Video Support: %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT)?"Yes":"No");
-               ast_cli(fd, "  Text Support : %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_TEXTSUPPORT)?"Yes":"No");
-               ast_cli(fd, "  Trust RPID   : %s\n", ast_test_flag(&peer->flags[0], SIP_TRUSTRPID) ? "Yes" : "No");
-               ast_cli(fd, "  Send RPID    : %s\n", ast_test_flag(&peer->flags[0], SIP_SENDRPID) ? "Yes" : "No");
-               ast_cli(fd, "  Subscriptions: %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_ALLOWSUBSCRIBE) ? "Yes" : "No");
-               ast_cli(fd, "  Overlap dial : %s\n", ast_test_flag(&peer->flags[1], SIP_PAGE2_ALLOWOVERLAP) ? "Yes" : "No");
+               ast_cli(fd, "  CanReinvite  : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_CAN_REINVITE)));
+               ast_cli(fd, "  PromiscRedir : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_PROMISCREDIR)));
+               ast_cli(fd, "  User=Phone   : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_USEREQPHONE)));
+               ast_cli(fd, "  Video Support: %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT)));
+               ast_cli(fd, "  Text Support : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_TEXTSUPPORT)));
+               ast_cli(fd, "  Trust RPID   : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_TRUSTRPID)));
+               ast_cli(fd, "  Send RPID    : %s\n", cli_yesno(ast_test_flag(&peer->flags[0], SIP_SENDRPID)));
+               ast_cli(fd, "  Subscriptions: %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_ALLOWSUBSCRIBE)));
+               ast_cli(fd, "  Overlap dial : %s\n", cli_yesno(ast_test_flag(&peer->flags[1], SIP_PAGE2_ALLOWOVERLAP)));
                if (peer->outboundproxy)
                        ast_cli(fd, "  Outb. proxy  : %s %s\n", ast_strlen_zero(peer->outboundproxy->name) ? "<not set>" : peer->outboundproxy->name,
                                                        peer->outboundproxy->force ? "(forced)" : "");
                if (peer->outboundproxy)
                        ast_cli(fd, "  Outb. proxy  : %s %s\n", ast_strlen_zero(peer->outboundproxy->name) ? "<not set>" : peer->outboundproxy->name,
                                                        peer->outboundproxy->force ? "(forced)" : "");
@@ -11118,7 +11128,7 @@ static int _sip_show_peer(int type, int fd, struct mansession *s, const struct m
                print_codec_to_cli(fd, &peer->prefs);
                ast_cli(fd, ")\n");
 
                print_codec_to_cli(fd, &peer->prefs);
                ast_cli(fd, ")\n");
 
-               ast_cli(fd, "  Auto-Framing:  %s \n", peer->autoframing ? "Yes" : "No");
+               ast_cli(fd, "  Auto-Framing:  %s \n", cli_yesno(peer->autoframing));
                ast_cli(fd, "  Status       : ");
                peer_status(peer, status, sizeof(status));
                ast_cli(fd, "%s\n",status);
                ast_cli(fd, "  Status       : ");
                peer_status(peer, status, sizeof(status));
                ast_cli(fd, "%s\n",status);
@@ -11249,12 +11259,12 @@ static int sip_show_user(int fd, int argc, char *argv[])
                ast_cli(fd, "  Pickupgroup  : ");
                print_group(fd, user->pickupgroup, 0);
                ast_cli(fd, "  Callerid     : %s\n", ast_callerid_merge(cbuf, sizeof(cbuf), user->cid_name, user->cid_num, "<unspecified>"));
                ast_cli(fd, "  Pickupgroup  : ");
                print_group(fd, user->pickupgroup, 0);
                ast_cli(fd, "  Callerid     : %s\n", ast_callerid_merge(cbuf, sizeof(cbuf), user->cid_name, user->cid_num, "<unspecified>"));
-               ast_cli(fd, "  ACL          : %s\n", (user->ha?"Yes":"No"));
+               ast_cli(fd, "  ACL          : %s\n", cli_yesno(user->ha != NULL));
                ast_cli(fd, "  Codec Order  : (");
                print_codec_to_cli(fd, &user->prefs);
                ast_cli(fd, ")\n");
 
                ast_cli(fd, "  Codec Order  : (");
                print_codec_to_cli(fd, &user->prefs);
                ast_cli(fd, ")\n");
 
-               ast_cli(fd, "  Auto-Framing:  %s \n", user->autoframing ? "Yes" : "No");
+               ast_cli(fd, "  Auto-Framing:  %s \n", cli_yesno(user->autoframing));
                if (user->chanvars) {
                        ast_cli(fd, "  Variables    :\n");
                        for (v = user->chanvars ; v ; v = v->next)
                if (user->chanvars) {
                        ast_cli(fd, "  Variables    :\n");
                        for (v = user->chanvars ; v ; v = v->next)
@@ -11346,25 +11356,25 @@ static int sip_show_settings(int fd, int argc, char *argv[])
        ast_cli(fd, "----------------\n");
        ast_cli(fd, "  SIP Port:               %d\n", ntohs(bindaddr.sin_port));
        ast_cli(fd, "  Bindaddress:            %s\n", ast_inet_ntoa(bindaddr.sin_addr));
        ast_cli(fd, "----------------\n");
        ast_cli(fd, "  SIP Port:               %d\n", ntohs(bindaddr.sin_port));
        ast_cli(fd, "  Bindaddress:            %s\n", ast_inet_ntoa(bindaddr.sin_addr));
-       ast_cli(fd, "  Videosupport:           %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_VIDEOSUPPORT) ? "Yes" : "No");
-       ast_cli(fd, "  Textsupport:            %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT) ? "Yes" : "No");
-       ast_cli(fd, "  AutoCreatePeer:         %s\n", autocreatepeer ? "Yes" : "No");
-       ast_cli(fd, "  MatchAuthUsername:      %s\n", global_match_auth_username ? "Yes" : "No");
-       ast_cli(fd, "  Allow unknown access:   %s\n", global_allowguest ? "Yes" : "No");
-       ast_cli(fd, "  Allow subscriptions:    %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_ALLOWSUBSCRIBE) ? "Yes" : "No");
-       ast_cli(fd, "  Allow overlap dialing:  %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_ALLOWOVERLAP) ? "Yes" : "No");
-       ast_cli(fd, "  Promsic. redir:         %s\n", ast_test_flag(&global_flags[0], SIP_PROMISCREDIR) ? "Yes" : "No");
-       ast_cli(fd, "  SIP domain support:     %s\n", AST_LIST_EMPTY(&domain_list) ? "No" : "Yes");
-       ast_cli(fd, "  Call to non-local dom.: %s\n", allow_external_domains ? "Yes" : "No");
-       ast_cli(fd, "  URI user is phone no:   %s\n", ast_test_flag(&global_flags[0], SIP_USEREQPHONE) ? "Yes" : "No");
+       ast_cli(fd, "  Videosupport:           %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_VIDEOSUPPORT)));
+       ast_cli(fd, "  Textsupport:            %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_TEXTSUPPORT)));
+       ast_cli(fd, "  AutoCreatePeer:         %s\n", cli_yesno(autocreatepeer));
+       ast_cli(fd, "  MatchAuthUsername:      %s\n", cli_yesno(global_match_auth_username));
+       ast_cli(fd, "  Allow unknown access:   %s\n", cli_yesno(global_allowguest));
+       ast_cli(fd, "  Allow subscriptions:    %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_ALLOWSUBSCRIBE)));
+       ast_cli(fd, "  Allow overlap dialing:  %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_ALLOWOVERLAP)));
+       ast_cli(fd, "  Promsic. redir:         %s\n", cli_yesno(ast_test_flag(&global_flags[0], SIP_PROMISCREDIR)));
+       ast_cli(fd, "  SIP domain support:     %s\n", cli_yesno(!AST_LIST_EMPTY(&domain_list)));
+       ast_cli(fd, "  Call to non-local dom.: %s\n", cli_yesno(allow_external_domains));
+       ast_cli(fd, "  URI user is phone no:   %s\n", cli_yesno(ast_test_flag(&global_flags[0], SIP_USEREQPHONE)));
        ast_cli(fd, "  Our auth realm          %s\n", global_realm);
        ast_cli(fd, "  Our auth realm          %s\n", global_realm);
-       ast_cli(fd, "  Realm. auth:            %s\n", authl ? "Yes": "No");
-       ast_cli(fd, "  Always auth rejects:    %s\n", global_alwaysauthreject ? "Yes" : "No");
-       ast_cli(fd, "  Call limit peers only:  %s\n", global_limitonpeers ? "Yes" : "No");
-       ast_cli(fd, "  Direct RTP setup:       %s\n", global_directrtpsetup ? "Yes" : "No");
+       ast_cli(fd, "  Realm. auth:            %s\n", cli_yesno(authl != NULL));
+       ast_cli(fd, "  Always auth rejects:    %s\n", cli_yesno(global_alwaysauthreject));
+       ast_cli(fd, "  Call limit peers only:  %s\n", cli_yesno(global_limitonpeers));
+       ast_cli(fd, "  Direct RTP setup:       %s\n", cli_yesno(global_directrtpsetup));
        ast_cli(fd, "  User Agent:             %s\n", global_useragent);
        ast_cli(fd, "  Reg. context:           %s\n", S_OR(global_regcontext, "(not set)"));
        ast_cli(fd, "  User Agent:             %s\n", global_useragent);
        ast_cli(fd, "  Reg. context:           %s\n", S_OR(global_regcontext, "(not set)"));
-       ast_cli(fd, "  Regexten on Qualify:    %s\n", global_regextenonqualify ? "Yes" : "No");
+       ast_cli(fd, "  Regexten on Qualify:    %s\n", cli_yesno(global_regextenonqualify));
        ast_cli(fd, "  Caller ID:              %s\n", default_callerid);
        ast_cli(fd, "  From: Domain:           %s\n", default_fromdomain);
        ast_cli(fd, "  Record SIP history:     %s\n", recordhistory ? "On" : "Off");
        ast_cli(fd, "  Caller ID:              %s\n", default_callerid);
        ast_cli(fd, "  From: Domain:           %s\n", default_fromdomain);
        ast_cli(fd, "  Record SIP history:     %s\n", recordhistory ? "On" : "Off");
@@ -11378,18 +11388,18 @@ static int sip_show_settings(int fd, int argc, char *argv[])
        ast_cli(fd, "  802.1p CoS RTP video:   %d\n", global_cos_video);
        ast_cli(fd, "  802.1p CoS RTP text:    %d\n", global_cos_text);
 
        ast_cli(fd, "  802.1p CoS RTP video:   %d\n", global_cos_video);
        ast_cli(fd, "  802.1p CoS RTP text:    %d\n", global_cos_text);
 
-       ast_cli(fd, "  T38 fax pt UDPTL:       %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_UDPTL) ? "Yes" : "No");
+       ast_cli(fd, "  T38 fax pt UDPTL:       %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_UDPTL)));
 #ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS
 #ifdef WHEN_WE_HAVE_T38_FOR_OTHER_TRANSPORTS
-       ast_cli(fd, "  T38 fax pt RTP:         %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_RTP) ? "Yes" : "No");
-       ast_cli(fd, "  T38 fax pt TCP:         %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_TCP) ? "Yes" : "No");
+       ast_cli(fd, "  T38 fax pt RTP:         %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_RTP)));
+       ast_cli(fd, "  T38 fax pt TCP:         %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_T38SUPPORT_TCP)));
 #endif
 #endif
-       ast_cli(fd, "  RFC2833 Compensation:   %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_RFC2833_COMPENSATE) ? "Yes" : "No");
-       ast_cli(fd, "  Jitterbuffer enabled:   %s\n", ast_test_flag(&global_jbconf, AST_JB_ENABLED) ? "Yes" : "No");
-       ast_cli(fd, "  Jitterbuffer forced:    %s\n", ast_test_flag(&global_jbconf, AST_JB_FORCED) ? "Yes" : "No");
+       ast_cli(fd, "  RFC2833 Compensation:   %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_RFC2833_COMPENSATE)));
+       ast_cli(fd, "  Jitterbuffer enabled:   %s\n", cli_yesno(ast_test_flag(&global_jbconf, AST_JB_ENABLED)));
+       ast_cli(fd, "  Jitterbuffer forced:    %s\n", cli_yesno(ast_test_flag(&global_jbconf, AST_JB_FORCED)));
        ast_cli(fd, "  Jitterbuffer max size:  %ld\n", global_jbconf.max_size);
        ast_cli(fd, "  Jitterbuffer resync:    %ld\n", global_jbconf.resync_threshold);
        ast_cli(fd, "  Jitterbuffer impl:      %s\n", global_jbconf.impl);
        ast_cli(fd, "  Jitterbuffer max size:  %ld\n", global_jbconf.max_size);
        ast_cli(fd, "  Jitterbuffer resync:    %ld\n", global_jbconf.resync_threshold);
        ast_cli(fd, "  Jitterbuffer impl:      %s\n", global_jbconf.impl);
-       ast_cli(fd, "  Jitterbuffer log:       %s\n", ast_test_flag(&global_jbconf, AST_JB_LOG) ? "Yes" : "No");
+       ast_cli(fd, "  Jitterbuffer log:       %s\n", cli_yesno(ast_test_flag(&global_jbconf, AST_JB_LOG)));
        if (!realtimepeers && !realtimeusers && !realtimeregs)
                ast_cli(fd, "  SIP realtime:           Disabled\n" );
        else
        if (!realtimepeers && !realtimeusers && !realtimeregs)
                ast_cli(fd, "  SIP realtime:           Disabled\n" );
        else
@@ -11435,24 +11445,24 @@ static int sip_show_settings(int fd, int argc, char *argv[])
        print_codec_to_cli(fd, &default_prefs);
        ast_cli(fd, "\n");
        ast_cli(fd, "  T1 minimum:             %d\n", global_t1min);
        print_codec_to_cli(fd, &default_prefs);
        ast_cli(fd, "\n");
        ast_cli(fd, "  T1 minimum:             %d\n", global_t1min);
-       ast_cli(fd, "  Relax DTMF:             %s\n", global_relaxdtmf ? "Yes" : "No");
-       ast_cli(fd, "  Compact SIP headers:    %s\n", compactheaders ? "Yes" : "No");
+       ast_cli(fd, "  Relax DTMF:             %s\n", cli_yesno(global_relaxdtmf));
+       ast_cli(fd, "  Compact SIP headers:    %s\n", cli_yesno(compactheaders));
        ast_cli(fd, "  RTP Keepalive:          %d %s\n", global_rtpkeepalive, global_rtpkeepalive ? "" : "(Disabled)" );
        ast_cli(fd, "  RTP Timeout:            %d %s\n", global_rtptimeout, global_rtptimeout ? "" : "(Disabled)" );
        ast_cli(fd, "  RTP Hold Timeout:       %d %s\n", global_rtpholdtimeout, global_rtpholdtimeout ? "" : "(Disabled)");
        ast_cli(fd, "  MWI NOTIFY mime type:   %s\n", default_notifymime);
        ast_cli(fd, "  RTP Keepalive:          %d %s\n", global_rtpkeepalive, global_rtpkeepalive ? "" : "(Disabled)" );
        ast_cli(fd, "  RTP Timeout:            %d %s\n", global_rtptimeout, global_rtptimeout ? "" : "(Disabled)" );
        ast_cli(fd, "  RTP Hold Timeout:       %d %s\n", global_rtpholdtimeout, global_rtpholdtimeout ? "" : "(Disabled)");
        ast_cli(fd, "  MWI NOTIFY mime type:   %s\n", default_notifymime);
-       ast_cli(fd, "  DNS SRV lookup:         %s\n", global_srvlookup ? "Yes" : "No");
-       ast_cli(fd, "  Pedantic SIP support:   %s\n", pedanticsipchecking ? "Yes" : "No");
+       ast_cli(fd, "  DNS SRV lookup:         %s\n", cli_yesno(global_srvlookup));
+       ast_cli(fd, "  Pedantic SIP support:   %s\n", cli_yesno(pedanticsipchecking));
        ast_cli(fd, "  Reg. min duration       %d secs\n", min_expiry);
        ast_cli(fd, "  Reg. max duration:      %d secs\n", max_expiry);
        ast_cli(fd, "  Reg. default duration:  %d secs\n", default_expiry);
        ast_cli(fd, "  Outbound reg. timeout:  %d secs\n", global_reg_timeout);
        ast_cli(fd, "  Outbound reg. attempts: %d\n", global_regattempts_max);
        ast_cli(fd, "  Reg. min duration       %d secs\n", min_expiry);
        ast_cli(fd, "  Reg. max duration:      %d secs\n", max_expiry);
        ast_cli(fd, "  Reg. default duration:  %d secs\n", default_expiry);
        ast_cli(fd, "  Outbound reg. timeout:  %d secs\n", global_reg_timeout);
        ast_cli(fd, "  Outbound reg. attempts: %d\n", global_regattempts_max);
-       ast_cli(fd, "  Notify ringing state:   %s\n", global_notifyringing ? "Yes" : "No");
-       ast_cli(fd, "  Notify hold state:      %s\n", global_notifyhold ? "Yes" : "No");
+       ast_cli(fd, "  Notify ringing state:   %s\n", cli_yesno(global_notifyringing));
+       ast_cli(fd, "  Notify hold state:      %s\n", cli_yesno(global_notifyhold));
        ast_cli(fd, "  SIP Transfer mode:      %s\n", transfermode2str(global_allowtransfer));
        ast_cli(fd, "  Max Call Bitrate:       %d kbps\n", default_maxcallbitrate);
        ast_cli(fd, "  SIP Transfer mode:      %s\n", transfermode2str(global_allowtransfer));
        ast_cli(fd, "  Max Call Bitrate:       %d kbps\n", default_maxcallbitrate);
-       ast_cli(fd, "  Auto-Framing:           %s\n", global_autoframing ? "Yes" : "No");
+       ast_cli(fd, "  Auto-Framing:           %s\n", cli_yesno(global_autoframing));
        ast_cli(fd, "  Outb. proxy:            %s %s\n", ast_strlen_zero(global_outboundproxy.name) ? "<not set>" : global_outboundproxy.name,
                                                        global_outboundproxy.force ? "(forced)" : "");
 
        ast_cli(fd, "  Outb. proxy:            %s %s\n", ast_strlen_zero(global_outboundproxy.name) ? "<not set>" : global_outboundproxy.name,
                                                        global_outboundproxy.force ? "(forced)" : "");
 
@@ -11462,7 +11472,7 @@ static int sip_show_settings(int fd, int argc, char *argv[])
        ast_cli(fd, "  Nat:                    %s\n", nat2str(ast_test_flag(&global_flags[0], SIP_NAT)));
        ast_cli(fd, "  DTMF:                   %s\n", dtmfmode2str(ast_test_flag(&global_flags[0], SIP_DTMF)));
        ast_cli(fd, "  Qualify:                %d\n", default_qualify);
        ast_cli(fd, "  Nat:                    %s\n", nat2str(ast_test_flag(&global_flags[0], SIP_NAT)));
        ast_cli(fd, "  DTMF:                   %s\n", dtmfmode2str(ast_test_flag(&global_flags[0], SIP_DTMF)));
        ast_cli(fd, "  Qualify:                %d\n", default_qualify);
-       ast_cli(fd, "  Use ClientCode:         %s\n", ast_test_flag(&global_flags[0], SIP_USECLIENTCODE) ? "Yes" : "No");
+       ast_cli(fd, "  Use ClientCode:         %s\n", cli_yesno(ast_test_flag(&global_flags[0], SIP_USECLIENTCODE)));
        ast_cli(fd, "  Progress inband:        %s\n", (ast_test_flag(&global_flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER) ? "Never" : (ast_test_flag(&global_flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NO) ? "No" : "Yes" );
        ast_cli(fd, "  Language:               %s\n", S_OR(default_language, "(Defaults to English)"));
        ast_cli(fd, "  MOH Interpret:          %s\n", default_mohinterpret);
        ast_cli(fd, "  Progress inband:        %s\n", (ast_test_flag(&global_flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER) ? "Never" : (ast_test_flag(&global_flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NO) ? "No" : "Yes" );
        ast_cli(fd, "  Language:               %s\n", S_OR(default_language, "(Defaults to English)"));
        ast_cli(fd, "  MOH Interpret:          %s\n", default_mohinterpret);
@@ -11473,13 +11483,13 @@ static int sip_show_settings(int fd, int argc, char *argv[])
        if (realtimepeers || realtimeusers || realtimeregs) {
                ast_cli(fd, "\nRealtime SIP Settings:\n");
                ast_cli(fd, "----------------------\n");
        if (realtimepeers || realtimeusers || realtimeregs) {
                ast_cli(fd, "\nRealtime SIP Settings:\n");
                ast_cli(fd, "----------------------\n");
-               ast_cli(fd, "  Realtime Peers:         %s\n", realtimepeers ? "Yes" : "No");
-               ast_cli(fd, "  Realtime Users:         %s\n", realtimeusers ? "Yes" : "No");
-               ast_cli(fd, "  Realtime Regs:          %s\n", realtimeregs ? "Yes" : "No");
-               ast_cli(fd, "  Cache Friends:          %s\n", ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS) ? "Yes" : "No");
-               ast_cli(fd, "  Update:                 %s\n", sip_cfg.peer_rtupdate ? "Yes" : "No");
-               ast_cli(fd, "  Ignore Reg. Expire:     %s\n", sip_cfg.ignore_regexpire ? "Yes" : "No");
-               ast_cli(fd, "  Save sys. name:         %s\n", sip_cfg.rtsave_sysname ? "Yes" : "No");
+               ast_cli(fd, "  Realtime Peers:         %s\n", cli_yesno(realtimepeers));
+               ast_cli(fd, "  Realtime Users:         %s\n", cli_yesno(realtimeusers));
+               ast_cli(fd, "  Realtime Regs:          %s\n", cli_yesno(realtimeregs));
+               ast_cli(fd, "  Cache Friends:          %s\n", cli_yesno(ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)));
+               ast_cli(fd, "  Update:                 %s\n", cli_yesno(sip_cfg.peer_rtupdate));
+               ast_cli(fd, "  Ignore Reg. Expire:     %s\n", cli_yesno(sip_cfg.ignore_regexpire));
+               ast_cli(fd, "  Save sys. name:         %s\n", cli_yesno(sip_cfg.rtsave_sysname));
                ast_cli(fd, "  Auto Clear:             %d\n", global_rtautoclear);
        }
        ast_cli(fd, "\n----\n");
                ast_cli(fd, "  Auto Clear:             %d\n", global_rtautoclear);
        }
        ast_cli(fd, "\n----\n");
@@ -11547,7 +11557,7 @@ static int show_channels_cb(void *__cur, void *__arg, int flags)
                                cur->callid, 
                                cur->ocseq, cur->icseq, 
                                ast_getformatname(cur->owner ? cur->owner->nativeformats : 0), 
                                cur->callid, 
                                cur->ocseq, cur->icseq, 
                                ast_getformatname(cur->owner ? cur->owner->nativeformats : 0), 
-                               ast_test_flag(&cur->flags[1], SIP_PAGE2_CALL_ONHOLD) ? "Yes" : "No",
+                               cli_yesno(ast_test_flag(&cur->flags[1], SIP_PAGE2_CALL_ONHOLD)),
                                cur->needdestroy ? "(d)" : "",
                                cur->lastmsg ,
                                referstatus
                                cur->needdestroy ? "(d)" : "",
                                cur->lastmsg ,
                                referstatus
@@ -11787,8 +11797,8 @@ static int sip_show_channel(int fd, int argc, char *argv[])
                        ast_cli(fd, "  Their Codec Capability:   %d\n", cur->peercapability);
                        ast_cli(fd, "  Joint Codec Capability:   %d\n", cur->jointcapability);
                        ast_cli(fd, "  Format:                 %s\n", ast_getformatname_multiple(formatbuf, sizeof(formatbuf), cur->owner ? cur->owner->nativeformats : 0) );
                        ast_cli(fd, "  Their Codec Capability:   %d\n", cur->peercapability);
                        ast_cli(fd, "  Joint Codec Capability:   %d\n", cur->jointcapability);
                        ast_cli(fd, "  Format:                 %s\n", ast_getformatname_multiple(formatbuf, sizeof(formatbuf), cur->owner ? cur->owner->nativeformats : 0) );
-                       ast_cli(fd, "  T.38 support            %s\n", cur->udptl ? "Yes" : "No");
-                       ast_cli(fd, "  Video support           %s\n", cur->vrtp ? "Yes" : "No");
+                       ast_cli(fd, "  T.38 support            %s\n", cli_yesno(cur->udptl != NULL));
+                       ast_cli(fd, "  Video support           %s\n", cli_yesno(cur->vrtp != NULL));
                        ast_cli(fd, "  MaxCallBR:              %d kbps\n", cur->maxcallbitrate);
                        ast_cli(fd, "  Theoretical Address:    %s:%d\n", ast_inet_ntoa(cur->sa.sin_addr), ntohs(cur->sa.sin_port));
                        ast_cli(fd, "  Received Address:       %s:%d\n", ast_inet_ntoa(cur->recv.sin_addr), ntohs(cur->recv.sin_port));
                        ast_cli(fd, "  MaxCallBR:              %d kbps\n", cur->maxcallbitrate);
                        ast_cli(fd, "  Theoretical Address:    %s:%d\n", ast_inet_ntoa(cur->sa.sin_addr), ntohs(cur->sa.sin_port));
                        ast_cli(fd, "  Received Address:       %s:%d\n", ast_inet_ntoa(cur->recv.sin_addr), ntohs(cur->recv.sin_port));
@@ -11806,9 +11816,9 @@ static int sip_show_channel(int fd, int argc, char *argv[])
                                ast_cli(fd, "  Original uri:           %s\n", cur->uri);
                        if (!ast_strlen_zero(cur->cid_num))
                                ast_cli(fd, "  Caller-ID:              %s\n", cur->cid_num);
                                ast_cli(fd, "  Original uri:           %s\n", cur->uri);
                        if (!ast_strlen_zero(cur->cid_num))
                                ast_cli(fd, "  Caller-ID:              %s\n", cur->cid_num);
-                       ast_cli(fd, "  Need Destroy:           %s\n", cur->needdestroy ? "Yes" : "No");
+                       ast_cli(fd, "  Need Destroy:           %s\n", cli_yesno(cur->needdestroy));
                        ast_cli(fd, "  Last Message:           %s\n", cur->lastmsg);
                        ast_cli(fd, "  Last Message:           %s\n", cur->lastmsg);
-                       ast_cli(fd, "  Promiscuous Redir:      %s\n", ast_test_flag(&cur->flags[0], SIP_PROMISCREDIR) ? "Yes" : "No");
+                       ast_cli(fd, "  Promiscuous Redir:      %s\n", cli_yesno(ast_test_flag(&cur->flags[0], SIP_PROMISCREDIR)));
                        ast_cli(fd, "  Route:                  %s\n", cur->route ? cur->route->hop : "N/A");
                        ast_cli(fd, "  DTMF Mode:              %s\n", dtmfmode2str(ast_test_flag(&cur->flags[0], SIP_DTMF)));
                        ast_cli(fd, "  SIP Options:            ");
                        ast_cli(fd, "  Route:                  %s\n", cur->route ? cur->route->hop : "N/A");
                        ast_cli(fd, "  DTMF Mode:              %s\n", dtmfmode2str(ast_test_flag(&cur->flags[0], SIP_DTMF)));
                        ast_cli(fd, "  SIP Options:            ");