文件:main目錄下的asterisk.c文件
1、代碼片段:
/* if the progname is rasterisk consider it a remote console */
if (argv[0] && (strstr(argv[0], "rasterisk")) != NULL) {
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE);
}
...
case 'r':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE);
break;
說明:
在終端運行rasterisk命令,相當於運行asterisk -r,即asterisk的遠程連接。
2、代碼片段:
if (getenv("HOME"))
snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
說明: rasterisk(或者asterisk -r)中運行的命令會記錄在用戶的home目錄下的.asteriskhistory文件中(比如:/root/.asteriskhistory)
代碼片段:
case 'B': /* Force black background */
ast_set_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
ast_clear_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
break;
說明: -B 強制以黑色背景運行,相當於將文件/etc/asterisk/asterisk.conf中的forceblackbackground設置為yes
代碼片段:
case 'X':
ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC_INCLUDES);
break;
說明: -X 可以在配置文件中配置"#exec "之類的指令(比如:#exec /tmp/shellTest.sh),相當於將在文件/etc/asterisk/asterisk.conf中配置execincludes = yes
代碼片段:
case 'C':
ast_copy_string(cfg_paths.config_file, optarg, sizeof(cfg_paths.config_file));
ast_set_flag(&ast_options, AST_OPT_FLAG_OVERRIDE_CONFIG);
break;
說明: -C file 使用file替代/etc/asterisk/asterisk.conf文件初始化程序,這裡的file應為絕對路徑。
代碼片段:
case 'c':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_CONSOLE);
break;
說明: -c 以console方式運行,相當於將在文件/etc/asterisk/asterisk.conf中配置console = yes
代碼片段:
case 'd':
option_debug++;
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
break;
說明:
-d 或者 -ddd
調試模式,d的個數即為調試級別,比如"-ddd"相當於在文件/etc/asterisk/asterisk.conf中配置debug = 3
代碼片段:
case 'e':
if ((sscanf(&optarg[1], "%30ld", &option_minmemfree) != 1) || (option_minmemfree < 0)) {
option_minmemfree = 0;
}
break;
說明:
-e memory
相當於文件/etc/asterisk/asterisk.conf中配置 minmemfree = memory
當系統中可用內存低於設定的memory值時,asterisk停止接收新的呼叫
代碼片段:
case 'F':
ast_set_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK);
break;
說明:
-F
相當於在文件/etc/asterisk/asterisk.conf中配alwaysfork = yes
代碼片段:
case 'f':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
break;
說明:
-f
相當於在文件/etc/asterisk/asterisk.conf中配nofork = yes
代碼片段:
case 'G':
rungroup = ast_strdupa(optarg);
break;
說明:
-G group
調用指定組運行
代碼片段:
case 'g':
ast_set_flag(&ast_options, AST_OPT_FLAG_DUMP_CORE);
break;
說明:
-g
故障轉儲相關
代碼片段:
case 'h':
show_cli_help();
exit(0);
說明:
-h
顯示幫助信息
代碼片段:
case 'I':
ast_set_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING);
break;
說明: -I 如果DAHDI計時器是可用則使內部定時
代碼片段:
case 'i':
ast_set_flag(&ast_options, AST_OPT_FLAG_INIT_KEYS);
break;
說明:
-i
在啟動時初始化加密密鑰
代碼片段:
case 'L':
if ((sscanf(optarg, "%30lf", &option_maxload) != 1) || (option_maxload < 0.0)) {
option_maxload = 0.0;
}
break;
說明:
-L <load>
在拒絕新的電話之前限制最大平均負載
代碼片段:
case 'M':
if ((sscanf(optarg, "%30d", &option_maxcalls) != 1) || (option_maxcalls < 0)) {
option_maxcalls = 0;
}
break;
說明:
-M <value>
限制電話的最大數量為指定的值
代碼片段:
case 'm':
ast_set_flag(&ast_options, AST_OPT_FLAG_MUTE);
break;
說明:
-m
屏蔽在控制台輸出
代碼片段:
case 'n':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_COLOR);
break;
說明: -n 關閉彩色輸出功能,比如:asterisk -n
代碼片段:
case 'p':
ast_set_flag(&ast_options, AST_OPT_FLAG_HIGH_PRIORITY);
break;
說明:
-p
作為偽實時線程運行
代碼片段:
case 'q':
ast_set_flag(&ast_options, AST_OPT_FLAG_QUIET);
break;
說明:
-q
安靜模式(抑制輸出)
代碼片段:
case 'R':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE | AST_OPT_FLAG_RECONNECT);
break;
說明:
-R
連接本機的asterisk服務器,斷開後會重新連接
代碼片段:
case 'r':
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK | AST_OPT_FLAG_REMOTE);
break;
說明:
-r
連接本機的asterisk服務器
代碼片段:
case 's':
remotesock = ast_strdupa(optarg);
break;
說明:
-s <socket-file>
通過socket連接到asterisk,和r參數一起使用時有效
代碼片段:
case 'T':
ast_set_flag(&ast_options, AST_OPT_FLAG_TIMESTAMP);
break;
說明:
-T
在CLI輸出中顯示時間
代碼片段:
case 't':
ast_set_flag(&ast_options, AST_OPT_FLAG_CACHE_RECORD_FILES);
break;
說明: -t Record soundfiles in /var/tmp and move them where they belong after they are done
代碼片段:
case 'U':
runuser = ast_strdupa(optarg);
break;
說明:
-U <user>
以用戶<user>方式運行
代碼片段:
case 'V':
show_version();
exit(0);
說明:
-V
顯示版本信息
代碼片段:
case 'v':
option_verbose++;
ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
break;
說明:
-v
多個v,顯示更多信息
代碼片段:
case 'W': /* White background */
ast_set_flag(&ast_options, AST_OPT_FLAG_LIGHT_BACKGROUND);
ast_clear_flag(&ast_options, AST_OPT_FLAG_FORCE_BLACK_BACKGROUND);
break;
說明:
-W
調整終端顏色
代碼片段:
case 'x':
ast_set_flag(&ast_options, AST_OPT_FLAG_EXEC | AST_OPT_FLAG_NO_COLOR);
xarg = ast_strdupa(optarg);
break;
說明:
-x <cmd>
執行CLI指令,和r參數一起使用,比如:asterisk -rx 'core show channels'