2017-11-10 3 views
0

jssip으로 내 freePbx 서버에 연결할 수 있습니다. 하지만 등록은 별표 로그에서 잘못된 암호로 실패했습니다. 내 PjSip Extension에 대해 동일한 암호로 WebRtc 및 WebSocket 클라이언트를 연결하고 등록 할 수 없습니다.jssip 라이브러리, 잘못된 암호 오류로 내 별표 서버에 연결할 수 없습니다.

.net 라이브러리 Ozeki에서 동일한 사용자, 패스 등으로 작동하지만 nodejs 및 webRtc에서는 작동하지 않습니다.

에스테 리스크 로그 :

ERROR[24788]: res_http_websocket.c:506 ws_safe_read: Error readng from webScoket: Connection rest by peer. 
NOTICE[33279]: chan_sip.c28486 handle_request_register: Registeration from '<sip:[email protected]>' faild for 192.168.0.250:43751 - wrong password 

jssip의 conf :

var socket = new JsSIP.WebSocketInterface('ws://192.168.0.210:8089/ws'); 

var configuration = { 
    sockets   : [ socket ], 
    authorization_user: '170', 
    uri    : 'sip:[email protected]', 
    ws_servers  : 'ws://192.168.0.210:8089/ws', 
    password   : '856589', 
    realm    : '192.168.0.210', 
    display_name  : '170', 
    contact_uri  : 'sip:[email protected]' 
}; 

는 로그인 jssip :

[email protected]:~/LocalFiles/projects/jssip$ node ./index.js JsSIP version 3.0.21 +0ms jssip-node-websocket new() [url:"ws://192.168.0.210:8088/ws", options:undefined] +0ms 
    JsSIP:UA new() [configuration:{ sockets: [ NodeWebSocket { _url: 'ws://192.168.0.210:8088/ws', _options: {}, _sipUri: 'sip:192.168.0.210:8088;transport=ws', _viaTransport: 'WS', _ws: null } ], authorization_user: '170', uri: 'sip:[email protected]:5060', ws_servers: 'ws://192.168.0.210:8088/ws', password: '170170', realm: '192.168.0.210', display_name: '170', contact_uri: '[email protected]' }] +0ms 
    JsSIP:Transport new() +0ms 
    JsSIP:UA configuration parameters after validation: +15ms 
    JsSIP:UA - authorization_user: "170" +0ms 
    JsSIP:UA - password: NOT SHOWN +0ms 
    JsSIP:UA - realm: "192.168.0.210" +0ms 
    JsSIP:UA - ha1: NOT SHOWN +0ms 
    JsSIP:UA - display_name: "170" +0ms 
    JsSIP:UA - uri: sip:[email protected]:5060 +0ms 
    JsSIP:UA - contact_uri: {"_parameters":{},"_headers":{},"_scheme":"sip","_user":"170","_host":"192.168.0.210"} +0ms 
    JsSIP:UA - instance_id: "f3a58a94-b426-4a8d-8b15-9f7208a42f9b" +0ms 
    JsSIP:UA - use_preloaded_route: false +0ms 
    JsSIP:UA - session_timers: true +0ms 
    JsSIP:UA - no_answer_timeout: 60000 +0ms 
    JsSIP:UA - register: true +0ms 
    JsSIP:UA - register_expires: 600 +0ms 
    JsSIP:UA - registrar_server: sip:192.168.0.210:5060 +0ms 
    JsSIP:UA - connection_recovery_max_interval: null +0ms 
    JsSIP:UA - connection_recovery_min_interval: null +0ms 
    JsSIP:UA - via_host: "192.168.0.210" +0ms 
    JsSIP:UA start() +0ms 
    JsSIP:Transport connect() +1ms 
connecting 
    jssip-node-websocket connect() +18ms 
    jssip-node-websocket WebSocket connecting [url:"ws://192.168.0.210:8088/ws"] +0ms 
    jssip-node-websocket WebSocket open [url:"ws://192.168.0.210:8088/ws"] +18ms 
connected 
    JsSIP:Transport send() +22ms 
    JsSIP:Transport sending message: 
    JsSIP:Transport 
    JsSIP:Transport REGISTER sip:192.168.0.210:5060 SIP/2.0 
    JsSIP:Transport Via: SIP/2.0/WS 192.168.0.210;branch=z9hG4bK160956 
    JsSIP:Transport Max-Forwards: 69 
    JsSIP:Transport To: <sip:[email protected]:5060> 
    JsSIP:Transport From: "170" <sip:[email protected]:5060>;tag=s9bkng5emf 
    JsSIP:Transport Call-ID: 6ra4f68tegdmqllfoa7kja 
    JsSIP:Transport CSeq: 1 REGISTER 
    JsSIP:Transport Contact: <[email protected]>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:f3a58a94-b426-4a8d-8b15-9f7208a42f9b>";expires=600 
    JsSIP:Transport Expires: 600 
    JsSIP:Transport Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO 
    JsSIP:Transport Supported: path,gruu,outbound 
    JsSIP:Transport User-Agent: JsSIP 3.0.21 
    JsSIP:Transport Content-Length: 0 
    JsSIP:Transport 
    JsSIP:Transport 
    JsSIP:Transport +0ms 
    jssip-node-websocket send() +3ms 
    jssip-node-websocket WebSocket message received +3ms 
    JsSIP:Transport received text message: 
    JsSIP:Transport 
    JsSIP:Transport SIP/2.0 401 Unauthorized 
    JsSIP:Transport Via: SIP/2.0/WS 192.168.0.210;branch=z9hG4bK160956;received=192.168.0.3;rport=35832 
    JsSIP:Transport From: "170" <sip:[email protected]:5060>;tag=s9bkng5emf 
    JsSIP:Transport To: <sip:[email protected]:5060>;tag=as0f727a9b 
    JsSIP:Transport Call-ID: 6ra4f68tegdmqllfoa7kja 
    JsSIP:Transport CSeq: 1 REGISTER 
    JsSIP:Transport Server: FPBX-13.0.192.19(13.12.1) 
    JsSIP:Transport Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE 
    JsSIP:Transport Supported: replaces, timer 
    JsSIP:Transport WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="078cc3e4" 
    JsSIP:Transport Content-Length: 0 
    JsSIP:Transport 
    JsSIP:Transport 
    JsSIP:Transport +3ms 
    JsSIP:DigestAuthentication authenticate() | response generated +0ms 
    JsSIP:Transport send() +10ms 
    JsSIP:Transport sending message: 
    JsSIP:Transport 
    JsSIP:Transport REGISTER sip:192.168.0.210:5060 SIP/2.0 
    JsSIP:Transport Via: SIP/2.0/WS 192.168.0.210;branch=z9hG4bK4224730 
    JsSIP:Transport Max-Forwards: 69 
    JsSIP:Transport To: <sip:[email protected]:5060> 
    JsSIP:Transport From: "170" <sip:[email protected]:5060>;tag=s9bkng5emf 
    JsSIP:Transport Call-ID: 6ra4f68tegdmqllfoa7kja 
    JsSIP:Transport CSeq: 2 REGISTER 
    JsSIP:Transport Authorization: Digest algorithm=MD5, username="170", realm="asterisk", nonce="078cc3e4", uri="sip:192.168.0.210:5060", response="26576b92bf68c3d315d480b02d53783c" 
    JsSIP:Transport Contact: <[email protected]>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:f3a58a94-b426-4a8d-8b15-9f7208a42f9b>";expires=600 
    JsSIP:Transport Expires: 600 
    JsSIP:Transport Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO 
    JsSIP:Transport Supported: path,gruu,outbound 
    JsSIP:Transport User-Agent: JsSIP 3.0.21 
    JsSIP:Transport Content-Length: 0 
    JsSIP:Transport 
    JsSIP:Transport 
    JsSIP:Transport +0ms 
    jssip-node-websocket send() +11ms 
    jssip-node-websocket WebSocket message received +1ms 
    JsSIP:Transport received text message: 
    JsSIP:Transport 
    JsSIP:Transport SIP/2.0 403 Forbidden 
    JsSIP:Transport Via: SIP/2.0/WS 192.168.0.210;branch=z9hG4bK4224730;received=192.168.0.3;rport=35832 
    JsSIP:Transport From: "170" <sip:[email protected]:5060>;tag=s9bkng5emf 
    JsSIP:Transport To: <sip:[email protected]:5060>;tag=as0f727a9b 
    JsSIP:Transport Call-ID: 6ra4f68tegdmqllfoa7kja 
    JsSIP:Transport CSeq: 2 REGISTER 
    JsSIP:Transport Server: FPBX-13.0.192.19(13.12.1) 
    JsSIP:Transport Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE 
    JsSIP:Transport Supported: replaces, timer 
    JsSIP:Transport Content-Length: 0 
    JsSIP:Transport 
    JsSIP:Transport 
    JsSIP:Transport +3ms 

{ response: 
    IncomingResponse { 
    data: 'SIP/2.0 403 Forbidden\r\nVia: SIP/2.0/WS 192.168.0.210;branch=z9hG4bK4224730;received=192.168.0.3;rport=35832\r\nFrom: "170" <sip:[email protected]:5060>;tag=s9bkng5emf\r\nTo: <sip:[email protected]:5060>;tag=as0f727a9b\r\nCall-ID: 6ra4f68tegdmqllfoa7kja\r\nCSeq: 2 REGISTER\r\nServer: FPBX-13.0.192.19(13.12.1)\r\nAllow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE\r\nSupported:replaces, timer\r\nContent-Length: 0\r\n\r\n', 
    headers: 
     { Via: [Array], 
     From: [Array], 
     To: [Array], 
     'Call-ID': [Array], 
     CSeq: [Array], 
     Server: [Array], 
     Allow: [Array], 
     Supported: [Array], 
     'Content-Length': [Array] }, 
    method: 'REGISTER', 
    via: 
     { protocol: 'SIP', 
     transport: 'WS', 
     host_type: 'IPv4', 
     host: '192.168.0.210', 
     branch: 'z9hG4bK4224730', 
     received: '192.168.0.3' }, 
    via_branch: 'z9hG4bK4224730', 
    call_id: '6ra4f68tegdmqllfoa7kja', 
    cseq: 2, 
    from: NameAddrHeader { _uri: [Object], _parameters: [Object], _display_name: '170' }, 
    from_tag: 's9bkng5emf', 
    to: 
     NameAddrHeader { 
     _uri: [Object], 
     _parameters: [Object], 
     _display_name: undefined }, 
    to_tag: 'as0f727a9b', 
    body: '', 
    sdp: null, 
    status_code: 403, 
    reason_phrase: 'Forbidden' }, 
    cause: 'Rejected' } 
+0

디버그는 offtopic입니다. 너무 많은 요인 - 다른 암호화, NAT traversing 등. – arheops

답변

1

예상되는대로 등록 절차는 다음, RFC3261에 규정 된 절차 , 즉 첫 번째 REGISTER는 401 오류 응답에 응답하여 허가 정보가있는 두 번째 REGISTER. 이 경우 서버는 해당 데이터를 거부합니다.

170 (REGISTER) ---------------------> Asterisk 
170 <----------(401 - Not authorized) Asterisk 
170 (REGISTER with Auth info) ------> Asterisk 
170 <----------------(407 - Rejected) Asterisk 

그래서 별표는 두 번째 REGISTER 메시지가 마음에 들지 않기 때문에 레지스터를 거부합니다.

Authorization: Digest algorithm=MD5, username="170", realm="asterisk", nonce="078cc3e4", uri="sip:192.168.0.210:5060", response="26576b92bf68c3d315d480b02d53783c" 

글쎄, 영역 "별표"jssip 구성 동일하지 않습니다, 그리고이 RFC에 지정된 팔로우하지 않습니다 사용자 에이전트 또는 인증하는 프록시 서버의

연산자 받은 요청은 서버의 영역 문자열의 생성을 위해 다음 지침을 준수해야합니다 :

  • 영역 문자열은 전 세계적으로 고유해야합니다. 영역 문자열은 RFC 2617 [17]의 3.2.1 절의 권장 사항에 따라 호스트 이름 또는 도메인 이름을 포함하는 것이 좋습니다 (RECOMMENDED).

  • 영역 문자열은 사용자에게 렌더링 할 수있는 사람이 읽을 수있는 식별자를 제공해야합니다 (SHOULD).

그래서, 당신은 위의 규칙을 따라 별표의 영역 문자열을 정의하는 sip.conf를 구성해야합니다. 어쨌든, jssip이 다른 "realm"으로 구성되었다고해도 두 번째 REGISTER에서는 첫 번째 응답으로 들어오는 필드에 사용됩니다. 그래서 나는 그것이 문제라고 생각하지 않는다.

다른 것은 사용자 이름을 포함하지 않는 두 번째 REGISTER에 uri = "sip : 192.168.0.210 : 5060"입니다. "170 : 192.168.0.210 : SIP (5060)"가에서 가져온 다음 예를 들어, 다음 경우

Authorization: Digest username="bob",..., uri="sip:[email protected]",..." 

을이 jssip.conf에 지정된대로 URI는 사용자 이름을 포함하지 않는 이유를 나에게 분명하지 않다. 선택적 매개 변수 및 테스트이므로 구성에서 "authorization_user"를 제거합니다.

관련 문제