csipsimple学习笔记

43 篇文章 3 订阅
17 篇文章 2 订阅

1、注册流程:

涉及函数见下表。调用顺序自上而下。

 

函数名

所在文件

功能

addAccountPjSipService.java 
acc_addpjsua.java 
Java_org_pjsip_pjsua_pjsuaJNI_acc_1addpjsua_wrap.cpp 
pjsua_acc_addpjsua_acc.c 
pjsua_acc_set_registrationpjsua_acc.c 
pjsip_regc_registersip_reg.c构造sip注册消息
pjsip_regc_sendsip_reg.c发送sip注册消息
pjsip_endpt_send_requestsip_util_statefull.c发送sip注册消息

 

2、回调函数映射流程:

pjsip 是通过调用 C 层 pjsua_config 结构体中的 cb 成员来实现回调。下表以 cb 中的 on_call_state 回调函数为例说明映射流程。调用顺序自下而上。

 

函数名

所在文件

所属类或结构体

cb.on_call_statepjsua.hpjsua_config
on_call_state_wrapperpjsua_wrap.cppwrapper_callback_struct
on_call_statepjsua_wrap.cppSwigDirector_Callback
on_call_stateUAStateReceiver.javaUAStateReceiver

将 cb 指向 wrapper_callback_struct 是在 Java_org_pjsip_pjsua_pjsuaJNI_pjsua_1config_1cb_1set 中完成的,具体执行代码为:

if (arg1) (arg1)->cb = *arg2;

JNI 映射 java 方法是在 Java_org_pjsip_pjsua_pjsuaJNI_swig_1module_1init 中完成的,具体执行代码为:

Swig::director_methids[i] = jenv->GetStaticMethodID(jcls, methods[i].method, methods[i].signature);


3、声音采集和播放

 

功能实现函数所在文件调用函数
注册pjmedia_aud_register_factorypjsua_jni_addons.ccsipsimple_init
初始化android_create_streamandroid_jni_dev.cpp 
声音采集AndroidRecorderCallbackandroid_jni_dev.cppstrm_start
声音播放AndroidTrackCallbackandroid_jni_dev.cppstrm_start

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值