简易实现linphone的SIP电话功能
最近公司由于发展需要,希望能通过SIP通话的方式来替代传统的电话模式,先简单介绍一个SIP。SIP(Session Initiation Protocol,会话初始协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。它是一个基于文本的应用层控制协议,用于创建、修改和释放一个或多个参与者的会话。SIP 是一种源于互联网的IP 语音会话控制协议,具有灵活、易于实现、便于扩展等特点。
由于没有这方面的经验,在领导的推荐下,决定开始集成linphone到我们的项目里。开始也是万般艰辛,各种百度各种官网查资料,由于本地环境问题,官网下载的demo一直运行不了,然后在项目了引用也一直下载不成功,最后是通过maven仓库直接找到对应的linphoneSDK下载引用附上地址,再结合官网的demo成功的。先附上demo的截图:
公司是有现成的服务器的,所以我准备直接登陆可以实现了。
demo的主要流程就是注册
/*** 注册*/private void configureAccount() {// At least the 3 below values are requiredmAccountCreator.setUsername(mUsername.getText().toString());mAccountCreator.setDomain(mDomain.getText().toString());mAccountCreator.setPassword(mPassword.getText().toString());// By default it will be UDP if not set, but TLS is strongly recommendedswitch (mTransport.getCheckedRadioButtonId()) {case R.id.transport_udp:mAccountCreator.setTransport(TransportType.Udp);break;case R.id.transport_tcp:mAccountCreator.setTransport(TransportType.Tcp);break;case R.id.transport_tls:mAccountCreator.setTransport(TransportType.Tls);break;}// This will automatically create the proxy config and auth info and add them to the CoreProxyConfig cfg = mAccountCreator.createProxyConfig();// Make sure the newly created one is the default//注册到服务器LinphoneService.getCore().setDefaultProxyConfig(cfg);}
根据回调的信息查看结果
mCoreListener = new CoreListenerStub() {/*** 监听注册是否成功* @param core* @param cfg* @param state* @param message*/@Overridepublic void onRegistrationStateChanged(Core core, ProxyConfig cfg, RegistrationState state, String message) {if (state == RegistrationState.Ok) {finish();} else if (state == RegistrationState.Failed) {Toast.makeText(ConfigureAccountActivity.this, "Failure: " + message, Toast.LENGTH_LONG).show();}}};
拨打电话
/*** 拨打电话*/callButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Core core = LinphoneService.getCore();Address addressToCall = core.interpretUrl(mSipAddressToCall.getText().toString());CallParams params = core.createCallParams(null);Switch videoEnabled = findViewById(R.id.call_with_video);params.enableVideo(videoEnabled.isChecked());if (addressToCall != null) {core.inviteAddressWithParams(addressToCall, params);}}});
多的不说附上demo,大家自行下载把~
简易实现linphone的SIP电话功能相关推荐
- 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试
[网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...
- sip gw功能包括_道哥漫谈:大话有趣的SIP通信
图-1 电话通信 1.SIP是何物? SIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用.会话(Session)指两方或多方用户之间的语音.视频.及其他媒体形式的通信,具体可能 ...
- linux命令行sip电话,基于Linux和MiniGUI的SIP电话终端设计
0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...
- 商云通安装(一):电信搭建SIP电话环境
商云通灵活基础设施,即时可用 使用灵活SIP中继,在云端拨打和接听电话. 免费试用联系销售人员 SIP中继 助力业务 助力构建 功能 全球可扩展性与 云功能强强联合 借助商云通 SIP中继,只需几分钟 ...
- 嵌入式linux sip电话开发,基于嵌入式Linux和MiniGUI的SIP电话设计
0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...
- SIP电话(一)之程控交换机-FreeSWITCH的使用总结
最近由于项目需要一直在研究Sip电话,Sip电话是基于sip协议的实现voip即网络电话的的功能.那么问题来了?我们打电话都是使用某动,某通,某信的电话卡,这种电话卡是在全国范围内收费的gms卡,如果 ...
- linphone 自动接听电话
自动接听电话 strings.xml: <string name="pref_auto_answer">Auto answer incoming calls</s ...
- 语音通话-sip电话(一)
语音通话-sip电话(一)--概述 最近有接到一个需求,需要做个语音通话系统,因为本人之前是完全没有相关经验的,内心各种抗拒,可是也只能硬着头皮接了下来,于是开始各种搜索,得到的结果:1.某某公司语音 ...
- 【原创】开源基于STM32F429 SIP电话
本次分享内容: 开源STM32实现SIP电话,通过开发板连接到本地SIP服务器,然后 其它终端通过连接同一个服务器实现,开发板 到 PC/手机/板子进行语音通信的功能. 视频展示 https://ww ...
最新文章
- 单片机简单的计算器c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
- SAP RETAIL 事务代码MP38可以为多个物料执行预测
- OpenStack 虚拟机启动流程 UML 分析(内含 UML 源码)
- salesforce lightning零基础学习(一) lightning简单介绍以及org开启lightning
- Vista操作系统评估参考资料
- opencv 叠加文字_Hello world.
- pythonpip使用方法_Python: pip常见的使用方法
- 字符集不同导致的ORA-00972
- MFC中的问题记录 2012-2-20
- 7-Python3 注释
- 评委移动端WebApp打分注意事项
- 计算机鼠标滚轮不流畅,鼠标滚轮不灵敏怎么办_鼠标中间的滚轮不灵敏了如何解决...
- 用java编写国际象棋
- 企业用企业邮箱的好处是什么?企业邮箱支持哪些功能?
- react项目中使用消息订阅(subscribe)-发布(publish)机制
- Postgresql 之 数据库认证
- 快手网址 - KuaiShou.NET
- 学计算机的目标作文,计算机学习计划作文三篇
- Fiddler过滤器设置--屏蔽不需要分析的文件
- 刷题笔记(二) 操作系统任务调度问题
热门文章
- 马云最头疼的对手之一,中国电商第二,京东,究竟有何过人之处?
- 收割大厂offer需要具备的条件
- “NOSQL” 杂谈
- 计算机专业的三行情书,这是我们专业的三行情书,请查收
- 最新Java面试题(附答案)
- 加入Transients和Chunked Sequences的Clojure 1.1更加高效
- 如何将计算机中的文件添加到桌面,如何将日历添加至电脑桌面中
- 操作系统中断/异常-测试题
- matlab 日期转换成数字,日期转换为数字 命令行窗口输入datenu
- DOS下载入ISO镜像!