其实编译PjSip和生成example apk都比较快,但是在测试example apk时,碰到了问题。
我们的开发环境大多都是局域网,而sip如果要跨网段打电话,就需要sip服务器和stun服务器。
其实,如果我们的手机都在同一个网段的局域网,而且只是测试PjSip的功能,是没有必要使用sip服务器和stun服务器的。
下面说下,不需要sip服务器和stun服务器,只在局域网内测试PjSip功能。
1、打开pjsip-apps\src\swig\java\android\app\src\main\java\org\pjsip\pjsua2\app目录下的MyApp.java
注释掉 public void init(MyAppObserver obs, String app_dir, boolean own_worker_thread)接口中的
//ua_cfg.setStunServer(stun_servers); //局域网测试中,不需要设置stun服务器。
//不需要TCP和TLS transport连接,特别是TLS,在apk运行是报错,TCP可以参考保留// try { // ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TCP, // sipTpConfig); // } catch (Exception e) { // System.out.println(e); // } // try { // sipTpConfig.setPort(SIP_PORT+1); // ep.transportCreate(pjsip_transport_type_e.PJSIP_TRANSPORT_TLS, // sipTpConfig); // } catch (Exception e) { // System.out.println(e); // }
2、设置sip账号
设置Pjsip中自己的sip账号地址:sip:IP地址,如:sip:192.168.1.100
3、增加一个联系人,联系人设置成:sip:IP地址:6000,如果:sip:192.168.1.100:6000
6000是端口号,example指定了端口号为6000.
4、拨打
A、B在同一个网段的局域网中。
A的ID设置成sip:192.168.1.100,增加一个联系人B,B的地址设置成:sip:192.168.1.106:6000
B的ID设置成sip:192.168.1.106,增加一个联系人A,A的地址设置成:sip:192.168.1.100:6000
可以A拨打B或者B拨打A。
跨网段打电话测试。
1、需要搭建自己的公网sip服务器
2、需要搭建自己的stun服务器或者使用公网的stun服务器,我测试的比较好的服务器是:stun.ideasip.com
3、设置自己的ID:sip:电话@IP地址,如:sip:101@192.168.1.1
4、设置注册服务器地址registrar:sip:192.168.1.1
5、设置用户名和密码

本文主要介绍如何在没有sip服务器和stun服务器的情况下,在局域网内部署并测试PjSip的example apk。针对开发者遇到的问题,提供了详细步骤,包括修改MyApp.java文件以实现本地测试。
767

被折叠的 条评论
为什么被折叠?



