1 int main(int argc, char *argv[]) 2 { 3 do { 4 app_restart = PJ_FALSE; //PJ_FALSE是一个宏,一旦用户调用pjsua可执行文件进入该循环,那么默认只执行一次退出 5 //如果需要再次循环,那么在下面函数中会重置为PJ_TRUE 6 if (app_init(argc, argv) != PJ_SUCCESS)//如果用户在调用pjsua可执行文件时就配置了参数,那么将在app_init中初始化各种数据结构并用用户指定的参数赋值 7 return 1; 8 9 setup_signal_handler();//设置信号处理函数,如果是win32下开发需要设置,linux下该函数不做任何处理 10 11 app_main();//执行consold的处理,也就是处理用户指令的部分。 12 app_destroy();//销毁相关资源 13 14 /* This is on purpose */ 15 app_destroy(); 16 } while (app_restart); 17 18 return 0; 19 }
app_restart是一个pj_bool_t的类型,pj_bool_t在pjlib/include/pj/types.h中定义:
1 /** Boolean. */ 2 typedef int pj_bool_t;
app_restart是一个全局变量,在pjsip-apps/src/pjsua/pjsua_app.c中定义:
1 pj_bool_t app_restart;