• ICS SIP Call移植


    最近在移植ICS的sip call。现把移植经历分享一下。
    sip call拨打电话过程跟正常拨打电话过程没什么两样。但是sip call需要有WiFi的支持。并且有sip server可以提供账户。
    SipSettings.java是sip call的通话设置。ICS已经做好。只需要开启WiFi,可以添加账户。并可以选择允许接听电话否?

    接下来,你就可以拨打电话了。下面说说拨打电话的过程。

    1.首先,要打开sip call的权限。可以在.*.mk文件中。添加

     PRODUCT_COPY_FILES += \ 
     frameworks/base/data/etc/android.software.sip.xml:$(PRODUCT_OUT)/system/etc/permissions/android.software.sip.xml \
     frameworks/base/data/etc/android.software.sip.voip.xml:$(PRODUCT_OUT)/system/etc/permissions/android.software.sip.voip.xml

    2.在DialpadFragment.java中。可以设置一个sip的拨号键。
     ->dialButtonPressed(),设置一个intent = new Intent(Intent.ACTION_CALL_PRIVILEGED,
                                Uri.fromParts("sip", number, null));
    3.其他过程同ICS打电话过程一样,请参考我之前的ICS来电话,打电话过程。此处不再赘述。需要注意的是。在SipCallOptionHandler.java中createSipPhoneIfNeeded()会创建并注册sip phone。如何没有创建,需要检查PhoneApp.java中是否需要创建。
    如果没有意外,那么恭喜你,sip call已经可以拨打通话了。


    接听电话过程。
    首先需要在sip setting中,将允许接听电话的选项勾选上。
    1,在SipBroadcastReceiver.java中。onReceive()中当勾选允许接听以后,action.equals(SipManager.ACTION_SIP_ADD_PHONE)会创建并注册一个sip phone.
    2.当电话来之后,会收到ACTION_SIP_INCOMING_CALL广播。调用
     ->takeCall()
    3.SipPhone.java
     ->canTake()
     如果没有意外,恭喜你。sip可以接听电话了。
  • 相关阅读:
    shell脚本学习
    docker容器的安装与使用
    admin源码分析
    ajax提交文件,django测试脚本环境书写,froms组件,钩子函数
    javascript语法 1.运算符 2. 流程控制 3. 函数 4. 四种变量 5. 数据类型的运用 6. js页面交互
    from提交数据,高级选择器,伪类选择器,前端样式等
    前端HTML介绍,标签介绍,基础选择器,CSS引入方法
    数据库知识总结
    day46
    day45
  • 原文地址:https://www.cnblogs.com/chengliu/p/3636415.html
Copyright © 2020-2023  润新知