我正在开发一个Android SIP客户端。我想针对OfficeSip服务器进行测试。所以我在本地设置了officeSip服务器,我可以通过officeSIP messenger(客户端)连接到它。
信使需要此数据登录:
然而,当尝试在Android中执行相同操作时,其SipProfile.Builder的参数有点不同。值得注意的是:
public SipProfile.Builder (String username, String serverDomain)
public SipProfile.Builder setOutboundProxy (String outboundProxy)
似乎没有可用的服务器地址。
我为serverDomain参数尝试了以下内容:
但是,我要么连接错误(当使用@时)或注册失败事件(在/之后/与服务器IP一起使用时)。错误代码是-4(当设备上发生某些错误时,可能是由于错误)首先,紧接着是-9(客户端处于事务中,无法启动新的)
如何使用Android SIP客户端连接到OfficeSIP?
修改 我设法与使用自定义SIP堆栈的CSipSimpleClient建立通信。它只需要服务器名称(等于服务器的域名),用户名和密码。
答案 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。
在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();
在OfficeSIP测试中,用户也使用密码进行测试。出站代理是托管OfficeSIP的计算机或服务器的IP,officesip.local是SIP域名,可以在Office设备选项卡的OfficeSIP中找到。