[jitsi-dev] Re: please give me some suggestion about ICE/TURN problem


#1

Hong Nguyen, I'm forwarding your question to the dev mailing list bellow. Please do not contact me in private about ice4j development issues.

···

On 19.09.2012, at 06:38, hong [...] wrote:

Dear Emil,
I am a software developer in Vietnam, I am developing a sip client which communicate with microsoft lync. Now I am stuck in a problem with ICE/Turn problem. Via google, I found your ice4j project, please give me a hand if you can. The detail of problem as following:
- I want to connect to ms Turn server to get allocated port for peer to peer connection (call or send file):
    step1: I login to ms sip server, and get media relay (turn server) information like:
    <credentialsResponse credentialsRequestID="024681795">
    <credentials>
      <username>AgAAJGc4ffIBzZZYQpqlNWtJn4UTApFbQbiGl4wBpZgAAAAAWPJ5CVtabwGkM91qKHzqsxCzRGA=</username>
      <password>557dCzM9RqIqVzRD2yh4S5vtYU0=</password>
      <duration>480</duration>
    </credentials>
    <mediaRelayList>
      <mediaRelay>
        <location>intranet</location>
        <hostName>xxx.xxx.xxx</hostName> --> turn sever
        <udpPort>3478</udpPort>
        <tcpPort>443</tcpPort>
      </mediaRelay>
    </mediaRelayList>
  </credentialsResponse>
    step2: I create connection to turn server with 1st "allocate request" , server send information about none, real. Based on MS TURN specification, I created 2nd "allocate request" including HMAC information. But server return an error which said my HMAC was incorrect. I think some my inputs such as username, password was the problem in computing key: "key = MD5(username ":" realm ":" SASLprep(password))".
                username = Base64.decode(username string from step 1), is it right if you have experience wit ms lync?
                password = Base64.decode(password string from step 1)
                the method SASLprep, i have not found an opensource yet. I saw you mentioned this in org.ice4j.attribute.MessageIntegrityAttribute.java, but didn't see the implementation of SASLprep method.

Please give me advice how to find SALprep implementation.

Thank you so much.

Best Regards,
Hong Nguyen