将Android SIP连接到OfficeSip服务器

时间:2015-07-23 11:49:52

标签: android sip

我正在开发一个Android SIP客户端。我想针对OfficeSip服务器进行测试。所以我在本地设置了officeSip服务器,我可以通过officeSIP messenger(客户端)连接到它。

信使需要此数据登录:

  • 列表项
  • addr:username @ server_domain
  • 用户名:用户名
  • 密码:密码
  • protocol:protocol
  • 服务器地址:服务器地址

然而,当尝试在Android中执行相同操作时,其SipProfile.Builder的参数有点不同。值得注意的是:

public SipProfile.Builder (String username, String serverDomain)
public SipProfile.Builder setOutboundProxy (String outboundProxy)

似乎没有可用的服务器地址。

我为serverDomain参数尝试了以下内容:

  • 用户@ server_domain / SERVER_IP
  • server_domain / SERVER_IP
  • server_domain @ SERVER_IP
  • 许多其他组合

但是,我要么连接错误(当使用@时)或注册失败事件(在/之后/与服务器IP一起使用时)。错误代码是-4(当设备上发生某些错误时,可能是由于错误)首先,紧接着是-9(客户端处于事务中,无法启动新的)

如何使用Android SIP客户端连接到OfficeSIP?

修改 我设法与使用自定义SIP堆栈的CSipSimpleClient建立通信。它只需要服务器名称(等于服务器的域名),用户名和密码。

3 个答案:

答案 0 :(得分:0)

我不确定..但是'@'和'/'是不允许的,SipProfile.Builder会创建一个URI,例如“username @ serverDomain(或ip)”,带有username和serverDomain参数。 试着像这样设置..(“user1”,“test.com”),(“user1”,“1.1.1.1”)。

API描述说“SIP服务器域;如果网络地址与域不同,请使用setOutboundProxy(String)设置服务器地址”关于serverDomain。

答案 1 :(得分:0)

事实证明,Android SIP堆栈非常不成熟且很有吸引力。

最终我能够通过指定服务器主机名和服务器代理来连接。 此外,如果服务器域与运行的计算机名称服务器不同,则会出现连接问题。域必须匹配IP地址或计算机名称,但它们必须匹配才能通过Android SIP客户端进行连接。

答案 2 :(得分:0)

我已成功使用android SIP API连接到OfficeSIP。

  1. 下载SipDemo here
  2. 在WalkieTalkieActivity.java中,我修改了以下代码:

    SipProfile.Builder builder = new SipProfile.Builder(" test"," officesip.local");

    builder.setPassword("测试&#34);

    builder.setOutboundProxy(" 192.168.10.191&#34);

    builder.setAutoRegistration(真);

    me = builder.build();

  3. 在OfficeSIP测试中,用户也使用密码进行测试。出站代理是托管OfficeSIP的计算机或服务器的IP,officesip.local是SIP域名,可以在Office设备选项卡的OfficeSIP中找到。

  4. 为了测试这个,我在OfficeSIP上创建了第二个帐户,并使用Sipdroid登录该帐户。从那里我打电话给第二部手机上运行的SipDemo应用程序,它工作正常。