如何通过sip在android中发送短信

时间:2012-07-06 02:35:27

标签: java android eclipse voip

我正在android中开发一个应用程序,我希望使用sip / xmpp(会话启动协议)发送文本消息,任何人都可以为我提供代码以及任何关于它在任何免费sip提供程序上的开发和测试的指南。

1 个答案:

答案 0 :(得分:-1)

更新已重新阅读
对不起,我没有意识到这个问题只与短信有关。 SIP本身不支持短信,SIMPLE或MSRP扩展支持。你需要找到一个你喜欢使用的堆栈,这里有一个例子Doubango和他们的演示产品IMSDroid,但Google的“Android MSRP”还有很多其他选项。我仍然对XMPP一无所知,但请查看this thread以获取更好的库和用途列表 结束更新

到目前为止你尝试了什么?对于您的问题的SIP(语音)部分,这里是Android Developers site上的文档,您需要知道所有这些,这里是免费的SIP提供商:Getonsip

减少了代码示例,大部分来自Android开发者网站。

基本上,您需要确保将minSDK设置为9,因为直到2.3才添加SIP库。将服务添加到清单:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_SIP" />

如果您希望自己的应用无法在无法使用的设备上安装,请选择添加uses-feature voip指令。

<uses-feature android:name="android.hardware.sip.voip" />

创建一个SipManager:

android.net.sip.SipManager manager = SipManager.newInstance(this);

创建一个配置文件,通过您的提供商拨打/接听电话:

android.net.sip.SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword(password);
android.net.sip.SipProfile sipProfile = builder.build();

如果你关心的只是打电话:

manager.open(profile);

要拨打电话,您需要与听众合作:

SipAudioCall.Listener listener = new SipAudioCall.Listener() {

    @Override
    public void onCallEstablished(SipAudioCall call) {
        call.startAudio();
        call.setSpeakerMode(true);
        call.toggleMute();
        ...
    }

    @Override
    public void onCallEnded(SipAudioCall call) {
        // Do something.
    }
};

现在,只要您拥有对等方的SIP地址,就可以使用:

SipProfile friendProfile = ...;
manager.makeAudioCall(sipProfile.getUriString(), friendAddress, listener, 30);

这应该让你开始。不幸的是,我没有使用XMPP的经验。