Linphone用户注册

前言

Linphone的用户注册包含3个部分 
1. 用户创建 
2. 用户修改 
3. 服务器注册

1. 用户创建

在Linphone示例程序中,当我们第一次运行的时候,软件会直接跳转到一个创建用户界面,接着通过输入ID、name、密码、服务器地址可以创建一个用户。 
实际这个界面说做的业务,主要通过AssistantActivity.java 的public void saveCreatedAccount(String username, String password, String displayName, String domain, TransportType transport)方法实现。 
当我们需要淡化创建用户的过程时,比如说用户ID由管理员设置,其它人都不能更改。此时在初始化时我们这样调用该函数就可达到自动创建用户的功能。 
在LinphoneActivity.java的onCreate方法中添加如下代码即可自动生成一个用户:

int nbAccounts = LinphonePreferences.instance().getAccountCount();
debug.i("nbAccounts = "+nbAccounts);
if(nbAccounts <= 0){saveCreatedAccount("1001", "1234", "192.168.1.33");
}

使用refreshRegisters();方法使Linphone自动向服务器发起注册

自动创建用户,并且向服务器注册的整体流程如下:

int nbAccounts = LinphonePreferences.instance().getAccountCount();
debug.i("nbAccounts = "+nbAccounts);
if(nbAccounts <= 0){saveCreatedAccount("1001", "1234", "192.168.1.33");
}
LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
nbAccounts = LinphonePreferences.instance().getAccountCount();
debug.i("nbAccounts = "+nbAccounts);
if(nbAccounts > 0)
{debug.i("lc.refreshRegisters()");   int accountIndex = 0;LinphonePreferences.instance().setDefaultAccount(accountIndex);         debug.i("accountPosition = "+0);lc.setDefaultProxyConfig((LinphoneProxyConfig) LinphoneManager.getLc().getProxyConfigList()[0]);if (lc.isNetworkReachable()) {lc.refreshRegisters();}
}

2. 用户修改

用户注册后,有些参数需要修改,一般如下所示: 
1. 修改网络传输方式:TCP、UDP、TLS 
2. 修改用户名 
3. 修改显示名称 
4. 修改ID号码 
5. 修改密码 
6. 修改域名 
7. 修改代理

可以通过如下方法修改上述参数,列举部分

LinphonePreferences mPrefs = LinphonePreferences.instance();
//修改用户名
mPrefs.setAccountUsername(0, "1002");
//修改ID号码
mPrefs.setAccountUserId(0, "1002");     //pref_transport_udp_key 使用udp
//pref_transport_tcp_key 使用tcp
//pref_transport_tls_key 使用tls
mPrefs.setAccountTransport(0,"pref_transport_tcp_key");

修改用户属性,并向服务器发起注册:

LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull();
LinphonePreferences mPrefs = LinphonePreferences.instance();
int nbAccounts = LinphonePreferences.instance().getAccountCount();
debug.i("nbAccounts = "+nbAccounts);
if(nbAccounts > 0){                     mPrefs.setAccountUsername(0, callNumberMyself);mPrefs.setAccountUserId(0, callNumberMyself);           mPrefs.setAccountTransport(0,"pref_transport_tcp_key");debug.i("change now account params");
}
else{saveCreatedAccount(callNumberMyself, "1234", "192.168.1.33");
}
nbAccounts = LinphonePreferences.instance().getAccountCount();
debug.i("nbAccounts = "+nbAccounts);
if(nbAccounts > 0)
{debug.i("lc.refreshRegisters()");   int accountIndex = 0;LinphonePreferences.instance().setDefaultAccount(accountIndex);         debug.i("accountPosition = "+0);lc.setDefaultProxyConfig((LinphoneProxyConfig) LinphoneManager.getLc().getProxyConfigList()[0]);if (lc.isNetworkReachable()) {lc.refreshRegisters();}
}

智能会议系统(17)--- Linphone用户注册相关推荐

  1. AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之二、会中智能

    AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...

  2. AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之一、会前智能

    AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...

  3. AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之总篇

    AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...

  4. AIBlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之四、数据挖掘

    AI&BlockChain:"知名博主独家讲授"人工智能创新应用竞赛[精选实战作品]之<基于计算机视觉.自然语言处理.区块链和爬虫技术的智能会议系统>软件系统案 ...

  5. 鲸会务一站式智能会议系统帮助主办方实现数字化会议管理

    在数字时代对算力需求大幅增长的信创产业环境下,为更好地共筑信创产业生态圈,6月17日,以"智算新生态,五舟创未来"为主题的2022广电五舟信创生态赋能大会在广州盛大召开,鲸会务一站 ...

  6. 智能会议系统(24)---linphone的架构和初始化

    linphone 分析1 linphone的架构和初始化 1.linphone 包含的库 1 ReadLine 一个终端显示库, Linphone 会用到它时里面的事件循环机制来读取会话事件. 2 f ...

  7. 智能会议系统(25)---linphone代码分析

    linphone代码分析 最近在做linphone移植到hi3516d的工作,花了些时间弄懂了linphone和media2stream的运行过程,在这里分享出来,希望可以和大家一起探讨. 1.代码架 ...

  8. 智能会议系统(16)---Linphone配置大全

    Linphone配置大全 1. 自动接听电话: non_localizable_custom.xml <bool name="auto_answer_calls">fa ...

  9. 智能会议系统(14)---Linphone探索:1 . Linphone官方源码探究

    Linphone探索:1 . Linphone官方源码探究 项目地址:https://git.oschina.net/qin_xiao_yu/Linphone.git 1 . org.linphone ...

最新文章

  1. 给IIS添加CA证书以支持https
  2. 基于python的文件传输程序_7个步骤,教你快速学会用python实现ftp文件传输功能(收藏了)...
  3. mysql基本操作(重点)
  4. 《互联网运营智慧》十一月进展
  5. varchar 保存英文中文区别。
  6. 三、Python-列表
  7. mysql ignore-columns_坑 - 当insert ignore遇到not null
  8. 在 Mac 上如何将 Better Zip 设置为自动更新?
  9. nagios常见错误及页面错误
  10. 国内免费CMS系统大全
  11. @Qualifier注解 的理解和使用
  12. 含泪整理最优质立秋海报设计素材,你想要的这里都有
  13. 中国大学慕课公开课-《视听语言》-学习笔记-1
  14. 新兴五只羊床垫,仅次于五星级的睡眠体验!
  15. 元学习入门:MAML
  16. 4.6 定位解算和1PPS时标支持
  17. jquery如何根据id获取标签内的值,以及如何通过id赋值,各种标签赋值取值汇总
  18. 带你轻松认识SSL协议中的加密套件
  19. 如何树立正确的人生观、价值观、世界观?
  20. P5195 [USACO05DEC]Knights of Ni S

热门文章

  1. nginx 获取body参数_日志分析系列(外传二):Nginx日志统一化
  2. linux多线程学习(五)——信号量线程控制
  3. libevent源码深度剖析九
  4. clock_gettime系统调用详解
  5. 70打印位置调整_闵行公司做账发票打印不全该如何调整?
  6. 计算机基础与应用 是学什么,计算机基础与应用教学大纲
  7. ML、DL、CNN学习记录5
  8. Mysql优化之Order By/Group By
  9. Java的四种引用方式
  10. linux 挂载和网络命令