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可以接听电话了。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值