The sip registration fails sometime via aiosip.auth.py.
The aiosip/auth.py computes the response correctly when the qop directive value is not specified.
It should also include the scenario that the qop directive value is present. The response is calculated differently based on qop directive value.
For example, if the qop directive value is not present,
response=MD5(HA1:nonce:HA2)
If the qop is "auth" or "auth-int",
response=MD5(HA1:nonce:nonceCount:cnonce:qop:HA2)
Please refer the link [details](https://en.wikipedia.org/wiki/Digest_access_authentication.
@classmethod
def from_authenticate_header(cls, authenticate, method, uri, username, password):
if authenticate.startswith('Digest'):
params = {
'username': username,
'uri': uri
}
The sip registration fails sometime via aiosip.auth.py.
The aiosip/auth.py computes the response correctly when the qop directive value is not specified. It should also include the scenario that the qop directive value is present. The response is calculated differently based on qop directive value.
For example, if the qop directive value is not present, response=MD5(HA1:nonce:HA2) If the qop is "auth" or "auth-int", response=MD5(HA1:nonce:nonceCount:cnonce:qop:HA2) Please refer the link [details](https://en.wikipedia.org/wiki/Digest_access_authentication.