linphone-sdk icon indicating copy to clipboard operation
linphone-sdk copied to clipboard

linphone not send header Authorization, ims - server

Open Turalllb opened this issue 11 months ago • 2 comments

First of all, please say "Hi" or "Hello", it doesn't cost much.

  1. Describe the bug (mandatory)

I compile the latest version of the library from github

  1. To Reproduce (mandatory)

When authorizing the login password, domain and proxy address, everything goes well, our server in this case returns the MD5 algorithm. But now I have a task to log in to the Ims server. I have an ims identifier, in this authorization method the password is set to null. That is, unlike the first authorization method, I change the domain, set the ims identifier as a login. I try to log in, but the Authorization header is not sent and the server returns a 403 error instead of the expected 401.

  1. Expected behavior (mandatory) waiting for this header to be sent: Authorization: Digest username="[email protected]",realm="ims.mnc099.mcc250.3gppnetwork.org",nonce="",uri="sip:ims.mnc099.mcc250.3gppnetwork.org",response="",algorithm=AKAv1-MD5,integrity-protected=no

  2. Please complete the following information (mandatory)

developing an application for one android from cellular operations, collecting the execution fee if everything works

  1. SDK logs (mandatory)
image image
  private fun login(
        username: String,
        password: String,
        domain: String,
        coreListener: CoreListener
    ) {
        val authInfo = factory.createAuthInfo(username, "$username@$domain", null, null, null, domain, "AKAv1-MD5")
        val accountParams = core.createAccountParams()

        // A SIP account is identified by an identity address that we can construct from the username and domain
        val identity = factory.createAddress("sip:$username@$domain")
        accountParams.identityAddress = identity

        // We also need to configure where the proxy server is located
        val address = factory.createAddress("sip:62.205.172.124")
        address?.transport = TransportType.Udp
        accountParams.serverAddress = address
        // And we ensure the account will start the registration process
        accountParams.isRegisterEnabled = true
        accountParams.isOutboundProxyEnabled = true

        // Now that our AccountParams is configured, we can create the Account object
        val account = core.createAccount(accountParams)


        // Now let's add our objects to the Core
        core.addAuthInfo(authInfo)
        core.addAccount(account)

        // Also set the newly added account as default
        core.defaultAccount = account

        core.addListener(coreListener)

        // Finally we need the Core to be started for the registration to happen (it could have been started before)
        core.start()
    }

I hope I have provided enough information.

Turalllb avatar Aug 07 '23 14:08 Turalllb

Hi @Viish, Do you know if liblinphone supports IMS-specific headers and methods? We are planning to implement an IMS SIP-compliant Android application.

alishir avatar Feb 19 '24 08:02 alishir

Hi @alishir,

I don't know what specific headers you are reffering to, but you should be able to find your answer on our website: https://linphone.org/technical-corner/liblinphone?qt-technical_corner=1#qt-technical_corner

Cheers,

Viish avatar Feb 19 '24 08:02 Viish