基于linphone android sdk 的voip语音、视频通话 教程一、注册

工作笔记:linphone-sip视频通话使用说明 linphone-sip通话使用说明 aar版本:liblinphone-sdk-v4.aar 官方Demo:Files · master · BC / public / linphone-android · GitLab: 注:记得把资源文件一起拷贝进去 运行效果 添加依赖 repositories { flatDir { dirs 'libs' // aar用到 } } dependencies { api fileTree(dir: 'libs', inc 阅读详情
AI摘要

本文详细介绍了如何使用Liblinphone SDK在安卓环境下进行VoIP应用开发,包括下载SDK、配置环境、实现注册功能等关键步骤,适合初学者快速上手。

 

最新的sdk4教程地址  liblinphone-android-sdk-4.0.1.zip 安卓的使用方法_Java_lilin的专栏-优快云博客

linphone桌面版教程 linphone win32 SDK在桌面运用(Qt5、C#等)使用教程_Java_lilin的专栏-优快云博客

PJSIP 2.8 android  PJSIP 2.8 android 8 pjsua2编译、运行教程_Java_lilin的专栏-优快云博客

 

 

1.介绍

liblinphone官网除了提供了完整的源码下载外,还提供了liblinphone-android-sdk 的下载。由于源码复杂、难编译。。。,但你可以使用sdk开发。官网及网上的使用教程很少,所以我把他写出来 在之前需准备一台sip服务器  我用的freeswitch  

2.下载

sdk 下载地址http://www.linphone.org/technical-corner/liblinphone/downloads (Liblinphone | Linphone) 

下载安卓的sdk 就行了  不是下载源码大概15m左右吧

3. 解压拿到liblinphone-sdk.aar  由于是aar的 哎 。。这个是一个android studio的程序 如果你的开发平台是这个  你可以导入lib 引用就ok  由于下载了个是最新的可以创建安卓8的 创建低版本的有各种蛋疼的问题所以放弃改用eclipse  非eclipse 可以跳过这段到4( 本文基于android5.1使用的 官网https://wiki.linphone.org/xwiki/wiki/public/view/Lib/Gettin提供了aar的使用)

  • 修改aar为zip
  •  解压到和到时候安卓工程同目录下
  • 把classes.jar和jni目录下的所有文件考到libs下
  • 删除jni目录
  • 创建project.properties 写入
  •        target=android-22
  •        android.library=true
  • 最后将工程导入eclipse
  • ok

4.创建android工程

这里创建一个android 5.1的项目

在引进sdk

出现红色的?那就是sdk和项目没在一个目录  eclipse bug

官网写了一个简单的使用说明

How to use the SDK

There is a documentation (javadoc)  of the methods wrapped above the linphone C layer to be used in your Android application available.

You can also download the source code of Linphone Android (see the Source Code part of this page) and take a look either at the LinphoneMini project in the sample/ folder or at the tutorials in the submodules/linphone/coreapi/help/java/org/linphone/core/tutorials/ folder.

看来还是要下载下源码(下载麻烦的可以到这里下载https://download.youkuaiyun.com/download/java_lilin/10452836 主要是不成功git  )

找这两个文件夹 sample/    submodules/linphone/coreapi/help/java/org/linphone/core/tutorials/  

把sample里面的res、xml的权限、src下的LinphoneMiniUtils.java  LinphoneMiniManager.java考到新建的工程

权限新增 <!--电池权限-->
     <uses-permission android:name="android.permission.WAKE_LOCK"/> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在LinphoneMiniActivity.java里面的以下代码考到自己的activity里面

private LinphoneMiniManager mManager; 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); 

mManager = new LinphoneMiniManager(this);

} 

....................................

protected void onDestroy() {
mManager.destroy(); 
super.onDestroy();

}

此时LinphoneMiniManager.java 出现报错

一个是没这个方法多了个@Override  另外是一个是少了一个string的参数  会java的都能改

最后在实现下没有实现的方法就不会有错了

ok  环境已经准备好了

5、开始注册  注册的时候就简单点击一个按钮 输出 注册成功

我们在activity_main.xml 里面添加

<TextView
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:id="@+id/id_text_status"
        android:textSize="20dip"

        android:text="注册状态" />

  <Button
           android:layout_marginTop="20dip"
           android:id="@+id/id_btn_reg"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"

           android:text="注册" />

设置点击

  ((Button)this.findViewById(R.id.id_btn_reg)).setOnClickListener(this);

点击方法  (里面的就是sip地址、密码 、端口 )

String sipAddress="sip:1001@192.168.0.165",password="12345"   

mManager.lilin_reg(sipAddress, password,"5060"); 

在LinphoneMiniManager.java添加

public void lilin_reg(String sipAddress,String password,String port) throws LinphoneCoreException{

LinphoneAddress address = lcFactory.createLinphoneAddress(sipAddress);
String username = address.getUserName();

String domain = address.getDomain(); 

LinphoneProxyConfig[] proxyConfigList = mLinphoneCore.getProxyConfigList();
for (LinphoneProxyConfig linphoneProxyConfig : proxyConfigList) {
mLinphoneCore.removeProxyConfig( linphoneProxyConfig);
}//删除原来的  

mLinphoneCore.addAuthInfo(lcFactory.createAuthInfo(username, password, null, domain+":"+port)); 
// create proxy config
LinphoneProxyConfig proxyCfg = mLinphoneCore.createProxyConfig(sipAddress, domain+":"+port, null, true);
proxyCfg.enablePublish(true);
proxyCfg.setExpires(2000);
mLinphoneCore.addProxyConfig(proxyCfg); // add it to linphone

mLinphoneCore.setDefaultProxyConfig(proxyCfg);//注册一次就好了  下次启动就不用注册

}

再到方法添加注册输出

@Override
public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg,
RegistrationState cstate, String smessage) {

Log.e("lilin Registration state: " + cstate + "(" + smessage + ")");

}

启动安卓测试点击按钮输出  lilin Registration state: xx(registered successfully)表示注册成功了 

未完待续  更多到博客列表

如果觉得下面的麻烦可以直接到https://item.taobao.com/item.htm?id=587133228080获取源码。源码功能性更好、更完善。

 视频教程yuexiajiayan的个人空间-yuexiajiayan个人主页-哔哩哔哩视频

基于Linphone android sdk开发Android软话机 1.1 简介LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话(VOIP)系统,其主要如下。使用linphone,开发者可以在互联网上随意的通信,包括语音、视频、即时文本消息。linphone使用SIP协议,是一个标准的开源网络电话系统,能将linphone与任何基于SIP的VoIP运营商连接起来,包括我们自己开发的免费的基于SIP的Audio/Video服务器。LinPhone是一款自由软件(或者开源软件),你可以随意的下载和在LinPhone的基础上二次开发。 阅读详情

相关推荐

ubuntu - 编译 linphone-sdk

业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置。

感觉不怎么会的博客 1805

Linphone的简单使用

输入SIP账号、SIP密码、SIP域名:端口即可,进去就是一个拨号界面,键入要呼叫的好分机号,对方接通后就可以通话了,同时有视频的话视频也会同步显示出来。使用的软电话是一个叫做Linphone的软件,首先拿到的是一个安装版的,感觉用不了几次,就没有安装,后来看到还有一个用QT编写的绿色版,就使用了该版本。安装H264编码有遇到问题了,总是提示下载不成功,可以找我要openh264.dll,放到plugins目录下就可以了。点击“好”,即可看到分机在注册,注册成功后,左上角现在绿色状态。

linuxghs的专栏 9850

安卓SIP话机客户端开发实战:基于Linphone SDK的汉化与功能简化

本文详细介绍了基于Linphone SDK开发安卓SIP话机客户端的实战经验,重点讲解SDK的汉化与功能简化。通过本地化适配、核心功能定制和性能优化,打造符合中文用户习惯的轻量级VOIP解决方案,提升企业通信效率。

weixin_30632089的博客 407

Linphone的相关入门

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_32384553的博客 5157

告别sipdroid!用Linphone SDK 5.1.0在Android上打造稳定SIP客户端(附完整代码与避坑指南)

本文详细介绍了如何利用Linphone SDK 5.1.0在Android平台上构建稳定高效的SIP客户端,替代传统的sipdroid方案。内容涵盖环境配置、核心功能实现、性能优化及企业级功能扩展,提供完整代码示例和避坑指南,帮助开发者快速打造生产可用的VoIP通信应用。

weixin_33721344的博客 437

Android端集成Linphone SDK:从零构建稳定SIP音视频通话应用

本文详细介绍了如何在Android端集成Linphone SDK,从零构建稳定的SIP音视频通话应用。内容涵盖环境配置、SDK集成、核心功能实现(如账号注册、音视频通话)、常见问题解决方案及性能优化建议,帮助开发者快速掌握Linphone SDK在企业通讯等场景中的应用。

weixin_30919571的博客 531

freeswitch 使用sipjs 、jssip webrtc网页音视频通话

关于linphone手机端开发参考https://blog.youkuaiyun.com/Java_lilin/article/details/80539116 配置帮助群:261074724 sipjs 官网http://sipjs.com/ 参考官网说明 写法如下: <body> <div id="id_msg"></div> <input id...

Java_lilin的专栏 1万+

自编译Win32版LinPhone SDK 4.4.28开发工具包

LinPhone SDK 不只是一个 VoIP 库,它体现了一种分层解耦、事件驱动、资源自治的系统设计思想。掌握它,不只是学会几行 API 调用,而是理解:如何用状态机管理复杂流程?如何在异步环境中保证线程安全?如何平衡性能、兼容性与用户体验?如何将不稳定因素(网络、硬件)封装成可控模块?

weixin_42186015的博客 545

基于linphone android sdk 的voip语音、视频通话 教程三、视频通话

如果觉得下面的麻烦可以直接到https://item.taobao.com/item.htm?id=587133228080获取源码。源码功能性更好、更完善。 想测试apk请加群261074724 最新的sdk4教程地址https://blog.youkuaiyun.com/Java_lilin/article/details/84842314 前面两篇介绍了注册、拨打、接听等 参考地址htt...

Java_lilin的专栏 4770

Android开源VoIP工程linphone-android源码解析与二次开发实战

VoIP(Voice over IP)是一种基于IP网络的语音通信技术,其核心原理是将模拟语音信号数字化后,通过RTP/RTCP协议在IP网络上实时传输。在Android平台上实现VoIP通话,需要解决SIP信令交互、音视频采集编解码、后台保活等一系列工程问题。linphone-android作为一款成熟的开源VoIP工程,完整实现了从账号注册、呼叫建立到媒体传输的全链路,是学习Android音视频通信和SIP协议栈的优质范本。对于需要快速嵌入通话能力的团队,基于linphone-android进行二次开发

weixin_29188043的博客 300

linphone-android 源码编译与 SIP 视频通话实战指南

SIP 协议是 VoIP 与视频通话的核心信令标准,通过 INVITE、200 OK、ACK 等消息完成会话建立与媒体协商。在 Android 平台上,linphone 作为成熟开源客户端,封装了 SIP 信令、RTP 传输及音视频编解码协商等底层协议栈,使开发者无需从零实现即可快速构建通话功能。其技术价值在于提供可二次开发的完整工程,适用于企业内网通信、呼叫中心终端适配及自动化通话测试等场景。linphone-android-master.zip 正是这一框架的 Android 端源码包,解压后可直接编译

weixin_29195217的博客 207

基于linphone android sdk 的voip语音、视频通话 教程二、sip语音拨打、接听

如果觉得下面的麻烦可以直接到https://item.taobao.com/item.htm?id=587133228080获取源码。源码功能性更好、更完善。 想测试apk请加群261074724  最新的sdk4教程地址  https://blog.youkuaiyun.com/Java_lilin/article/details/84842314 在前一篇我写了关于sip注册的 可以参考http...

Java_lilin的专栏 5321

linphone-android源码编译与SIP定制开发实战指南

SIP(Session Initiation Protocol)是一种广泛应用于VoIP通信的核心信令协议,其原理基于文本化请求-响应模型,支持用户注册、会话建立与媒体协商。技术价值在于开放标准、可扩展性强及跨平台兼容性,适用于企业软电话、远程教育、智能硬件语音交互等场景。本文围绕 linphone-android-master.zip 这一关键开源工程包展开,深入解析其作为 Android 平台可定制 SIP 客户端源码的本质特征,并结合 NDK 构建适配、编解码裁剪、信令调试等真实工程问题,提供从环境搭

weixin_27014595的博客 291

Android 使用Linphone SDK开发SIP客户端

有了解过互联网电话服务或IM(即时消息)功能的.一般都会接触到VOIP和SIP, 实现即时通讯, 发文本消息也好话音通话也好, 甚至于视频通话.关于SIP(Session Initiation Protocol,会话初始协议)VoIP是一个广义术语,可用于描述任何互联网电话服务,从低成本的住宅服务到企业统一通信工具的复杂实现。VoIP是一个可以用来描述任何基于Internet的电话服务的术语,而SIP是一种用于大多数类型VoIP部署的通信协议. Android 使用Linphone SDK 开发SIP

ansondroider的博客 7485

linphone-android 源码解析:SIP 软电话客户端开发与避坑指南

SIP 协议是 VoIP 实时音视频通话的核心信令标准,通过 REGISTER、INVITE 等消息实现账号注册与呼叫建立。在 Android 端集成 SIP 能力通常需要处理协议栈、音频焦点、回声消除和编解码协商等复杂链路,开发成本较高。linphone-android 作为一套成熟的 SIP 软电话客户端源码,覆盖注册、呼叫、通话控制、即时消息等完整 VoIP 功能,并基于 linphone SDK 通过 JNI 调用 native 层实现音视频处理。它适用于快速为 App 添加通话能力、研究 Andr

weixin_29169899的博客 206

linphone安装使用说明

linphone安装使用说明,通过图文的方式进行设置配置。

Linphone Android 6.2.0:开源VOIP通信框架的架构演进与技术突破

Linphone Android 6.2.0版本作为开源VOIP(Voice over IP)通信解决方案的最新迭代,不仅延续了其在SIP协议实现上的技术优势,更通过架构层面的深度优化,为全球开发者提供了一个稳定、高效且高度可定制的通信基础框架。这款基于Android平台的软电话应用,通过完整的SIP协议栈支持,实现了语音、视频通话及即时消息功能,成为企业级通信和个人隐私保护通信的首选开源方案。

gitblog_00019的博客 92

MAPPO实战:从理论到代码的协作智能体训练指南

本文详细介绍了MAPPO算法在多智能体协作训练中的实战应用,从理论基础到代码实现全面解析。通过对比PPO与MAPPO的差异,深入讲解CTDE框架、网络架构设计、参数调优等关键环节,并提供实际项目中的调参经验和常见问题解决方案,帮助开发者快速掌握这一强化学习前沿技术。

weixin_42561040的博客 263
上一篇: PJSIP 2.8 android 8 pjsua2编译、运行教程
下一篇: liblinphone-android-sdk-4.0.1.zip 安卓的使用方法
java_lilin
博客等级 码龄14年 364粉丝 124原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值