​​​​​​最近公司由于发展需要,希望能通过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电话功能相关推荐

  1. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  2. sip gw功能包括_道哥漫谈:大话有趣的SIP通信

    图-1 电话通信 1.SIP是何物? SIP(会话发起协议)属于IP应用层协议,用于在IP网上为用户提供会话应用.会话(Session)指两方或多方用户之间的语音.视频.及其他媒体形式的通信,具体可能 ...

  3. linux命令行sip电话,基于Linux和MiniGUI的SIP电话终端设计

    0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...

  4. 商云通安装(一):电信搭建SIP电话环境

    商云通灵活基础设施,即时可用 使用灵活SIP中继,在云端拨打和接听电话. 免费试用联系销售人员 SIP中继 助力业务 助力构建 功能 全球可扩展性与 云功能强强联合 借助商云通 SIP中继,只需几分钟 ...

  5. 嵌入式linux sip电话开发,基于嵌入式Linux和MiniGUI的SIP电话设计

    0 引言 随着VoIP的迅猛发展,越来越多的个人用户正在使用软件电话.IP电话通过VoIP系统拨打国内和国际长途,IP电话的需求量越来越大,同时,人们对IP电话的要求也越来越高,例如要求IP电话体积小 ...

  6. SIP电话(一)之程控交换机-FreeSWITCH的使用总结

    最近由于项目需要一直在研究Sip电话,Sip电话是基于sip协议的实现voip即网络电话的的功能.那么问题来了?我们打电话都是使用某动,某通,某信的电话卡,这种电话卡是在全国范围内收费的gms卡,如果 ...

  7. linphone 自动接听电话

    自动接听电话 strings.xml: <string name="pref_auto_answer">Auto answer incoming calls</s ...

  8. 语音通话-sip电话(一)

    语音通话-sip电话(一)--概述 最近有接到一个需求,需要做个语音通话系统,因为本人之前是完全没有相关经验的,内心各种抗拒,可是也只能硬着头皮接了下来,于是开始各种搜索,得到的结果:1.某某公司语音 ...

  9. 【原创】开源基于STM32F429 SIP电话

    本次分享内容: 开源STM32实现SIP电话,通过开发板连接到本地SIP服务器,然后 其它终端通过连接同一个服务器实现,开发板 到 PC/手机/板子进行语音通信的功能. 视频展示 https://ww ...

最新文章

  1. 单片机简单的计算器c语言程序,求一个 89C51 简易计算器的c语言程序 只要加减乘除就行!...
  2. SAP RETAIL 事务代码MP38可以为多个物料执行预测
  3. OpenStack 虚拟机启动流程 UML 分析(内含 UML 源码)
  4. salesforce lightning零基础学习(一) lightning简单介绍以及org开启lightning
  5. Vista操作系统评估参考资料
  6. opencv 叠加文字_Hello world.
  7. pythonpip使用方法_Python: pip常见的使用方法
  8. 字符集不同导致的ORA-00972
  9. MFC中的问题记录 2012-2-20
  10. 7-Python3 注释
  11. 评委移动端WebApp打分注意事项
  12. 计算机鼠标滚轮不流畅,鼠标滚轮不灵敏怎么办_鼠标中间的滚轮不灵敏了如何解决...
  13. 用java编写国际象棋
  14. 企业用企业邮箱的好处是什么?企业邮箱支持哪些功能?
  15. react项目中使用消息订阅(subscribe)-发布(publish)机制
  16. Postgresql 之 数据库认证
  17. 快手网址 - KuaiShou.NET
  18. 学计算机的目标作文,计算机学习计划作文三篇
  19. Fiddler过滤器设置--屏蔽不需要分析的文件
  20. 刷题笔记(二) 操作系统任务调度问题

热门文章

  1. 马云最头疼的对手之一,中国电商第二,京东,究竟有何过人之处?
  2. 收割大厂offer需要具备的条件
  3. “NOSQL” 杂谈
  4. 计算机专业的三行情书,这是我们专业的三行情书,请查收
  5. 最新Java面试题(附答案)
  6. 加入Transients和Chunked Sequences的Clojure 1.1更加高效
  7. 如何将计算机中的文件添加到桌面,如何将日历添加至电脑桌面中
  8. 操作系统中断/异常-测试题
  9. matlab 日期转换成数字,日期转换为数字 命令行窗口输入datenu
  10. DOS下载入ISO镜像!