学习一个程序,最希望的就是有个demo,通过demo的API调用逻辑,跟踪程序的执行过程,了解里面的设计。
Pjsip一个最简单的示例就是simple_pjsua.c,位于:pjsip_apps/src/samples目录下。不到200行的代码。却演示了pjsip初始化到拨打电话和挂点电话的API调用逻辑。
主要的逻辑在main函数中:
pjsua接口使用时,需要创建、初始化、开始和销毁的操作:pjsua_create、pjsua_init、pjsua_start、pjsua_destroy
pjsua_transport_create创建sip信令发送和接收需要的相关socket等资源
pjsua_acc_add添加拨打电话账号,账号类似于我们的手机号码,可以起到定位的功能。
拨打电话的挂断电话:pjsua_call_make_call,pjsua_call_hangup_all
·
main函数代码如下:
/*
* main()
*
* argv[1] may contain URL to call.
*/
int main(int argc, char *argv[])
{
pjsua_acc_id acc_id;
pj_status_t status;
/* Create pjsua first! */
status = pjsua_create();
if (status != PJ_SUCCESS) error_exit("Error in pjsua_create()", status);