Android Linphone无法进行注册

时间:2015-09-05 11:59:35

标签: android linphone

我在Android应用程序中使用SIP,但我当前的库无法为我提供某些功能。所以我尝试使用android-linphone lib并获得一些困惑。我不明白如何使用此库在Asterisk上进行注册。  本机库加载

I/LinphoneCoreFactoryImpl﹕ Trying to load liblinphone for armeabi-v7a
I/LinphoneCoreFactoryImpl﹕ Loading done with armeabi-v7a
Has neon: true
Has ZRTP: true

我正在尝试在此页liblinphone-javadoc

上创建用户

在我的代码示例中     活动实施LinphoneCoreListener

LinphoneCoreListener linphoneCoreListener = this;

    try {
        mLinphoneCore = LinphoneCoreFactoryImpl.instance().createLinphoneCore(this, this);
        mLinphoneCore.setNetworkReachable(true);
    } catch (LinphoneCoreException e) {
        System.out.println("LinphoneCoreException  " + e.toString());
    }

    LinphoneProxyConfig proxy_cfg;
    LinphoneAuthInfo info;

    info = LinphoneCoreFactory.instance().createAuthInfo(mUserName, mUserName, mUserPass, null, null, mDomain); /*create authentication structure from identity*/
    mLinphoneCore.addAuthInfo(info); /*add authentication info to LinphoneCore*/

    /*create proxy config*/
    try {
        proxy_cfg = mLinphoneCore.createProxyConfig(mSipUser, mDomain, mDomain, true);
        proxy_cfg.setIdentity(mSipUser); /*set identity with user name and domain*/
        proxy_cfg.setProxy(mDomain); /* we assume domain = proxy server address*/
        proxy_cfg.enableRegister(true); /*activate registration for this proxy config*/
        mLinphoneCore.addProxyConfig(proxy_cfg); /*add proxy config to linphone core*/
        mLinphoneCore.setDefaultProxyConfig(proxy_cfg); /*set to default proxy*/
        mLinphoneCore.addListener(linphoneCoreListener);
        proxy_cfg.done();

        System.out.println("Proxy state is = " + proxy_cfg.getState());/*23838-23838/com.myapplication I/System.out﹕ Proxy state is = RegistrationNone*/
    } catch (LinphoneCoreException e) {
        System.out.println(e.toString());
    }

LinphoneCoreListener条消息

I/System.out﹕ globalState Starting up
I/System.out﹕ configuringStatus null
I/System.out﹕ displayStatus Ready
I/System.out﹕ globalState Ready

在文档中说configuringStatus message错误消息,如果state ==失败,但没有关于null

我非常乐意帮助这个图书馆。

1 个答案:

答案 0 :(得分:2)

配置完成后,您必须定期循环调用LinphoneCore.iterate()。这是主要的应用程序循环。例如,来自Linphone应用程序来源:

    mLc = LinphoneCoreFactory.instance().createLinphoneCore(...);

    TimerTask lTask = new TimerTask() {
        @Override
        public void run() {
            UIThreadDispatcher.dispatch(new Runnable() {
                @Override
                public void run() {
                    if (mLc != null) {
                        mLc.iterate();
                    }
                }
            });
        }
    };
    mTimer = new Timer("Linphone scheduler");
    mTimer.schedule(lTask, 0, 20);