zoukankan      html  css  js  c++  java
  • 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可以接听电话了。
  • 相关阅读:
    C/C++ 链接汇总
    C# 网页操作
    Win10屏幕开始菜单图标丢失修复方案无意中发现的...
    AI 人工智能
    GIT 命令
    Layui / WEB UI
    PHP DES解密 对应Java SHA1PRNG方式加密
    视频参数介绍及关系《转》
    分布式时系统/服务 数据一致性方案
    JS埋点 小结
  • 原文地址:https://www.cnblogs.com/chengliu/p/3636415.html
Copyright © 2011-2022 走看看